PageSourceSearch

https://itcurves.ai/_components/v2/6f7c1cc6f4e6b5f46153147a1b8d898db9975c9c.js

js itcurves.ai collected 2026-10-05 16:16:27 UTC 3,116,621 bytes, 42,612 lines download raw bytes

1const sw = () => Promise.resolve().then(() => aw), i9 = globalThis.__GLOBALS__.ReactJSXRuntime, { Fragment: C, jsx: i, jsxs: c } = i9;
2"use" in globalThis.__GLOBALS__.React || (globalThis.__GLOBALS__.React.use = () => {
3  throw new Error("`use` is not available in this version of React. Make currently only supports React 18, but `use` is only available in React 19+.");
4});
5function O6(t) {
6  const e = t?.props?._fgT, s = typeof e == "function" || typeof e == "string" || typeof e == "object" && e !== null && "$$typeof" in e;
7  return globalThis.__GLOBALS__.React.isValidElement(t) && s;
8}
9function jt(t) {
10  return globalThis.__GLOBALS__.React.isValidElement(t) && t.type === "fg-txt";
11}
12function V6(t) {
13  const { _fgT: e, _fgS: s, _fgB: r, _fgD: n, ...o } = t.props;
14  return globalThis.__GLOBALS__.React.createElement(e, {
15    ...o,
16    key: t.key
17  }, o.children);
18}
19function w2(t) {
20  return O6(t) ? V6(t) : jt(t) ? t.props.children : t;
21}
22const Ft = globalThis.__GLOBALS__.React.Children, d5 = {
23  map(t, e, s) {
24    return Ft.map(t, (r, n) => {
25      const o = w2(r);
26      return jt(r) ? null : e.call(s, o, n);
27    });
28  },
29  forEach(t, e, s) {
30    Ft.forEach(t, (r, n) => {
31      if (jt(r))
32        return;
33      const o = w2(r);
34      e.call(s, o, n);
35    });
36  },
37  count(t) {
38    let e = 0;
39    return Ft.forEach(t, (s) => {
40      jt(s) || e++;
41    }), e;
42  },
43  toArray(t) {
44    const e = [];
45    return Ft.forEach(t, (s) => {
46      jt(s) || e.push(w2(s));
47    }), e;
48  },
49  only(t) {
50    const e = Ft.only(t);
51    return w2(e);
52  }
53}, $3 = [
54  "_fgT",
55  "_fgS",
56  "_fgB",
57  "_fgD"
58];
59function r9(t) {
60  if (t == null || typeof t != "object") return t;
61  const e = Object.keys(t);
62  let s = !1;
63  for (let n = 0; n < $3.length; n++)
64    if ($3[n] in t) {
65      s = !0;
66      break;
67    }
68  if (!s) return t;
69  const r = {};
70  for (let n = 0; n < e.length; n++) {
71    const o = e[n];
72    $3.indexOf(o) === -1 && (r[o] = t[o]);
73  }
74  return r;
75}
76const n0 = globalThis.__GLOBALS__.React.cloneElement, g2 = (t, ...e) => {
77  if (O6(t)) {
78    const s = V6(t), r = e[0];
79    return r != null && typeof r == "object" && (e = [
80      r9(r),
81      ...e.slice(1)
82    ]), n0(s, ...e);
83  }
84  return n0(t, ...e);
85}, ae = {
86  ...globalThis.__GLOBALS__.React,
87  Children: d5,
88  cloneElement: g2
89}, { Component: g5, createContext: r1, createElement: s1, createFactory: n9, createRef: o9, forwardRef: Tt, Fragment: b3, isValidElement: v3, lazy: L9, memo: c9, Profiler: l9, PureComponent: d9, startTransition: g9, StrictMode: f9, Suspense: p9, use: M9, useCallback: Ge, useContext: oe, useDebugValue: u9, useDeferredValue: h9, useEffect: q, useId: y3, useImperativeHandle: m9, useInsertionEffect: f2, useLayoutEffect: f5, useMemo: M1, useReducer: x9, useRef: H, useState: j, useSyncExternalStore: _9, useTransition: b9, version: v9, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: y9 } = globalThis.__GLOBALS__.React, H6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
90  __proto__: null,
91  Children: d5,
92  Component: g5,
93  Fragment: b3,
94  Profiler: l9,
95  PureComponent: d9,
96  StrictMode: f9,
97  Suspense: p9,
98  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: y9,
99  cloneElement: g2,
100  createContext: r1,
101  createElement: s1,
102  createFactory: n9,
103  createRef: o9,
104  default: ae,
105  forwardRef: Tt,
106  isValidElement: v3,
107  lazy: L9,
108  memo: c9,
109  startTransition: g9,
110  use: M9,
111  useCallback: Ge,
112  useContext: oe,
113  useDebugValue: u9,
114  useDeferredValue: h9,
115  useEffect: q,
116  useId: y3,
117  useImperativeHandle: m9,
118  useInsertionEffect: f2,
119  useLayoutEffect: f5,
120  useMemo: M1,
121  useReducer: x9,
122  useRef: H,
123  useState: j,
124  useSyncExternalStore: _9,
125  useTransition: b9,
126  version: v9
127}, Symbol.toStringTag, { value: "Module" })), a = ae.forwardRef(function({ _fgT: e, _fgS: s, _fgB: r, ...n }, o) {
128  const L = o ? { ...n, ref: o } : n;
129  return typeof window < "u" && window.__FGInspectorCmp ? ae.createElement(window.__FGInspectorCmp, { _fgT: e, _fgS: s, _fgB: r, ...L }) : ae.createElement(e, L);
130});
131function w9(t, e) {
132  if (t instanceof RegExp) return { keys: !1, pattern: t };
133  var s, r, n, o, L = [], d = "", l = t.split("/");
134  for (l[0] || l.shift(); n = l.shift(); )
135    s = n[0], s === "*" ? (L.push(s), d += n[1] === "?" ? "(?:/(.*))?" : "/(.*)") : s === ":" ? (r = n.indexOf("?", 1), o = n.indexOf(".", 1), L.push(n.substring(1, ~r ? r : ~o ? o : n.length)), d += ~r && !~o ? "(?:/([^/]+?))?" : "/([^/]+?)", ~o && (d += (~r ? "?" : "") + "\\" + n.substring(o))) : d += "/" + n;
136  return {
137    keys: L,
138    pattern: new RegExp("^" + d + (e ? "(?=$|/)" : "/?$"), "i")
139  };
140}
141function T9(t) {
142  if (Object.prototype.hasOwnProperty.call(t, "__esModule")) return t;
143  var e = t.default;
144  if (typeof e == "function") {
145    var s = function r() {
146      return this instanceof r ? Reflect.construct(e, arguments, this.constructor) : e.apply(this, arguments);
147    };
148    s.prototype = e.prototype;
149  } else s = {};
150  return Object.defineProperty(s, "__esModule", { value: !0 }), Object.keys(t).forEach(function(r) {
151    var n = Object.getOwnPropertyDescriptor(t, r);
152    Object.defineProperty(s, r, n.get ? n : {
153      enumerable: !0,
154      get: function() {
155        return t[r];
156      }
157    });
158  }), s;
159}
160var q3 = { exports: {} }, U3 = {};
161const S9 = /* @__PURE__ */ T9(H6);
162/**
163 * @license React
164 * use-sync-external-store-shim.production.js
165 *
166 * Copyright (c) Meta Platforms, Inc. and affiliates.
167 *
168 * This source code is licensed under the MIT license found in the
169 * LICENSE file in the root directory of this source tree.
170 */
171var o0;
172function B9() {
173  if (o0) return U3;
174  o0 = 1;
175  var t = S9;
176  function e(p, M) {
177    return p === M && (p !== 0 || 1 / p === 1 / M) || p !== p && M !== M;
178  }
179  var s = typeof Object.is == "function" ? Object.is : e, r = t.useState, n = t.useEffect, o = t.useLayoutEffect, L = t.useDebugValue;
180  function d(p, M) {
181    var u = M(), h = r({ inst: { value: u, getSnapshot: M } }), x = h[0].inst, _ = h[1];
182    return o(
183      function() {
184        x.value = u, x.getSnapshot = M, l(x) && _({ inst: x });
185      },
186      [p, u, M]
187    ), n(
188      function() {
189        return l(x) && _({ inst: x }), p(function() {
190          l(x) && _({ inst: x });
191        });
192      },
193      [p]
194    ), L(u), u;
195  }
196  function l(p) {
197    var M = p.getSnapshot;
198    p = p.value;
199    try {
200      var u = M();
201      return !s(p, u);
202    } catch {
203      return !0;
204    }
205  }
206  function g(p, M) {
207    return M();
208  }
209  var f = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? g : d;
210  return U3.useSyncExternalStore = t.useSyncExternalStore !== void 0 ? t.useSyncExternalStore : f, U3;
211}
212var L0;
213function k9() {
214  return L0 || (L0 = 1, q3.exports = B9()), q3.exports;
215}
216var A9 = k9();
217const N9 = H6.useInsertionEffect, I9 = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u", P9 = I9 ? f5 : q, C9 = N9 || P9, Z6 = (t) => {
218  const e = H([t, (...s) => e[0](...s)]).current;
219  return C9(() => {
220    e[0] = t;
221  }), e[1];
222}, c0 = ["popstate", "pushState", "replaceState", "hashchange"];
223let Ot = [];
224const l0 = () => Ot.forEach((t) => t()), F9 = (t) => (Ot.push(t) === 1 && c0.forEach((e) => addEventListener(e, l0)), () => {
225  Ot = Ot.filter((e) => e !== t), Ot.length || c0.forEach((e) => removeEventListener(e, l0));
226}), W6 = (t, e) => A9.useSyncExternalStore(F9, t, e), d0 = () => location.search, E9 = ({ ssrSearch: t } = {}) => W6(
227  d0,
228  // != null checks for both null and undefined, but allows empty string ""
229  // This allows proper hydration: server renders with ssrSearch="?foo",
230  // client hydrates with just <Router /> and reads from location.search
231  t != null ? () => t : d0
232), g0 = () => location.pathname, R9 = ({ ssrPath: t } = {}) => W6(
233  g0,
234  // != null checks for both null and undefined, but allows empty string ""
235  // This allows proper hydration: server renders with ssrPath="/foo",
236  // client hydrates with just <Router /> and reads from location.pathname
237  t != null ? () => t : g0
238), D9 = (t, { replace: e = !1, state: s = null } = {}) => history[e ? "replaceState" : "pushState"](s, "", t), z9 = (t) => [R9(t), D9], f0 = Symbol.for("wouter_v3");
239if (typeof history < "u" && typeof window[f0] > "u") {
240  for (const t of ["pushState", "replaceState"]) {
241    const e = history[t];
242    history[t] = function() {
243      const s = e.apply(this, arguments), r = new Event(t);
244      return r.arguments = arguments, dispatchEvent(r), s;
245    };
246  }
247  Object.defineProperty(window, f0, { value: !0 });
248}
249const $6 = (t = "") => t === "/" ? "" : t, j9 = (t, e) => t[0] === "~" ? t.slice(1) : $6(e) + t, q6 = (t, e) => (t = p0($6(t)), e = p0(e), !t || !e.toLowerCase().indexOf(t.toLowerCase()) ? e.slice(t.length) || "/" : "~" + e), p0 = (t) => {
250  try {
251    return t.includes("%") ? decodeURI(t) : t;
252  } catch {
253    return t;
254  }
255}, U6 = {
256  hook: z9,
257  searchHook: E9,
258  parser: w9,
259  base: "",
260  // this option is used to override the current location during SSR
261  ssrPath: void 0,
262  ssrSearch: void 0,
263  // optional context to track render state during SSR
264  ssrContext: void 0,
265  // customizes how `href` props are transformed for <Link />
266  hrefs: (t) => t,
267  // wraps navigate calls, useful for view transitions
268  aroundNav: (t, e, s) => t(e, s)
269}, G6 = r1(U6), p2 = () => oe(G6), J6 = {}, K6 = r1(J6), Y6 = () =>
269 oe(K6), X6 = (t, e = t.base) => q6(e, t.hook(t)[0]), Q6 = (t) => {
270  const [e, s] = t.hook(t);
271  return [
272    q6(t.base, e),
273    Z6(
274      (r, n) => t.aroundNav(s, j9(r, t.base), n)
275    )
276  ];
277}, p5 = () => Q6(p2()), es = (t, e, s, r) => {
278  const { pattern: n, keys: o } = e instanceof RegExp ? { pattern: e } : t(e || "*", r), L = n.exec(s);
279  if (!L) return [!1, null];
280  const d = {};
281  for (let l = 1; l < L.length; l++) d[l - 1] = L[l];
282  if (o)
283    for (let l = 0; l < o.length; l++) d[o[l]] = L[l + 1];
284  else
285    Object.assign(d, L.groups);
286  return r ? [!0, d, L[0]] : [!0, d];
287}, O9 = ({ children: t, ...e }) => {
288  const s = p2(), r = e.hook ? U6 : s;
289  let n = r;
290  if (e.ssrPath) {
291    const [l, g = e.ssrSearch ?? ""] = e.ssrPath.split("?");
292    l && (e.ssrSearch = g, e.ssrPath = l);
293  }
294  e.hrefs = e.hrefs ?? e.hook?.hrefs, e.searchHook = e.searchHook ?? e.hook?.searchHook;
295  let o = H(r), L = o.current, d = L;
296  for (let l in r) {
297    const g = l === "base" ? (
298      /* base is special case, it is appended to the parent's base */
299      r[l] + (e[l] ?? "")
300    ) : e[l] ?? r[l];
301    g !== d[l] && (L === d && (o.current = d = { ...d }), d[l] = g), (g !== r[l] || g !== n[l]) && (n = d);
302  }
303  return s1(G6.Provider, { value: n }, t);
304}, V9 = ({ children: t, component: e }, s) => e ? s1(e, { params: s }) : typeof t == "function" ? t(s) : t, H9 = (t) => {
305  let e = H(J6);
306  const s = e.current, r = Object.keys(t);
307  return e.current = // Update cache if number of params changed or any value changed
308  r.length !== Object.keys(s).length || r.some((n) => t[n] !== s[n]) ? t : s;
309}, J = ({ path: t, nest: e, match: s, ...r }) => {
310  const n = p2(), o = X6(n), [L, d, l] = (
311    // `match` is a special prop to give up control to the parent,
312    // it is used by the `Switch` to avoid double matching
313    s ?? es(n.parser, t, o, e)
314  ), g = H9({ ...Y6(), ...d });
315  if (!L) return null;
316  const f = V9(r, g);
317  return s1(
318    K6.Provider,
319    { value: g },
320    l ? s1(O9, { base: l }, f) : f
321  );
322}, E = Tt((t, e) => {
323  const s = p2(), [r, n] = Q6(s), {
324    to: o = "",
325    href: L = o,
326    onClick: d,
327    asChild: l,
328    children: g,
329    className: f,
330    /* eslint-disable no-unused-vars */
331    replace: p,
332    state: M,
333    transition: u,
334    /* eslint-enable no-unused-vars */
335    ...h
336  } = t;
337  return h.onClick = Z6((x) => {
338    x.ctrlKey || x.metaKey || x.altKey || x.shiftKey || x.button !== 0 || (d?.(x), x.defaultPrevented || (x.preventDefault(), n(L, t)));
339  }), h.href = s.hrefs(
340    L[0] === "~" ? L.slice(1) : s.base + L,
341    s
342    // pass router as a second argument for convinience
343  ), f !== void 0 && (h.className = f?.call ? f(r === L) : f), e && (h.ref = e), l && v3(g) ? g2(g, h) : s1("a", h, g);
344}), ts = (t, e = []) => {
345  if (Array.isArray(t))
346    for (const s of t)
347      ts(s && s.type === b3 ? s.props.children : s, e);
348  else e.push(t);
349  return e;
350}, Z9 = ({ children: t, location: e }) => {
351  const s = p2(), r = X6(s);
352  for (const n of ts(t)) {
353    let o = 0;
354    if (v3(n) && // we don't require an element to be of type Route,
355    // but we do require it to contain a truthy `path` prop.
356    // this allows to use different components that wrap Route
357    // inside of a switch, for example <AnimatedRoute />.
358    (o = es(
359      s.parser,
360      n.props.path,
361      e || r,
362      n.props.nest
363    ))[0])
364      return g2(n, { match: o });
365  }
366  return null;
367}, M5 = r1({});
368function St(t) {
369  const e = H(null);
370  return e.current === null && (e.current = t()), e.current;
371}
372const u5 = typeof window < "u", w3 = u5 ? f5 : q, T3 = /* @__PURE__ */ r1(null);
373function h5(t, e) {
374  t.indexOf(e) === -1 && t.push(e);
375}
376function m5(t, e) {
377  const s = t.indexOf(e);
378  s > -1 && t.splice(s, 1);
379}
380const i1 = (t, e, s) => s > e ? e : s < t ? t : s;
381let Xt = () => {
382};
383const u1 = {}, as = (t) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);
384function ss(t) {
385  return typeof t == "object" && t !== null;
386}
387const is = (t) => /^0[^.\s]+$/u.test(t);
388// @__NO_SIDE_EFFECTS__
389function x5(t) {
390  let e;
391  return () => (e === void 0 && (e = t()), e);
392}
393const Ne = /* @__NO_SIDE_EFFECTS__ */ (t) => t, W9 = (t, e) => (s) => e(t(s)), M2 = (...t) => t.reduce(W9), vt = /* @__NO_SIDE_EFFECTS__ */ (t, e, s) => {
394  const r = e - t;
395  return r === 0 ? 1 : (s - t) / r;
396};
397class _5 {
398  constructor() {
399    this.subscriptions = [];
400  }
401  add(e) {
402    return h5(this.subscriptions, e), () => m5(this.subscriptions, e);
403  }
404  notify(e, s, r) {
405    const n = this.subscriptions.length;
406    if (n)
407      if (n === 1)
408        this.subscriptions[0](e, s, r);
409      else
410        for (let o = 0; o < n; o++) {
411          const L = this.subscriptions[o];
412          L && L(e, s, r);
413        }
414  }
415  getSize() {
416    return this.subscriptions.length;
417  }
418  clear() {
419    this.subscriptions.length = 0;
420  }
421}
422const t1 = /* @__NO_SIDE_EFFECTS__ */ (t) => t * 1e3, Oe = /* @__NO_SIDE_EFFECTS__ */ (t) => t / 1e3;
423function b5(t, e) {
424  return e ? t * (1e3 / e) : 0;
425}
426const rs = (t, e, s) => (((1 - 3 * s + 3 * e) * t + (3 * s - 6 * e)) * t + 3 * e) * t, $9 = 1e-7, q9 = 12;
427function U9(t, e, s, r, n) {
428  let o, L, d = 0;
429  do
430    L = e + (s - e) / 2, o = rs(L, r, n) - t, o > 0 ? s = L : e = L;
431  while (Math.abs(o) > $9 && ++d < q9);
432  return L;
433}
434function u2(t, e, s, r) {
435  if (t === e && s === r)
436    return Ne;
437  const n = (o) => U9(o, 0, 1, t, s);
438  return (o) => o === 0 || o === 1 ? o : rs(n(o), e, r);
439}
440const ns = (t) => (e) => e <= 0.5 ? t(2 * e) / 2 : (2 - t(2 * (1 - e))) / 2, os = (t) => (e) => 1 - t(1 - e), Ls = /* @__PURE__ */ u2(0.33, 1.53, 0.69, 0.99), v5 = /* @__PURE__ */ os(Ls), cs = /* @__PURE__ */ ns(v5), ls = (t) => (t *= 2) < 1 ? 0.5 * v5(t) : 0.5 * (2 - Math.pow(2, -10 * (t - 1))), y5 = (t) => 1 - Math.sin(Math.acos(t)), ds = os(y5), gs = ns(y5), G9 = /* @__PURE__ */ u2(0.42, 0, 1, 1), J9 = /* @__PURE__ */ u2(0, 0, 0.58, 1), fs = /* @__PURE__ */ u2(0.42, 0, 0.58, 1), K9 = (t) =>
vendor: 10,762 bytes, lines 440-747
440 Array.isArray(t) && typeof t[0] != "number", ps = (t) => Array.isArray(t) && typeof t[0] == "number", Y9 = {
441  linear: Ne,
442  easeIn: G9,
443  easeInOut: fs,
444  easeOut: J9,
445  circIn: y5,
446  circInOut: gs,
447  circOut: ds,
448  backIn: v5,
449  backInOut: cs,
450  backOut: Ls,
451  anticipate: ls
452}, X9 = (t) => typeof t == "string", M0 = (t) => {
453  if (ps(t)) {
454    Xt(t.length === 4);
455    const [e, s, r, n] = t;
456    return u2(e, s, r, n);
457  } else if (X9(t))
458    return Y9[t];
459  return t;
460}, T2 = [
461  "setup",
462  // Compute
463  "read",
464  // Read
465  "resolveKeyframes",
466  // Write/Read/Write/Read
467  "preUpdate",
468  // Compute
469  "update",
470  // Compute
471  "preRender",
472  // Compute
473  "render",
474  // Write
475  "postRender"
476  // Compute
477];
478function Q9(t, e) {
479  let s = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), n = !1, o = !1;
480  const L = /* @__PURE__ */ new WeakSet();
481  let d = {
482    delta: 0,
483    timestamp: 0,
484    isProcessing: !1
485  };
486  function l(f) {
487    L.has(f) && (g.schedule(f), t()), f(d);
488  }
489  const g = {
490    /**
491     * Schedule a process to run on the next frame.
492     */
493    schedule: (f, p = !1, M = !1) => {
494      const h = M && n ? s : r;
495      return p && L.add(f), h.has(f) || h.add(f), f;
496    },
497    /**
498     * Cancel the provided callback from running on the next frame.
499     */
500    cancel: (f) => {
501      r.delete(f), L.delete(f);
502    },
503    /**
504     * Execute all schedule callbacks.
505     */
506    process: (f) => {
507      if (d = f, n) {
508        o = !0;
509        return;
510      }
511      n = !0, [s, r] = [r, s], s.forEach(l), s.clear(), n = !1, o && (o = !1, g.process(f));
512    }
513  };
514  return g;
515}
516const er = 40;
517function Ms(t, e) {
518  let s = !1, r = !0;
519  const n = {
520    delta: 0,
521    timestamp: 0,
522    isProcessing: !1
523  }, o = () => s = !0, L = T2.reduce((b, S) => (b[S] = Q9(o), b), {}), { setup: d, read: l, resolveKeyframes: g, preUpdate: f, update: p, preRender: M, render: u, postRender: h } = L, x = () => {
524    const b = u1.useManualTiming ? n.timestamp : performance.now();
525    s = !1, u1.useManualTiming || (n.delta = r ? 1e3 / 60 : Math.max(Math.min(b - n.timestamp, er), 1)), n.timestamp = b, n.isProcessing = !0, d.process(n), l.process(n), g.process(n), f.process(n), p.process(n), M.process(n), u.process(n), h.process(n), n.isProcessing = !1, s && e && (r = !1, t(x));
526  }, _ = () => {
527    s = !0, r = !0, n.isProcessing || t(x);
528  };
529  return { schedule: T2.reduce((b, S) => {
530    const k = L[S];
531    return b[S] = (A, I = !1, w = !1) => (s || _(), k.schedule(A, I, w)), b;
532  }, {}), cancel: (b) => {
533    for (let S = 0; S < T2.length; S++)
534      L[T2[S]].cancel(b);
535  }, state: n, steps: L };
536}
537const { schedule: $, cancel: Je, state: me, steps: G3 } = /* @__PURE__ */ Ms(typeof requestAnimationFrame < "u" ? requestAnimationFrame : Ne, !0);
538let G2;
539function tr() {
540  G2 = void 0;
541}
542const Ae = {
543  now: () => (G2 === void 0 && Ae.set(me.isProcessing || u1.useManualTiming ? me.timestamp : performance.now()), G2),
544  set: (t) => {
545    G2 = t, queueMicrotask(tr);
546  }
547}, us = (t) => (e) => typeof e == "string" && e.startsWith(t), w5 = /* @__PURE__ */ us("--"), ar = /* @__PURE__ */ us("var(--"), T5 = (t) => ar(t) ? sr.test(t.split("/*")[0].trim()) : !1, sr = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu, Bt = {
548  test: (t) => typeof t == "number",
549  parse: parseFloat,
550  transform: (t) => t
551}, Qt = {
552  ...Bt,
553  transform: (t) => i1(0, 1, t)
554}, S2 = {
555  ...Bt,
556  default: 1
557}, $t = (t) => Math.round(t * 1e5) / 1e5, S5 = /-?(?:\d+(?:\.\d+)?|\.\d+)/gu;
558function ir(t) {
559  return t == null;
560}
561const rr = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu, B5 = (t, e) => (s) => !!(typeof s == "string" && rr.test(s) && s.startsWith(t) || e && !ir(s) && Object.prototype.hasOwnProperty.call(s, e)), hs = (t, e, s) => (r) => {
562  if (typeof r != "string")
563    return r;
564  const [n, o, L, d] = r.match(S5);
565  return {
566    [t]: parseFloat(n),
567    [e]: parseFloat(o),
568    [s]: parseFloat(L),
569    alpha: d !== void 0 ? parseFloat(d) : 1
570  };
571}, nr = (t) => i1(0, 255, t), J3 = {
572  ...Bt,
573  transform: (t) => Math.round(nr(t))
574}, z1 = {
575  test: /* @__PURE__ */ B5("rgb", "red"),
576  parse: /* @__PURE__ */ hs("red", "green", "blue"),
577  transform: ({ red: t, green: e, blue: s, alpha: r = 1 }) => "rgba(" + J3.transform(t) + ", " + J3.transform(e) + ", " + J3.transform(s) + ", " + $t(Qt.transform(r)) + ")"
578};
579function or(t) {
580  let e = "", s = "", r = "", n = "";
581  return t.length > 5 ? (e = t.substring(1, 3), s = t.substring(3, 5), r = t.substring(5, 7), n = t.substring(7, 9)) : (e = t.substring(1, 2), s = t.substring(2, 3), r = t.substring(3, 4), n = t.substring(4, 5), e += e, s += s, r += r, n += n), {
582    red: parseInt(e, 16),
583    green: parseInt(s, 16),
584    blue: parseInt(r, 16),
585    alpha: n ? parseInt(n, 16) / 255 : 1
586  };
587}
588const T4 = {
589  test: /* @__PURE__ */ B5("#"),
590  parse: or,
591  transform: z1.transform
592}, h2 = /* @__NO_SIDE_EFFECTS__ */ (t) => ({
593  test: (e) => typeof e == "string" && e.endsWith(t) && e.split(" ").length === 1,
594  parse: parseFloat,
595  transform: (e) => `${e}${t}`
596}), m1 = /* @__PURE__ */ h2("deg"), a1 = /* @__PURE__ */ h2("%"), R = /* @__PURE__ */ h2("px"), Lr = /* @__PURE__ */ h2("vh"), cr = /* @__PURE__ */ h2("vw"), u0 = {
597  ...a1,
598  parse: (t) => a1.parse(t) / 100,
599  transform: (t) => a1.transform(t * 100)
600}, rt = {
601  test: /* @__PURE__ */ B5("hsl", "hue"),
602  parse: /* @__PURE__ */ hs("hue", "saturation", "lightness"),
603  transform: ({ hue: t, saturation: e, lightness: s, alpha: r = 1 }) => "hsla(" + Math.round(t) + ", " + a1.transform($t(e)) + ", " + a1.transform($t(s)) + ", " + $t(Qt.transform(r)) + ")"
604}, ge = {
605  test: (t) => z1.test(t) || T4.test(t) || rt.test(t),
606  parse: (t) => z1.test(t) ? z1.parse(t) : rt.test(t) ? rt.parse(t) : T4.parse(t),
607  transform: (t) => typeof t == "string" ? t : t.hasOwnProperty("red") ? z1.transform(t) : rt.transform(t),
608  getAnimatableNone: (t) => {
609    const e = ge.parse(t);
610    return e.alpha = 0, ge.transform(e);
611  }
612}, lr = /(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;
613function dr(t) {
614  return isNaN(t) && typeof t == "string" && (t.match(S5)?.length || 0) + (t.match(lr)?.length || 0) > 0;
615}
616const ms = "number", xs = "color", gr = "var", fr = "var(", h0 = "${}", pr = /var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;
617function e2(t) {
618  const e = t.toString(), s = [], r = {
619    color: [],
620    number: [],
621    var: []
622  }, n = [];
623  let o = 0;
624  const d = e.replace(pr, (l) => (ge.test(l) ? (r.color.push(o), n.push(xs), s.push(ge.parse(l))) : l.startsWith(fr) ? (r.var.push(o), n.push(gr), s.push(l)) : (r.number.push(o), n.push(ms), s.push(parseFloat(l))), ++o, h0)).split(h0);
625  return { values: s, split: d, indexes: r, types: n };
626}
627function _s(t) {
628  return e2(t).values;
629}
630function bs(t) {
631  const { split: e, types: s } = e2(t), r = e.length;
632  return (n) => {
633    let o = "";
634    for (let L = 0; L < r; L++)
635      if (o += e[L], n[L] !== void 0) {
636        const d = s[L];
637        d === ms ? o += $t(n[L]) : d === xs ? o += ge.transform(n[L]) : o += n[L];
638      }
639    return o;
640  };
641}
642const Mr = (t) => typeof t == "number" ? 0 : ge.test(t) ? ge.getAnimatableNone(t) : t;
643function ur(t) {
644  const e = _s(t);
645  return bs(t)(e.map(Mr));
646}
647const v1 = {
648  test: dr,
649  parse: _s,
650  createTransformer: bs,
651  getAnimatableNone: ur
652};
653function K3(t, e, s) {
654  return s < 0 && (s += 1), s > 1 && (s -= 1), s < 1 / 6 ? t + (e - t) * 6 * s : s < 1 / 2 ? e : s < 2 / 3 ? t + (e - t) * (2 / 3 - s) * 6 : t;
655}
656function hr({ hue: t, saturation: e, lightness: s, alpha: r }) {
657  t /= 360, e /= 100, s /= 100;
658  let n = 0, o = 0, L = 0;
659  if (!e)
660    n = o = L = s;
661  else {
662    const d = s < 0.5 ? s * (1 + e) : s + e - s * e, l = 2 * s - d;
663    n = K3(l, d, t + 1 / 3), o = K3(l, d, t), L = K3(l, d, t - 1 / 3);
664  }
665  return {
666    red: Math.round(n * 255),
667    green: Math.round(o * 255),
668    blue: Math.round(L * 255),
669    alpha: r
670  };
671}
672function r3(t, e) {
673  return (s) => s > 0 ? e : t;
674}
675const se = (t, e, s) => t + (e - t) * s, Y3 = (t, e, s) => {
676  const r = t * t, n = s * (e * e - r) + r;
677  return n < 0 ? 0 : Math.sqrt(n);
678}, mr = [T4, z1, rt], xr = (t) => mr.find((e) => e.test(t));
679function m0(t) {
680  const e = xr(t);
681  if (!e)
682    return !1;
683  let s = e.parse(t);
684  return e === rt && (s = hr(s)), s;
685}
686const x0 = (t, e) => {
687  const s = m0(t), r = m0(e);
688  if (!s || !r)
689    return r3(t, e);
690  const n = { ...s };
691  return (o) => (n.red = Y3(s.red, r.red, o), n.green = Y3(s.green, r.green, o), n.blue = Y3(s.blue, r.blue, o), n.alpha = se(s.alpha, r.alpha, o), z1.transform(n));
692}, S4 = /* @__PURE__ */ new Set(["none", "hidden"]);
693function _r(t, e) {
694  return S4.has(t) ? (s) => s <= 0 ? t : e : (s) => s >= 1 ? e : t;
695}
696function br(t, e) {
697  return (s) => se(t, e, s);
698}
699function k5(t) {
700  return typeof t == "number" ? br : typeof t == "string" ? T5(t) ? r3 : ge.test(t) ? x0 : wr : Array.isArray(t) ? vs : typeof t == "object" ? ge.test(t) ? x0 : vr : r3;
701}
702function vs(t, e) {
703  const s = [...t], r = s.length, n = t.map((o, L) => k5(o)(o, e[L]));
704  return (o) => {
705    for (let L = 0; L < r; L++)
706      s[L] = n[L](o);
707    return s;
708  };
709}
710function vr(t, e) {
711  const s = { ...t, ...e }, r = {};
712  for (const n in s)
713    t[n] !== void 0 && e[n] !== void 0 && (r[n] = k5(t[n])(t[n], e[n]));
714  return (n) => {
715    for (const o in r)
716      s[o] = r[o](n);
717    return s;
718  };
719}
720function yr(t, e) {
721  const s = [], r = { color: 0, var: 0, number: 0 };
722  for (let n = 0; n < e.values.length; n++) {
723    const o = e.types[n], L = t.indexes[o][r[o]], d = t.values[L] ?? 0;
724    s[n] = d, r[o]++;
725  }
726  return s;
727}
728const wr = (t, e) => {
729  const s = v1.createTransformer(e), r = e2(t), n = e2(e);
730  return r.indexes.var.length === n.indexes.var.length && r.indexes.color.length === n.indexes.color.length && r.indexes.number.length >= n.indexes.number.length ? S4.has(t) && !n.values.length || S4.has(e) && !r.values.length ? _r(t, e) : M2(vs(yr(r, n), n.values), s) : r3(t, e);
731};
732function ys(t, e, s) {
733  return typeof t == "number" && typeof e == "number" && typeof s == "number" ? se(t, e, s) : k5(t)(t, e);
734}
735const Tr = (t) => {
736  const e = ({ timestamp: s }) => t(s);
737  return {
738    start: (s = !0) => $.update(e, s),
739    stop: () => Je(e),
740    /**
741     * If we're processing this frame we can use the
742     * framelocked timestamp to keep things in sync.
743     */
744    now: () => me.isProcessing ? me.timestamp : Ae.now()
745  };
746}, ws = (t, e, s = 10) => {
747  let r = "";
vendor: 4,171 bytes, lines 748-897
748  const n = Math.max(Math.round(e / s), 2);
749  for (let o = 0; o < n; o++)
750    r += Math.round(t(o / (n - 1)) * 1e4) / 1e4 + ", ";
751  return `linear(${r.substring(0, r.length - 2)})`;
752}, n3 = 2e4;
753function A5(t) {
754  let e = 0;
755  const s = 50;
756  let r = t.next(e);
757  for (; !r.done && e < n3; )
758    e += s, r = t.next(e);
759  return e >= n3 ? 1 / 0 : e;
760}
761function Sr(t, e = 100, s) {
762  const r = s({ ...t, keyframes: [0, e] }), n = Math.min(A5(r), n3);
763  return {
764    type: "keyframes",
765    ease: (o) => r.next(n * o).value / e,
766    duration: /* @__PURE__ */ Oe(n)
767  };
768}
769const Br = 5;
770function Ts(t, e, s) {
771  const r = Math.max(e - Br, 0);
772  return b5(s - t(r), e - r);
773}
774const ne = {
775  // Default spring physics
776  stiffness: 100,
777  damping: 10,
778  mass: 1,
779  velocity: 0,
780  // Default duration/bounce-based options
781  duration: 800,
782  // in ms
783  bounce: 0.3,
784  visualDuration: 0.3,
785  // in seconds
786  // Rest thresholds
787  restSpeed: {
788    granular: 0.01,
789    default: 2
790  },
791  restDelta: {
792    granular: 5e-3,
793    default: 0.5
794  },
795  // Limits
796  minDuration: 0.01,
797  // in seconds
798  maxDuration: 10,
799  // in seconds
800  minDamping: 0.05,
801  maxDamping: 1
802}, X3 = 1e-3;
803function kr({ duration: t = ne.duration, bounce: e = ne.bounce, velocity: s = ne.velocity, mass: r = ne.mass }) {
804  let n, o, L = 1 - e;
805  L = i1(ne.minDamping, ne.maxDamping, L), t = i1(ne.minDuration, ne.maxDuration, /* @__PURE__ */ Oe(t)), L < 1 ? (n = (g) => {
806    const f = g * L, p = f * t, M = f - s, u = B4(g, L), h = Math.exp(-p);
807    return X3 - M / u * h;
808  }, o = (g) => {
809    const p = g * L * t, M = p * s + s, u = Math.pow(L, 2) * Math.pow(g, 2) * t, h = Math.exp(-p), x = B4(Math.pow(g, 2), L);
810    return (-n(g) + X3 > 0 ? -1 : 1) * ((M - u) * h) / x;
811  }) : (n = (g) => {
812    const f = Math.exp(-g * t), p = (g - s) * t + 1;
813    return -X3 + f * p;
814  }, o = (g) => {
815    const f = Math.exp(-g * t), p = (s - g) * (t * t);
816    return f * p;
817  });
818  const d = 5 / t, l = Nr(n, o, d);
819  if (t = /* @__PURE__ */ t1(t), isNaN(l))
820    return {
821      stiffness: ne.stiffness,
822      damping: ne.damping,
823      duration: t
824    };
825  {
826    const g = Math.pow(l, 2) * r;
827    return {
828      stiffness: g,
829      damping: L * 2 * Math.sqrt(r * g),
830      duration: t
831    };
832  }
833}
834const Ar = 12;
835function Nr(t, e, s) {
836  let r = s;
837  for (let n = 1; n < Ar; n++)
838    r = r - t(r) / e(r);
839  return r;
840}
841function B4(t, e) {
842  return t * Math.sqrt(1 - e * e);
843}
844const Ir = ["duration", "bounce"], Pr = ["stiffness", "damping", "mass"];
845function _0(t, e) {
846  return e.some((s) => t[s] !== void 0);
847}
848function Cr(t) {
849  let e = {
850    velocity: ne.velocity,
851    stiffness: ne.stiffness,
852    damping: ne.damping,
853    mass: ne.mass,
854    isResolvedFromDuration: !1,
855    ...t
856  };
857  if (!_0(t, Pr) && _0(t, Ir))
858    if (t.visualDuration) {
859      const s = t.visualDuration, r = 2 * Math.PI / (s * 1.2), n = r * r, o = 2 * i1(0.05, 1, 1 - (t.bounce || 0)) * Math.sqrt(n);
860      e = {
861        ...e,
862        mass: ne.mass,
863        stiffness: n,
864        damping: o
865      };
866    } else {
867      const s = kr(t);
868      e = {
869        ...e,
870        ...s,
871        mass: ne.mass
872      }, e.isResolvedFromDuration = !0;
873    }
874  return e;
875}
876function o3(t = ne.visualDuration, e = ne.bounce) {
877  const s = typeof t != "object" ? {
878    visualDuration: t,
879    keyframes: [0, 1],
880    bounce: e
881  } : t;
882  let { restSpeed: r, restDelta: n } = s;
883  const o = s.keyframes[0], L = s.keyframes[s.keyframes.length - 1], d = { done: !1, value: o }, { stiffness: l, damping: g, mass: f, duration: p, velocity: M, isResolvedFromDuration: u } = Cr({
884    ...s,
885    velocity: -/* @__PURE__ */ Oe(s.velocity || 0)
886  }), h = M || 0, x = g / (2 * Math.sqrt(l * f)), _ = L - o, v = /* @__PURE__ */ Oe(Math.sqrt(l / f)), y = Math.abs(_) < 5;
887  r || (r = y ? ne.restSpeed.granular : ne.restSpeed.default), n || (n = y ? ne.restDelta.granular : ne.restDelta.default);
888  let b;
889  if (x < 1) {
890    const k = B4(v, x);
891    b = (A) => {
892      const I = Math.exp(-x * v * A);
893      return L - I * ((h + x * v * _) / k * Math.sin(k * A) + _ * Math.cos(k * A));
894    };
895  } else if (x === 1)
896    b = (k) => L - Math.exp(-v * k) * (_ + (h + v * _) * k);
897  else {
vendor: 18,085 bytes, lines 898-1438
898    const k = v * Math.sqrt(x * x - 1);
899    b = (A) => {
900      const I = Math.exp(-x * v * A), w = Math.min(k * A, 300);
901      return L - I * ((h + x * v * _) * Math.sinh(w) + k * _ * Math.cosh(w)) / k;
902    };
903  }
904  const S = {
905    calculatedDuration: u && p || null,
906    next: (k) => {
907      const A = b(k);
908      if (u)
909        d.done = k >= p;
910      else {
911        let I = k === 0 ? h : 0;
912        x < 1 && (I = k === 0 ? /* @__PURE__ */ t1(h) : Ts(b, k, A));
913        const w = Math.abs(I) <= r, P = Math.abs(L - A) <= n;
914        d.done = w && P;
915      }
916      return d.value = d.done ? L : A, d;
917    },
918    toString: () => {
919      const k = Math.min(A5(S), n3), A = ws((I) => S.next(k * I).value, k, 30);
920      return k + "ms " + A;
921    },
922    toTransition: () => {
923    }
924  };
925  return S;
926}
927o3.applyToOptions = (t) => {
928  const e = Sr(t, 100, o3);
929  return t.ease = e.ease, t.duration = /* @__PURE__ */ t1(e.duration), t.type = "keyframes", t;
930};
931function k4({ keyframes: t, velocity: e = 0, power: s = 0.8, timeConstant: r = 325, bounceDamping: n = 10, bounceStiffness: o = 500, modifyTarget: L, min: d, max: l, restDelta: g = 0.5, restSpeed: f }) {
932  const p = t[0], M = {
933    done: !1,
934    value: p
935  }, u = (w) => d !== void 0 && w < d || l !== void 0 && w > l, h = (w) => d === void 0 ? l : l === void 0 || Math.abs(d - w) < Math.abs(l - w) ? d : l;
936  let x = s * e;
937  const _ = p + x, v = L === void 0 ? _ : L(_);
938  v !== _ && (x = v - p);
939  const y = (w) => -x * Math.exp(-w / r), b = (w) => v + y(w), S = (w) => {
940    const P = y(w), z = b(w);
941    M.done = Math.abs(P) <= g, M.value = M.done ? v : z;
942  };
943  let k, A;
944  const I = (w) => {
945    u(M.value) && (k = w, A = o3({
946      keyframes: [M.value, h(M.value)],
947      velocity: Ts(b, w, M.value),
948      // TODO: This should be passing * 1000
949      damping: n,
950      stiffness: o,
951      restDelta: g,
952      restSpeed: f
953    }));
954  };
955  return I(0), {
956    calculatedDuration: null,
957    next: (w) => {
958      let P = !1;
959      return !A && k === void 0 && (P = !0, S(w), I(w)), k !== void 0 && w >= k ? A.next(w - k) : (!P && S(w), M);
960    }
961  };
962}
963function Fr(t, e, s) {
964  const r = [], n = s || u1.mix || ys, o = t.length - 1;
965  for (let L = 0; L < o; L++) {
966    let d = n(t[L], t[L + 1]);
967    if (e) {
968      const l = Array.isArray(e) ? e[L] || Ne : e;
969      d = M2(l, d);
970    }
971    r.push(d);
972  }
973  return r;
974}
975function N5(t, e, { clamp: s = !0, ease: r, mixer: n } = {}) {
976  const o = t.length;
977  if (Xt(o === e.length), o === 1)
978    return () => e[0];
979  if (o === 2 && e[0] === e[1])
980    return () => e[1];
981  const L = t[0] === t[1];
982  t[0] > t[o - 1] && (t = [...t].reverse(), e = [...e].reverse());
983  const d = Fr(e, r, n), l = d.length, g = (f) => {
984    if (L && f < t[0])
985      return e[0];
986    let p = 0;
987    if (l > 1)
988      for (; p < t.length - 2 && !(f < t[p + 1]); p++)
989        ;
990    const M = /* @__PURE__ */ vt(t[p], t[p + 1], f);
991    return d[p](M);
992  };
993  return s ? (f) => g(i1(t[0], t[o - 1], f)) : g;
994}
995function Er(t, e) {
996  const s = t[t.length - 1];
997  for (let r = 1; r <= e; r++) {
998    const n = /* @__PURE__ */ vt(0, e, r);
999    t.push(se(s, 1, n));
1000  }
1001}
1002function Ss(t) {
1003  const e = [0];
1004  return Er(e, t.length - 1), e;
1005}
1006function Rr(t, e) {
1007  return t.map((s) => s * e);
1008}
1009function Dr(t, e) {
1010  return t.map(() => e || fs).splice(0, t.length - 1);
1011}
1012function qt({ duration: t = 300, keyframes: e, times: s, ease: r = "easeInOut" }) {
1013  const n = K9(r) ? r.map(M0) : M0(r), o = {
1014    done: !1,
1015    value: e[0]
1016  }, L = Rr(
1017    // Only use the provided offsets if they're the correct length
1018    // TODO Maybe we should warn here if there's a length mismatch
1019    s && s.length === e.length ? s : Ss(e),
1020    t
1021  ), d = N5(L, e, {
1022    ease: Array.isArray(n) ? n : Dr(e, n)
1023  });
1024  return {
1025    calculatedDuration: t,
1026    next: (l) => (o.value = d(l), o.done = l >= t, o)
1027  };
1028}
1029const zr = (t) => t !== null;
1030function I5(t, { repeat: e, repeatType: s = "loop" }, r, n = 1) {
1031  const o = t.filter(zr), d = n < 0 || e && s !== "loop" && e % 2 === 1 ? 0 : o.length - 1;
1032  return !d || r === void 0 ? o[d] : r;
1033}
1034const jr = {
1035  decay: k4,
1036  inertia: k4,
1037  tween: qt,
1038  keyframes: qt,
1039  spring: o3
1040};
1041function Bs(t) {
1042  typeof t.type == "string" && (t.type = jr[t.type]);
1043}
1044class P5 {
1045  constructor() {
1046    this.updateFinished();
1047  }
1048  get finished() {
1049    return this._finished;
1050  }
1051  updateFinished() {
1052    this._finished = new Promise((e) => {
1053      this.resolve = e;
1054    });
1055  }
1056  notifyFinished() {
1057    this.resolve();
1058  }
1059  /**
1060   * Allows the animation to be awaited.
1061   *
1062   * @deprecated Use `finished` instead.
1063   */
1064  then(e, s) {
1065    return this.finished.then(e, s);
1066  }
1067}
1068const Or = (t) => t / 100;
1069class S3 extends P5 {
1070  constructor(e) {
1071    super(), this.state = "idle", this.startTime = null, this.isStopped = !1, this.currentTime = 0, this.holdTime = null, this.playbackSpeed = 1, this.stop = () => {
1072      const { motionValue: s } = this.options;
1073      s && s.updatedAt !== Ae.now() && this.tick(Ae.now()), this.isStopped = !0, this.state !== "idle" && (this.teardown(), this.options.onStop?.());
1074    }, this.options = e, this.initAnimation(), this.play(), e.autoplay === !1 && this.pause();
1075  }
1076  initAnimation() {
1077    const { options: e } = this;
1078    Bs(e);
1079    const { type: s = qt, repeat: r = 0, repeatDelay: n = 0, repeatType: o, velocity: L = 0 } = e;
1080    let { keyframes: d } = e;
1081    const l = s || qt;
1082    l !== qt && typeof d[0] != "number" && (this.mixKeyframes = M2(Or, ys(d[0], d[1])), d = [0, 100]);
1083    const g = l({ ...e, keyframes: d });
1084    o === "mirror" && (this.mirroredGenerator = l({
1085      ...e,
1086      keyframes: [...d].reverse(),
1087      velocity: -L
1088    })), g.calculatedDuration === null && (g.calculatedDuration = A5(g));
1089    const { calculatedDuration: f } = g;
1090    this.calculatedDuration = f, this.resolvedDuration = f + n, this.totalDuration = this.resolvedDuration * (r + 1) - n, this.generator = g;
1091  }
1092  updateTime(e) {
1093    const s = Math.round(e - this.startTime) * this.playbackSpeed;
1094    this.holdTime !== null ? this.currentTime = this.holdTime : this.currentTime = s;
1095  }
1096  tick(e, s = !1) {
1097    const { generator: r, totalDuration: n, mixKeyframes: o, mirroredGenerator: L, resolvedDuration: d, calculatedDuration: l } = this;
1098    if (this.startTime === null)
1099      return r.next(0);
1100    const { delay: g = 0, keyframes: f, repeat: p, repeatType: M, repeatDelay: u, type: h, onUpdate: x, finalKeyframe: _ } = this.options;
1101    this.speed > 0 ? this.startTime = Math.min(this.startTime, e) : this.speed < 0 && (this.startTime = Math.min(e - n / this.speed, this.startTime)), s ? this.currentTime = e : this.updateTime(e);
1102    const v = this.currentTime - g * (this.playbackSpeed >= 0 ? 1 : -1), y = this.playbackSpeed >= 0 ? v < 0 : v > n;
1103    this.currentTime = Math.max(v, 0), this.state === "finished" && this.holdTime === null && (this.currentTime = n);
1104    let b = this.currentTime, S = r;
1105    if (p) {
1106      const w = Math.min(this.currentTime, n) / d;
1107      let P = Math.floor(w), z = w % 1;
1108      !z && w >= 1 && (z = 1), z === 1 && P--, P = Math.min(P, p + 1), !!(P % 2) && (M === "reverse" ? (z = 1 - z, u && (z -= u / d)) : M === "mirror" && (S = L)), b = i1(0, 1, z) * d;
1109    }
1110    const k = y ? { done: !1, value: f[0] } : S.next(b);
1111    o && (k.value = o(k.value));
1112    let { done: A } = k;
1113    !y && l !== null && (A = this.playbackSpeed >= 0 ? this.currentTime >= n : this.currentTime <= 0);
1114    const I = this.holdTime === null && (this.state === "finished" || this.state === "running" && A);
1115    return I && h !== k4 && (k.value = I5(f, this.options, _, this.speed)), x && x(k.value), I && this.finish(), k;
1116  }
1117  /**
1118   * Allows the returned animation to be awaited or promise-chained. Currently
1119   * resolves when the animation finishes at all but in a future update could/should
1120   * reject if its cancels.
1121   */
1122  then(e, s) {
1123    return this.finished.then(e, s);
1124  }
1125  get duration() {
1126    return /* @__PURE__ */ Oe(this.calculatedDuration);
1127  }
1128  get iterationDuration() {
1129    const { delay: e = 0 } = this.options || {};
1130    return this.duration + /* @__PURE__ */ Oe(e);
1131  }
1132  get time() {
1133    return /* @__PURE__ */ Oe(this.currentTime);
1134  }
1135  set time(e) {
1136    e = /* @__PURE__ */ t1(e), this.currentTime = e, this.startTime === null || this.holdTime !== null || this.playbackSpeed === 0 ? this.holdTime = e : this.driver && (this.startTime = this.driver.now() - e / this.playbackSpeed), this.driver?.start(!1);
1137  }
1138  get speed() {
1139    return this.playbackSpeed;
1140  }
1141  set speed(e) {
1142    this.updateTime(Ae.now());
1143    const s = this.playbackSpeed !== e;
1144    this.playbackSpeed = e, s && (this.time = /* @__PURE__ */ Oe(this.currentTime));
1145  }
1146  play() {
1147    if (this.isStopped)
1148      return;
1149    const { driver: e = Tr, startTime: s } = this.options;
1150    this.driver || (this.driver = e((n) => this.tick(n))), this.options.onPlay?.();
1151    const r = this.driver.now();
1152    this.state === "finished" ? (this.updateFinished(), this.startTime = r) : this.holdTime !== null ? this.startTime = r - this.holdTime : this.startTime || (this.startTime = s ?? r), this.state === "finished" && this.speed < 0 && (this.startTime += this.calculatedDuration), this.holdTime = null, this.state = "running", this.driver.start();
1153  }
1154  pause() {
1155    this.state = "paused", this.updateTime(Ae.now()), this.holdTime = this.currentTime;
1156  }
1157  complete() {
1158    this.state !== "running" && this.play(), this.state = "finished", this.holdTime = null;
1159  }
1160  finish() {
1161    this.notifyFinished(), this.teardown(), this.state = "finished", this.options.onComplete?.();
1162  }
1163  cancel() {
1164    this.holdTime = null, this.startTime = 0, this.tick(0), this.teardown(), this.options.onCancel?.();
1165  }
1166  teardown() {
1167    this.state = "idle", this.stopDriver(), this.startTime = this.holdTime = null;
1168  }
1169  stopDriver() {
1170    this.driver && (this.driver.stop(), this.driver = void 0);
1171  }
1172  sample(e) {
1173    return this.startTime = 0, this.tick(e, !0);
1174  }
1175  attachTimeline(e) {
1176    return this.options.allowFlatten && (this.options.type = "keyframes", this.options.ease = "linear", this.initAnimation()), this.driver?.stop(), e.observe(this);
1177  }
1178}
1179function Vr(t) {
1180  for (let e = 1; e < t.length; e++)
1181    t[e] ?? (t[e] = t[e - 1]);
1182}
1183const j1 = (t) => t * 180 / Math.PI, A4 = (t) => {
1184  const e = j1(Math.atan2(t[1], t[0]));
1185  return N4(e);
1186}, Hr = {
1187  x: 4,
1188  y: 5,
1189  translateX: 4,
1190  translateY: 5,
1191  scaleX: 0,
1192  scaleY: 3,
1193  scale: (t) => (Math.abs(t[0]) + Math.abs(t[3])) / 2,
1194  rotate: A4,
1195  rotateZ: A4,
1196  skewX: (t) => j1(Math.atan(t[1])),
1197  skewY: (t) => j1(Math.atan(t[2])),
1198  skew: (t) => (Math.abs(t[1]) + Math.abs(t[2])) / 2
1199}, N4 = (t) => (t = t % 360, t < 0 && (t += 360), t), b0 = A4, v0 = (t) => Math.sqrt(t[0] * t[0] + t[1] * t[1]), y0 = (t) => Math.sqrt(t[4] * t[4] + t[5] * t[5]), Zr = {
1200  x: 12,
1201  y: 13,
1202  z: 14,
1203  translateX: 12,
1204  translateY: 13,
1205  translateZ: 14,
1206  scaleX: v0,
1207  scaleY: y0,
1208  scale: (t) => (v0(t) + y0(t)) / 2,
1209  rotateX: (t) => N4(j1(Math.atan2(t[6], t[5]))),
1210  rotateY: (t) => N4(j1(Math.atan2(-t[2], t[0]))),
1211  rotateZ: b0,
1212  rotate: b0,
1213  skewX: (t) => j1(Math.atan(t[4])),
1214  skewY: (t) => j1(Math.atan(t[1])),
1215  skew: (t) => (Math.abs(t[1]) + Math.abs(t[4])) / 2
1216};
1217function I4(t) {
1218  return t.includes("scale") ? 1 : 0;
1219}
1220function P4(t, e) {
1221  if (!t || t === "none")
1222    return I4(e);
1223  const s = t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);
1224  let r, n;
1225  if (s)
1226    r = Zr, n = s;
1227  else {
1228    const d = t.match(/^matrix\(([-\d.e\s,]+)\)$/u);
1229    r = Hr, n = d;
1230  }
1231  if (!n)
1232    return I4(e);
1233  const o = r[e], L = n[1].split(",").map($r);
1234  return typeof o == "function" ? o(L) : L[o];
1235}
1236const Wr = (t, e) => {
1237  const { transform: s = "none" } = getComputedStyle(t);
1238  return P4(s, e);
1239};
1240function $r(t) {
1241  return parseFloat(t.trim());
1242}
1243const kt = [
1244  "transformPerspective",
1245  "x",
1246  "y",
1247  "z",
1248  "translateX",
1249  "translateY",
1250  "translateZ",
1251  "scale",
1252  "scaleX",
1253  "scaleY",
1254  "rotate",
1255  "rotateX",
1256  "rotateY",
1257  "rotateZ",
1258  "skew",
1259  "skewX",
1260  "skewY"
1261], At = new Set(kt), w0 = (t) => t === Bt || t === R, qr = /* @__PURE__ */ new Set(["x", "y", "z"]), Ur = kt.filter((t) => !qr.has(t));
1262function Gr(t) {
1263  const e = [];
1264  return Ur.forEach((s) => {
1265    const r = t.getValue(s);
1266    r !== void 0 && (e.push([s, r.get()]), r.set(s.startsWith("scale") ? 1 : 0));
1267  }), e;
1268}
1269const q1 = {
1270  // Dimensions
1271  width: ({ x: t }, { paddingLeft: e = "0", paddingRight: s = "0" }) => t.max - t.min - parseFloat(e) - parseFloat(s),
1272  height: ({ y: t }, { paddingTop: e = "0", paddingBottom: s = "0" }) => t.max - t.min - parseFloat(e) - parseFloat(s),
1273  top: (t, { top: e }) => parseFloat(e),
1274  left: (t, { left: e }) => parseFloat(e),
1275  bottom: ({ y: t }, { top: e }) => parseFloat(e) + (t.max - t.min),
1276  right: ({ x: t }, { left: e }) => parseFloat(e) + (t.max - t.min),
1277  // Transform
1278  x: (t, { transform: e }) => P4(e, "x"),
1279  y: (t, { transform: e }) => P4(e, "y")
1280};
1281q1.translateX = q1.x;
1282q1.translateY = q1.y;
1283const U1 = /* @__PURE__ */ new Set();
1284let C4 = !1, F4 = !1, E4 = !1;
1285function ks() {
1286  if (F4) {
1287    const t = Array.from(U1).filter((r) => r.needsMeasurement), e = new Set(t.map((r) => r.element)), s = /* @__PURE__ */ new Map();
1288    e.forEach((r) => {
1289      const n = Gr(r);
1290      n.length && (s.set(r, n), r.render());
1291    }), t.forEach((r) => r.measureInitialState()), e.forEach((r) => {
1292      r.render();
1293      const n = s.get(r);
1294      n && n.forEach(([o, L]) => {
1295        r.getValue(o)?.set(L);
1296      });
1297    }), t.forEach((r) => r.measureEndState()), t.forEach((r) => {
1298      r.suspendedScrollY !== void 0 && window.scrollTo(0, r.suspendedScrollY);
1299    });
1300  }
1301  F4 = !1, C4 = !1, U1.forEach((t) => t.complete(E4)), U1.clear();
1302}
1303function As() {
1304  U1.forEach((t) => {
1305    t.readKeyframes(), t.needsMeasurement && (F4 = !0);
1306  });
1307}
1308function Jr() {
1309  E4 = !0, As(), ks(), E4 = !1;
1310}
1311class C5 {
1312  constructor(e, s, r, n, o, L = !1) {
1313    this.state = "pending", this.isAsync = !1, this.needsMeasurement = !1, this.unresolvedKeyframes = [...e], this.onComplete = s, this.name = r, this.motionValue = n, this.element = o, this.isAsync = L;
1314  }
1315  scheduleResolve() {
1316    this.state = "scheduled", this.isAsync ? (U1.add(this), C4 || (C4 = !0, $.read(As), $.resolveKeyframes(ks))) : (this.readKeyframes(), this.complete());
1317  }
1318  readKeyframes() {
1319    const { unresolvedKeyframes: e, name: s, element: r, motionValue: n } = this;
1320    if (e[0] === null) {
1321      const o = n?.get(), L = e[e.length - 1];
1322      if (o !== void 0)
1323        e[0] = o;
1324      else if (r && s) {
1325        const d = r.readValue(s, L);
1326        d != null && (e[0] = d);
1327      }
1328      e[0] === void 0 && (e[0] = L), n && o === void 0 && n.set(e[0]);
1329    }
1330    Vr(e);
1331  }
1332  setFinalKeyframe() {
1333  }
1334  measureInitialState() {
1335  }
1336  renderEndStyles() {
1337  }
1338  measureEndState() {
1339  }
1340  complete(e = !1) {
1341    this.state = "complete", this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, e), U1.delete(this);
1342  }
1343  cancel() {
1344    this.state === "scheduled" && (U1.delete(this), this.state = "pending");
1345  }
1346  resume() {
1347    this.state === "pending" && this.scheduleResolve();
1348  }
1349}
1350const Kr = (t) => t.startsWith("--");
1351function Yr(t, e, s) {
1352  Kr(e) ? t.style.setProperty(e, s) : t.style[e] = s;
1353}
1354const Ns = /* @__PURE__ */ x5(() => window.ScrollTimeline !== void 0), Xr = {};
1355function Qr(t, e) {
1356  const s = /* @__PURE__ */ x5(t);
1357  return () => Xr[e] ?? s();
1358}
1359const Is = /* @__PURE__ */ Qr(() => {
1360  try {
1361    document.createElement("div").animate({ opacity: 0 }, { easing: "linear(0, 1)" });
1362  } catch {
1363    return !1;
1364  }
1365  return !0;
1366}, "linearEasing"), Vt = ([t, e, s, r]) => `cubic-bezier(${t}, ${e}, ${s}, ${r})`, T0 = {
1367  linear: "linear",
1368  ease: "ease",
1369  easeIn: "ease-in",
1370  easeOut: "ease-out",
1371  easeInOut: "ease-in-out",
1372  circIn: /* @__PURE__ */ Vt([0, 0.65, 0.55, 1]),
1373  circOut: /* @__PURE__ */ Vt([0.55, 0, 1, 0.45]),
1374  backIn: /* @__PURE__ */ Vt([0.31, 0.01, 0.66, -0.59]),
1375  backOut: /* @__PURE__ */ Vt([0.33, 1.53, 0.69, 0.99])
1376};
1377function Ps(t, e) {
1378  if (t)
1379    return typeof t == "function" ? Is() ? ws(t, e) : "ease-out" : ps(t) ? Vt(t) : Array.isArray(t) ? t.map((s) => Ps(s, e) || T0.easeOut) : T0[t];
1380}
1381function en(t, e, s, { delay: r = 0, duration: n = 300, repeat: o = 0, repeatType: L = "loop", ease: d = "easeOut", times: l } = {}, g = void 0) {
1382  const f = {
1383    [e]: s
1384  };
1385  l && (f.offset = l);
1386  const p = Ps(d, n);
1387  Array.isArray(p) && (f.easing = p);
1388  const M = {
1389    delay: r,
1390    duration: n,
1391    easing: Array.isArray(p) ? "linear" : p,
1392    fill: "both",
1393    iterations: o + 1,
1394    direction: L === "reverse" ? "alternate" : "normal"
1395  };
1396  return g && (M.pseudoElement = g), t.animate(f, M);
1397}
1398function Cs(t) {
1399  return typeof t == "function" && "applyToOptions" in t;
1400}
1401function tn({ type: t, ...e }) {
1402  return Cs(t) && Is() ? t.applyToOptions(e) : (e.duration ?? (e.duration = 300), e.ease ?? (e.ease = "easeOut"), e);
1403}
1404class an extends P5 {
1405  constructor(e) {
1406    if (super(), this.finishedTime = null, this.isStopped = !1, !e)
1407      return;
1408    const { element: s, name: r, keyframes: n, pseudoElement: o, allowFlatten: L = !1, finalKeyframe: d, onComplete: l } = e;
1409    this.isPseudoElement = !!o, this.allowFlatten = L, this.options = e, Xt(typeof e.type != "string");
1410    const g = tn(e);
1411    this.animation = en(s, r, n, g, o), g.autoplay === !1 && this.animation.pause(), this.animation.onfinish = () => {
1412      if (this.finishedTime = this.time, !o) {
1413        const f = I5(n, this.options, d, this.speed);
1414        this.updateMotionValue ? this.updateMotionValue(f) : Yr(s, r, f), this.animation.cancel();
1415      }
1416      l?.(), this.notifyFinished();
1417    };
1418  }
1419  play() {
1420    this.isStopped || (this.animation.play(), this.state === "finished" && this.updateFinished());
1421  }
1422  pause() {
1423    this.animation.pause();
1424  }
1425  complete() {
1426    this.animation.finish?.();
1427  }
1428  cancel() {
1429    try {
1430      this.animation.cancel();
1431    } catch {
1432    }
1433  }
1434  stop() {
1435    if (this.isStopped)
1436      return;
1437    this.isStopped = !0;
1438    const { state: e } = this;
1439    e === "idle" || e === "finished" || (this.updateMotionValue ? this.updateMotionValue() : this.commitStyles(), this.isPseudoElement || this.cancel());
1440  }
1441  /**
1442   * WAAPI doesn't natively have any interruption capabilities.
1443   *
1444   * In this method, we commit styles back to the DOM before cancelling
1445   * the animation.
1446   *
1447   * This is designed to be overridden by NativeAnimationExtended, which
1448   * will create a renderless JS animation and sample it twice to calculate
1449   * its current value, "previous" value, and therefore allow
1450   * Motion to also correctly calculate velocity for any subsequent animation
1451   * while deferring the commit until the next animation frame.
1452   */
1453  commitStyles() {
1454    this.isPseudoElement || this.animation.commitStyles?.();
1455  }
1456  get duration() {
1457    const e = this.animation.effect?.getComputedTiming?.().duration || 0;
1458    return /* @__PURE__ */ Oe(Number(e));
1459  }
1460  get iterationDuration() {
1461    const { delay: e = 0 } = this.options || {};
1462    return this.duration + /* @__PURE__ */ Oe(e);
1463  }
1464  get time() {
1465    return /* @__PURE__ */ Oe(Number(this.animation.currentTime) || 0);
1466  }
1467  set time(e) {
1468    this.finishedTime = null, this.animation.currentTime = /* @__PURE__ */ t1(e);
1469  }
1470  /**
1471   * The playback speed of the animation.
1472   * 1 = normal speed, 2 = double speed, 0.5 = half speed.
1473   */
1474  get speed() {
1475    return this.animation.playbackRate;
1476  }
1477  set speed(e) {
1478    e < 0 && (this.finishedTime = null), this.animation.playbackRate = e;
1479  }
1480  get state() {
1481    return this.finishedTime !== null ? "finished" : this.animation.playState;
1482  }
1483  get startTime() {
1484    return Number(this.animation.startTime);
1485  }
1486  set startTime(e) {
1487    this.animation.startTime = e;
1488  }
1489  /**
1490   * Attaches a timeline to the animation, for instance the `ScrollTimeline`.
1491   */
1492  attachTimeline({ timeline: e, observe: s }) {
1493    return this.allowFlatten && this.animation.effect?.updateTiming({ easing: "linear" }), this.animation.onfinish = null, e && Ns() ? (this.animation.timeline = e, Ne) : s(this);
1494  }
1495}
1496const Fs = {
1497  anticipate: ls,
1498  backInOut: cs,
1499  circInOut: gs
1500};
1501function sn(t) {
1502  return t in Fs;
1503}
1504function rn(t) {
1505  typeof t.ease == "string" && sn(t.ease) && (t.ease = Fs[t.ease]);
1506}
1507const S0 = 10;
1508class nn extends an {
1509  constructor(e) {
1510    rn(e), Bs(e), super(e), e.startTime && (this.startTime = e.startTime), this.options = e;
1511  }
1512  /**
1513   * WAAPI doesn't natively have any interruption capabilities.
1514   *
1515   * Rather than read commited styles back out of the DOM, we can
1516   * create a renderless JS animation and sample it twice to calculate
1517   * its current value, "previous" value, and therefore allow
1518   * Motion to calculate velocity for any subsequent animation.
1519   */
1520  updateMotionValue(e) {
1521    const { motionValue: s, onUpdate: r, onComplete: n, element: o, ...L } = this.options;
1522    if (!s)
1523      return;
1524    if (e !== void 0) {
1525      s.set(e);
1526      return;
1527    }
1528    const d = new S3({
1529      ...L,
1530      autoplay: !1
1531    }), l = /* @__PURE__ */ t1(this.finishedTime ?? this.time);
1532    s.setWithVelocity(d.sample(l - S0).value, d.sample(l).value, S0), d.stop();
1533  }
1534}
1535const B0 = (t, e) => e === "zIndex" ? !1 : !!(typeof t == "number" || Array.isArray(t) || typeof t == "string" && // It's animatable if we have a string
1536(v1.test(t) || t === "0") && // And it contains numbers and/or colors
1537!t.startsWith("url("));
1538function on(t) {
1539  const e = t[0];
1540  if (t.length === 1)
1541    return !0;
1542  for (let s = 0; s < t.length; s++)
1543    if (t[s] !== e)
1544      return !0;
1545}
1546function Ln(t, e, s, r) {
1547  const n = t[0];
1548  if (n === null)
1549    return !1;
1550  if (e === "display" || e === "visibility")
1551    return !0;
1552  const o = t[t.length - 1], L = B0(n, e), d = B0(o, e);
1553  return !L || !d ? !1 : on(t) || (s === "spring" || Cs(s)) && r;
1554}
1555function R4(t) {
1556  t.duration = 0, t.type = "keyframes";
1557}
1558const cn = /* @__PURE__ */ new Set([
1559  "opacity",
1560  "clipPath",
1561  "filter",
1562  "transform"
1563  // TODO: Could be re-enabled now we have support for linear() easing
1564  // "background-color"
1565]), ln = /* @__PURE__ */ x5(() => Object.hasOwnProperty.call(Element.prototype, "animate"));
1566function dn(t) {
1567  const { motionValue: e, name: s, repeatDelay: r, repeatType: n, damping: o, type: L } = t;
1568  if (!(e?.owner?.current instanceof HTMLElement))
1569    return !1;
1570  const { onUpdate: l, transformTemplate: g } = e.owner.getProps();
1571  return ln() && s && cn.has(s) && (s !== "transform" || !g) && /**
1572   * If we're outputting values to onUpdate then we can't use WAAPI as there's
1573   * no way to read the value from WAAPI every frame.
1574   */
1575  !l && !r && n !== "mirror" && o !== 0 && L !== "inertia";
1576}
1577const gn = 40;
1578class fn extends P5 {
1579  constructor({ autoplay: e = !0, delay: s = 0, type: r = "keyframes", repeat: n = 0, repeatDelay: o = 0, repeatType: L = "loop", keyframes: d, name: l, motionValue: g, element: f, ...p }) {
1580    super(), this.stop = () => {
1581      this._animation && (this._animation.stop(), this.stopTimeline?.()), this.keyframeResolver?.cancel();
1582    }, this.createdAt = Ae.now();
1583    const M = {
1584      autoplay: e,
1585      delay: s,
1586      type: r,
1587      repeat: n,
1588      repeatDelay: o,
1589      repeatType: L,
1590      name: l,
1591      motionValue: g,
1592      element: f,
1593      ...p
1594    }, u = f?.KeyframeResolver || C5;
1595    this.keyframeResolver = new u(d, (h, x, _) => this.onKeyframesResolved(h, x, M, !_), l, g, f), this.keyframeResolver?.scheduleResolve();
1596  }
1597  onKeyframesResolved(e, s, r, n) {
1598    this.keyframeResolver = void 0;
1599    const { name: o, type: L, velocity: d, delay: l, isHandoff: g, onUpdate: f } = r;
1600    this.resolvedAt = Ae.now(), Ln(e, o, L, d) || ((u1.instantAnimations || !l) && f?.(I5(e, r, s)), e[0] = e[e.length - 1], R4(r), r.repeat = 0);
1601    const M = {
1602      startTime: n ? this.resolvedAt ? this.resolvedAt - this.createdAt > gn ? this.resolvedAt : this.createdAt : this.createdAt : void 0,
1603      finalKeyframe: s,
1604      ...r,
1605      keyframes: e
1606    }, u = !g && dn(M) ? new nn({
1607      ...M,
1608      element: M.motionValue.owner.current
1609    }) : new S3(M);
1610    u.finished.then(() => this.notifyFinished()).catch(Ne), this.pendingTimeline && (this.stopTimeline = u.attachTimeline(this.pendingTimeline), this.pendingTimeline = void 0), this._animation = u;
1611  }
1612  get finished() {
1613    return this._animation ? this.animation.finished : this._finished;
1614  }
1615  then(e, s) {
1616    return this.finished.finally(e).then(() => {
1617    });
1618  }
1619  get animation() {
1620    return this._animation || (this.keyframeResolver?.resume(), Jr()), this._animation;
1621  }
1622  get duration() {
1623    return this.animation.duration;
1624  }
1625  get iterationDuration() {
1626    return this.animation.iterationDuration;
1627  }
1628  get time() {
1629    return this.animation.time;
1630  }
1631  set time(e) {
1632    this.animation.time = e;
1633  }
1634  get speed() {
1635    return this.animation.speed;
1636  }
1637  get state() {
1638    return this.animation.state;
1639  }
1640  set speed(e) {
1641    this.animation.speed = e;
1642  }
1643  get startTime() {
1644    return this.animation.startTime;
1645  }
1646  attachTimeline(e) {
1647    return this._animation ? this.stopTimeline = this.animation.attachTimeline(e) : this.pendingTimeline = e, () => this.stop();
1648  }
1649  play() {
1650    this.animation.play();
1651  }
1652  pause() {
1653    this.animation.pause();
1654  }
1655  complete() {
1656    this.animation.complete();
1657  }
1658  cancel() {
1659    this._animation && this.animation.cancel(), this.keyframeResolver?.cancel();
1660  }
1661}
1662const pn = (
1663  // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words
1664  /^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u
1665);
1666function Mn(t) {
1667  const e = pn.exec(t);
1668  if (!e)
1669    return [,];
1670  const [, s, r, n] = e;
1671  return [`--${s ?? r}`, n];
1672}
1673function Es(t, e, s = 1) {
1674  const [r, n] = Mn(t);
1675  if (!r)
1676    return;
1677  const o = window.getComputedStyle(e).getPropertyValue(r);
1678  if (o) {
1679    const L = o.trim();
1680    return as(L) ? parseFloat(L) : L;
1681  }
1682  return T5(n) ? Es(n, e, s + 1) : n;
1683}
1684function F5(t, e) {
1685  return t?.[e] ?? t?.default ?? t;
1686}
1687const Rs = /* @__PURE__ */ new Set([
1688  "width",
1689  "height",
1690  "top",
1691  "left",
1692  "right",
1693  "bottom",
1694  ...kt
1695]), un = {
1696  test: (t) => t === "auto",
1697  parse: (t) => t
1698}, Ds = (t) => (e) => e.test(t), zs = [Bt, R, a1, m1, cr, Lr, un], k0 = (t) => zs.find(Ds(t));
1699function hn(t) {
1700  return typeof t == "number" ? t === 0 : t !== null ? t === "none" || t === "0" || is(t) : !0;
1701}
1702const mn = /* @__PURE__ */ new Set(["brightness", "contrast", "saturate", "opacity"]);
1703function xn(t) {
1704  const [e, s] = t.slice(0, -1).split("(");
1705  if (e === "drop-shadow")
1706    return t;
vendor: 13,856 bytes, lines 1707-2195
1707  const [r] = s.match(S5) || [];
1708  if (!r)
1709    return t;
1710  const n = s.replace(r, "");
1711  let o = mn.has(e) ? 1 : 0;
1712  return r !== s && (o *= 100), e + "(" + o + n + ")";
1713}
1714const _n = /\b([a-z-]*)\(.*?\)/gu, D4 = {
1715  ...v1,
1716  getAnimatableNone: (t) => {
1717    const e = t.match(_n);
1718    return e ? e.map(xn).join(" ") : t;
1719  }
1720}, A0 = {
1721  ...Bt,
1722  transform: Math.round
1723}, bn = {
1724  rotate: m1,
1725  rotateX: m1,
1726  rotateY: m1,
1727  rotateZ: m1,
1728  scale: S2,
1729  scaleX: S2,
1730  scaleY: S2,
1731  scaleZ: S2,
1732  skew: m1,
1733  skewX: m1,
1734  skewY: m1,
1735  distance: R,
1736  translateX: R,
1737  translateY: R,
1738  translateZ: R,
1739  x: R,
1740  y: R,
1741  z: R,
1742  perspective: R,
1743  transformPerspective: R,
1744  opacity: Qt,
1745  originX: u0,
1746  originY: u0,
1747  originZ: R
1748}, E5 = {
1749  // Border props
1750  borderWidth: R,
1751  borderTopWidth: R,
1752  borderRightWidth: R,
1753  borderBottomWidth: R,
1754  borderLeftWidth: R,
1755  borderRadius: R,
1756  radius: R,
1757  borderTopLeftRadius: R,
1758  borderTopRightRadius: R,
1759  borderBottomRightRadius: R,
1760  borderBottomLeftRadius: R,
1761  // Positioning props
1762  width: R,
1763  maxWidth: R,
1764  height: R,
1765  maxHeight: R,
1766  top: R,
1767  right: R,
1768  bottom: R,
1769  left: R,
1770  // Spacing props
1771  padding: R,
1772  paddingTop: R,
1773  paddingRight: R,
1774  paddingBottom: R,
1775  paddingLeft: R,
1776  margin: R,
1777  marginTop: R,
1778  marginRight: R,
1779  marginBottom: R,
1780  marginLeft: R,
1781  // Misc
1782  backgroundPositionX: R,
1783  backgroundPositionY: R,
1784  ...bn,
1785  zIndex: A0,
1786  // SVG
1787  fillOpacity: Qt,
1788  strokeOpacity: Qt,
1789  numOctaves: A0
1790}, vn = {
1791  ...E5,
1792  // Color props
1793  color: ge,
1794  backgroundColor: ge,
1795  outlineColor: ge,
1796  fill: ge,
1797  stroke: ge,
1798  // Border props
1799  borderColor: ge,
1800  borderTopColor: ge,
1801  borderRightColor: ge,
1802  borderBottomColor: ge,
1803  borderLeftColor: ge,
1804  filter: D4,
1805  WebkitFilter: D4
1806}, js = (t) => vn[t];
1807function Os(t, e) {
1808  let s = js(t);
1809  return s !== D4 && (s = v1), s.getAnimatableNone ? s.getAnimatableNone(e) : void 0;
1810}
1811const yn = /* @__PURE__ */ new Set(["auto", "none", "0"]);
1812function wn(t, e, s) {
1813  let r = 0, n;
1814  for (; r < t.length && !n; ) {
1815    const o = t[r];
1816    typeof o == "string" && !yn.has(o) && e2(o).values.length && (n = t[r]), r++;
1817  }
1818  if (n && s)
1819    for (const o of e)
1820      t[o] = Os(s, n);
1821}
1822class Tn extends C5 {
1823  constructor(e, s, r, n, o) {
1824    super(e, s, r, n, o, !0);
1825  }
1826  readKeyframes() {
1827    const { unresolvedKeyframes: e, element: s, name: r } = this;
1828    if (!s || !s.current)
1829      return;
1830    super.readKeyframes();
1831    for (let l = 0; l < e.length; l++) {
1832      let g = e[l];
1833      if (typeof g == "string" && (g = g.trim(), T5(g))) {
1834        const f = Es(g, s.current);
1835        f !== void 0 && (e[l] = f), l === e.length - 1 && (this.finalKeyframe = g);
1836      }
1837    }
1838    if (this.resolveNoneKeyframes(), !Rs.has(r) || e.length !== 2)
1839      return;
1840    const [n, o] = e, L = k0(n), d = k0(o);
1841    if (L !== d)
1842      if (w0(L) && w0(d))
1843        for (let l = 0; l < e.length; l++) {
1844          const g = e[l];
1845          typeof g == "string" && (e[l] = parseFloat(g));
1846        }
1847      else q1[r] && (this.needsMeasurement = !0);
1848  }
1849  resolveNoneKeyframes() {
1850    const { unresolvedKeyframes: e, name: s } = this, r = [];
1851    for (let n = 0; n < e.length; n++)
1852      (e[n] === null || hn(e[n])) && r.push(n);
1853    r.length && wn(e, r, s);
1854  }
1855  measureInitialState() {
1856    const { element: e, unresolvedKeyframes: s, name: r } = this;
1857    if (!e || !e.current)
1858      return;
1859    r === "height" && (this.suspendedScrollY = window.pageYOffset), this.measuredOrigin = q1[r](e.measureViewportBox(), window.getComputedStyle(e.current)), s[0] = this.measuredOrigin;
1860    const n = s[s.length - 1];
1861    n !== void 0 && e.getValue(r, n).jump(n, !1);
1862  }
1863  measureEndState() {
1864    const { element: e, name: s, unresolvedKeyframes: r } = this;
1865    if (!e || !e.current)
1866      return;
1867    const n = e.getValue(s);
1868    n && n.jump(this.measuredOrigin, !1);
1869    const o = r.length - 1, L = r[o];
1870    r[o] = q1[s](e.measureViewportBox(), window.getComputedStyle(e.current)), L !== null && this.finalKeyframe === void 0 && (this.finalKeyframe = L), this.removedTransforms?.length && this.removedTransforms.forEach(([d, l]) => {
1871      e.getValue(d).set(l);
1872    }), this.resolveNoneKeyframes();
1873  }
1874}
1875function R5(t, e, s) {
1876  if (t instanceof EventTarget)
1877    return [t];
1878  if (typeof t == "string") {
1879    const n = document.querySelectorAll(t);
1880    return n ? Array.from(n) : [];
1881  }
1882  return Array.from(t);
1883}
1884const Vs = (t, e) => e && typeof t == "number" ? e.transform(t) : t;
1885function D5(t) {
1886  return ss(t) && "offsetHeight" in t;
1887}
1888const N0 = 30, Sn = (t) => !isNaN(parseFloat(t)), Ut = {
1889  current: void 0
1890};
1891class Bn {
1892  /**
1893   * @param init - The initiating value
1894   * @param config - Optional configuration options
1895   *
1896   * -  `transformer`: A function to transform incoming values with.
1897   */
1898  constructor(e, s = {}) {
1899    this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (r) => {
1900      const n = Ae.now();
1901      if (this.updatedAt !== n && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(r), this.current !== this.prev && (this.events.change?.notify(this.current), this.dependents))
1902        for (const o of this.dependents)
1903          o.dirty();
1904    }, this.hasAnimated = !1, this.setCurrent(e), this.owner = s.owner;
1905  }
1906  setCurrent(e) {
1907    this.current = e, this.updatedAt = Ae.now(), this.canTrackVelocity === null && e !== void 0 && (this.canTrackVelocity = Sn(this.current));
1908  }
1909  setPrevFrameValue(e = this.current) {
1910    this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt;
1911  }
1912  /**
1913   * Adds a function that will be notified when the `MotionValue` is updated.
1914   *
1915   * It returns a function that, when called, will cancel the subscription.
1916   *
1917   * When calling `onChange` inside a React component, it should be wrapped with the
1918   * `useEffect` hook. As it returns an unsubscribe function, this should be returned
1919   * from the `useEffect` function to ensure you don't add duplicate subscribers..
1920   *
1921   * ```jsx
1922   * export const MyComponent = () => {
1923   *   const x = useMotionValue(0)
1924   *   const y = useMotionValue(0)
1925   *   const opacity = useMotionValue(1)
1926   *
1927   *   useEffect(() => {
1928   *     function updateOpacity() {
1929   *       const maxXY = Math.max(x.get(), y.get())
1930   *       const newOpacity = transform(maxXY, [0, 100], [1, 0])
1931   *       opacity.set(newOpacity)
1932   *     }
1933   *
1934   *     const unsubscribeX = x.on("change", updateOpacity)
1935   *     const unsubscribeY = y.on("change", updateOpacity)
1936   *
1937   *     return () => {
1938   *       unsubscribeX()
1939   *       unsubscribeY()
1940   *     }
1941   *   }, [])
1942   *
1943   *   return <motion.div style={{ x }} />
1944   * }
1945   * ```
1946   *
1947   * @param subscriber - A function that receives the latest value.
1948   * @returns A function that, when called, will cancel this subscription.
1949   *
1950   * @deprecated
1951   */
1952  onChange(e) {
1953    return this.on("change", e);
1954  }
1955  on(e, s) {
1956    this.events[e] || (this.events[e] = new _5());
1957    const r = this.events[e].add(s);
1958    return e === "change" ? () => {
1959      r(), $.read(() => {
1960        this.events.change.getSize() || this.stop();
1961      });
1962    } : r;
1963  }
1964  clearListeners() {
1965    for (const e in this.events)
1966      this.events[e].clear();
1967  }
1968  /**
1969   * Attaches a passive effect to the `MotionValue`.
1970   */
1971  attach(e, s) {
1972    this.passiveEffect = e, this.stopPassiveEffect = s;
1973  }
1974  /**
1975   * Sets the state of the `MotionValue`.
1976   *
1977   * @remarks
1978   *
1979   * ```jsx
1980   * const x = useMotionValue(0)
1981   * x.set(10)
1982   * ```
1983   *
1984   * @param latest - Latest value to set.
1985   * @param render - Whether to notify render subscribers. Defaults to `true`
1986   *
1987   * @public
1988   */
1989  set(e) {
1990    this.passiveEffect ? this.passiveEffect(e, this.updateAndNotify) : this.updateAndNotify(e);
1991  }
1992  setWithVelocity(e, s, r) {
1993    this.set(s), this.prev = void 0, this.prevFrameValue = e, this.prevUpdatedAt = this.updatedAt - r;
1994  }
1995  /**
1996   * Set the state of the `MotionValue`, stopping any active animations,
1997   * effects, and resets velocity to `0`.
1998   */
1999  jump(e, s = !0) {
2000    this.updateAndNotify(e), this.prev = e, this.prevUpdatedAt = this.prevFrameValue = void 0, s && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
2001  }
2002  dirty() {
2003    this.events.change?.notify(this.current);
2004  }
2005  addDependent(e) {
2006    this.dependents || (this.dependents = /* @__PURE__ */ new Set()), this.dependents.add(e);
2007  }
2008  removeDependent(e) {
2009    this.dependents && this.dependents.delete(e);
2010  }
2011  /**
2012   * Returns the latest state of `MotionValue`
2013   *
2014   * @returns - The latest state of `MotionValue`
2015   *
2016   * @public
2017   */
2018  get() {
2019    return Ut.current && Ut.current.push(this), this.current;
2020  }
2021  /**
2022   * @public
2023   */
2024  getPrevious() {
2025    return this.prev;
2026  }
2027  /**
2028   * Returns the latest velocity of `MotionValue`
2029   *
2030   * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
2031   *
2032   * @public
2033   */
2034  getVelocity() {
2035    const e = Ae.now();
2036    if (!this.canTrackVelocity || this.prevFrameValue === void 0 || e - this.updatedAt > N0)
2037      return 0;
2038    const s = Math.min(this.updatedAt - this.prevUpdatedAt, N0);
2039    return b5(parseFloat(this.current) - parseFloat(this.prevFrameValue), s);
2040  }
2041  /**
2042   * Registers a new animation to control this `MotionValue`. Only one
2043   * animation can drive a `MotionValue` at one time.
2044   *
2045   * ```jsx
2046   * value.start()
2047   * ```
2048   *
2049   * @param animation - A function that starts the provided animation
2050   */
2051  start(e) {
2052    return this.stop(), new Promise((s) => {
2053      this.hasAnimated = !0, this.animation = e(s), this.events.animationStart && this.events.animationStart.notify();
2054    }).then(() => {
2055      this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();
2056    });
2057  }
2058  /**
2059   * Stop the currently active animation.
2060   *
2061   * @public
2062   */
2063  stop() {
2064    this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();
2065  }
2066  /**
2067   * Returns `true` if this value is currently animating.
2068   *
2069   * @public
2070   */
2071  isAnimating() {
2072    return !!this.animation;
2073  }
2074  clearAnimation() {
2075    delete this.animation;
2076  }
2077  /**
2078   * Destroy and clean up subscribers to this `MotionValue`.
2079   *
2080   * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
2081   * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
2082   * created a `MotionValue` via the `motionValue` function.
2083   *
2084   * @public
2085   */
2086  destroy() {
2087    this.dependents?.clear(), this.events.destroy?.notify(), this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
2088  }
2089}
2090function Ue(t, e) {
2091  return new Bn(t, e);
2092}
2093const { schedule: z5 } = /* @__PURE__ */ Ms(queueMicrotask, !1), Ze = {
2094  x: !1,
2095  y: !1
2096};
2097function Hs() {
2098  return Ze.x || Ze.y;
2099}
2100function kn(t) {
2101  return t === "x" || t === "y" ? Ze[t] ? null : (Ze[t] = !0, () => {
2102    Ze[t] = !1;
2103  }) : Ze.x || Ze.y ? null : (Ze.x = Ze.y = !0, () => {
2104    Ze.x = Ze.y = !1;
2105  });
2106}
2107function Zs(t, e) {
2108  const s = R5(t), r = new AbortController(), n = {
2109    passive: !0,
2110    ...e,
2111    signal: r.signal
2112  };
2113  return [s, n, () => r.abort()];
2114}
2115function I0(t) {
2116  return !(t.pointerType === "touch" || Hs());
2117}
2118function An(t, e, s = {}) {
2119  const [r, n, o] = Zs(t, s), L = (d) => {
2120    if (!I0(d))
2121      return;
2122    const { target: l } = d, g = e(l, d);
2123    if (typeof g != "function" || !l)
2124      return;
2125    const f = (p) => {
2126      I0(p) && (g(p), l.removeEventListener("pointerleave", f));
2127    };
2128    l.addEventListener("pointerleave", f, n);
2129  };
2130  return r.forEach((d) => {
2131    d.addEventListener("pointerenter", L, n);
2132  }), o;
2133}
2134const Ws = (t, e) => e ? t === e ? !0 : Ws(t, e.parentElement) : !1, j5 = (t) => t.pointerType === "mouse" ? typeof t.button != "number" || t.button <= 0 : t.isPrimary !== !1, Nn = /* @__PURE__ */ new Set([
2135  "BUTTON",
2136  "INPUT",
2137  "SELECT",
2138  "TEXTAREA",
2139  "A"
2140]);
2141function In(t) {
2142  return Nn.has(t.tagName) || t.tabIndex !== -1;
2143}
2144const J2 = /* @__PURE__ */ new WeakSet();
2145function P0(t) {
2146  return (e) => {
2147    e.key === "Enter" && t(e);
2148  };
2149}
2150function Q3(t, e) {
2151  t.dispatchEvent(new PointerEvent("pointer" + e, { isPrimary: !0, bubbles: !0 }));
2152}
2153const Pn = (t, e) => {
2154  const s = t.currentTarget;
2155  if (!s)
2156    return;
2157  const r = P0(() => {
2158    if (J2.has(s))
2159      return;
2160    Q3(s, "down");
2161    const n = P0(() => {
2162      Q3(s, "up");
2163    }), o = () => Q3(s, "cancel");
2164    s.addEventListener("keyup", n, e), s.addEventListener("blur", o, e);
2165  });
2166  s.addEventListener("keydown", r, e), s.addEventListener("blur", () => s.removeEventListener("keydown", r), e);
2167};
2168function C0(t) {
2169  return j5(t) && !Hs();
2170}
2171function Cn(t, e, s = {}) {
2172  const [r, n, o] = Zs(t, s), L = (d) => {
2173    const l = d.currentTarget;
2174    if (!C0(d))
2175      return;
2176    J2.add(l);
2177    const g = e(l, d), f = (u, h) => {
2178      window.removeEventListener("pointerup", p), window.removeEventListener("pointercancel", M), J2.has(l) && J2.delete(l), C0(u) && typeof g == "function" && g(u, { success: h });
2179    }, p = (u) => {
2180      f(u, l === window || l === document || s.useGlobalTarget || Ws(l, u.target));
2181    }, M = (u) => {
2182      f(u, !1);
2183    };
2184    window.addEventListener("pointerup", p, n), window.addEventListener("pointercancel", M, n);
2185  };
2186  return r.forEach((d) => {
2187    (s.useGlobalTarget ? window : d).addEventListener("pointerdown", L, n), D5(d) && (d.addEventListener("focus", (g) => Pn(g, n)), !In(d) && !d.hasAttribute("tabindex") && (d.tabIndex = 0));
2188  }), o;
2189}
2190function O5(t) {
2191  return ss(t) && "ownerSVGElement" in t;
2192}
2193const K2 = /* @__PURE__ */ new WeakMap();
2194let Y2;
2195const $s = (t, e, s) => (r, n) => n && n[0] ? n[0][t + "Size"] : O5(r) && "getBBox" in r ? r.getBBox()[e] : r[s], Fn 
2195= /* @__PURE__ */ $s("inline", "width", "offsetWidth"), En = /* @__PURE__ */ $s("block", "height", "offsetHeight");
2196function Rn({ target: t, borderBoxSize: e }) {
2197  K2.get(t)?.forEach((s) => {
2198    s(t, {
2199      get width() {
2200        return Fn(t, e);
2201      },
2202      get height() {
2203        return En(t, e);
2204      }
2205    });
2206  });
2207}
2208function Dn(t) {
2209  t.forEach(Rn);
2210}
2211function zn() {
2212  typeof ResizeObserver > "u" || (Y2 = new ResizeObserver(Dn));
2213}
2214function jn(t, e) {
2215  Y2 || zn();
2216  const s = R5(t);
2217  return s.forEach((r) => {
2218    let n = K2.get(r);
2219    n || (n = /* @__PURE__ */ new Set(), K2.set(r, n)), n.add(e), Y2?.observe(r);
2220  }), () => {
2221    s.forEach((r) => {
2222      const n = K2.get(r);
2223      n?.delete(e), n?.size || Y2?.unobserve(r);
2224    });
2225  };
2226}
2227const X2 = /* @__PURE__ */ new Set();
2228let nt;
2229function On() {
2230  nt = () => {
2231    const t = {
2232      get width() {
2233        return window.innerWidth;
2234      },
2235      get height() {
2236        return window.innerHeight;
2237      }
2238    };
2239    X2.forEach((e) => e(t));
2240  }, window.addEventListener("resize", nt);
2241}
2242function Vn(t) {
2243  return X2.add(t), nt || On(), () => {
2244    X2.delete(t), !X2.size && typeof nt == "function" && (window.removeEventListener("resize", nt), nt = void 0);
2245  };
2246}
2247function Hn(t, e) {
2248  return typeof t == "function" ? Vn(t) : jn(t, e);
2249}
2250function qs(t, e) {
2251  let s;
2252  const r = () => {
2253    const { currentTime: n } = e, L = (n === null ? 0 : n.value) / 100;
2254    s !== L && t(L), s = L;
2255  };
2256  return $.preUpdate(r, !0), () => Je(r);
2257}
2258function Zn(t) {
2259  return O5(t) && t.tagName === "svg";
2260}
2261function Wn(...t) {
2262  const e = !Array.isArray(t[0]), s = e ? 0 : -1, r = t[0 + s], n = t[1 + s], o = t[2 + s], L = t[3 + s], d = N5(n, o, L);
2263  return e ? d(r) : d;
2264}
2265const xe = (t) => !!(t && t.getVelocity);
2266function $n(t, e, s) {
2267  const r = t.get();
2268  let n = null, o = r, L;
2269  const d = typeof r == "string" ? r.replace(/[\d.-]/g, "") : void 0, l = () => {
2270    n && (n.stop(), n = null);
2271  }, g = () => {
2272    l(), n = new S3({
2273      keyframes: [E0(t.get()), E0(o)],
2274      velocity: t.getVelocity(),
2275      type: "spring",
2276      restDelta: 1e-3,
2277      restSpeed: 0.01,
2278      ...s,
2279      onUpdate: L
2280    });
2281  };
2282  if (t.attach((f, p) => {
2283    o = f, L = (M) => p(F0(M, d)), $.postRender(g);
2284  }, l), xe(e)) {
2285    const f = e.on("change", (M) => t.set(F0(M, d))), p = t.on("destroy", f);
2286    return () => {
2287      f(), p();
2288    };
2289  }
2290  return l;
2291}
2292function F0(t, e) {
2293  return e ? t + e : t;
2294}
2295function E0(t) {
2296  return typeof t == "number" ? t : parseFloat(t);
2297}
2298const qn = [...zs, ge, v1], Un = (t) => qn.find(Ds(t)), m2 = r1({
2299  transformPagePoint: (t) => t,
2300  isStatic: !1,
2301  reducedMotion: "never"
2302});
2303function R0(t, e) {
2304  if (typeof t == "function")
2305    return t(e);
2306  t != null && (t.current = e);
2307}
2308function Gn(...t) {
2309  return (e) => {
2310    let s = !1;
2311    const r = t.map((n) => {
2312      const o = R0(n, e);
2313      return !s && typeof o == "function" && (s = !0), o;
2314    });
2315    if (s)
2316      return () => {
2317        for (let n = 0; n < r.length; n++) {
2318          const o = r[n];
2319          typeof o == "function" ? o() : R0(t[n], null);
2320        }
2321      };
2322  };
2323}
2324function Jn(...t) {
2325  return Ge(Gn(...t), t);
2326}
2327class Kn extends g5 {
2328  getSnapshotBeforeUpdate(e) {
2329    const s = this.props.childRef.current;
2330    if (s && e.isPresent && !this.props.isPresent) {
2331      const r = s.offsetParent, n = D5(r) && r.offsetWidth || 0, o = this.props.sizeRef.current;
2332      o.height = s.offsetHeight || 0, o.width = s.offsetWidth || 0, o.top = s.offsetTop, o.left = s.offsetLeft, o.right = n - o.width - o.left;
2333    }
2334    return null;
2335  }
2336  /**
2337   * Required with getSnapshotBeforeUpdate to stop React complaining.
2338   */
2339  componentDidUpdate() {
2340  }
2341  render() {
2342    return this.props.children;
2343  }
2344}
2345function Yn({ children: t, isPresent: e, anchorX: s, root: r }) {
2346  const n = y3(), o = H(null), L = H({
2347    width: 0,
2348    height: 0,
2349    top: 0,
2350    left: 0,
2351    right: 0
2352  }), { nonce: d } = oe(m2), l = Jn(o, t?.ref);
2353  return f2(() => {
2354    const { width: g, height: f, top: p, left: M, right: u } = L.current;
2355    if (e || !o.current || !g || !f)
2356      return;
2357    const h = s === "left" ? `left: ${M}` : `right: ${u}`;
2358    o.current.dataset.motionPopId = n;
2359    const x = document.createElement("style");
2360    d && (x.nonce = d);
2361    const _ = r ?? document.head;
2362    return _.appendChild(x), x.sheet && x.sheet.insertRule(`
2363          [data-motion-pop-id="${n}"] {
2364            position: absolute !important;
2365            width: ${g}px !important;
2366            height: ${f}px !important;
2367            ${h}px !important;
2368            top: ${p}px !important;
2369          }
2370        `), () => {
2371      _.contains(x) && _.removeChild(x);
2372    };
2373  }, [e]), i(Kn, { isPresent: e, childRef: o, sizeRef: L, children: g2(t, { ref: l }) });
2374}
2375const Xn = ({ children: t, initial: e, isPresent: s, onExitComplete: r, custom: n, presenceAffectsLayout: o, mode: L, anchorX: d, root: l }) => {
2376  const g = St(Qn), f = y3();
2377  let p = !0, M = M1(() => (p = !1, {
2378    id: f,
2379    initial: e,
2380    isPresent: s,
2381    custom: n,
2382    onExitComplete: (u) => {
2383      g.set(u, !0);
2384      for (const h of g.values())
2385        if (!h)
2386          return;
2387      r && r();
2388    },
2389    register: (u) => (g.set(u, !1), () => g.delete(u))
2390  }), [s, g, r]);
2391  return o && p && (M = { ...M }), M1(() => {
2392    g.forEach((u, h) => g.set(h, !1));
2393  }, [s]), q(() => {
2394    !s && !g.size && r && r();
2395  }, [s]), L === "popLayout" && (t = i(Yn, { isPresent: s, anchorX: d, root: l, children: t })), i(T3.Provider, { value: M, children: t });
2396};
2397function Qn() {
2398  return /* @__PURE__ */ new Map();
2399}
2400function Us(t = !0) {
2401  const e = oe(T3);
2402  if (e === null)
2403    return [!0, null];
2404  const { isPresent: s, onExitComplete: r, register: n } = e, o = y3();
2405  q(() => {
2406    if (t)
2407      return n(o);
2408  }, [t]);
2409  const L = Ge(() => t && r && r(o), [o, r, t]);
2410  return !s && r ? [!1, L] : [!0];
2411}
2412const B2 = (t) => t.key || "";
2413function D0(t) {
2414  const e = [];
2415  return d5.forEach(t, (s) => {
2416    v3(s) && e.push(s);
2417  }), e;
2418}
2419const pe = ({ children: t, custom: e, initial: s = !0, onExitComplete: r, presenceAffectsLayout: n = !0, mode: o = "sync", propagate: L = !1, anchorX: d = "left", root: l }) => {
2420  const [g, f] = Us(L), p = M1(() => D0(t), [t]), M = L && !g ? [] : p.map(B2), u = H(!0), h = H(p), x = St(() => /* @__PURE__ */ new Map()), [_, v] = j(p), [y, b] = j(p);
2421  w3(() => {
2422    u.current = !1, h.current = p;
2423    for (let A = 0; A < y.length; A++) {
2424      const I = B2(y[A]);
2425      M.includes(I) ? x.delete(I) : x.get(I) !== !0 && x.set(I, !1);
2426    }
2427  }, [y, M.length, M.join("-")]);
2428  const S = [];
2429  if (p !== _) {
2430    let A = [...p];
2431    for (let I = 0; I < y.length; I++) {
2432      const w = y[I], P = B2(w);
2433      M.includes(P) || (A.splice(I, 0, w), S.push(w));
2434    }
2435    return o === "wait" && S.length && (A = S), b(D0(A)), v(p), null;
2436  }
2437  const { forceRender: k } = oe(M5);
2438  return i(C, { children: y.map((A) => {
2439    const I = B2(A), w = L && !g ? !1 : p === y || M.includes(I), P = () => {
2440      if (x.has(I))
2441        x.set(I, !0);
2442      else
2443        return;
2444      let z = !0;
2445      x.forEach((V) => {
2446        V || (z = !1);
2447      }), z && (k?.(), b(h.current), L && f?.(), r && r());
2448    };
2449    return i(Xn, { isPresent: w, initial: !u.current || s ? void 0 : !1, custom: e, presenceAffectsLayout: n, mode: o, root: l, onExitComplete: w ? void 0 : P, anchorX: d, children: A }, I);
2450  }) });
2451}, Gs = r1({ strict: !1 }), z0 = {
2452  animation: [
2453    "animate",
2454    "variants",
2455    "whileHover",
2456    "whileTap",
2457    "exit",
2458    "whileInView",
2459    "whileFocus",
2460    "whileDrag"
2461  ],
2462  exit: ["exit"],
2463  drag: ["drag", "dragControls"],
2464  focus: ["whileFocus"],
2465  hover: ["whileHover", "onHoverStart", "onHoverEnd"],
2466  tap: ["whileTap", "onTap", "onTapStart", "onTapCancel"],
2467  pan: ["onPan", "onPanStart", "onPanSessionStart", "onPanEnd"],
2468  inView: ["whileInView", "onViewportEnter", "onViewportLeave"],
2469  layout: ["layout", "layoutId"]
2470}, yt = {};
2471for (const t in z0)
2472  yt[t] = {
2473    isEnabled: (e) => z0[t].some((s) => !!e[s])
2474  };
2475function eo(t) {
2476  for (const e in t)
2477    yt[e] = {
2478      ...yt[e],
2479      ...t[e]
2480    };
2481}
2482const to = /* @__PURE__ */ new Set([
2483  "animate",
2484  "exit",
2485  "variants",
2486  "initial",
2487  "style",
2488  "values",
2489  "variants",
2490  "transition",
2491  "transformTemplate",
2492  "custom",
2493  "inherit",
2494  "onBeforeLayoutMeasure",
2495  "onAnimationStart",
2496  "onAnimationComplete",
2497  "onUpdate",
2498  "onDragStart",
2499  "onDrag",
2500  "onDragEnd",
2501  "onMeasureDragConstraints",
2502  "onDirectionLock",
2503  "onDragTransitionEnd",
2504  "_dragX",
2505  "_dragY",
2506  "onHoverStart",
2507  "onHoverEnd",
2508  "onViewportEnter",
2509  "onViewportLeave",
2510  "globalTapTarget",
2511  "ignoreStrict",
2512  "viewport"
2513]);
2514function L3(t) {
2515  return t.startsWith("while") || t.startsWith("drag") && t !== "draggable" || t.startsWith("layout") || t.startsWith("onTap") || t.startsWith("onPan") || t.startsWith("onLayout") || to.has(t);
2516}
2517let Js = (t) => !L3(t);
2518function ao(t) {
2519  typeof t == "function" && (Js = (e) => e.startsWith("on") ? !L3(e) : t(e));
2520}
2521try {
2522  ao(require("@emotion/is-prop-valid").default);
2523} catch {
2524}
2525function so(t, e, s) {
2526  const r = {};
2527  for (const n in t)
2528    n === "values" && typeof t.values == "object" || (Js(n) || s === !0 && L3(n) || !e && !L3(n) || // If trying to use native HTML drag events, forward drag listeners
2529    t.draggable && n.startsWith("onDrag")) && (r[n] = t[n]);
2530  return r;
2531}
2532const B3 = /* @__PURE__ */ r1({});
2533function k3(t) {
2534  return t !== null && typeof t == "object" && typeof t.start == "function";
2535}
2536function t2(t) {
2537  return typeof t == "string" || Array.isArray(t);
2538}
2539const V5 = [
2540  "animate",
2541  "whileInView",
2542  "whileFocus",
2543  "whileHover",
2544  "whileTap",
2545  "whileDrag",
2546  "exit"
2547], H5 = ["initial", ...V5];
2548function A3(t) {
2549  return k3(t.animate) || H5.some((e) => t2(t[e]));
2550}
2551function Ks(t) {
2552  return !!(A3(t) || t.variants);
2553}
2554function io(t, e) {
2555  if (A3(t)) {
2556    const { initial: s, animate: r } = t;
2557    return {
2558      initial: s === !1 || t2(s) ? s : void 0,
2559      animate: t2(r) ? r : void 0
2560    };
2561  }
2562  return t.inherit !== !1 ? e : {};
2563}
2564function ro(t) {
2565  const { initial: e, animate: s } = io(t, oe(B3));
2566  return M1(() => ({ initial: e, animate: s }), [j0(e), j0(s)]);
2567}
2568function j0(t) {
2569  return Array.isArray(t) ? t.join(" ") : t;
2570}
2571const a2 = {};
2572function no(t) {
2573  for (const e in t)
2574    a2[e] = t[e], w5(e) && (a2[e].isCSSVariable = !0);
2575}
2576function Ys(t, { layout: e, layoutId: s }) {
2577  return At.has(t) || t.startsWith("origin") || (e || s !== void 0) && (!!a2[t] || t === "opacity");
2578}
2579const oo = {
2580  x: "translateX",
2581  y: "translateY",
2582  z: "translateZ",
2583  transformPerspective: "perspective"
2584}, Lo = kt.length;
2585function co(t, e, s) {
2586  let r = "", n = !0;
2587  for (let o = 0; o < Lo; o++) {
2588    const L = kt[o], d = t[L];
2589    if (d === void 0)
2590      continue;
2591    let l = !0;
2592    if (typeof d == "number" ? l = d === (L.startsWith("scale") ? 1 : 0) : l = parseFloat(d) === 0, !l || s) {
2593      const g = Vs(d, E5[L]);
2594      if (!l) {
2595        n = !1;
2596        const f = oo[L] || L;
2597        r += `${f}(${g}) `;
2598      }
2599      s && (e[L] = g);
2600    }
2601  }
2602  return r = r.trim(), s ? r = s(e, n ? "" : r) : n && (r = "none"), r;
2603}
2604function Z5(t, e, s) {
2605  const { style: r, vars: n, transformOrigin: o } = t;
2606  let L = !1, d = !1;
2607  for (const l in e) {
2608    const g = e[l];
2609    if (At.has(l)) {
2610      L = !0;
2611      continue;
2612    } else if (w5(l)) {
2613      n[l] = g;
2614      continue;
2615    } else {
2616      const f = Vs(g, E5[l]);
2617      l.startsWith("origin") ? (d = !0, o[l] = f) : r[l] = f;
2618    }
2619  }
2620  if (e.transform || (L || s ? r.transform = co(e, t.transform, s) : r.transform && (r.transform = "none")), d) {
2621    const { originX: l = "50%", originY: g = "50%", originZ: f = 0 } = o;
2622    r.transformOrigin = `${l} ${g} ${f}`;
2623  }
2624}
2625const W5 = () => ({
2626  style: {},
2627  transform: {},
2628  transformOrigin: {},
2629  vars: {}
2630});
2631function Xs(t, e, s) {
2632  for (const r in e)
2633    !xe(e[r]) && !Ys(r, s) && (t[r] = e[r]);
2634}
2635function lo({ transformTemplate: t }, e) {
2636  return M1(() => {
2637    const s = W5();
2638    return Z5(s, e, t), Object.assign({}, s.vars, s.style);
2639  }, [e]);
2640}
2641function go(t, e) {
2642  const s = t.style || {}, r = {};
2643  return Xs(r, s, t), Object.assign(r, lo(t, e)), r;
2644}
2645function fo(t, e) {
2646  const s = {}, r = go(t, e);
2647  return t.drag && t.dragListener !== !1 && (s.draggable = !1, r.userSelect = r.WebkitUserSelect = r.WebkitTouchCallout = "none", r.touchAction = t.drag === !0 ? "none" : `pan-${t.drag === "x" ? "y" : "x"}
2647`), t.tabIndex === void 0 && (t.onTap || t.onTapStart || t.whileTap) && (s.tabIndex = 0), s.style = r, s;
2648}
2649const po = {
2650  offset: "stroke-dashoffset",
2651  array: "stroke-dasharray"
2652}, Mo = {
2653  offset: "strokeDashoffset",
2654  array: "strokeDasharray"
2655};
2656function uo(t, e, s = 1, r = 0, n = !0) {
2657  t.pathLength = 1;
2658  const o = n ? po : Mo;
2659  t[o.offset] = R.transform(-r);
2660  const L = R.transform(e), d = R.transform(s);
2661  t[o.array] = `${L} ${d}`;
2662}
2663function Qs(t, {
2664  attrX: e,
2665  attrY: s,
2666  attrScale: r,
2667  pathLength: n,
2668  pathSpacing: o = 1,
2669  pathOffset: L = 0,
2670  // This is object creation, which we try to avoid per-frame.
2671  ...d
2672}, l, g, f) {
2673  if (Z5(t, d, g), l) {
2674    t.style.viewBox && (t.attrs.viewBox = t.style.viewBox);
2675    return;
2676  }
2677  t.attrs = t.style, t.style = {};
2678  const { attrs: p, style: M } = t;
2679  p.transform && (M.transform = p.transform, delete p.transform), (M.transform || p.transformOrigin) && (M.transformOrigin = p.transformOrigin ?? "50% 50%", delete p.transformOrigin), M.transform && (M.transformBox = f?.transformBox ?? "fill-box", delete p.transformBox), e !== void 0 && (p.x = e), s !== void 0 && (p.y = s), r !== void 0 && (p.scale = r), n !== void 0 && uo(p, n, o, L, !1);
2680}
2681const e7 = () => ({
2682  ...W5(),
2683  attrs: {}
2684}), t7 = (t) => typeof t == "string" && t.toLowerCase() === "svg";
2685function ho(t, e, s, r) {
2686  const n = M1(() => {
2687    const o = e7();
2688    return Qs(o, e, t7(r), t.transformTemplate, t.style), {
2689      ...o.attrs,
2690      style: { ...o.style }
2691    };
2692  }, [e]);
2693  if (t.style) {
2694    const o = {};
2695    Xs(o, t.style, t), n.style = { ...o, ...n.style };
2696  }
2697  return n;
2698}
2699const mo = [
2700  "animate",
2701  "circle",
2702  "defs",
2703  "desc",
2704  "ellipse",
2705  "g",
2706  "image",
2707  "line",
2708  "filter",
2709  "marker",
2710  "mask",
2711  "metadata",
2712  "path",
2713  "pattern",
2714  "polygon",
2715  "polyline",
2716  "rect",
2717  "stop",
2718  "switch",
2719  "symbol",
2720  "svg",
2721  "text",
2722  "tspan",
2723  "use",
2724  "view"
2725];
2726function $5(t) {
2727  return (
2728    /**
2729     * If it's not a string, it's a custom React component. Currently we only support
2730     * HTML custom React components.
2731     */
2732    typeof t != "string" || /**
2733     * If it contains a dash, the element is a custom HTML webcomponent.
2734     */
2735    t.includes("-") ? !1 : (
2736      /**
2737       * If it's in our list of lowercase SVG tags, it's an SVG component
2738       */
2739      !!(mo.indexOf(t) > -1 || /**
2740       * If it contains a capital letter, it's an SVG component
2741       */
2742      /[A-Z]/u.test(t))
2743    )
2744  );
2745}
2746function xo(t, e, s, { latestValues: r }, n, o = !1) {
2747  const d = ($5(t) ? ho : fo)(e, r, n, t), l = so(e, typeof t == "string", o), g = t !== b3 ? { ...l, ...d, ref: s } : {}, { children: f } = e, p = M1(() => xe(f) ? f.get() : f, [f]);
2748  return s1(t, {
2749    ...g,
2750    children: p
2751  });
2752}
2753function O0(t) {
2754  const e = [{}, {}];
2755  return t?.values.forEach((s, r) => {
2756    e[0][r] = s.get(), e[1][r] = s.getVelocity();
2757  }), e;
2758}
2759function q5(t, e, s, r) {
2760  if (typeof e == "function") {
2761    const [n, o] = O0(r);
2762    e = e(s !== void 0 ? s : t.custom, n, o);
2763  }
2764  if (typeof e == "string" && (e = t.variants && t.variants[e]), typeof e == "function") {
2765    const [n, o] = O0(r);
2766    e = e(s !== void 0 ? s : t.custom, n, o);
2767  }
2768  return e;
2769}
2770function Q2(t) {
2771  return xe(t) ? t.get() : t;
2772}
2773function _o({ scrapeMotionValuesFromProps: t, createRenderState: e }, s, r, n) {
2774  return {
2775    latestValues: bo(s, r, n, t),
2776    renderState: e()
2777  };
2778}
2779function bo(t, e, s, r) {
2780  const n = {}, o = r(t, {});
2781  for (const M in o)
2782    n[M] = Q2(o[M]);
2783  let { initial: L, animate: d } = t;
2784  const l = A3(t), g = Ks(t);
2785  e && g && !l && t.inherit !== !1 && (L === void 0 && (L = e.initial), d === void 0 && (d = e.animate));
2786  let f = s ? s.initial === !1 : !1;
2787  f = f || L === !1;
2788  const p = f ? d : L;
2789  if (p && typeof p != "boolean" && !k3(p)) {
2790    const M = Array.isArray(p) ? p : [p];
2791    for (let u = 0; u < M.length; u++) {
2792      const h = q5(t, M[u]);
2793      if (h) {
2794        const { transitionEnd: x, transition: _, ...v } = h;
2795        for (const y in v) {
2796          let b = v[y];
2797          if (Array.isArray(b)) {
2798            const S = f ? b.length - 1 : 0;
2799            b = b[S];
2800          }
2801          b !== null && (n[y] = b);
2802        }
2803        for (const y in x)
2804          n[y] = x[y];
2805      }
2806    }
2807  }
2808  return n;
2809}
2810const a7 = (t) => (e, s) => {
2811  const r = oe(B3), n = oe(T3), o = () => _o(t, e, r, n);
2812  return s ? o() : St(o);
2813};
2814function U5(t, e, s) {
2815  const { style: r }
2815 = t, n = {};
2816  for (const o in r)
2817    (xe(r[o]) || e.style && xe(e.style[o]) || Ys(o, t) || s?.getValue(o)?.liveStyle !== void 0) && (n[o] = r[o]);
2818  return n;
2819}
2820const vo = /* @__PURE__ */ a7({
2821  scrapeMotionValuesFromProps: U5,
2822  createRenderState: W5
2823});
2824function s7(t, e, s) {
2825  const r = U5(t, e, s);
2826  for (const n in t)
2827    if (xe(t[n]) || xe(e[n])) {
2828      const o = kt.indexOf(n) !== -1 ? "attr" + n.charAt(0).toUpperCase() + n.substring(1) : n;
2829      r[o] = t[n];
2830    }
2831  return r;
2832}
2833const yo = /* @__PURE__ */ a7({
2834  scrapeMotionValuesFromProps: s7,
2835  createRenderState: e7
2836}), wo = Symbol.for("motionComponentSymbol");
2837function ot(t) {
2838  return t && typeof t == "object" && Object.prototype.hasOwnProperty.call(t, "current");
2839}
2840function To(t, e, s) {
2841  return Ge(
2842    (r) => {
2843      r && t.onMount && t.onMount(r), e && (r ? e.mount(r) : e.unmount()), s && (typeof s == "function" ? s(r) : ot(s) && (s.current = r));
2844    },
2845    /**
2846     * Include externalRef in dependencies to ensure the callback updates
2847     * when the ref changes, allowing proper ref forwarding.
2848     */
2849    [e]
2850  );
2851}
2852const G5 = (t) => t.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), So = "framerAppearId", i7 = "data-" + G5(So), r7 = r1({});
2853function Bo(t, e, s, r, n) {
2854  const { visualElement: o } = oe(B3), L = oe(Gs), d = oe(T3), l = oe(m2).reducedMotion, g = H(null);
2855  r = r || L.renderer, !g.current && r && (g.current = r(t, {
2856    visualState: e,
2857    parent: o,
2858    props: s,
2859    presenceContext: d,
2860    blockInitialAnimation: d ? d.initial === !1 : !1,
2861    reducedMotionConfig: l
2862  }));
2863  const f = g.current, p = oe(r7);
2864  f && !f.projection && n && (f.type === "html" || f.type === "svg") && ko(g.current, s, n, p);
2865  const M = H(!1);
2866  f2(() => {
2867    f && M.current && f.update(s, d);
2868  });
2869  const u = s[i7], h = H(!!u && !window.MotionHandoffIsComplete?.(u) && window.MotionHasOptimisedAnimation?.(u));
2870  return w3(() => {
2871    f && (M.current = !0, window.MotionIsMounted = !0, f.updateFeatures(), f.scheduleRenderMicrotask(), h.current && f.animationState && f.animationState.animateChanges());
2872  }), q(() => {
2873    f && (!h.current && f.animationState && f.animationState.animateChanges(), h.current && (queueMicrotask(() => {
2874      window.MotionHandoffMarkAsComplete?.(u);
2875    }), h.current = !1), f.enteringChildren = void 0);
2876  }), f;
2877}
2878function ko(t, e, s, r) {
2879  const { layoutId: n, layout: o, drag: L, dragConstraints: d, layoutScroll: l, layoutRoot: g, layoutCrossfade: f } = e;
2880  t.projection = new s(t.latestValues, e["data-framer-portal-id"] ? void 0 : n7(t.parent)), t.projection.setOptions({
2881    layoutId: n,
2882    layout: o,
2883    alwaysMeasureLayout: !!L || d && ot(d),
2884    visualElement: t,
2885    /**
2886     * TODO: Update options in an effect. This could be tricky as it'll be too late
2887     * to update by the time layout animations run.
2888     * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,
2889     * ensuring it gets called if there's no potential layout animations.
2890     *
2891     */
2892    animationType: typeof o == "string" ? o : "both",
2893    initialPromotionConfig: r,
2894    crossfade: f,
2895    layoutScroll: l,
2896    layoutRoot: g
2897  });
2898}
2899function n7(t) {
2900  if (t)
2901    return t.options.allowProjection !== !1 ? t.projection : n7(t.parent);
2902}
2903function e4(t, { forwardMotionProps: e = !1 } = {}, s, r) {
2904  s && eo(s);
2905  const n = $5(t) ? yo : vo;
2906  function o(d, l) {
2907    let g;
2908    const f = {
2909      ...oe(m2),
2910      ...d,
2911      layoutId: Ao(d)
2912    }, { isStatic: p } = f, M = ro(d), u = n(d, p);
2913    if (!p && u5) {
2914      No();
2915      const h = Io(f);
2916      g = h.MeasureLayout, M.visualElement = Bo(t, u, f, r, h.ProjectionNode);
2917    }
2918    return c(B3.Provider, { value: M, children: [g && M.visualElement ? i(g, { visualElement: M.visualElement, ...f }) : null, xo(t, d, To(u, M.visualElement, l), u, p, e)] });
2919  }
2920  o.displayName = `motion.${typeof t == "string" ? t : `create(${t.displayName ?? t.name ?? ""})`}`;
2921  const L = Tt(o);
2922  return L[wo] = t, L;
2923}
2924function Ao({ layoutId: t }) {
2925  const e = oe(M5).id;
2926  return e && t !== void 0 ? e + "-" + t : t;
2927}
2928function No(t, e) {
2929  oe(Gs).strict;
2930}
2931function Io(t) {
2932  const { drag: e, layout: s } = yt;
2933  if (!e && !s)
2934    return {};
2935  const r = { ...e, ...s };
2936  return {
2937    MeasureLayout: e?.isEnabled(t) || s?.isEnabled(t) ? r.MeasureLayout : void 0,
2938    ProjectionNode: r.ProjectionNode
2939  };
2940}
2941function Po(t, e) {
2942  if (typeof Proxy > "u")
2943    return e4;
2944  const s = /* @__PURE__ */ new Map(), r = (o, L) => e4(o, L, t, e), n = (o, L) => r(o, L);
2945  return new Proxy(n, {
2946    /**
2947     * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
vendor: 6,066 bytes, lines 2948-3113
2948     * The prop name is passed through as `key` and we can use that to generate a `motion`
2949     * DOM component with that name.
2950     */
2951    get: (o, L) => L === "create" ? r : (s.has(L) || s.set(L, e4(L, void 0, t, e)), s.get(L))
2952  });
2953}
2954function o7({ top: t, left: e, right: s, bottom: r }) {
2955  return {
2956    x: { min: e, max: s },
2957    y: { min: t, max: r }
2958  };
2959}
2960function Co({ x: t, y: e }) {
2961  return { top: e.min, right: t.max, bottom: e.max, left: t.min };
2962}
2963function Fo(t, e) {
2964  if (!e)
2965    return t;
2966  const s = e({ x: t.left, y: t.top }), r = e({ x: t.right, y: t.bottom });
2967  return {
2968    top: s.y,
2969    left: s.x,
2970    bottom: r.y,
2971    right: r.x
2972  };
2973}
2974function t4(t) {
2975  return t === void 0 || t === 1;
2976}
2977function z4({ scale: t, scaleX: e, scaleY: s }) {
2978  return !t4(t) || !t4(e) || !t4(s);
2979}
2980function C1(t) {
2981  return z4(t) || L7(t) || t.z || t.rotate || t.rotateX || t.rotateY || t.skewX || t.skewY;
2982}
2983function L7(t) {
2984  return V0(t.x) || V0(t.y);
2985}
2986function V0(t) {
2987  return t && t !== "0%";
2988}
2989function c3(t, e, s) {
2990  const r = t - s, n = e * r;
2991  return s + n;
2992}
2993function H0(t, e, s, r, n) {
2994  return n !== void 0 && (t = c3(t, n, r)), c3(t, s, r) + e;
2995}
2996function j4(t, e = 0, s = 1, r, n) {
2997  t.min = H0(t.min, e, s, r, n), t.max = H0(t.max, e, s, r, n);
2998}
2999function c7(t, { x: e, y: s }) {
3000  j4(t.x, e.translate, e.scale, e.originPoint), j4(t.y, s.translate, s.scale, s.originPoint);
3001}
3002const Z0 = 0.999999999999, W0 = 1.0000000000001;
3003function Eo(t, e, s, r = !1) {
3004  const n = s.length;
3005  if (!n)
3006    return;
3007  e.x = e.y = 1;
3008  let o, L;
3009  for (let d = 0; d < n; d++) {
3010    o = s[d], L = o.projectionDelta;
3011    const { visualElement: l } = o.options;
3012    l && l.props.style && l.props.style.display === "contents" || (r && o.options.layoutScroll && o.scroll && o !== o.root && ct(t, {
3013      x: -o.scroll.offset.x,
3014      y: -o.scroll.offset.y
3015    }), L && (e.x *= L.x.scale, e.y *= L.y.scale, c7(t, L)), r && C1(o.latestValues) && ct(t, o.latestValues));
3016  }
3017  e.x < W0 && e.x > Z0 && (e.x = 1), e.y < W0 && e.y > Z0 && (e.y = 1);
3018}
3019function Lt(t, e) {
3020  t.min = t.min + e, t.max = t.max + e;
3021}
3022function $0(t, e, s, r, n = 0.5) {
3023  const o = se(t.min, t.max, n);
3024  j4(t, e, s, o, r);
3025}
3026function ct(t, e) {
3027  $0(t.x, e.x, e.scaleX, e.scale, e.originX), $0(t.y, e.y, e.scaleY, e.scale, e.originY);
3028}
3029function l7(t, e) {
3030  return o7(Fo(t.getBoundingClientRect(), e));
3031}
3032function Ro(t, e, s) {
3033  const r = l7(t, s), { scroll: n } = e;
3034  return n && (Lt(r.x, n.offset.x), Lt(r.y, n.offset.y)), r;
3035}
3036const q0 = () => ({
3037  translate: 0,
3038  scale: 1,
3039  origin: 0,
3040  originPoint: 0
3041}), lt = () => ({
3042  x: q0(),
3043  y: q0()
3044}), U0 = () => ({ min: 0, max: 0 }), ce = () => ({
3045  x: U0(),
3046  y: U0()
3047}), O4 = { current: null }, d7 = { current: !1 };
3048function Do() {
3049  if (d7.current = !0, !!u5)
3050    if (window.matchMedia) {
3051      const t = window.matchMedia("(prefers-reduced-motion)"), e = () => O4.current = t.matches;
3052      t.addEventListener("change", e), e();
3053    } else
3054      O4.current = !1;
3055}
3056const zo = /* @__PURE__ */ new WeakMap();
3057function jo(t, e, s) {
3058  for (const r in e) {
3059    const n = e[r], o = s[r];
3060    if (xe(n))
3061      t.addValue(r, n);
3062    else if (xe(o))
3063      t.addValue(r, Ue(n, { owner: t }));
3064    else if (o !== n)
3065      if (t.hasValue(r)) {
3066        const L = t.getValue(r);
3067        L.liveStyle === !0 ? L.jump(n) : L.hasAnimated || L.set(n);
3068      } else {
3069        const L = t.getStaticValue(r);
3070        t.addValue(r, Ue(L !== void 0 ? L : n, { owner: t }));
3071      }
3072  }
3073  for (const r in s)
3074    e[r] === void 0 && t.removeValue(r);
3075  return e;
3076}
3077const G0 = [
3078  "AnimationStart",
3079  "AnimationComplete",
3080  "Update",
3081  "BeforeLayoutMeasure",
3082  "LayoutMeasure",
3083  "LayoutAnimationStart",
3084  "LayoutAnimationComplete"
3085];
3086class Oo {
3087  /**
3088   * This method takes React props and returns found MotionValues. For example, HTML
3089   * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.
3090   *
3091   * This isn't an abstract method as it needs calling in the constructor, but it is
3092   * intended to be one.
3093   */
3094  scrapeMotionValuesFromProps(e, s, r) {
3095    return {};
3096  }
3097  constructor({ parent: e, props: s, presenceContext: r, reducedMotionConfig: n, blockInitialAnimation: o, visualState: L }, d = {}) {
3098    this.current = null, this.children = /* @__PURE__ */ new Set(), this.isVariantNode = !1, this.isControllingVariants = !1, this.shouldReduceMotion = null, this.values = /* @__PURE__ */ new Map(), this.KeyframeResolver = C5, this.features = {}, this.valueSubscriptions = /* @__PURE__ */ new Map(), this.prevMotionValues = {}, this.events = {}, this.propEventSubscriptions = {}, this.notifyUpdate = () => this.notify("Update", this.latestValues), this.render = () => {
3099      this.current && (this.triggerBuild(), this.renderInstance(this.current, this.renderState, this.props.style, this.projection));
3100    }, this.renderScheduledAt = 0, this.scheduleRender = () => {
3101      const M = Ae.now();
3102      this.renderScheduledAt < M && (this.renderScheduledAt = M, $.render(this.render, !1, !0));
3103    };
3104    const { latestValues: l, renderState: g } = L;
3105    this.latestValues = l, this.baseTarget = { ...l }, this.initialValues = s.initial ? { ...l } : {}, this.renderState = g, this.parent = e, this.props = s, this.presenceContext = r, this.depth = e ? e.depth + 1 : 0, this.reducedMotionConfig = n, this.options = d, this.blockInitialAnimation = !!o, this.isControllingVariants = A3(s), this.isVariantNode = Ks(s), this.isVariantNode && (this.variantChildren = /* @__PURE__ */ new Set()), this.manuallyAnimateOnMount = !!(e && e.current);
3106    const { willChange: f, ...p } = this.scrapeMotionValuesFromProps(s, {}, this);
3107    for (const M in p) {
3108      const u = p[M];
3109      l[M] !== void 0 && xe(u) && u.set(l[M]);
3110    }
3111  }
3112  mount(e) {
3113    this.current = e, zo.set(e, this), this.projection && !this.projection.instance && this.projection.mount(e), this.parent && this.isVariantNode && !this.isControllingVariants && (this.removeFromVariantTree = this.parent.addVariantChild(this)), this.values.forEac
vendor: 17,421 bytes, lines 3113-3636
3113h((s, r) => this.bindToMotionValue(r, s)), d7.current || Do(), this.shouldReduceMotion = this.reducedMotionConfig === "never" ? !1 : this.reducedMotionConfig === "always" ? !0 : O4.current, this.parent?.addChild(this), this.update(this.props, this.presenceContext);
3114  }
3115  unmount() {
3116    this.projection && this.projection.unmount(), Je(this.notifyUpdate), Je(this.render), this.valueSubscriptions.forEach((e) => e()), this.valueSubscriptions.clear(), this.removeFromVariantTree && this.removeFromVariantTree(), this.parent?.removeChild(this);
3117    for (const e in this.events)
3118      this.events[e].clear();
3119    for (const e in this.features) {
3120      const s = this.features[e];
3121      s && (s.unmount(), s.isMounted = !1);
3122    }
3123    this.current = null;
3124  }
3125  addChild(e) {
3126    this.children.add(e), this.enteringChildren ?? (this.enteringChildren = /* @__PURE__ */ new Set()), this.enteringChildren.add(e);
3127  }
3128  removeChild(e) {
3129    this.children.delete(e), this.enteringChildren && this.enteringChildren.delete(e);
3130  }
3131  bindToMotionValue(e, s) {
3132    this.valueSubscriptions.has(e) && this.valueSubscriptions.get(e)();
3133    const r = At.has(e);
3134    r && this.onBindTransform && this.onBindTransform();
3135    const n = s.on("change", (L) => {
3136      this.latestValues[e] = L, this.props.onUpdate && $.preRender(this.notifyUpdate), r && this.projection && (this.projection.isTransformDirty = !0), this.scheduleRender();
3137    });
3138    let o;
3139    window.MotionCheckAppearSync && (o = window.MotionCheckAppearSync(this, e, s)), this.valueSubscriptions.set(e, () => {
3140      n(), o && o(), s.owner && s.stop();
3141    });
3142  }
3143  sortNodePosition(e) {
3144    return !this.current || !this.sortInstanceNodePosition || this.type !== e.type ? 0 : this.sortInstanceNodePosition(this.current, e.current);
3145  }
3146  updateFeatures() {
3147    let e = "animation";
3148    for (e in yt) {
3149      const s = yt[e];
3150      if (!s)
3151        continue;
3152      const { isEnabled: r, Feature: n } = s;
3153      if (!this.features[e] && n && r(this.props) && (this.features[e] = new n(this)), this.features[e]) {
3154        const o = this.features[e];
3155        o.isMounted ? o.update() : (o.mount(), o.isMounted = !0);
3156      }
3157    }
3158  }
3159  triggerBuild() {
3160    this.build(this.renderState, this.latestValues, this.props);
3161  }
3162  /**
3163   * Measure the current viewport box with or without transforms.
3164   * Only measures axis-aligned boxes, rotate and skew must be manually
3165   * removed with a re-render to work.
3166   */
3167  measureViewportBox() {
3168    return this.current ? this.measureInstanceViewportBox(this.current, this.props) : ce();
3169  }
3170  getStaticValue(e) {
3171    return this.latestValues[e];
3172  }
3173  setStaticValue(e, s) {
3174    this.latestValues[e] = s;
3175  }
3176  /**
3177   * Update the provided props. Ensure any newly-added motion values are
3178   * added to our map, old ones removed, and listeners updated.
3179   */
3180  update(e, s) {
3181    (e.transformTemplate || this.props.transformTemplate) && this.scheduleRender(), this.prevProps = this.props, this.props = e, this.prevPresenceContext = this.presenceContext, this.presenceContext = s;
3182    for (let r = 0; r < G0.length; r++) {
3183      const n = G0[r];
3184      this.propEventSubscriptions[n] && (this.propEventSubscriptions[n](), delete this.propEventSubscriptions[n]);
3185      const o = "on" + n, L = e[o];
3186      L && (this.propEventSubscriptions[n] = this.on(n, L));
3187    }
3188    this.prevMotionValues = jo(this, this.scrapeMotionValuesFromProps(e, this.prevProps, this), this.prevMotionValues), this.handleChildMotionValue && this.handleChildMotionValue();
3189  }
3190  getProps() {
3191    return this.props;
3192  }
3193  /**
3194   * Returns the variant definition with a given name.
3195   */
3196  getVariant(e) {
3197    return this.props.variants ? this.props.variants[e] : void 0;
3198  }
3199  /**
3200   * Returns the defined default transition on this component.
3201   */
3202  getDefaultTransition() {
3203    return this.props.transition;
3204  }
3205  getTransformPagePoint() {
3206    return this.props.transformPagePoint;
3207  }
3208  getClosestVariantNode() {
3209    return this.isVariantNode ? this : this.parent ? this.parent.getClosestVariantNode() : void 0;
3210  }
3211  /**
3212   * Add a child visual element to our set of children.
3213   */
3214  addVariantChild(e) {
3215    const s = this.getClosestVariantNode();
3216    if (s)
3217      return s.variantChildren && s.variantChildren.add(e), () => s.variantChildren.delete(e);
3218  }
3219  /**
3220   * Add a motion value and bind it to this visual element.
3221   */
3222  addValue(e, s) {
3223    const r = this.values.get(e);
3224    s !== r && (r && this.removeValue(e), this.bindToMotionValue(e, s), this.values.set(e, s), this.latestValues[e] = s.get());
3225  }
3226  /**
3227   * Remove a motion value and unbind any active subscriptions.
3228   */
3229  removeValue(e) {
3230    this.values.delete(e);
3231    const s = this.valueSubscriptions.get(e);
3232    s && (s(), this.valueSubscriptions.delete(e)), delete this.latestValues[e], this.removeValueFromRenderState(e, this.renderState);
3233  }
3234  /**
3235   * Check whether we have a motion value for this key
3236   */
3237  hasValue(e) {
3238    return this.values.has(e);
3239  }
3240  getValue(e, s) {
3241    if (this.props.values && this.props.values[e])
3242      return this.props.values[e];
3243    let r = this.values.get(e);
3244    return r === void 0 && s !== void 0 && (r = Ue(s === null ? void 0 : s, { owner: this }), this.addValue(e, r)), r;
3245  }
3246  /**
3247   * If we're trying to animate to a previously unencountered value,
3248   * we need to check for it in our state and as a last resort read it
3249   * directly from the instance (which might have performance implications).
3250   */
3251  readValue(e, s) {
3252    let r = this.latestValues[e] !== void 0 || !this.current ? this.latestValues[e] : this.getBaseTargetFromProps(this.props, e) ?? this.readValueFromInstance(this.current, e, this.options);
3253    return r != null && (typeof r == "string" && (as(r) || is(r)) ? r = parseFloat(r) : !Un(r) && v1.test(s) && (r = Os(e, s)), this.setBaseTarget(e, xe(r) ? r.get() : r)), xe(r) ? r.get() : r;
3254  }
3255  /**
3256   * Set the base target to later animate back to. This is currently
3257   * only hydrated on creation and when we first read a value.
3258   */
3259  setBaseTarget(e, s) {
3260    this.baseTarget[e] = s;
3261  }
3262  /**
3263   * Find the base target for a value thats been removed from all animation
3264   * props.
3265   */
3266  getBaseTarget(e) {
3267    const { initial: s } = this.props;
3268    let r;
3269    if (typeof s == "string" || typeof s == "object") {
3270      const o = q5(this.props, s, this.presenceContext?.custom);
3271      o && (r = o[e]);
3272    }
3273    if (s && r !== void 0)
3274      return r;
3275    const n = this.getBaseTargetFromProps(this.props, e);
3276    return n !== void 0 && !xe(n) ? n : this.initialValues[e] !== void 0 && r === void 0 ? void 0 : this.baseTarget[e];
3277  }
3278  on(e, s) {
3279    return this.events[e] || (this.events[e] = new _5()), this.events[e].add(s);
3280  }
3281  notify(e, ...s) {
3282    this.events[e] && this.events[e].notify(...s);
3283  }
3284  scheduleRenderMicrotask() {
3285    z5.render(this.render);
3286  }
3287}
3288class g7 extends Oo {
3289  constructor() {
3290    super(...arguments), this.KeyframeResolver = Tn;
3291  }
3292  sortInstanceNodePosition(e, s) {
3293    return e.compareDocumentPosition(s) & 2 ? 1 : -1;
3294  }
3295  getBaseTargetFromProps(e, s) {
3296    return e.style ? e.style[s] : void 0;
3297  }
3298  removeValueFromRenderState(e, { vars: s, style: r }) {
3299    delete s[e], delete r[e];
3300  }
3301  handleChildMotionValue() {
3302    this.childSubscription && (this.childSubscription(), delete this.childSubscription);
3303    const { children: e } = this.props;
3304    xe(e) && (this.childSubscription = e.on("change", (s) => {
3305      this.current && (this.current.textContent = `${s}`);
3306    }));
3307  }
3308}
3309function f7(t, { style: e, vars: s }, r, n) {
3310  const o = t.style;
3311  let L;
3312  for (L in e)
3313    o[L] = e[L];
3314  n?.applyProjectionStyles(o, r);
3315  for (L in s)
3316    o.setProperty(L, s[L]);
3317}
3318function Vo(t) {
3319  return window.getComputedStyle(t);
3320}
3321class Ho extends g7 {
3322  constructor() {
3323    super(...arguments), this.type = "html", this.renderInstance = f7;
3324  }
3325  readValueFromInstance(e, s) {
3326    if (At.has(s))
3327      return this.projection?.isProjecting ? I4(s) : Wr(e, s);
3328    {
3329      const r = Vo(e), n = (w5(s) ? r.getPropertyValue(s) : r[s]) || 0;
3330      return typeof n == "string" ? n.trim() : n;
3331    }
3332  }
3333  measureInstanceViewportBox(e, { transformPagePoint: s }) {
3334    return l7(e, s);
3335  }
3336  build(e, s, r) {
3337    Z5(e, s, r.transformTemplate);
3338  }
3339  scrapeMotionValuesFromProps(e, s, r) {
3340    return U5(e, s, r);
3341  }
3342}
3343const p7 = /* @__PURE__ */ new Set([
3344  "baseFrequency",
3345  "diffuseConstant",
3346  "kernelMatrix",
3347  "kernelUnitLength",
3348  "keySplines",
3349  "keyTimes",
3350  "limitingConeAngle",
3351  "markerHeight",
3352  "markerWidth",
3353  "numOctaves",
3354  "targetX",
3355  "targetY",
3356  "surfaceScale",
3357  "specularConstant",
3358  "specularExponent",
3359  "stdDeviation",
3360  "tableValues",
3361  "viewBox",
3362  "gradientTransform",
3363  "pathLength",
3364  "startOffset",
3365  "textLength",
3366  "lengthAdjust"
3367]);
3368function Zo(t, e, s, r) {
3369  f7(t, e, void 0, r);
3370  for (const n in e.attrs)
3371    t.setAttribute(p7.has(n) ? n : G5(n), e.attrs[n]);
3372}
3373class Wo extends g7 {
3374  constructor() {
3375    super(...arguments), this.type = "svg", this.isSVGTag = !1, this.measureInstanceViewportBox = ce;
3376  }
3377  getBaseTargetFromProps(e, s) {
3378    return e[s];
3379  }
3380  readValueFromInstance(e, s) {
3381    if (At.has(s)) {
3382      const r = js(s);
3383      return r && r.default || 0;
3384    }
3385    return s = p7.has(s) ? s : G5(s), e.getAttribute(s);
3386  }
3387  scrapeMotionValuesFromProps(e, s, r) {
3388    return s7(e, s, r);
3389  }
3390  build(e, s, r) {
3391    Qs(e, s, this.isSVGTag, r.transformTemplate, r.style);
3392  }
3393  renderInstance(e, s, r, n) {
3394    Zo(e, s, r, n);
3395  }
3396  mount(e) {
3397    this.isSVGTag = t7(e.tagName), super.mount(e);
3398  }
3399}
3400const $o = (t, e) => $5(t) ? new Wo(e) : new Ho(e, {
3401  allowProjection: t !== b3
3402});
3403function pt(t, e, s) {
3404  const r = t.getProps();
3405  return q5(r, e, s !== void 0 ? s : r.custom, t);
3406}
3407const V4 = (t) => Array.isArray(t);
3408function qo(t, e, s) {
3409  t.hasValue(e) ? t.getValue(e).set(s) : t.addValue(e, Ue(s));
3410}
3411function Uo(t) {
3412  return V4(t) ? t[t.length - 1] || 0 : t;
3413}
3414function Go(t, e) {
3415  const s = pt(t, e);
3416  let { transitionEnd: r = {}, transition: n = {}, ...o } = s || {};
3417  o = { ...o, ...r };
3418  for (const L in o) {
3419    const d = Uo(o[L]);
3420    qo(t, L, d);
3421  }
3422}
3423function Jo(t) {
3424  return !!(xe(t) && t.add);
3425}
3426function H4(t, e) {
3427  const s = t.getValue("willChange");
3428  if (Jo(s))
3429    return s.add(e);
3430  if (!s && u1.WillChange) {
3431    const r = new u1.WillChange("auto");
3432    t.addValue("willChange", r), r.add(e);
3433  }
3434}
3435function M7(t) {
3436  return t.props[i7];
3437}
3438const Ko = (t) => t !== null;
3439function Yo(t, { repeat: e, repeatType: s = "loop" }, r) {
3440  const n = t.filter(Ko), o = e && s !== "loop" && e % 2 === 1 ? 0 : n.length - 1;
3441  return n[o];
3442}
3443const Xo = {
3444  type: "spring",
3445  stiffness: 500,
3446  damping: 25,
3447  restSpeed: 10
3448}, Qo = (t) => ({
3449  type: "spring",
3450  stiffness: 550,
3451  damping: t === 0 ? 2 * Math.sqrt(550) : 30,
3452  restSpeed: 10
3453}), e8 = {
3454  type: "keyframes",
3455  duration: 0.8
3456}, t8 = {
3457  type: "keyframes",
3458  ease: [0.25, 0.1, 0.35, 1],
3459  duration: 0.3
3460}, a8 = (t, { keyframes: e }) => e.length > 2 ? e8 : At.has(t) ? t.startsWith("scale") ? Qo(e[1]) : Xo : t8;
3461function s8({ when: t, delay: e, delayChildren: s, staggerChildren: r, staggerDirection: n, repeat: o, repeatType: L, repeatDelay: d, from: l, elapsed: g, ...f }) {
3462  return !!Object.keys(f).length;
3463}
3464const J5 = (t, e, s, r = {}, n, o) => (L) => {
3465  const d = F5(r, t) || {}, l = d.delay || r.delay || 0;
3466  let { elapsed: g = 0 } = r;
3467  g = g - /* @__PURE__ */ t1(l);
3468  const f = {
3469    keyframes: Array.isArray(s) ? s : [null, s],
3470    ease: "easeOut",
3471    velocity: e.getVelocity(),
3472    ...d,
3473    delay: -g,
3474    onUpdate: (M) => {
3475      e.set(M), d.onUpdate && d.onUpdate(M);
3476    },
3477    onComplete: () => {
3478      L(), d.onComplete && d.onComplete();
3479    },
3480    name: t,
3481    motionValue: e,
3482    element: o ? void 0 : n
3483  };
3484  s8(d) || Object.assign(f, a8(t, f)), f.duration && (f.duration = /* @__PURE__ */ t1(f.duration)), f.repeatDelay && (f.repeatDelay = /* @__PURE__ */ t1(f.repeatDelay)), f.from !== void 0 && (f.keyframes[0] = f.from);
3485  let p = !1;
3486  if ((f.type === !1 || f.duration === 0 && !f.repeatDelay) && (R4(f), f.delay === 0 && (p = !0)), (u1.instantAnimations || u1.skipAnimations) && (p = !0, R4(f), f.delay = 0), f.allowFlatten = !d.type && !d.ease, p && !o && e.get() !== void 0) {
3487    const M = Yo(f.keyframes, d);
3488    if (M !== void 0) {
3489      $.update(() => {
3490        f.onUpdate(M), f.onComplete();
3491      });
3492      return;
3493    }
3494  }
3495  return d.isSync ? new S3(f) : new fn(f);
3496};
3497function i8({ protectedKeys: t, needsAnimating: e }, s) {
3498  const r = t.hasOwnProperty(s) && e[s] !== !0;
3499  return e[s] = !1, r;
3500}
3501function u7(t, e, { delay: s = 0, transitionOverride: r, type: n } = {}) {
3502  let { transition: o = t.getDefaultTransition(), transitionEnd: L, ...d } = e;
3503  r && (o = r);
3504  const l = [], g = n && t.animationState && t.animationState.getState()[n];
3505  for (const f in d) {
3506    const p = t.getValue(f, t.latestValues[f] ?? null), M = d[f];
3507    if (M === void 0 || g && i8(g, f))
3508      continue;
3509    const u = {
3510      delay: s,
3511      ...F5(o || {}, f)
3512    }, h = p.get();
3513    if (h !== void 0 && !p.isAnimating && !Array.isArray(M) && M === h && !u.velocity)
3514      continue;
3515    let x = !1;
3516    if (window.MotionHandoffAnimation) {
3517      const v = M7(t);
3518      if (v) {
3519        const y = window.MotionHandoffAnimation(v, f, $);
3520        y !== null && (u.startTime = y, x = !0);
3521      }
3522    }
3523    H4(t, f), p.start(J5(f, p, M, t.shouldReduceMotion && Rs.has(f) ? { type: !1 } : u, t, x));
3524    const _ = p.animation;
3525    _ && l.push(_);
3526  }
3527  return L && Promise.all(l).then(() => {
3528    $.update(() => {
3529      L && Go(t, L);
3530    });
3531  }), l;
3532}
3533function h7(t, e, s, r = 0, n = 1) {
3534  const o = Array.from(t).sort((g, f) => g.sortNodePosition(f)).indexOf(e), L = t.size, d = (L - 1) * r;
3535  return typeof s == "function" ? s(o, L) : n === 1 ? o * r : d - o * r;
3536}
3537function Z4(t, e, s = {}) {
3538  const r = pt(t, e, s.type === "exit" ? t.presenceContext?.custom : void 0);
3539  let { transition: n = t.getDefaultTransition() || {} } = r || {};
3540  s.transitionOverride && (n = s.transitionOverride);
3541  const o = r ? () => Promise.all(u7(t, r, s)) : () => Promise.resolve(), L = t.variantChildren && t.variantChildren.size ? (l = 0) => {
3542    const { delayChildren: g = 0, staggerChildren: f, staggerDirection: p } = n;
3543    return r8(t, e, l, g, f, p, s);
3544  } : () => Promise.resolve(), { when: d } = n;
3545  if (d) {
3546    const [l, g] = d === "beforeChildren" ? [o, L] : [L, o];
3547    return l().then(() => g());
3548  } else
3549    return Promise.all([o(), L(s.delay)]);
3550}
3551function r8(t, e, s = 0, r = 0, n = 0, o = 1, L) {
3552  const d = [];
3553  for (const l of t.variantChildren)
3554    l.notify("AnimationStart", e), d.push(Z4(l, e, {
3555      ...L,
3556      delay: s + (typeof r == "function" ? 0 : r) + h7(t.variantChildren, l, r, n, o)
3557    }).then(() => l.notify("AnimationComplete", e)));
3558  return Promise.all(d);
3559}
3560function n8(t, e, s = {}) {
3561  t.notify("AnimationStart", e);
3562  let r;
3563  if (Array.isArray(e)) {
3564    const n = e.map((o) => Z4(t, o, s));
3565    r = Promise.all(n);
3566  } else if (typeof e == "string")
3567    r = Z4(t, e, s);
3568  else {
3569    const n = typeof e == "function" ? pt(t, e, s.custom) : e;
3570    r = Promise.all(u7(t, n, s));
3571  }
3572  return r.then(() => {
3573    t.notify("AnimationComplete", e);
3574  });
3575}
3576function m7(t, e) {
3577  if (!Array.isArray(e))
3578    return !1;
3579  const s = e.length;
3580  if (s !== t.length)
3581    return !1;
3582  for (let r = 0; r < s; r++)
3583    if (e[r] !== t[r])
3584      return !1;
3585  return !0;
3586}
3587const o8 = H5.length;
3588function x7(t) {
3589  if (!t)
3590    return;
3591  if (!t.isControllingVariants) {
3592    const s = t.parent ? x7(t.parent) || {} : {};
3593    return t.props.initial !== void 0 && (s.initial = t.props.initial), s;
3594  }
3595  const e = {};
3596  for (let s = 0; s < o8; s++) {
3597    const r = H5[s], n = t.props[r];
3598    (t2(n) || n === !1) && (e[r] = n);
3599  }
3600  return e;
3601}
3602const L8 = [...V5].reverse(), c8 = V5.length;
3603function l8(t) {
3604  return (e) => Promise.all(e.map(({ animation: s, options: r }) => n8(t, s, r)));
3605}
3606function d8(t) {
3607  let e = l8(t), s = J0(), r = !0;
3608  const n = (l) => (g, f) => {
3609    const p = pt(t, f, l === "exit" ? t.presenceContext?.custom : void 0);
3610    if (p) {
3611      const { transition: M, transitionEnd: u, ...h } = p;
3612      g = { ...g, ...h, ...u };
3613    }
3614    return g;
3615  };
3616  function o(l) {
3617    e = l(t);
3618  }
3619  function L(l) {
3620    const { props: g } = t, f = x7(t.parent) || {}, p = [], M = /* @__PURE__ */ new Set();
3621    let u = {}, h = 1 / 0;
3622    for (let _ = 0; _ < c8; _++) {
3623      const v = L8[_], y = s[v], b = g[v] !== void 0 ? g[v] : f[v], S = t2(b), k = v === l ? y.isActive : null;
3624      k === !1 && (h = _);
3625      let A = b === f[v] && b !== g[v] && S;
3626      if (A && r && t.manuallyAnimateOnMount && (A = !1), y.protectedKeys = { ...u }, // If it isn't active and hasn't *just* been set as inactive
3627      !y.isActive && k === null || // If we didn't and don't have any defined prop for this animation type
3628      !b && !y.prevProp || // Or if the prop doesn't define an animation
3629      k3(b) || typeof b == "boolean")
3630        continue;
3631      const I = g8(y.prevProp, b);
3632      let w = I || // If we're making this variant active, we want to always make it active
3633      v === l && y.isActive && !A && S || // If we removed a higher-priority variant (i is in reverse order)
3634      _ > h && S, P = !1;
3635      const z = Array.isArray(b) ? b : [b];
3636      let V = z.reduce(n(v), {});
3637      k === !1 && (V = {});
3638      const { prevResolvedValues: Se = {} } = y, Ie = {
3639        ...Se,
3640        ...V
3641      }, le = (ee) => {
3642        w = !0, M.has(ee) && (P = !0, M.delete(ee)), y.needsAnimating[ee] = !0;
3643        const ye = t.getValue(ee);
3644        ye && (ye.liveStyle = !1);
3645      };
3646      for (const ee in Ie) {
3647        const ye = V[ee], Ke = Se[ee];
3648        if (u.hasOwnProperty(ee))
3649          continue;
3650        let o1 = !1;
3651        V4(ye) && V4(Ke) ? o1 = !m7(ye, Ke) : o1 = ye !== Ke, o1 ? ye != null ? le(ee) : M.add(ee) : ye !== void 0 && M.has(ee) ? le(ee) : y.protectedKeys[ee] = !0;
3652      }
3653      y.prevProp = b, y.prevResolvedValues = V, y.isActive && (u = { ...u, ...V }), r && t.blockInitialAnimation && (w = !1);
3654      const Ee = A && I;
3655      w && (!Ee || P) && p.push(...z.map((ee) => {
3656        const ye = { type: v };
3657        if (typeof ee == "string" && r && !Ee && t.manuallyAnimateOnMount && t.parent) {
3658          const { parent: Ke } = t, o1 = pt(Ke, ee);
3659          if (Ke.enteringChildren && o1) {
3660            const { delayChildren: W3 } = o1.transition || {};
3661            ye.delay = h7(Ke.enteringChildren, t, W3);
3662          }
3663        }
3664        return {
3665          animation: ee,
3666          options: ye
3667        };
3668      }));
3669    }
3670    if (M.size) {
3671      const _ = {};
3672      if (typeof g.initial != "boolean") {
3673        const v = pt(t, Array.isArray(g.initial) ? g.initial[0] : g.initial);
3674        v && v.transition && (_.transition = v.transition);
3675      }
3676      M.forEach((v) => {
3677        const y = t.getBaseTarget(v), b = t.getValue(v);
3678        b && (b.liveStyle = !0), _[v] = y ?? null;
3679      }), p.push({ animation: _ });
3680    }
3681    let x = !!p.length;
3682    return r && (g.initial === !1 || g.initial === g.animate) && !t.manuallyAnimateOnMount && (x = !1), r = !1, x ? e(p) : Promise.resolve();
3683  }
3684  function d(l, g) {
3685    if (s[l].isActive === g)
3686      return Promise.resolve();
3687    t.variantChildren?.forEach((p) => p.animationState?.setActive(l, g)), s[l].isActive = g;
3688    const f = L(l);
3689    for (const p in s)
3690      s[p].protectedKeys = {};
3691    return f;
3692  }
3693  return {
3694    animateChanges: L,
3695    setActive: d,
3696    setAnimateFunction: o,
3697    getState: () => s,
3698    reset: () => {
3699      s = J0();
3700    }
3701  };
3702}
3703function g8(t, e) {
3704  return typeof e == "string" ? e !== t : Array.isArray(e) ? !m7(e, t) : !1;
3705}
3706function N1(t = !1) {
3707  return {
3708    isActive: t,
3709    protectedKeys: {},
3710    needsAnimating: {},
3711    prevResolvedValues: {}
3712  };
3713}
3714function J0() {
3715  return {
3716    animate: N1(!0),
3717    whileInView: N1(),
3718    whileHover: N1(),
3719    whileTap: N1(),
3720    whileDrag: N1(),
3721    whileFocus: N1(),
3722    exit: N1()
3723  };
3724}
3725class B1 {
3726  constructor(e) {
3727    this.isMounted = !1, this.node = e;
3728  }
3729  update() {
3730  }
3731}
3732class f8 extends B1 {
3733  /**
3734   * We dynamically generate the AnimationState manager as it contains a reference
3735   * to the underlying animation library. We only want to load that if we load this,
3736   * so people can optionally code split it out using the `m` component.
3737   */
3738  constructor(e) {
3739    super(e), e.animationState || (e.animationState = d8(e));
3740  }
3741  updateAnimationControlsSubscription() {
3742    const { animate: e } = this.node.getProps();
3743    k3(e) && (this.unmountControls = e.subscribe(this.node));
3744  }
3745  /**
3746   * Subscribe any provided AnimationControls to the component's VisualElement
3747   */
3748  mount() {
3749    this.updateAnimationControlsSubscription();
3750  }
3751  update() {
3752    const { animate: e } = this.node.getProps(), { animate: s } = this.node.prevProps || {};
3753    e !== s && this.updateAnimationControlsSubscription();
3754  }
3755  unmount() {
3756    this.node.animationState.reset(), this.unmountControls?.();
3757  }
3758}
3759let p8 = 0;
3760class M8 extends B1 {
3761  constructor() {
3762    super(...arguments), this.id = p8++;
3763  }
3764  update() {
3765    if (!this.node.presenceContext)
3766      return;
3767    const { isPresent: e, onExitComplete: s } = this.node.presenceContext, { isPresent: r } = this.node.prevPresenceContext || {};
3768    if (!this.node.animationState || e === r)
3769      return;
3770    const n = this.node.animationState.setActive("exit", !e);
3771    s && !e && n.then(() => {
3772      s(this.id);
3773    });
3774  }
3775  mount() {
3776    const { register: e, onExitComplete: s } = this.node.presenceContext || {};
vendor: 8,703 bytes, lines 3777-4011
3777    s && s(this.id), e && (this.unmount = e(this.id));
3778  }
3779  unmount() {
3780  }
3781}
3782const u8 = {
3783  animation: {
3784    Feature: f8
3785  },
3786  exit: {
3787    Feature: M8
3788  }
3789};
3790function s2(t, e, s, r = { passive: !0 }) {
3791  return t.addEventListener(e, s, r), () => t.removeEventListener(e, s);
3792}
3793function x2(t) {
3794  return {
3795    point: {
3796      x: t.pageX,
3797      y: t.pageY
3798    }
3799  };
3800}
3801const h8 = (t) => (e) => j5(e) && t(e, x2(e));
3802function Gt(t, e, s, r) {
3803  return s2(t, e, h8(s), r);
3804}
3805const _7 = 1e-4, m8 = 1 - _7, x8 = 1 + _7, b7 = 0.01, _8 = 0 - b7, b8 = 0 + b7;
3806function we(t) {
3807  return t.max - t.min;
3808}
3809function v8(t, e, s) {
3810  return Math.abs(t - e) <= s;
3811}
3812function K0(t, e, s, r = 0.5) {
3813  t.origin = r, t.originPoint = se(e.min, e.max, t.origin), t.scale = we(s) / we(e), t.translate = se(s.min, s.max, t.origin) - t.originPoint, (t.scale >= m8 && t.scale <= x8 || isNaN(t.scale)) && (t.scale = 1), (t.translate >= _8 && t.translate <= b8 || isNaN(t.translate)) && (t.translate = 0);
3814}
3815function Jt(t, e, s, r) {
3816  K0(t.x, e.x, s.x, r ? r.originX : void 0), K0(t.y, e.y, s.y, r ? r.originY : void 0);
3817}
3818function Y0(t, e, s) {
3819  t.min = s.min + e.min, t.max = t.min + we(e);
3820}
3821function y8(t, e, s) {
3822  Y0(t.x, e.x, s.x), Y0(t.y, e.y, s.y);
3823}
3824function X0(t, e, s) {
3825  t.min = e.min - s.min, t.max = t.min + we(e);
3826}
3827function Kt(t, e, s) {
3828  X0(t.x, e.x, s.x), X0(t.y, e.y, s.y);
3829}
3830function ze(t) {
3831  return [t("x"), t("y")];
3832}
3833const v7 = ({ current: t }) => t ? t.ownerDocument.defaultView : null, Q0 = (t, e) => Math.abs(t - e);
3834function w8(t, e) {
3835  const s = Q0(t.x, e.x), r = Q0(t.y, e.y);
3836  return Math.sqrt(s ** 2 + r ** 2);
3837}
3838class y7 {
3839  constructor(e, s, { transformPagePoint: r, contextWindow: n = window, dragSnapToOrigin: o = !1, distanceThreshold: L = 3 } = {}) {
3840    if (this.startEvent = null, this.lastMoveEvent = null, this.lastMoveEventInfo = null, this.handlers = {}, this.contextWindow = window, this.updatePoint = () => {
3841      if (!(this.lastMoveEvent && this.lastMoveEventInfo))
3842        return;
3843      const M = s4(this.lastMoveEventInfo, this.history), u = this.startEvent !== null, h = w8(M.offset, { x: 0, y: 0 }) >= this.distanceThreshold;
3844      if (!u && !h)
3845        return;
3846      const { point: x } = M, { timestamp: _ } = me;
3847      this.history.push({ ...x, timestamp: _ });
3848      const { onStart: v, onMove: y } = this.handlers;
3849      u || (v && v(this.lastMoveEvent, M), this.startEvent = this.lastMoveEvent), y && y(this.lastMoveEvent, M);
3850    }, this.handlePointerMove = (M, u) => {
3851      this.lastMoveEvent = M, this.lastMoveEventInfo = a4(u, this.transformPagePoint), $.update(this.updatePoint, !0);
3852    }, this.handlePointerUp = (M, u) => {
3853      this.end();
3854      const { onEnd: h, onSessionEnd: x, resumeAnimation: _ } = this.handlers;
3855      if (this.dragSnapToOrigin && _ && _(), !(this.lastMoveEvent && this.lastMoveEventInfo))
3856        return;
3857      const v = s4(M.type === "pointercancel" ? this.lastMoveEventInfo : a4(u, this.transformPagePoint), this.history);
3858      this.startEvent && h && h(M, v), x && x(M, v);
3859    }, !j5(e))
3860      return;
3861    this.dragSnapToOrigin = o, this.handlers = s, this.transformPagePoint = r, this.distanceThreshold = L, this.contextWindow = n || window;
3862    const d = x2(e), l = a4(d, this.transformPagePoint), { point: g } = l, { timestamp: f } = me;
3863    this.history = [{ ...g, timestamp: f }];
3864    const { onSessionStart: p } = s;
3865    p && p(e, s4(l, this.history)), this.removeListeners = M2(Gt(this.contextWindow, "pointermove", this.handlePointerMove), Gt(this.contextWindow, "pointerup", this.handlePointerUp), Gt(this.contextWindow, "pointercancel", this.handlePointerUp));
3866  }
3867  updateHandlers(e) {
3868    this.handlers = e;
3869  }
3870  end() {
3871    this.removeListeners && this.removeListeners(), Je(this.updatePoint);
3872  }
3873}
3874function a4(t, e) {
3875  return e ? { point: e(t.point) } : t;
3876}
3877function ea(t, e) {
3878  return { x: t.x - e.x, y: t.y - e.y };
3879}
3880function s4({ point: t }, e) {
3881  return {
3882    point: t,
3883    delta: ea(t, w7(e)),
3884    offset: ea(t, T8(e)),
3885    velocity: S8(e, 0.1)
3886  };
3887}
3888function T8(t) {
3889  return t[0];
3890}
3891function w7(t) {
3892  return t[t.length - 1];
3893}
3894function S8(t, e) {
3895  if (t.length < 2)
3896    return { x: 0, y: 0 };
3897  let s = t.length - 1, r = null;
3898  const n = w7(t);
3899  for (; s >= 0 && (r = t[s], !(n.timestamp - r.timestamp > /* @__PURE__ */ t1(e))); )
3900    s--;
3901  if (!r)
3902    return { x: 0, y: 0 };
3903  const o = /* @__PURE__ */ Oe(n.timestamp - r.timestamp);
3904  if (o === 0)
3905    return { x: 0, y: 0 };
3906  const L = {
3907    x: (n.x - r.x) / o,
3908    y: (n.y - r.y) / o
3909  };
3910  return L.x === 1 / 0 && (L.x = 0), L.y === 1 / 0 && (L.y = 0), L;
3911}
3912function B8(t, { min: e, max: s }, r) {
3913  return e !== void 0 && t < e ? t = r ? se(e, t, r.min) : Math.max(t, e) : s !== void 0 && t > s && (t = r ? se(s, t, r.max) : Math.min(t, s)), t;
3914}
3915function ta(t, e, s) {
3916  return {
3917    min: e !== void 0 ? t.min + e : void 0,
3918    max: s !== void 0 ? t.max + s - (t.max - t.min) : void 0
3919  };
3920}
3921function k8(t, { top: e, left: s, bottom: r, right: n }) {
3922  return {
3923    x: ta(t.x, s, n),
3924    y: ta(t.y, e, r)
3925  };
3926}
3927function aa(t, e) {
3928  let s = e.min - t.min, r = e.max - t.max;
3929  return e.max - e.min < t.max - t.min && ([s, r] = [r, s]), { min: s, max: r };
3930}
3931function A8(t, e) {
3932  return {
3933    x: aa(t.x, e.x),
3934    y: aa(t.y, e.y)
3935  };
3936}
3937function N8(t, e) {
3938  let s = 0.5;
3939  const r = we(t), n = we(e);
3940  return n > r ? s = /* @__PURE__ */ vt(e.min, e.max - r, t.min) : r > n && (s = /* @__PURE__ */ vt(t.min, t.max - n, e.min)), i1(0, 1, s);
3941}
3942function I8(t, e) {
3943  const s = {};
3944  return e.min !== void 0 && (s.min = e.min - t.min), e.max !== void 0 && (s.max = e.max - t.min), s;
3945}
3946const W4 = 0.35;
3947function P8(t = W4) {
3948  return t === !1 ? t = 0 : t === !0 && (t = W4), {
3949    x: sa(t, "left", "right"),
3950    y: sa(t, "top", "bottom")
3951  };
3952}
3953function sa(t, e, s) {
3954  return {
3955    min: ia(t, e),
3956    max: ia(t, s)
3957  };
3958}
3959function ia(t, e) {
3960  return typeof t == "number" ? t : t[e] || 0;
3961}
3962const C8 = /* @__PURE__ */ new WeakMap();
3963class F8 {
3964  constructor(e) {
3965    this.openDragLock = null, this.isDragging = !1, this.currentDirection = null, this.originPoint = { x: 0, y: 0 }, this.constraints = !1, this.hasMutatedConstraints = !1, this.elastic = ce(), this.latestPointerEvent = null, this.latestPanInfo = null, this.visualElement = e;
3966  }
3967  start(e, { snapToCursor: s = !1, distanceThreshold: r } = {}) {
3968    const { presenceContext: n } = this.visualElement;
3969    if (n && n.isPresent === !1)
3970      return;
3971    const o = (p) => {
3972      const { dragSnapToOrigin: M } = this.getProps();
3973      M ? this.pauseAnimation() : this.stopAnimation(), s && this.snapToCursor(x2(p).point);
3974    }, L = (p, M) => {
3975      const { drag: u, dragPropagation: h, onDragStart: x } = this.getProps();
3976      if (u && !h && (this.openDragLock && this.openDragLock(), this.openDragLock = kn(u), !this.openDragLock))
3977        return;
3978      this.latestPointerEvent = p, this.latestPanInfo = M, this.isDragging = !0, this.currentDirection = null, this.resolveConstraints(), this.visualElement.projection && (this.visualElement.projection.isAnimationBlocked = !0, this.visualElement.projection.target = void 0), ze((v) => {
3979        let y = this.getAxisMotionValue(v).get() || 0;
3980        if (a1.test(y)) {
3981          const { projection: b } = this.visualElement;
3982          if (b && b.layout) {
3983            const S = b.layout.layoutBox[v];
3984            S && (y = we(S) * (parseFloat(y) / 100));
3985          }
3986        }
3987        this.originPoint[v] = y;
3988      }), x && $.postRender(() => x(p, M)), H4(this.visualElement, "transform");
3989      const { animationState: _ } = this.visualElement;
3990      _ && _.setActive("whileDrag", !0);
3991    }, d = (p, M) => {
3992      this.latestPointerEvent = p, this.latestPanInfo = M;
3993      const { dragPropagation: u, dragDirectionLock: h, onDirectionLock: x, onDrag: _ } = this.getProps();
3994      if (!u && !this.openDragLock)
3995        return;
3996      const { offset: v } = M;
3997      if (h && this.currentDirection === null) {
3998        this.currentDirection = E8(v), this.currentDirection !== null && x && x(this.currentDirection);
3999        return;
4000      }
4001      this.updateAxis("x", M.point, v), this.updateAxis("y", M.point, v), this.visualElement.render(), _ && _(p, M);
4002    }, l = (p, M) => {
4003      this.latestPointerEvent = p, this.latestPanInfo = M, this.stop(p, M), this.latestPointerEvent = null, this.latestPanInfo = null;
4004    }, g = () => ze((p) => this.getAnimationState(p) === "paused" && this.getAxisMotionValue(p).animation?.play()), { dragSnapToOrigin: f } = this.getProps();
4005    this.panSession = new y7(e, {
4006      onSessionStart: o,
4007      onStart: L,
4008      onMove: d,
4009      onSessionEnd: l,
4010      resumeAnimation: g
4011    }, {
vendor: 9,742 bytes, lines 4012-4282
4012      transformPagePoint: this.visualElement.getTransformPagePoint(),
4013      dragSnapToOrigin: f,
4014      distanceThreshold: r,
4015      contextWindow: v7(this.visualElement)
4016    });
4017  }
4018  /**
4019   * @internal
4020   */
4021  stop(e, s) {
4022    const r = e || this.latestPointerEvent, n = s || this.latestPanInfo, o = this.isDragging;
4023    if (this.cancel(), !o || !n || !r)
4024      return;
4025    const { velocity: L } = n;
4026    this.startAnimation(L);
4027    const { onDragEnd: d } = this.getProps();
4028    d && $.postRender(() => d(r, n));
4029  }
4030  /**
4031   * @internal
4032   */
4033  cancel() {
4034    this.isDragging = !1;
4035    const { projection: e, animationState: s } = this.visualElement;
4036    e && (e.isAnimationBlocked = !1), this.panSession && this.panSession.end(), this.panSession = void 0;
4037    const { dragPropagation: r } = this.getProps();
4038    !r && this.openDragLock && (this.openDragLock(), this.openDragLock = null), s && s.setActive("whileDrag", !1);
4039  }
4040  updateAxis(e, s, r) {
4041    const { drag: n } = this.getProps();
4042    if (!r || !k2(e, n, this.currentDirection))
4043      return;
4044    const o = this.getAxisMotionValue(e);
4045    let L = this.originPoint[e] + r[e];
4046    this.constraints && this.constraints[e] && (L = B8(L, this.constraints[e], this.elastic[e])), o.set(L);
4047  }
4048  resolveConstraints() {
4049    const { dragConstraints: e, dragElastic: s } = this.getProps(), r = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(!1) : this.visualElement.projection?.layout, n = this.constraints;
4050    e && ot(e) ? this.constraints || (this.constraints = this.resolveRefConstraints()) : e && r ? this.constraints = k8(r.layoutBox, e) : this.constraints = !1, this.elastic = P8(s), n !== this.constraints && r && this.constraints && !this.hasMutatedConstraints && ze((o) => {
4051      this.constraints !== !1 && this.getAxisMotionValue(o) && (this.constraints[o] = I8(r.layoutBox[o], this.constraints[o]));
4052    });
4053  }
4054  resolveRefConstraints() {
4055    const { dragConstraints: e, onMeasureDragConstraints: s } = this.getProps();
4056    if (!e || !ot(e))
4057      return !1;
4058    const r = e.current, { projection: n } = this.visualElement;
4059    if (!n || !n.layout)
4060      return !1;
4061    const o = Ro(r, n.root, this.visualElement.getTransformPagePoint());
4062    let L = A8(n.layout.layoutBox, o);
4063    if (s) {
4064      const d = s(Co(L));
4065      this.hasMutatedConstraints = !!d, d && (L = o7(d));
4066    }
4067    return L;
4068  }
4069  startAnimation(e) {
4070    const { drag: s, dragMomentum: r, dragElastic: n, dragTransition: o, dragSnapToOrigin: L, onDragTransitionEnd: d } = this.getProps(), l = this.constraints || {}, g = ze((f) => {
4071      if (!k2(f, s, this.currentDirection))
4072        return;
4073      let p = l && l[f] || {};
4074      L && (p = { min: 0, max: 0 });
4075      const M = n ? 200 : 1e6, u = n ? 40 : 1e7, h = {
4076        type: "inertia",
4077        velocity: r ? e[f] : 0,
4078        bounceStiffness: M,
4079        bounceDamping: u,
4080        timeConstant: 750,
4081        restDelta: 1,
4082        restSpeed: 10,
4083        ...o,
4084        ...p
4085      };
4086      return this.startAxisValueAnimation(f, h);
4087    });
4088    return Promise.all(g).then(d);
4089  }
4090  startAxisValueAnimation(e, s) {
4091    const r = this.getAxisMotionValue(e);
4092    return H4(this.visualElement, e), r.start(J5(e, r, 0, s, this.visualElement, !1));
4093  }
4094  stopAnimation() {
4095    ze((e) => this.getAxisMotionValue(e).stop());
4096  }
4097  pauseAnimation() {
4098    ze((e) => this.getAxisMotionValue(e).animation?.pause());
4099  }
4100  getAnimationState(e) {
4101    return this.getAxisMotionValue(e).animation?.state;
4102  }
4103  /**
4104   * Drag works differently depending on which props are provided.
4105   *
4106   * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.
4107   * - Otherwise, we apply the delta to the x/y motion values.
4108   */
4109  getAxisMotionValue(e) {
4110    const s = `_drag${e.toUpperCase()}`, r = this.visualElement.getProps(), n = r[s];
4111    return n || this.visualElement.getValue(e, (r.initial ? r.initial[e] : void 0) || 0);
4112  }
4113  snapToCursor(e) {
4114    ze((s) => {
4115      const { drag: r } = this.getProps();
4116      if (!k2(s, r, this.currentDirection))
4117        return;
4118      const { projection: n } = this.visualElement, o = this.getAxisMotionValue(s);
4119      if (n && n.layout) {
4120        const { min: L, max: d } = n.layout.layoutBox[s];
4121        o.set(e[s] - se(L, d, 0.5));
4122      }
4123    });
4124  }
4125  /**
4126   * When the viewport resizes we want to check if the measured constraints
4127   * have changed and, if so, reposition the element within those new constraints
4128   * relative to where it was before the resize.
4129   */
4130  scalePositionWithinConstraints() {
4131    if (!this.visualElement.current)
4132      return;
4133    const { drag: e, dragConstraints: s } = this.getProps(), { projection: r } = this.visualElement;
4134    if (!ot(s) || !r || !this.constraints)
4135      return;
4136    this.stopAnimation();
4137    const n = { x: 0, y: 0 };
4138    ze((L) => {
4139      const d = this.getAxisMotionValue(L);
4140      if (d && this.constraints !== !1) {
4141        const l = d.get();
4142        n[L] = N8({ min: l, max: l }, this.constraints[L]);
4143      }
4144    });
4145    const { transformTemplate: o } = this.visualElement.getProps();
4146    this.visualElement.current.style.transform = o ? o({}, "") : "none", r.root && r.root.updateScroll(), r.updateLayout(), this.resolveConstraints(), ze((L) => {
4147      if (!k2(L, e, null))
4148        return;
4149      const d = this.getAxisMotionValue(L), { min: l, max: g } = this.constraints[L];
4150      d.set(se(l, g, n[L]));
4151    });
4152  }
4153  addListeners() {
4154    if (!this.visualElement.current)
4155      return;
4156    C8.set(this.visualElement, this);
4157    const e = this.visualElement.current, s = Gt(e, "pointerdown", (l) => {
4158      const { drag: g, dragListener: f = !0 } = this.getProps();
4159      g && f && this.start(l);
4160    }), r = () => {
4161      const { dragConstraints: l } = this.getProps();
4162      ot(l) && l.current && (this.constraints = this.resolveRefConstraints());
4163    }, { projection: n } = this.visualElement, o = n.addEventListener("measure", r);
4164    n && !n.layout && (n.root && n.root.updateScroll(), n.updateLayout()), $.read(r);
4165    const L = s2(window, "resize", () => this.scalePositionWithinConstraints()), d = n.addEventListener("didUpdate", (({ delta: l, hasLayoutChanged: g }) => {
4166      this.isDragging && g && (ze((f) => {
4167        const p = this.getAxisMotionValue(f);
4168        p && (this.originPoint[f] += l[f].translate, p.set(p.get() + l[f].translate));
4169      }), this.visualElement.render());
4170    }));
4171    return () => {
4172      L(), s(), o(), d && d();
4173    };
4174  }
4175  getProps() {
4176    const e = this.visualElement.getProps(), { drag: s = !1, dragDirectionLock: r = !1, dragPropagation: n = !1, dragConstraints: o = !1, dragElastic: L = W4, dragMomentum: d = !0 } = e;
4177    return {
4178      ...e,
4179      drag: s,
4180      dragDirectionLock: r,
4181      dragPropagation: n,
4182      dragConstraints: o,
4183      dragElastic: L,
4184      dragMomentum: d
4185    };
4186  }
4187}
4188function k2(t, e, s) {
4189  return (e === !0 || e === t) && (s === null || s === t);
4190}
4191function E8(t, e = 10) {
4192  let s = null;
4193  return Math.abs(t.y) > e ? s = "y" : Math.abs(t.x) > e && (s = "x"), s;
4194}
4195class R8 extends B1 {
4196  constructor(e) {
4197    super(e), this.removeGroupControls = Ne, this.removeListeners = Ne, this.controls = new F8(e);
4198  }
4199  mount() {
4200    const { dragControls: e } = this.node.getProps();
4201    e && (this.removeGroupControls = e.subscribe(this.controls)), this.removeListeners = this.controls.addListeners() || Ne;
4202  }
4203  unmount() {
4204    this.removeGroupControls(), this.removeListeners();
4205  }
4206}
4207const ra = (t) => (e, s) => {
4208  t && $.postRender(() => t(e, s));
4209};
4210class D8 extends B1 {
4211  constructor() {
4212    super(...arguments), this.removePointerDownListener = Ne;
4213  }
4214  onPointerDown(e) {
4215    this.session = new y7(e, this.createPanHandlers(), {
4216      transformPagePoint: this.node.getTransformPagePoint(),
4217      contextWindow: v7(this.node)
4218    });
4219  }
4220  createPanHandlers() {
4221    const { onPanSessionStart: e, onPanStart: s, onPan: r, onPanEnd: n } = this.node.getProps();
4222    return {
4223      onSessionStart: ra(e),
4224      onStart: ra(s),
4225      onMove: r,
4226      onEnd: (o, L) => {
4227        delete this.session, n && $.postRender(() => n(o, L));
4228      }
4229    };
4230  }
4231  mount() {
4232    this.removePointerDownListener = Gt(this.node.current, "pointerdown", (e) => this.onPointerDown(e));
4233  }
4234  update() {
4235    this.session && this.session.updateHandlers(this.createPanHandlers());
4236  }
4237  unmount() {
4238    this.removePointerDownListener(), this.session && this.session.end();
4239  }
4240}
4241const e3 = {
4242  /**
4243   * Global flag as to whether the tree has animated since the last time
4244   * we resized the window
4245   */
4246  hasAnimatedSinceResize: !0,
4247  /**
4248   * We set this to true once, on the first update. Any nodes added to the tree beyond that
4249   * update will be given a `data-projection-id` attribute.
4250   */
4251  hasEverUpdated: !1
4252};
4253function na(t, e) {
4254  return e.max === e.min ? 0 : t / (e.max - e.min) * 100;
4255}
4256const Et = {
4257  correct: (t, e) => {
4258    if (!e.target)
4259      return t;
4260    if (typeof t == "string")
4261      if (R.test(t))
4262        t = parseFloat(t);
4263      else
4264        return t;
4265    const s = na(t, e.target.x), r = na(t, e.target.y);
4266    return `${s}% ${r}%`;
4267  }
4268}, z8 = {
4269  correct: (t, { treeScale: e, projectionDelta: s }) => {
4270    const r = t, n = v1.parse(t);
4271    if (n.length > 5)
4272      return r;
4273    const o = v1.createTransformer(t), L = typeof n[0] != "number" ? 1 : 0, d = s.x.scale * e.x, l = s.y.scale * e.y;
4274    n[0 + L] /= d, n[1 + L] /= l;
4275    const g = se(d, l, 0.5);
4276    return typeof n[2 + L] == "number" && (n[2 + L] /= g), typeof n[3 + L] == "number" && (n[3 + L] /= g), o(n);
4277  }
4278};
4279let i4 = !1;
4280class j8 extends g5 {
4281  /**
4282   * This only mounts projection nodes for components that
vendor: 4,105 bytes, lines 4283-4395
4283   * need measuring, we might want to do it for all components
4284   * in order to incorporate transforms
4285   */
4286  componentDidMount() {
4287    const { visualElement: e, layoutGroup: s, switchLayoutGroup: r, layoutId: n } = this.props, { projection: o } = e;
4288    no(O8), o && (s.group && s.group.add(o), r && r.register && n && r.register(o), i4 && o.root.didUpdate(), o.addEventListener("animationComplete", () => {
4289      this.safeToRemove();
4290    }), o.setOptions({
4291      ...o.options,
4292      onExitComplete: () => this.safeToRemove()
4293    })), e3.hasEverUpdated = !0;
4294  }
4295  getSnapshotBeforeUpdate(e) {
4296    const { layoutDependency: s, visualElement: r, drag: n, isPresent: o } = this.props, { projection: L } = r;
4297    return L && (L.isPresent = o, i4 = !0, n || e.layoutDependency !== s || s === void 0 || e.isPresent !== o ? L.willUpdate() : this.safeToRemove(), e.isPresent !== o && (o ? L.promote() : L.relegate() || $.postRender(() => {
4298      const d = L.getStack();
4299      (!d || !d.members.length) && this.safeToRemove();
4300    }))), null;
4301  }
4302  componentDidUpdate() {
4303    const { projection: e } = this.props.visualElement;
4304    e && (e.root.didUpdate(), z5.postRender(() => {
4305      !e.currentAnimation && e.isLead() && this.safeToRemove();
4306    }));
4307  }
4308  componentWillUnmount() {
4309    const { visualElement: e, layoutGroup: s, switchLayoutGroup: r } = this.props, { projection: n } = e;
4310    i4 = !0, n && (n.scheduleCheckAfterUnmount(), s && s.group && s.group.remove(n), r && r.deregister && r.deregister(n));
4311  }
4312  safeToRemove() {
4313    const { safeToRemove: e } = this.props;
4314    e && e();
4315  }
4316  render() {
4317    return null;
4318  }
4319}
4320function T7(t) {
4321  const [e, s] = Us(), r = oe(M5);
4322  return i(j8, { ...t, layoutGroup: r, switchLayoutGroup: oe(r7), isPresent: e, safeToRemove: s });
4323}
4324const O8 = {
4325  borderRadius: {
4326    ...Et,
4327    applyTo: [
4328      "borderTopLeftRadius",
4329      "borderTopRightRadius",
4330      "borderBottomLeftRadius",
4331      "borderBottomRightRadius"
4332    ]
4333  },
4334  borderTopLeftRadius: Et,
4335  borderTopRightRadius: Et,
4336  borderBottomLeftRadius: Et,
4337  borderBottomRightRadius: Et,
4338  boxShadow: z8
4339};
4340function V8(t, e, s) {
4341  const r = xe(t) ? t : Ue(t);
4342  return r.start(J5("", r, e, s)), r.animation;
4343}
4344const H8 = (t, e) => t.depth - e.depth;
4345class Z8 {
4346  constructor() {
4347    this.children = [], this.isDirty = !1;
4348  }
4349  add(e) {
4350    h5(this.children, e), this.isDirty = !0;
4351  }
4352  remove(e) {
4353    m5(this.children, e), this.isDirty = !0;
4354  }
4355  forEach(e) {
4356    this.isDirty && this.children.sort(H8), this.isDirty = !1, this.children.forEach(e);
4357  }
4358}
4359function W8(t, e) {
4360  const s = Ae.now(), r = ({ timestamp: n }) => {
4361    const o = n - s;
4362    o >= e && (Je(r), t(o - e));
4363  };
4364  return $.setup(r, !0), () => Je(r);
4365}
4366const S7 = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"], $8 = S7.length, oa = (t) => typeof t == "string" ? parseFloat(t) : t, La = (t) => typeof t == "number" || R.test(t);
4367function q8(t, e, s, r, n, o) {
4368  n ? (t.opacity = se(0, s.opacity ?? 1, U8(r)), t.opacityExit = se(e.opacity ?? 1, 0, G8(r))) : o && (t.opacity = se(e.opacity ?? 1, s.opacity ?? 1, r));
4369  for (let L = 0; L < $8; L++) {
4370    const d = `border${S7[L]}Radius`;
4371    let l = ca(e, d), g = ca(s, d);
4372    if (l === void 0 && g === void 0)
4373      continue;
4374    l || (l = 0), g || (g = 0), l === 0 || g === 0 || La(l) === La(g) ? (t[d] = Math.max(se(oa(l), oa(g), r), 0), (a1.test(g) || a1.test(l)) && (t[d] += "%")) : t[d] = g;
4375  }
4376  (e.rotate || s.rotate) && (t.rotate = se(e.rotate || 0, s.rotate || 0, r));
4377}
4378function ca(t, e) {
4379  return t[e] !== void 0 ? t[e] : t.borderRadius;
4380}
4381const U8 = /* @__PURE__ */ B7(0, 0.5, ds), G8 = /* @__PURE__ */ B7(0.5, 0.95, Ne);
4382function B7(t, e, s) {
4383  return (r) => r < t ? 0 : r > e ? 1 : s(/* @__PURE__ */ vt(t, e, r));
4384}
4385function la(t, e) {
4386  t.min = e.min, t.max = e.max;
4387}
4388function Re(t, e) {
4389  la(t.x, e.x), la(t.y, e.y);
4390}
4391function da(t, e) {
4392  t.translate = e.translate, t.scale = e.scale, t.originPoint = e.originPoint, t.origin = e.origin;
4393}
4394function ga(t, e, s, r, n) {
4395  return t -= e, t = c3(t, 1 / s, r), n !== void 0 && (t = c3(t, 1 / n, r)), t;
vendor: 5,188 bytes, lines 4396-4523
4396}
4397function J8(t, e = 0, s = 1, r = 0.5, n, o = t, L = t) {
4398  if (a1.test(e) && (e = parseFloat(e), e = se(L.min, L.max, e / 100) - L.min), typeof e != "number")
4399    return;
4400  let d = se(o.min, o.max, r);
4401  t === o && (d -= e), t.min = ga(t.min, e, s, d, n), t.max = ga(t.max, e, s, d, n);
4402}
4403function fa(t, e, [s, r, n], o, L) {
4404  J8(t, e[s], e[r], e[n], e.scale, o, L);
4405}
4406const K8 = ["x", "scaleX", "originX"], Y8 = ["y", "scaleY", "originY"];
4407function pa(t, e, s, r) {
4408  fa(t.x, e, K8, s ? s.x : void 0, r ? r.x : void 0), fa(t.y, e, Y8, s ? s.y : void 0, r ? r.y : void 0);
4409}
4410function Ma(t) {
4411  return t.translate === 0 && t.scale === 1;
4412}
4413function k7(t) {
4414  return Ma(t.x) && Ma(t.y);
4415}
4416function ua(t, e) {
4417  return t.min === e.min && t.max === e.max;
4418}
4419function X8(t, e) {
4420  return ua(t.x, e.x) && ua(t.y, e.y);
4421}
4422function ha(t, e) {
4423  return Math.round(t.min) === Math.round(e.min) && Math.round(t.max) === Math.round(e.max);
4424}
4425function A7(t, e) {
4426  return ha(t.x, e.x) && ha(t.y, e.y);
4427}
4428function ma(t) {
4429  return we(t.x) / we(t.y);
4430}
4431function xa(t, e) {
4432  return t.translate === e.translate && t.scale === e.scale && t.originPoint === e.originPoint;
4433}
4434class Q8 {
4435  constructor() {
4436    this.members = [];
4437  }
4438  add(e) {
4439    h5(this.members, e), e.scheduleRender();
4440  }
4441  remove(e) {
4442    if (m5(this.members, e), e === this.prevLead && (this.prevLead = void 0), e === this.lead) {
4443      const s = this.members[this.members.length - 1];
4444      s && this.promote(s);
4445    }
4446  }
4447  relegate(e) {
4448    const s = this.members.findIndex((n) => e === n);
4449    if (s === 0)
4450      return !1;
4451    let r;
4452    for (let n = s; n >= 0; n--) {
4453      const o = this.members[n];
4454      if (o.isPresent !== !1) {
4455        r = o;
4456        break;
4457      }
4458    }
4459    return r ? (this.promote(r), !0) : !1;
4460  }
4461  promote(e, s) {
4462    const r = this.lead;
4463    if (e !== r && (this.prevLead = r, this.lead = e, e.show(), r)) {
4464      r.instance && r.scheduleRender(), e.scheduleRender(), e.resumeFrom = r, s && (e.resumeFrom.preserveOpacity = !0), r.snapshot && (e.snapshot = r.snapshot, e.snapshot.latestValues = r.animationValues || r.latestValues), e.root && e.root.isUpdating && (e.isLayoutDirty = !0);
4465      const { crossfade: n } = e.options;
4466      n === !1 && r.hide();
4467    }
4468  }
4469  exitAnimationComplete() {
4470    this.members.forEach((e) => {
4471      const { options: s, resumingFrom: r } = e;
4472      s.onExitComplete && s.onExitComplete(), r && r.options.onExitComplete && r.options.onExitComplete();
4473    });
4474  }
4475  scheduleRender() {
4476    this.members.forEach((e) => {
4477      e.instance && e.scheduleRender(!1);
4478    });
4479  }
4480  /**
4481   * Clear any leads that have been removed this render to prevent them from being
4482   * used in future animations and to prevent memory leaks
4483   */
4484  removeLeadSnapshot() {
4485    this.lead && this.lead.snapshot && (this.lead.snapshot = void 0);
4486  }
4487}
4488function eL(t, e, s) {
4489  let r = "";
4490  const n = t.x.translate / e.x, o = t.y.translate / e.y, L = s?.z || 0;
4491  if ((n || o || L) && (r = `translate3d(${n}px, ${o}px, ${L}px) `), (e.x !== 1 || e.y !== 1) && (r += `scale(${1 / e.x}, ${1 / e.y}) `), s) {
4492    const { transformPerspective: g, rotate: f, rotateX: p, rotateY: M, skewX: u, skewY: h } = s;
4493    g && (r = `perspective(${g}px) ${r}`), f && (r += `rotate(${f}deg) `), p && (r += `rotateX(${p}deg) `), M && (r += `rotateY(${M}deg) `), u && (r += `skewX(${u}deg) `), h && (r += `skewY(${h}deg) `);
4494  }
4495  const d = t.x.scale * e.x, l = t.y.scale * e.y;
4496  return (d !== 1 || l !== 1) && (r += `scale(${d}, ${l})`), r || "none";
4497}
4498const r4 = ["", "X", "Y", "Z"], tL = 1e3;
4499let aL = 0;
4500function n4(t, e, s, r) {
4501  const { latestValues: n } = e;
4502  n[t] && (s[t] = n[t], e.setStaticValue(t, 0), r && (r[t] = 0));
4503}
4504function N7(t) {
4505  if (t.hasCheckedOptimisedAppear = !0, t.root === t)
4506    return;
4507  const { visualElement: e } = t.options;
4508  if (!e)
4509    return;
4510  const s = M7(e);
4511  if (window.MotionHasOptimisedAnimation(s, "transform")) {
4512    const { layout: n, layoutId: o } = t.options;
4513    window.MotionCancelOptimisedAnimation(s, "transform", $, !(n || o));
4514  }
4515  const { parent: r } = t;
4516  r && !r.hasCheckedOptimisedAppear && N7(r);
4517}
4518function I7({ attachResizeListener: t, defaultParent: e, measureScroll: s, checkIsScrollRoot: r, resetTransform: n }) {
4519  return class {
4520    constructor(L = {}, d = e?.()) {
4521      this.id = aL++, this.animationId = 0, this.animationCommitId = 0, this.children = /* @__PURE__ */ new Set(), this.options = {}, this.isTreeAnimating = !1, this.isAnimationBlocked = !1, this.isLayoutDirty = !1, this.isProjectionDirty = !1, this.isSharedProjectionDirty = !1, this.isTransformDirty = !1, this.updateManuallyBlocked = !1, this.updateBlockedByResize = !1, this.isUpdating = !1, this.isSVG = !1, this.needsReset = !1, this.shouldResetTransform = !1, this.hasCheckedOptimisedAppear = !1, this.treeScale = { x: 1, y: 1 }, this.eventHandlers = /* @__PURE__ */ new Map(), this.hasTreeAnimated = !1, this.updateScheduled = !1, this.scheduleUpdate = () => this.update(), this.projectionUpdateScheduled = !1, this.checkUpdateFailed = () => {
4522        this.isUpdating && (this.isUpdating = !1, this.clearAllSnapshots());
4523      }, this.updateProjection = () => {
vendor: 4,285 bytes, lines 4524-4608
4524        this.projectionUpdateScheduled = !1, this.nodes.forEach(rL), this.nodes.forEach(cL), this.nodes.forEach(lL), this.nodes.forEach(nL);
4525      }, this.resolvedRelativeTargetAt = 0, this.hasProjected = !1, this.isVisible = !0, this.animationProgress = 0, this.sharedNodes = /* @__PURE__ */ new Map(), this.latestValues = L, this.root = d ? d.root || d : this, this.path = d ? [...d.path, d] : [], this.parent = d, this.depth = d ? d.depth + 1 : 0;
4526      for (let l = 0; l < this.path.length; l++)
4527        this.path[l].shouldResetTransform = !0;
4528      this.root === this && (this.nodes = new Z8());
4529    }
4530    addEventListener(L, d) {
4531      return this.eventHandlers.has(L) || this.eventHandlers.set(L, new _5()), this.eventHandlers.get(L).add(d);
4532    }
4533    notifyListeners(L, ...d) {
4534      const l = this.eventHandlers.get(L);
4535      l && l.notify(...d);
4536    }
4537    hasListeners(L) {
4538      return this.eventHandlers.has(L);
4539    }
4540    /**
4541     * Lifecycles
4542     */
4543    mount(L) {
4544      if (this.instance)
4545        return;
4546      this.isSVG = O5(L) && !Zn(L), this.instance = L;
4547      const { layoutId: d, layout: l, visualElement: g } = this.options;
4548      if (g && !g.current && g.mount(L), this.root.nodes.add(this), this.parent && this.parent.children.add(this), this.root.hasTreeAnimated && (l || d) && (this.isLayoutDirty = !0), t) {
4549        let f, p = 0;
4550        const M = () => this.root.updateBlockedByResize = !1;
4551        $.read(() => {
4552          p = window.innerWidth;
4553        }), t(L, () => {
4554          const u = window.innerWidth;
4555          u !== p && (p = u, this.root.updateBlockedByResize = !0, f && f(), f = W8(M, 250), e3.hasAnimatedSinceResize && (e3.hasAnimatedSinceResize = !1, this.nodes.forEach(va)));
4556        });
4557      }
4558      d && this.root.registerSharedNode(d, this), this.options.animate !== !1 && g && (d || l) && this.addEventListener("didUpdate", ({ delta: f, hasLayoutChanged: p, hasRelativeLayoutChanged: M, layout: u }) => {
4559        if (this.isTreeAnimationBlocked()) {
4560          this.target = void 0, this.relativeTarget = void 0;
4561          return;
4562        }
4563        const h = this.options.transition || g.getDefaultTransition() || ML, { onLayoutAnimationStart: x, onLayoutAnimationComplete: _ } = g.getProps(), v = !this.targetLayout || !A7(this.targetLayout, u), y = !p && M;
4564        if (this.options.layoutRoot || this.resumeFrom || y || p && (v || !this.currentAnimation)) {
4565          this.resumeFrom && (this.resumingFrom = this.resumeFrom, this.resumingFrom.resumingFrom = void 0);
4566          const b = {
4567            ...F5(h, "layout"),
4568            onPlay: x,
4569            onComplete: _
4570          };
4571          (g.shouldReduceMotion || this.options.layoutRoot) && (b.delay = 0, b.type = !1), this.startAnimation(b), this.setAnimationOrigin(f, y);
4572        } else
4573          p || va(this), this.isLead() && this.options.onExitComplete && this.options.onExitComplete();
4574        this.targetLayout = u;
4575      });
4576    }
4577    unmount() {
4578      this.options.layoutId && this.willUpdate(), this.root.nodes.remove(this);
4579      const L = this.getStack();
4580      L && L.remove(this), this.parent && this.parent.children.delete(this), this.instance = void 0, this.eventHandlers.clear(), Je(this.updateProjection);
4581    }
4582    // only on the root
4583    blockUpdate() {
4584      this.updateManuallyBlocked = !0;
4585    }
4586    unblockUpdate() {
4587      this.updateManuallyBlocked = !1;
4588    }
4589    isUpdateBlocked() {
4590      return this.updateManuallyBlocked || this.updateBlockedByResize;
4591    }
4592    isTreeAnimationBlocked() {
4593      return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || !1;
4594    }
4595    // Note: currently only running on root node
4596    startUpdate() {
4597      this.isUpdateBlocked() || (this.isUpdating = !0, this.nodes && this.nodes.forEach(dL), this.animationId++);
4598    }
4599    getTransformTemplate() {
4600      const { visualElement: L } = this.options;
4601      return L && L.getProps().transformTemplate;
4602    }
4603    willUpdate(L = !0) {
4604      if (this.root.hasTreeAnimated = !0, this.root.isUpdateBlocked()) {
4605        this.options.onExitComplete && this.options.onExitComplete();
4606        return;
4607      }
4608      if (window.MotionCancelOptimisedAnimation && !this.hasCheckedOptimisedAppear && N7(this), !this.root.isUpdating && this.root.startUpd
4608ate(), this.isLayoutDirty)
4609        return;
4610      this.isLayoutDirty = !0;
4611      for (let f = 0; f < this.path.length; f++) {
4612        const p = this.path[f];
4613        p.shouldResetTransform = !0, p.updateScroll("snapshot"), p.options.layoutRoot && p.willUpdate(!1);
4614      }
4615      const { layoutId: d, layout: l } = this.options;
4616      if (d === void 0 && !l)
4617        return;
4618      const g = this.getTransformTemplate();
4619      this.prevTransformTemplateValue = g ? g(this.latestValues, "") : void 0, this.updateSnapshot(), L && this.notifyListeners("willUpdate");
4620    }
4621    update() {
4622      if (this.updateScheduled = !1, this.isUpdateBlocked()) {
4623        this.unblockUpdate(), this.clearAllSnapshots(), this.nodes.forEach(_a);
4624        return;
4625      }
4626      if (this.animationId <= this.animationCommitId) {
4627        this.nodes.forEach(ba);
4628        return;
4629      }
4630      this.animationCommitId = this.animationId, this.isUpdating ? (this.isUpdating = !1, this.nodes.forEach(LL), this.nodes.forEach(sL), this.nodes.forEach(iL)) : this.nodes.forEach(ba), this.clearAllSnapshots();
4631      const d = Ae.now();
4632      me.delta = i1(0, 1e3 / 60, d - me.timestamp), me.timestamp = d, me.isProcessing = !0, G3.update.process(me), G3.preRender.process(me), G3.render.process(me), me.isProcessing = !1;
4633    }
4634    didUpdate() {
4635      this.updateScheduled || (this.updateScheduled = !0, z5.read(this.scheduleUpdate));
4636    }
4637    clearAllSnapshots() {
4638      this.nodes.forEach(oL), this.sharedNodes.forEach(gL);
4639    }
4640    scheduleUpdateProjection() {
4641      this.projectionUpdateScheduled || (this.projectionUpdateScheduled = !0, $.preRender(this.updateProjection, !1, !0));
4642    }
4643    scheduleCheckAfterUnmount() {
4644      $.postRender(() => {
4645        this.isLayoutDirty ? this.root.didUpdate() : this.root.checkUpdateFailed();
4646      });
4647    }
4648    /**
4649     * Update measurements
4650     */
4651    updateSnapshot() {
4652      this.snapshot || !this.instance || (this.snapshot = this.measure(), this.snapshot && !we(this.snapshot.measuredBox.x) && !we(this.snapshot.measuredBox.y) && (this.snapshot = void 0));
4653    }
4654    updateLayout() {
4655      if (!this.instance || (this.updateScroll(), !(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty))
4656        return;
4657      if (this.resumeFrom && !this.resumeFrom.instance)
4658        for (let l = 0; l < this.path.length; l++)
4659          this.path[l].updateScroll();
4660      const L = this.layout;
4661      this.layout = this.measure(!1), this.layoutCorrected = ce(), this.isLayoutDirty = !1, this.projectionDelta = void 0, this.notifyListeners("measure", this.layout.layoutBox);
4662      const { visualElement: d } = this.options;
4663      d && d.notify("LayoutMeasure", this.layout.layoutBox, L ? L.layoutBox : void 0);
4664    }
4665    updateScroll(L = "measure") {
4666      let d = !!(this.options.layoutScroll && this.instance);
4667      if (this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === L && (d = !1), d && this.instance) {
4668        const l = r(this.instance);
4669        this.scroll = {
4670          animationId: this.root.animationId,
4671          phase: L,
4672          isRoot: l,
4673          offset: s(this.instance),
4674          wasRoot: this.scroll ? this.scroll.isRoot : l
4675        };
4676      }
4677    }
4678    resetTransform() {
4679      if (!n)
4680        return;
4681      const L = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout, d = this.projectionDelta && !k7(this.projectionDelta), l = this.getTransformTemplate(), g = l ? l(this.latestValues, "") : void 0, f = g !== this.prevTransformTemplateValue;
4682      L && this.instance && (d || C1(this.latestValues) || f) && (n(this.instance, g), this.shouldResetTransform = !1, this.scheduleRender());
4683    }
4684    measure(L = !0) {
4685      const d = this.measurePageBox();
4686      let l = this.removeElementScroll(d);
4687      return L && (l = this.removeTransform(l)), uL(l), {
4688        animationId: this.root.animationId,
4689        measuredBox: d,
4690        layoutBox: l,
4691        latestValues: {},
4692        source: this.id
4693      };
4694    }
4695    measurePageBox() {
4696      const { visualElement: L } = this.options;
4697      if (!L)
4698        return ce();
4699      const d = L.measureViewportBox();
4700      if (!(this.scroll?.wasRoot || this.path.some(hL))) {
4701        const { scroll: g } = this.root;
4702        g && (Lt(d.x, g.offset.x), Lt(d.y, g.offset.y));
4703      }
4704      return d;
4705    }
4706    removeElementScroll(L) {
4707      const d = ce();
4708      if (Re(d, L), this.scroll?.wasRoot)
4709        return d;
4710      for (let l = 0; l < this.path.length; l++) {
4711        const g = this.path[l], { scroll: f, options: p } = g;
4712        g !== this.root && f && p.layoutScroll && (f.wasRoot && Re(d, L), Lt(d.x, f.offset.x), Lt(d.y, f.offset.y));
4713      }
4714      return d;
4715    }
4716    applyTransform(L, d = !1) {
4717      const l = ce();
4718      Re(l, L);
4719      for (let g = 0; g < this.path.length; g++) {
4720        const f = this.path[g];
4721        !d && f.options.layoutScroll && f.scroll && f !== f.root && ct(l, {
4722          x: -f.scroll.offset.x,
4723          y: -f.scroll.offset.y
4724        }), C1(f.latestValues) && ct(l, f.latestValues);
4725      }
4726      return C1(this.latestValues) && ct(l, this.latestValues), l;
4727    }
4728    removeTransform(L) {
4729      const d = ce();
4730      Re(d, L);
4731      for (let l = 0; l < this.path.length; l++) {
4732        const g = this.path[l];
4733        if (!g.instance || !C1(g.latestValues))
4734          continue;
4735        z4(g.latestValues) && g.updateSnapshot();
4736        const f = ce(), p = g.measurePageBox();
4737        Re(f, p), pa(d, g.latestValues, g.snapshot ? g.snapshot.layoutBox : void 0, f);
4738      }
4739      return C1(this.latestValues) && pa(d, this.latestValues), d;
4740    }
4741    setTargetDelta(L) {
4742      this.targetDelta = L, this.root.scheduleUpdateProjection(), this.isProjectionDirty = !0;
4743    }
4744    setOptions(L) {
4745      this.options = {
4746        ...this.options,
4747        ...L,
4748        crossfade: L.crossfade !== void 0 ? L.crossfade : !0
4749      };
4750    }
4751    clearMeasurements() {
4752      this.scroll = void 0, this.layout = void 0, this.snapshot = void 0, this.prevTransformTemplateValue = void 0, this.targetDelta = void 0, this.target = void 0, this.isLayoutDirty = !1;
4753    }
4754    forceRelativeParentToResolveTarget() {
4755      this.relativeParent && this.relativeParent.resolvedRelativeTargetAt !== me.timestamp && this.relativeParent.resolveTargetDelta(!0);
4756    }
4757    resolveTargetDelta(L = !1) {
4758      const d = this.getLead();
4759      this.isProjectionDirty || (this.isProjectionDirty = d.isProjectionDirty), this.isTransformDirty || (this.isTransformDirty = d.isTransformDirty), this.isSharedProjectionDirty || (this.isSharedProjectionDirty = d.isS
vendor: 4,285 bytes, lines 4759-4808
4759haredProjectionDirty);
4760      const l = !!this.resumingFrom || this !== d;
4761      if (!(L || l && this.isSharedProjectionDirty || this.isProjectionDirty || this.parent?.isProjectionDirty || this.attemptToResolveRelativeTarget || this.root.updateBlockedByResize))
4762        return;
4763      const { layout: f, layoutId: p } = this.options;
4764      if (!(!this.layout || !(f || p))) {
4765        if (this.resolvedRelativeTargetAt = me.timestamp, !this.targetDelta && !this.relativeTarget) {
4766          const M = this.getClosestProjectingParent();
4767          M && M.layout && this.animationProgress !== 1 ? (this.relativeParent = M, this.forceRelativeParentToResolveTarget(), this.relativeTarget = ce(), this.relativeTargetOrigin = ce(), Kt(this.relativeTargetOrigin, this.layout.layoutBox, M.layout.layoutBox), Re(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
4768        }
4769        if (!(!this.relativeTarget && !this.targetDelta) && (this.target || (this.target = ce(), this.targetWithTransforms = ce()), this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target ? (this.forceRelativeParentToResolveTarget(), y8(this.target, this.relativeTarget, this.relativeParent.target)) : this.targetDelta ? (this.resumingFrom ? this.target = this.applyTransform(this.layout.layoutBox) : Re(this.target, this.layout.layoutBox), c7(this.target, this.targetDelta)) : Re(this.target, this.layout.layoutBox), this.attemptToResolveRelativeTarget)) {
4770          this.attemptToResolveRelativeTarget = !1;
4771          const M = this.getClosestProjectingParent();
4772          M && !!M.resumingFrom == !!this.resumingFrom && !M.options.layoutScroll && M.target && this.animationProgress !== 1 ? (this.relativeParent = M, this.forceRelativeParentToResolveTarget(), this.relativeTarget = ce(), this.relativeTargetOrigin = ce(), Kt(this.relativeTargetOrigin, this.target, M.target), Re(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
4773        }
4774      }
4775    }
4776    getClosestProjectingParent() {
4777      if (!(!this.parent || z4(this.parent.latestValues) || L7(this.parent.latestValues)))
4778        return this.parent.isProjecting() ? this.parent : this.parent.getClosestProjectingParent();
4779    }
4780    isProjecting() {
4781      return !!((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout);
4782    }
4783    calcProjection() {
4784      const L = this.getLead(), d = !!this.resumingFrom || this !== L;
4785      let l = !0;
4786      if ((this.isProjectionDirty || this.parent?.isProjectionDirty) && (l = !1), d && (this.isSharedProjectionDirty || this.isTransformDirty) && (l = !1), this.resolvedRelativeTargetAt === me.timestamp && (l = !1), l)
4787        return;
4788      const { layout: g, layoutId: f } = this.options;
4789      if (this.isTreeAnimating = !!(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation), this.isTreeAnimating || (this.targetDelta = this.relativeTarget = void 0), !this.layout || !(g || f))
4790        return;
4791      Re(this.layoutCorrected, this.layout.layoutBox);
4792      const p = this.treeScale.x, M = this.treeScale.y;
4793      Eo(this.layoutCorrected, this.treeScale, this.path, d), L.layout && !L.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1) && (L.target = L.layout.layoutBox, L.targetWithTransforms = ce());
4794      const { target: u } = L;
4795      if (!u) {
4796        this.prevProjectionDelta && (this.createProjectionDeltas(), this.scheduleRender());
4797        return;
4798      }
4799      !this.projectionDelta || !this.prevProjectionDelta ? this.createProjectionDeltas() : (da(this.prevProjectionDelta.x, this.projectionDelta.x), da(this.prevProjectionDelta.y, this.projectionDelta.y)), Jt(this.projectionDelta, this.layoutCorrected, u, this.latestValues), (this.treeScale.x !== p || this.treeScale.y !== M || !xa(this.projectionDelta.x, this.prevProjectionDelta.x) || !xa(this.projectionDelta.y, this.prevProjectionDelta.y)) && (this.hasProjected = !0, this.scheduleRender(), this.notifyListeners("projectionUpdate", u));
4800    }
4801    hide() {
4802      this.isVisible = !1;
4803    }
4804    show() {
4805      this.isVisible = !0;
4806    }
4807    scheduleRender(L = !0) {
4808      if (this.options.visualElement?.scheduleRender(), L) {
vendor: 10,323 bytes, lines 4809-5037
4809        const d = this.getStack();
4810        d && d.scheduleRender();
4811      }
4812      this.resumingFrom && !this.resumingFrom.instance && (this.resumingFrom = void 0);
4813    }
4814    createProjectionDeltas() {
4815      this.prevProjectionDelta = lt(), this.projectionDelta = lt(), this.projectionDeltaWithTransform = lt();
4816    }
4817    setAnimationOrigin(L, d = !1) {
4818      const l = this.snapshot, g = l ? l.latestValues : {}, f = { ...this.latestValues }, p = lt();
4819      (!this.relativeParent || !this.relativeParent.options.layoutRoot) && (this.relativeTarget = this.relativeTargetOrigin = void 0), this.attemptToResolveRelativeTarget = !d;
4820      const M = ce(), u = l ? l.source : void 0, h = this.layout ? this.layout.source : void 0, x = u !== h, _ = this.getStack(), v = !_ || _.members.length <= 1, y = !!(x && !v && this.options.crossfade === !0 && !this.path.some(pL));
4821      this.animationProgress = 0;
4822      let b;
4823      this.mixTargetDelta = (S) => {
4824        const k = S / 1e3;
4825        ya(p.x, L.x, k), ya(p.y, L.y, k), this.setTargetDelta(p), this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout && (Kt(M, this.layout.layoutBox, this.relativeParent.layout.layoutBox), fL(this.relativeTarget, this.relativeTargetOrigin, M, k), b && X8(this.relativeTarget, b) && (this.isProjectionDirty = !1), b || (b = ce()), Re(b, this.relativeTarget)), x && (this.animationValues = f, q8(f, g, this.latestValues, k, y, v)), this.root.scheduleUpdateProjection(), this.scheduleRender(), this.animationProgress = k;
4826      }, this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0);
4827    }
4828    startAnimation(L) {
4829      this.notifyListeners("animationStart"), this.currentAnimation?.stop(), this.resumingFrom?.currentAnimation?.stop(), this.pendingAnimation && (Je(this.pendingAnimation), this.pendingAnimation = void 0), this.pendingAnimation = $.update(() => {
4830        e3.hasAnimatedSinceResize = !0, this.motionValue || (this.motionValue = Ue(0)), this.currentAnimation = V8(this.motionValue, [0, 1e3], {
4831          ...L,
4832          velocity: 0,
4833          isSync: !0,
4834          onUpdate: (d) => {
4835            this.mixTargetDelta(d), L.onUpdate && L.onUpdate(d);
4836          },
4837          onStop: () => {
4838          },
4839          onComplete: () => {
4840            L.onComplete && L.onComplete(), this.completeAnimation();
4841          }
4842        }), this.resumingFrom && (this.resumingFrom.currentAnimation = this.currentAnimation), this.pendingAnimation = void 0;
4843      });
4844    }
4845    completeAnimation() {
4846      this.resumingFrom && (this.resumingFrom.currentAnimation = void 0, this.resumingFrom.preserveOpacity = void 0);
4847      const L = this.getStack();
4848      L && L.exitAnimationComplete(), this.resumingFrom = this.currentAnimation = this.animationValues = void 0, this.notifyListeners("animationComplete");
4849    }
4850    finishAnimation() {
4851      this.currentAnimation && (this.mixTargetDelta && this.mixTargetDelta(tL), this.currentAnimation.stop()), this.completeAnimation();
4852    }
4853    applyTransformsToTarget() {
4854      const L = this.getLead();
4855      let { targetWithTransforms: d, target: l, layout: g, latestValues: f } = L;
4856      if (!(!d || !l || !g)) {
4857        if (this !== L && this.layout && g && P7(this.options.animationType, this.layout.layoutBox, g.layoutBox)) {
4858          l = this.target || ce();
4859          const p = we(this.layout.layoutBox.x);
4860          l.x.min = L.target.x.min, l.x.max = l.x.min + p;
4861          const M = we(this.layout.layoutBox.y);
4862          l.y.min = L.target.y.min, l.y.max = l.y.min + M;
4863        }
4864        Re(d, l), ct(d, f), Jt(this.projectionDeltaWithTransform, this.layoutCorrected, d, f);
4865      }
4866    }
4867    registerSharedNode(L, d) {
4868      this.sharedNodes.has(L) || this.sharedNodes.set(L, new Q8()), this.sharedNodes.get(L).add(d);
4869      const g = d.options.initialPromotionConfig;
4870      d.promote({
4871        transition: g ? g.transition : void 0,
4872        preserveFollowOpacity: g && g.shouldPreserveFollowOpacity ? g.shouldPreserveFollowOpacity(d) : void 0
4873      });
4874    }
4875    isLead() {
4876      const L = this.getStack();
4877      return L ? L.lead === this : !0;
4878    }
4879    getLead() {
4880      const { layoutId: L } = this.options;
4881      return L ? this.getStack()?.lead || this : this;
4882    }
4883    getPrevLead() {
4884      const { layoutId: L } = this.options;
4885      return L ? this.getStack()?.prevLead : void 0;
4886    }
4887    getStack() {
4888      const { layoutId: L } = this.options;
4889      if (L)
4890        return this.root.sharedNodes.get(L);
4891    }
4892    promote({ needsReset: L, transition: d, preserveFollowOpacity: l } = {}) {
4893      const g = this.getStack();
4894      g && g.promote(this, l), L && (this.projectionDelta = void 0, this.needsReset = !0), d && this.setOptions({ transition: d });
4895    }
4896    relegate() {
4897      const L = this.getStack();
4898      return L ? L.relegate(this) : !1;
4899    }
4900    resetSkewAndRotation() {
4901      const { visualElement: L } = this.options;
4902      if (!L)
4903        return;
4904      let d = !1;
4905      const { latestValues: l } = L;
4906      if ((l.z || l.rotate || l.rotateX || l.rotateY || l.rotateZ || l.skewX || l.skewY) && (d = !0), !d)
4907        return;
4908      const g = {};
4909      l.z && n4("z", L, g, this.animationValues);
4910      for (let f = 0; f < r4.length; f++)
4911        n4(`rotate${r4[f]}`, L, g, this.animationValues), n4(`skew${r4[f]}`, L, g, this.animationValues);
4912      L.render();
4913      for (const f in g)
4914        L.setStaticValue(f, g[f]), this.animationValues && (this.animationValues[f] = g[f]);
4915      L.scheduleRender();
4916    }
4917    applyProjectionStyles(L, d) {
4918      if (!this.instance || this.isSVG)
4919        return;
4920      if (!this.isVisible) {
4921        L.visibility = "hidden";
4922        return;
4923      }
4924      const l = this.getTransformTemplate();
4925      if (this.needsReset) {
4926        this.needsReset = !1, L.visibility = "", L.opacity = "", L.pointerEvents = Q2(d?.pointerEvents) || "", L.transform = l ? l(this.latestValues, "") : "none";
4927        return;
4928      }
4929      const g = this.getLead();
4930      if (!this.projectionDelta || !this.layout || !g.target) {
4931        this.options.layoutId && (L.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1, L.pointerEvents = Q2(d?.pointerEvents) || ""), this.hasProjected && !C1(this.latestValues) && (L.transform = l ? l({}, "") : "none", this.hasProjected = !1);
4932        return;
4933      }
4934      L.visibility = "";
4935      const f = g.animationValues || g.latestValues;
4936      this.applyTransformsToTarget();
4937      let p = eL(this.projectionDeltaWithTransform, this.treeScale, f);
4938      l && (p = l(f, p)), L.transform = p;
4939      const { x: M, y: u } = this.projectionDelta;
4940      L.transformOrigin = `${M.origin * 100}% ${u.origin * 100}% 0`, g.animationValues ? L.opacity = g === this ? f.opacity ?? this.latestValues.opacity ?? 1 : this.preserveOpacity ? this.latestValues.opacity : f.opacityExit : L.opacity = g === this ? f.opacity !== void 0 ? f.opacity : "" : f.opacityExit !== void 0 ? f.opacityExit : 0;
4941      for (const h in a2) {
4942        if (f[h] === void 0)
4943          continue;
4944        const { correct: x, applyTo: _, isCSSVariable: v } = a2[h], y = p === "none" ? f[h] : x(f[h], g);
4945        if (_) {
4946          const b = _.length;
4947          for (let S = 0; S < b; S++)
4948            L[_[S]] = y;
4949        } else
4950          v ? this.options.visualElement.renderState.vars[h] = y : L[h] = y;
4951      }
4952      this.options.layoutId && (L.pointerEvents = g === this ? Q2(d?.pointerEvents) || "" : "none");
4953    }
4954    clearSnapshot() {
4955      this.resumeFrom = this.snapshot = void 0;
4956    }
4957    // Only run on root
4958    resetTree() {
4959      this.root.nodes.forEach((L) => L.currentAnimation?.stop()), this.root.nodes.forEach(_a), this.root.sharedNodes.clear();
4960    }
4961  };
4962}
4963function sL(t) {
4964  t.updateLayout();
4965}
4966function iL(t) {
4967  const e = t.resumeFrom?.snapshot || t.snapshot;
4968  if (t.isLead() && t.layout && e && t.hasListeners("didUpdate")) {
4969    const { layoutBox: s, measuredBox: r } = t.layout, { animationType: n } = t.options, o = e.source !== t.layout.source;
4970    n === "size" ? ze((f) => {
4971      const p = o ? e.measuredBox[f] : e.layoutBox[f], M = we(p);
4972      p.min = s[f].min, p.max = p.min + M;
4973    }) : P7(n, e.layoutBox, s) && ze((f) => {
4974      const p = o ? e.measuredBox[f] : e.layoutBox[f], M = we(s[f]);
4975      p.max = p.min + M, t.relativeTarget && !t.currentAnimation && (t.isProjectionDirty = !0, t.relativeTarget[f].max = t.relativeTarget[f].min + M);
4976    });
4977    const L = lt();
4978    Jt(L, s, e.layoutBox);
4979    const d = lt();
4980    o ? Jt(d, t.applyTransform(r, !0), e.measuredBox) : Jt(d, s, e.layoutBox);
4981    const l = !k7(L);
4982    let g = !1;
4983    if (!t.resumeFrom) {
4984      const f = t.getClosestProjectingParent();
4985      if (f && !f.resumeFrom) {
4986        const { snapshot: p, layout: M } = f;
4987        if (p && M) {
4988          const u = ce();
4989          Kt(u, e.layoutBox, p.layoutBox);
4990          const h = ce();
4991          Kt(h, s, M.layoutBox), A7(u, h) || (g = !0), f.options.layoutRoot && (t.relativeTarget = h, t.relativeTargetOrigin = u, t.relativeParent = f);
4992        }
4993      }
4994    }
4995    t.notifyListeners("didUpdate", {
4996      layout: s,
4997      snapshot: e,
4998      delta: d,
4999      layoutDelta: L,
5000      hasLayoutChanged: l,
5001      hasRelativeLayoutChanged: g
5002    });
5003  } else if (t.isLead()) {
5004    const { onExitComplete: s } = t.options;
5005    s && s();
5006  }
5007  t.options.transition = void 0;
5008}
5009function rL(t) {
5010  t.parent && (t.isProjecting() || (t.isProjectionDirty = t.parent.isProjectionDirty), t.isSharedProjectionDirty || (t.isSharedProjectionDirty = !!(t.isProjectionDirty || t.parent.isProjectionDirty || t.parent.isSharedProjectionDirty)), t.isTransformDirty || (t.isTransformDirty = t.parent.isTransformDirty));
5011}
5012function nL(t) {
5013  t.isProjectionDirty = t.isSharedProjectionDirty = t.isTransformDirty = !1;
5014}
5015function oL(t) {
5016  t.clearSnapshot();
5017}
5018function _a(t) {
5019  t.clearMeasurements();
5020}
5021function ba(t) {
5022  t.isLayoutDirty = !1;
5023}
5024function LL(t) {
5025  const { visualElement: e } = t.options;
5026  e && e.getProps().onBeforeLayoutMeasure && e.notify("BeforeLayoutMeasure"), t.resetTransform();
5027}
5028function va(t) {
5029  t.finishAnimation(), t.targetDelta = t.relativeTarget = t.target = void 0, t.isProjectionDirty = !0;
5030}
5031function cL(t) {
5032  t.resolveTargetDelta();
5033}
5034function lL(t) {
5035  t.calcProjection();
5036}
5037function dL(t) {
5038  t.resetSkewAndRotation();
5039}
5040function gL(t) {
5041  t.removeLeadSnapshot();
5042}
5043function ya(t, e, s) {
5044  t.translate = se(e.translate, 0, s), t.scale = se(e.scale, 1, s), t.origin = e.origin, t.originPoint = e.originPoint;
5045}
5046function wa(t, e, s, r) {
5047  t.min = se(e.min, s.min, r), t.max = se(e.max, s.max, r);
5048}
5049function fL(t, e, s, r) {
5050  wa(t.x, e.x, s.x, r), wa(t.y, e.y, s.y, r);
5051}
5052function pL(t) {
5053  return t.animationValues && t.animationValues.opacityExit !== void 0;
5054}
5055const ML = {
5056  duration: 0.45,
5057  ease: [0.4, 0, 0.1, 1]
5058}, Ta = (t) => typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(t), Sa = Ta("applewebkit/") && !Ta("chrome/") ? Math.round : Ne;
5059function Ba(t) {
5060  t.min = Sa(t.min), t.max = Sa(t.max);
5061}
5062function uL(t) {
5063  Ba(t.x), Ba(t.y);
5064}
5065function P7(t, e, s) {
5066  return t === "position" || t === "preserve-aspect" && !v8(ma(e), ma(s), 0.2);
5067}
5068function hL(t) {
5069  return t !== t.root && t.scroll?.wasRoot;
5070}
5071const mL = I7({
5072  attachResizeListener: (t, e) => s2(t, "resize", e),
5073  measureScroll: () => ({
5074    x: document.documentElement.scrollLeft || document.body.scrollLeft,
5075    y: document.documentElement.scrollTop || document.body.scrollTop
5076  }),
5077  checkIsScrollRoot: () => !0
5078}), o4 = {
5079  current: void 0
5080}, C7 = I7({
5081  measureScroll: (t) => ({
5082    x: t.scrollLeft,
5083    y: t.scrollTop
5084  }),
5085  defaultParent: () => {
5086    if (!o4.current) {
5087      const t = new mL({});
5088      t.mount(window), t.setOptions({ layoutScroll: !0 }), o4.current = t;
5089    }
5090    return o4.current;
5091  },
5092  resetTransform: (t, e) => {
5093    t.style.transform = e !== void 0 ? e : "none";
5094  },
5095  checkIsScrollRoot: (t) => window.getComputedStyle(t).position === "fixed"
5096}), xL = {
5097  pan: {
5098    Feature: D8
5099  },
5100  drag: {
5101    Feature: R8,
5102    ProjectionNode: C7,
5103    MeasureLayout: T7
5104  }
5105};
5106function ka(t, e, s) {
5107  const { props: r } = t;
5108  t.animationState && r.whileHover && t.animationState.setActive("whileHover", s === "Start");
5109  const n = "onHover" + s, o = r[n];
5110  o && $.postRender(() => o(e, x2(e)));
5111}
5112class _L extends B1 {
5113  mount() {
5114    const { current: e } = this.node;
5115    e && (this.unmount = An(e, (s, r) => (ka(this.node, r, "Start"), (n) => ka(this.node, n, "End"))));
5116  }
5117  unmount() {
5118  }
5119}
5120class bL extends B1 {
5121  constructor() {
5122    super(...arguments), this.isActive = !1;
5123  }
5124  onFocus() {
5125    let e = !1;
5126    try {
5127      e = this.node.current.matches(":focus-visible");
5128    } catch {
5129      e = !0;
5130    }
5131    !e || !this.node.animationState || (this.node.animationState.setActive("whileFocus", !0), this.isActive = !0);
5132  }
5133  onBlur() {
5134    !this.isActive || !this.node.animationState || (this.node.animationState.setActive("whileFocus", !1), this.isActive = !1);
5135  }
5136  mount() {
5137    this.unmount = M2(s2(this.node.current, "focus", () => this.onFocus()), s2(this.node.current, "blur", () => this.onBlur()));
5138  }
5139  unmount() {
5140  }
5141}
5142function Aa(t, e, s) {
5143  const { props: r } = t;
5144  if (t.current instanceof HTMLButtonElement && t.current.disabled)
5145    return;
5146  t.animationState && r.whileTap && t.animationState.setActive("whileTap", s === "Start");
5147  const n = "onTap" + (s === "End" ? "" : s), o = r[n];
5148  o && $.postRender(() => o(e, x2(e)));
5149}
5150class vL extends B1 {
5151  mount() {
5152    const { current: e } = this.node;
5153    e && (this.unmount = Cn(e, (s, r) => (Aa(this.node, r, "Start"), (n, { success: o }) => Aa(this.node, n, o ? "End" : "Cancel")), { useGlobalTarget: this.node.props.globalTapTarget }));
5154  }
5155  unmount() {
5156  }
5157}
5158const $4 = /* @__PURE__ */ new WeakMap(), L4 = /* @__PURE__ */ new WeakMap(), yL = (t) => {
5159  const e = $4.get(t.target);
5160  e && e(t);
5161}, wL = (t) => {
5162  t.forEach(yL);
5163};
5164function TL({ root: t, ...e }) {
5165  const s = t || document;
5166  L4.has(s) || L4.set(s, {});
5167  const r = L4.get(s), n = JSON.stringify(e);
5168  return r[n] || (r[n] = new IntersectionObserver(wL, { root: t, ...e })), r[n];
5169}
5170function SL(t, e, s) {
5171  const r = TL(e);
5172  return $4.set(t, s), r.observe(t), () => {
5173    $4.delete(t), r.unobserve(t);
5174  };
5175}
5176const BL = {
5177  some: 0,
5178  all: 1
5179};
5180class kL extends B1 {
5181  constructor() {
5182    super(...arguments), this.hasEnteredView = !1, this.isInView = !1;
5183  }
5184  startObserver() {
5185    this.unmount();
5186    const { viewport: e = {} } = this.node.getProps(), { root: s, margin: r, amount: n = "some", once: o } = e, L = {
5187      root: s ? s.current : void 0,
5188      rootMargin: r,
5189      threshold: typeof n == "number" ? n : BL[n]
5190    }, d = (l) => {
5191      const { isIntersecting: g } = l;
5192      if (this.isInView === g || (this.isInView = g, o && !g && this.hasEnteredView))
5193        return;
5194      g && (this.hasEnteredView = !0), this.node.animationState && this.node.animationState.setActive("whileInView", g);
5195      const { onViewportEnter: f, onViewportLeave: p } = this.node.getProps(), M = g ? f : p;
5196      M && M(l);
5197    };
5198    return SL(this.node.current, L, d);
5199  }
5200  mount() {
5201    this.startObserver();
5202  }
5203  update() {
5204    if (typeof IntersectionObserver > "u")
5205      return;
5206    const { props: e, prevProps: s } = this.node;
5207    ["amount", "margin", "root"].some(AL(e, s)) && this.startObserver();
5208  }
5209  unmount() {
5210  }
5211}
5212function AL({ viewport: t = {} }, { viewport: e = {} } = {}) {
5213  return (s) => t[s] !== e[s];
5214}
5215const NL = {
5216  inView: {
5217    Feature: kL
5218  },
5219  tap: {
5220    Feature: vL
5221  },
5222  focus: {
5223    Feature: bL
5224  },
5225  hover: {
5226    Feature: _L
5227  }
5228}, IL = {
5229  layout: {
5230    ProjectionNode: C7,
5231    MeasureLayout: T7
5232  }
5233}, PL = {
5234  ...u8,
5235  ...NL,
5236  ...xL,
5237  ...IL
5238}, m = /* @__PURE__ */ Po(PL, $o);
5239function F7(t, e, s) {
5240  f2(() => t.on(e, s), [t, e, s]);
5241}
5242const CL = 50, Na = () => ({
5243  current: 0,
5244  offset: [],
5245  progress: 0,
5246  scrollLength: 0,
5247  targetOffset: 0,
5248  targetLength: 0,
5249  containerLength: 0,
5250  velocity: 0
5251}), FL = () => ({
5252  time: 0,
5253  x: Na(),
5254  y: Na()
5255}), EL = {
5256  x: {
5257    length: "Width",
5258    position: "Left"
5259  },
5260  y: {
5261    length: "Height",
5262    position: "Top"
5263  }
5264};
5265function Ia(t, e, s, r) {
5266  const n = s[e], { length: o, position: L } = EL[e], d = n.current, l = s.time;
5267  n.current = t[`scroll${L}`], n.scrollLength = t[`scroll${o}`] - t[`client${o}`], n.offset.length = 0, n.offset[0] = 0, n.offset[1] = n.scrollLength, n.progress = /* @__PURE__ */ vt(0, n.scrollLength, n.current);
5268  const g = r - l;
5269  n.velocity = g > CL ? 0 : b5(n.current - d, g);
5270}
5271function RL(t, e, s) {
5272  Ia(t, "x", e, s), Ia(t, "y", e, s), e.time = s;
5273}
5274function DL(t, e) {
5275  const s = { x: 0, y: 0 };
5276  let r = t;
5277  for (; r && r !== e; )
5278    if (D5(r))
5279      s.x += r.offsetLeft, s.y += r.offsetTop, r = r.offsetParent;
5280    else if (r.tagName === "svg") {
5281      const n = r.getBoundingClientRect();
5282      r = r.parentElement;
5283      const o = r.getBoundingClientRect();
5284      s.x += n.left - o.left, s.y += n.top - o.top;
5285    } else if (r instanceof SVGGraphicsElement) {
5286      const { x: n, y: o } = r.getBBox();
5287      s.x += n, s.y += o;
5288      let L = null, d = r.parentNode;
5289      for (; !L; )
5290        d.tagName === "svg" && (L = d), d = r.parentNode;
5291      r = L;
5292    } else
5293      break;
5294  return s;
5295}
5296const q4 = {
5297  start: 0,
5298  center: 0.5,
5299  end: 1
5300};
5301function Pa(t, e, s = 0) {
5302  let r = 0;
5303  if (t in q4 && (t = q4[t]), typeof t == "string") {
5304    const n = parseFloat(t);
5305    t.endsWith("px") ? r = n : t.endsWith("%") ? t = n / 100 : t.endsWith("vw") ? r = n / 100 * document.documentElement.clientWidth : t.endsWith("vh") ? r = n / 100 * document.documentElement.clientHeight : t = n;
5306  }
5307  return typeof t == "number" && (r = e * t), s + r;
5308}
5309const zL = [0, 0];
5310function jL(t, e, s, r) {
5311  let n = Array.isArray(t) ? t : zL, o = 0, L = 0;
5312  return typeof t == "number" ? n = [t, t] : typeof t == "string" && (t = t.trim(), t.includes(" ") ? n = t.split(" ") : n = [t, q4[t] ? t : "0"]), o = Pa(n[0], s, r), L = Pa(n[1], e), o - L;
5313}
5314const OL = {
5315  All: [
5316    [0, 0],
5317    [1, 1]
5318  ]
5319}, VL = { x: 0, y: 0 };
5320function HL(t) {
5321  return "getBBox" in t && t.tagName !== "svg" ? t.getBBox() : { width: t.clientWidth, height: t.clientHeight };
5322}
5323function ZL(t, e, s) {
5324  const { offset: r = OL.All } = s, { target: n = t, axis: o = "y" } = s, L = o === "y" ? "height" : "width", d = n !== t ? DL(n, t) : VL, l = n === t ? { width: t.scrollWidth, height: t.scrollHeight } : HL(n), g = {
5325    width: t.clientWidth,
5326    height: t.clientHeight
5327  };
5328  e[o].offset.length = 0;
5329  let f = !e[o].interpolate;
5330  const p = r.length;
5331  for (let M = 0; M < p; M++) {
5332    const u = jL(r[M], g[L], l[L], d[o]);
5333    !f && u !== e[o].interpolatorOffsets[M] && (f = !0), e[o].offset[M] = u;
5334  }
5335  f && (e[o].interpolate = N5(e[o].offset, Ss(r), { clamp: !1 }), e[o].interpolatorOffsets = [...e[o].offset]), e[o].progress = i1(0, 1, e[o].interpolate(e[o].current));
5336}
5337function WL(t, e = t, s) {
5338  if (s.x.targetOffset = 0, s.y.targetOffset = 0, e !== t) {
5339    let r = e;
5340    for (; r && r !== t; )
5341      s.x.targetOffset += r.offsetLeft, s.y.targetOffset += r.offsetTop, r = r.offsetParent;
5342  }
5343  s.x.targetLength = e === t ? e.scrollWidth : e.clientWidth, s.y.targetLength = e === t ? e.scrollHeight : e.clientHeight, s.x.containerLength = t.clientWidth, s.y.containerLength = t.clientHeight;
5344}
5345function $L(t, e, s, r = {}) {
5346  return {
5347    measure: (n) => {
5348      WL(t, r.target, s), RL(t, s, n), (r.offset || r.target) && ZL(t, s, r);
5349    },
5350    notify: () => e(s)
5351  };
5352}
5353const Rt = /* @__PURE__ */ new WeakMap(), Ca = /* @__PURE__ */ new WeakMap(), c4 = /* @__PURE__ */ new WeakMap(), Fa = (t) => t === document.scrollingElement ? window : t;
5354function E7(t, { container: e = document.scrollingElement, ...s } = {}) {
5355  if (!e)
5356    return Ne;
5357  let r = c4.get(e);
5358  r || (r = /* @__PURE__ */ new Set(), c4.set(e, r));
5359  const n = FL(), o = $L(e, t, n, s);
5360  if (r.add(o), !Rt.has(e)) {
5361    const d = () => {
5362      for (const p of r)
5363        p.measure(me.timestamp);
5364      $.preUpdate(l);
5365    }, l = () => {
5366      for (const p of r)
5367        p.notify();
5368    }, g = () => $.read(d);
5369    Rt.set(e, g);
5370    const f = Fa(e);
5371    window.addEventListener("resize", g, { passive: !0 }), e !== document.documentElement && Ca.set(e, Hn(e, g)), f.addEventListener("scroll", g, { passive: !0 }), g();
5372  }
5373  const L = Rt.get(e);
5374  return $.read(L, !1, !0), () => {
5375    Je(L);
5376    const d = c4.get(e);
5377    if (!d || (d.delete(o), d.size))
5378      return;
5379    const l = Rt.get(e);
5380    Rt.delete(e), l && (Fa(e).removeEventListener("scroll", l), Ca.get(e)?.(), window.removeEventListener("resize", l));
5381  };
5382}
5383const Ea = /* @__PURE__ */ new Map();
5384function qL(t) {
5385  const e = { value: 0 }, s = E7((r) => {
5386    e.value = r[t.axis].progress * 100;
5387  }, t);
5388  return { currentTime: e, cancel: s };
5389}
5390function R7({ source: t, container: e, ...s }) {
5391  const { axis: r } = s;
5392  t && (e = t);
5393  const n = Ea.get(e) ?? /* @__PURE__ */ new Map();
5394  Ea.set(e, n);
5395  const o = s.target ?? "self", L = n.get(o) ?? {}, d = r + (s.offset ?? []).join(",");
5396  return L[d] || (L[d] = !s.target && Ns() ? new ScrollTimeline({ source: e, axis: r }) : qL({ container: e, ...s })), L[d];
5397}
5398function UL(t, e) {
5399  const s = R7(e);
5400  return t.attachTimeline({
5401    timeline: e.target ? void 0 : s,
5402    observe: (r) => (r.pause(), qs((n) => {
5403      r.time = r.iterationDuration * n;
5404    }, s))
5405  });
5406}
5407function GL(t) {
5408  return t.length === 2;
5409}
5410function JL(t, e) {
5411  return GL(t) ? E7((s) => {
5412    t(s[e.axis].progress, s);
5413  }, e) : qs(t, R7(e));
5414}
5415function KL(t, { axis: e = "y", container: s = document.scrollingElement, ...r } = {}) {
5416  if (!s)
5417    return Ne;
5418  const n = { axis: e, container: s, ...r };
5419  return typeof t == "function" ? JL(t, n) : UL(t, n);
5420}
5421const YL = () => ({
5422  scrollX: Ue(0),
5423  scrollY: Ue(0),
5424  scrollXProgress: Ue(0),
5425  scrollYProgress: Ue(0)
5426}), A2 = (t) => t ? !t.current : !1;
5427function D7({ container: t, target: e, ...s } = {}) {
5428  const r = St(YL), n = H(null), o = H(!1), L = Ge(() => (n.current = KL((d, { x: l, y: g }) => {
5429    r.scrollX.set(l.current), r.scrollXProgress.set(l.progress), r.scrollY.set(g.current), r.scrollYProgress.set(g.progress);
5430  }, {
5431    ...s,
5432    container: t?.current || void 0,
5433    target: e?.current || void 0
5434  }), () => {
5435    n.current?.();
5436  }), [t, e, JSON.stringify(s.offset)]);
5437  return w3(() => {
5438    if (o.current = !1, A2(t) || A2(e)) {
5439      o.current = !0;
5440      return;
5441    } else
5442      return L();
5443  }, [L]), q(() => {
5444    if (o.current)
5445      return Xt(!A2(t)), Xt(!A2(e)), L();
5446  }, [L]), r;
5447}
5448function z7(t) {
5449  const e = St(() => Ue(t)), { isStatic: s } = oe(m2);
5450  if (s) {
5451    const [, r] = j(t);
5452    q(() => e.on("change", r), []);
5453  }
5454  return e;
5455}
5456function j7(t, e) {
5457  const s = z7(e()), r = () => s.set(e());
5458  return r(), w3(() => {
5459    const n = () => $.preRender(r, !1, !0), o = t.map((L) => L.on("change", n));
5460    return () => {
5461      o.forEach((L) => L()), Je(r);
5462    };
5463  }), s;
5464}
5465function XL(t) {
5466  Ut.current = [], t();
5467  const e = j7(Ut.current, t);
5468  return Ut.current = void 0, e;
5469}
5470function O7(t, e, s, r) {
5471  if (typeof t == "function")
5472    return XL(t);
5473  const n = typeof e == "function" ? e : Wn(e, s, r);
5474  return Array.isArray(t) ? Ra(t, n) : Ra([t], ([o]) => n(o));
5475}
5476function Ra(t, e) {
5477  const s = St(() => []);
5478  return j7(t, () => {
5479    s.length = 0;
5480    const r = t.length;
5481    for (let n = 0; n < r; n++)
5482      s[n] = t[n].get();
5483    return e(s);
5484  });
5485}
5486function QL(t, e = {}) {
5487  const { isStatic: s } = oe(m2), r = () => xe(t) ? t.get() : t;
5488  if (s)
5489    return O7(r);
5490  const n = z7(r());
5491  return f2(() => $n(n, t, e), [n, JSON.stringify(e)]), n;
5492}
5493const ec = {
5494  some: 0,
5495  all: 1
5496};
5497function tc(t, e, { root: s, margin: r, amount: n = "some" } = {}) {
5498  const o = R5(t), L = /* @__PURE__ */ new WeakMap(), d = (g) => {
5499    g.forEach((f) => {
5500      const p = L.get(f.target);
5501      if (f.isIntersecting !== !!p)
5502        if (f.isIntersecting) {
5503          const M = e(f.target, f);
5504          typeof M == "function" ? L.set(f.target, M) : l.unobserve(f.target);
5505        } else typeof p == "function" && (p(f), L.delete(f.target));
5506    });
5507  }, l = new IntersectionObserver(d, {
5508    root: s,
5509    rootMargin: r,
5510    threshold: typeof n == "number" ? n : ec[n]
5511  });
5512  return o.forEach((g) => l.observe(g)), () => l.disconnect();
5513}
5514function Nt(t, { root: e, margin: s, amount: r, once: n = !1, initial: o = !1 } = {}) {
5515  const [L, d] = j(o);
5516  return q(() => {
5517    if (!t.current || n && L)
5518      return;
5519    const l = () => (d(!0), n ? void 0 : () => d(!1)), g = {
5520      root: e && e.current || void 0,
5521      margin: s,
5522      amount: r
5523    };
5524    return tc(t.current, l, g);
5525  }, [e, t, s, n, r]), L;
5526}
5527/**
5528 * @license lucide-react v0.487.0 - ISC
5529 *
5530 * This source code is licensed under the ISC license.
5531 * See the LICENSE file in the root directory of this source tree.
5532 */
5533const ac = (t) => t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), sc = (t) => t.replace(
5534  /^([A-Z])|[\s-_]+(\w)/g,
5535  (e, s, r) => r ? r.toUpperCase() : s.toLowerCase()
5536), Da = (t) => {
5537  const e = sc(t);
5538  return e.charAt(0).toUpperCase() + e.slice(1);
5539}, V7 = (...t) => t.filter((e, s, r) => !!e && e.trim() !== "" && r.indexOf(e) === s).join(" ").trim();
5540/**
5541 * @license lucide-react v0.487.0 - ISC
5542 *
5543 * This source code is licensed under the ISC license.
5544 * See the LICENSE file in the root directory of this source tree.
5545 */
5546var ic = {
5547  xmlns: "http://www.w3.org/2000/svg",
5548  width: 24,
5549  height: 24,
5550  viewBox: "0 0 24 24",
5551  fill: "none",
5552  stroke: "currentColor",
5553  strokeWidth: 2,
5554  strokeLinecap: "round",
5555  strokeLinejoin: "round"
5556};
5557/**
5558 * @license lucide-react v0.487.0 - ISC
5559 *
5560 * This source code is licensed under the ISC license.
5561 * See the LICENSE file in the root directory of this source tree.
5562 */
5563const rc = Tt(
vendor: 6,492 bytes, lines 5564-5785
5564  ({
5565    color: t = "currentColor",
5566    size: e = 24,
5567    strokeWidth: s = 2,
5568    absoluteStrokeWidth: r,
5569    className: n = "",
5570    children: o,
5571    iconNode: L,
5572    ...d
5573  }, l) => s1(
5574    "svg",
5575    {
5576      ref: l,
5577      ...ic,
5578      width: e,
5579      height: e,
5580      stroke: t,
5581      strokeWidth: r ? Number(s) * 24 / Number(e) : s,
5582      className: V7("lucide", n),
5583      ...d
5584    },
5585    [
5586      ...L.map(([g, f]) => s1(g, f)),
5587      ...Array.isArray(o) ? o : [o]
5588    ]
5589  )
5590);
5591/**
5592 * @license lucide-react v0.487.0 - ISC
5593 *
5594 * This source code is licensed under the ISC license.
5595 * See the LICENSE file in the root directory of this source tree.
5596 */
5597const T = (t, e) => {
5598  const s = Tt(
5599    ({ className: r, ...n }, o) => s1(rc, {
5600      ref: o,
5601      iconNode: e,
5602      className: V7(
5603        `lucide-${ac(Da(t))}`,
5604        `lucide-${t}`,
5605        r
5606      ),
5607      ...n
5608    })
5609  );
5610  return s.displayName = Da(t), s;
5611};
5612/**
5613 * @license lucide-react v0.487.0 - ISC
5614 *
5615 * This source code is licensed under the ISC license.
5616 * See the LICENSE file in the root directory of this source tree.
5617 */
5618const nc = [
5619  ["circle", { cx: "16", cy: "4", r: "1", key: "1grugj" }],
5620  ["path", { d: "m18 19 1-7-6 1", key: "r0i19z" }],
5621  ["path", { d: "m5 8 3-3 5.5 3-2.36 3.5", key: "9ptxx2" }],
5622  ["path", { d: "M4.24 14.5a5 5 0 0 0 6.88 6", key: "10kmtu" }],
5623  ["path", { d: "M13.76 17.5a5 5 0 0 0-6.88-6", key: "2qq6rc" }]
5624], _2 = T("accessibility", nc);
5625/**
5626 * @license lucide-react v0.487.0 - ISC
5627 *
5628 * This source code is licensed under the ISC license.
5629 * See the LICENSE file in the root directory of this source tree.
5630 */
5631const oc = [
5632  [
5633    "path",
5634    {
5635      d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
5636      key: "169zse"
5637    }
5638  ]
5639], N3 = T("activity", oc);
5640/**
5641 * @license lucide-react v0.487.0 - ISC
5642 *
5643 * This source code is licensed under the ISC license.
5644 * See the LICENSE file in the root directory of this source tree.
5645 */
5646const Lc = [
5647  [
5648    "path",
5649    {
5650      d: "M12 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z",
5651      key: "3s7exb"
5652    }
5653  ],
5654  ["path", { d: "M10 2c1 .5 2 2 2 5", key: "fcco2y" }]
5655], cc = T("apple", Lc);
5656/**
5657 * @license lucide-react v0.487.0 - ISC
5658 *
5659 * This source code is licensed under the ISC license.
5660 * See the LICENSE file in the root directory of this source tree.
5661 */
5662const lc = [
5663  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
5664  ["path", { d: "M19 12H5", key: "x3x0zl" }]
5665], O1 = T("arrow-left", lc);
5666/**
5667 * @license lucide-react v0.487.0 - ISC
5668 *
5669 * This source code is licensed under the ISC license.
5670 * See the LICENSE file in the root directory of this source tree.
5671 */
5672const dc = [
5673  ["path", { d: "M5 12h14", key: "1ays0h" }],
5674  ["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
5675], D = T("arrow-right", dc);
5676/**
5677 * @license lucide-react v0.487.0 - ISC
5678 *
5679 * This source code is licensed under the ISC license.
5680 * See the LICENSE file in the root directory of this source tree.
5681 */
5682const gc = [
5683  ["path", { d: "M7 7h10v10", key: "1tivn9" }],
5684  ["path", { d: "M7 17 17 7", key: "1vkiza" }]
5685], fc = T("arrow-up-right", gc);
5686/**
5687 * @license lucide-react v0.487.0 - ISC
5688 *
5689 * This source code is licensed under the ISC license.
5690 * See the LICENSE file in the root directory of this source tree.
5691 */
5692const pc = [
5693  ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
5694  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
5695  ["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
5696], Mc = T("banknote", pc);
5697/**
5698 * @license lucide-react v0.487.0 - ISC
5699 *
5700 * This source code is licensed under the ISC license.
5701 * See the LICENSE file in the root directory of this source tree.
5702 */
5703const uc = [
5704  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
5705  [
5706    "path",
5707    {
5708      d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
5709      key: "11g9vi"
5710    }
5711  ]
5712], H7 = T("bell", uc);
5713/**
5714 * @license lucide-react v0.487.0 - ISC
5715 *
5716 * This source code is licensed under the ISC license.
5717 * See the LICENSE file in the root directory of this source tree.
5718 */
5719const hc = [
5720  ["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
5721  ["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
5722  [
5723    "path",
5724    {
5725      d: "M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",
5726      key: "11g9vi"
5727    }
5728  ],
5729  ["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
5730], mc = T("bell-ring", hc);
5731/**
5732 * @license lucide-react v0.487.0 - ISC
5733 *
5734 * This source code is licensed under the ISC license.
5735 * See the LICENSE file in the root directory of this source tree.
5736 */
5737const xc = [
5738  ["path", { d: "M12 7v14", key: "1akyts" }],
5739  [
5740    "path",
5741    {
5742      d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",
5743      key: "ruj8y"
5744    }
5745  ]
5746], Z7 = T("book-open", xc);
5747/**
5748 * @license lucide-react v0.487.0 - ISC
5749 *
5750 * This source code is licensed under the ISC license.
5751 * See the LICENSE file in the root directory of this source tree.
5752 */
5753const _c = [
5754  ["path", { d: "M12 8V4H8", key: "hb8ula" }],
5755  ["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
5756  ["path", { d: "M2 14h2", key: "vft8re" }],
5757  ["path", { d: "M20 14h2", key: "4cs60a" }],
5758  ["path", { d: "M15 13v2", key: "1xurst" }],
5759  ["path", { d: "M9 13v2", key: "rq6x2g" }]
5760], K5 = T("bot", _c);
5761/**
5762 * @license lucide-react v0.487.0 - ISC
5763 *
5764 * This source code is licensed under the ISC license.
5765 * See the LICENSE file in the root directory of this source tree.
5766 */
5767const bc = [
5768  [
5769    "path",
5770    {
5771      d: "M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",
5772      key: "l5xja"
5773    }
5774  ],
5775  [
5776    "path",
5777    {
5778      d: "M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",
5779      key: "ep3f8r"
5780    }
5781  ],
5782  ["path", { d: "M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4", key: "1p4c4q" }],
5783  ["path", { d: "M17.599 6.5a3 3 0 0 0 .399-1.375", key: "tmeiqw" }],
5784  ["path", { d: "M6.003 5.125A3 3 0 0 0 6.401 6.5", key: "105sqy" }],
5785  ["path", { d: "M3.477 10.896a4 4 0 0 1 .585-.396", key: "ql3yin" }
5785],
5786  ["path", { d: "M19.938 10.5a4 4 0 0 1 .585.396", key: "1qfode" }],
5787  ["path", { d: "M6 18a4 4 0 0 1-1.967-.516", key: "2e4loj" }],
5788  ["path", { d: "M19.967 17.484A4 4 0 0 1 18 18", key: "159ez6" }]
5789], vc = T("brain", bc);
5790/**
5791 * @license lucide-react v0.487.0 - ISC
5792 *
5793 * This source code is licensed under the ISC license.
5794 * See the LICENSE file in the root directory of this source tree.
5795 */
5796const yc = [
5797  ["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
5798  ["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
5799], W7 = T("briefcase", yc);
5800/**
5801 * @license lucide-react v0.487.0 - ISC
5802 *
5803 * This source code is licensed under the ISC license.
5804 * See the LICENSE file in the root directory of this source tree.
5805 */
5806const wc = [
5807  ["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
5808  ["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
5809  ["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
5810  ["path", { d: "M10 6h4", key: "1itunk" }],
5811  ["path", { d: "M10 10h4", key: "tcdvrf" }],
5812  ["path", { d: "M10 14h4", key: "kelpxr" }],
5813  ["path", { d: "M10 18h4", key: "1ulq68" }]
5814], k1 = T("building-2", wc);
5815/**
5816 * @license lucide-react v0.487.0 - ISC
5817 *
5818 * This source code is licensed under the ISC license.
5819 * See the LICENSE file in the root directory of this source tree.
5820 */
5821const Tc = [
5822  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
5823  ["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
5824  ["path", { d: "M8 6h.01", key: "1dz90k" }],
5825  ["path", { d: "M16 6h.01", key: "1x0f13" }],
5826  ["path", { d: "M12 6h.01", key: "1vi96p" }],
5827  ["path", { d: "M12 10h.01", key: "1nrarc" }],
5828  ["path", { d: "M12 14h.01", key: "1etili" }],
5829  ["path", { d: "M16 10h.01", key: "1m94wz" }],
5830  ["path", { d: "M16 14h.01", key: "1gbofw" }],
5831  ["path", { d: "M8 10h.01", key: "19clt8" }],
5832  ["path", { d: "M8 14h.01", key: "6423bh" }]
5833], Sc = T("building", Tc);
5834/**
5835 * @license lucide-react v0.487.0 - ISC
5836 *
5837 * This source code is licensed under the ISC license.
5838 * See the LICENSE file in the root directory of this source tree.
5839 */
5840const Bc = [
5841  ["path", { d: "M8 6v6", key: "18i7km" }],
5842  ["path", { d: "M15 6v6", key: "1sg6z9" }],
5843  ["path", { d: "M2 12h19.6", key: "de5uta" }],
5844  [
5845    "path",
5846    {
5847      d: "M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3",
5848      key: "1wwztk"
5849    }
5850  ],
5851  ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }],
5852  ["path", { d: "M9 18h5", key: "lrx6i" }],
5853  ["circle", { cx: "16", cy: "18", r: "2", key: "1v4tcr" }]
5854], kc = T("bus", Bc);
5855/**
5856 * @license lucide-react v0.487.0 - ISC
5857 *
5858 * This source code is licensed under the ISC license.
5859 * See the LICENSE file in the root directory of this source tree.
5860 */
5861const Ac = [
5862  ["path", { d: "M8 2v4", key: "1cmpym" }],
5863  ["path", { d: "M16 2v4", key: "4m81vk" }],
5864  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
5865  ["path", { d: "M3 10h18", key: "8toen8" }],
5866  ["path", { d: "m9 16 2 2 4-4", key: "19s6y9" }]
5867], $7 = T("calendar-check", Ac);
5868/**
5869 * @license lucide-react v0.487.0 - ISC
5870 *
5871 * This source code is licensed under the ISC license.
5872 * See the LICENSE file in the root directory of this source tree.
5873 */
5874const Nc = [
5875  ["path", { d: "M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5", key: "1osxxc" }],
5876  ["path", { d: "M16 2v4", key: "4m81vk" }],
5877  ["path", { d: "M8 2v4", key: "1cmpym" }],
5878  ["path", { d: "M3 10h5", key: "r794hk" }],
5879  ["path", { d: "M17.5 17.5 16 16.3V14", key: "akvzfd" }],
5880  ["circle", { cx: "16", cy: "16", r: "6", key: "qoo3c4" }]
5881];
5882T("calendar-clock", Nc);
5883/**
5884 * @license lucide-react v0.487.0 - ISC
5885 *
5886 * This source code is licensed under the ISC license.
5887 * See the LICENSE file in the root directory of this source tree.
5888 */
5889const Ic = [
5890  ["path", { d: "M8 2v4", key: "1cmpym" }],
5891  ["path", { d: "M16 2v4", key: "4m81vk" }],
5892  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }
5892],
5893  ["path", { d: "M3 10h18", key: "8toen8" }]
5894], i2 = T("calendar", Ic);
5895/**
5896 * @license lucide-react v0.487.0 - ISC
5897 *
5898 * This source code is licensed under the ISC license.
5899 * See the LICENSE file in the root directory of this source tree.
5900 */
5901const Pc = [
5902  [
5903    "path",
5904    { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8", key: "1imjwt" }
5905  ],
5906  ["path", { d: "M7 14h.01", key: "1qa3f1" }],
5907  ["path", { d: "M17 14h.01", key: "7oqj8z" }],
5908  ["rect", { width: "18", height: "8", x: "3", y: "10", rx: "2", key: "a7itu8" }],
5909  ["path", { d: "M5 18v2", key: "ppbyun" }],
5910  ["path", { d: "M19 18v2", key: "gy7782" }]
5911], Cc = T("car-front", Pc);
5912/**
5913 * @license lucide-react v0.487.0 - ISC
5914 *
5915 * This source code is licensed under the ISC license.
5916 * See the LICENSE file in the root directory of this source tree.
5917 */
5918const Fc = [
5919  [
5920    "path",
5921    {
5922      d: "M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",
5923      key: "5owen"
5924    }
5925  ],
5926  ["circle", { cx: "7", cy: "17", r: "2", key: "u2ysq9" }],
5927  ["path", { d: "M9 17h6", key: "r8uit2" }],
5928  ["circle", { cx: "17", cy: "17", r: "2", key: "axvx0g" }]
5929], q7 = T("car", Fc);
5930/**
5931 * @license lucide-react v0.487.0 - ISC
5932 *
5933 * This source code is licensed under the ISC license.
5934 * See the LICENSE file in the root directory of this source tree.
5935 */
5936const Ec = [
5937  ["path", { d: "M3 3v16a2 2 0 0 0 2 2h16", key: "c24i48" }],
5938  ["path", { d: "M18 17V9", key: "2bz60n" }],
5939  ["path", { d: "M13 17V5", key: "1frdt8" }],
5940  ["path", { d: "M8 17v-3", key: "17ska0" }]
5941], y1 = T("chart-column", Ec);
5942/**
5943 * @license lucide-react v0.487.0 - ISC
5944 *
5945 * This source code is licensed under the ISC license.
5946 * See the LICENSE file in the root directory of this source tree.
5947 */
5948const Rc = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], Dc = T("check", Rc);
5949/**
5950 * @license lucide-react v0.487.0 - ISC
5951 *
5952 * This source code is licensed under the ISC license.
5953 * See the LICENSE file in the root directory of this source tree.
5954 */
5955const zc = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]], t3 = T("chevron-down", zc);
5956/**
5957 * @license lucide-react v0.487.0 - ISC
5958 *
5959 * This source code is licensed under the ISC license.
5960 * See the LICENSE file in the root directory of this source tree.
5961 */
5962const jc = [
5963  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
5964  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
5965  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
5966], Y5 = T("circle-alert", jc);
5967/**
5968 * @license lucide-react v0.487.0 - ISC
5969 *
5970 * This source code is licensed under the ISC license.
5971 * See the LICENSE file in the root directory of this source tree.
5972 */
5973const Oc = [
5974  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
5975  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
5976], b2 = T("circle-check-big", Oc);
5977/**
5978 * @license lucide-react v0.487.0 - ISC
5979 *
5980 * This source code is licensed under the ISC license.
5981 * See the LICENSE file in the root directory of this source tree.
5982 */
5983const Vc = [
5984  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
5985  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
5986], G = T("circle-check", Vc);
5987/**
5988 * @license lucide-react v0.487.0 - ISC
5989 *
5990 * This source code is licensed under the ISC license.
5991 * See the LICENSE file in the root directory of this source tree.
5992 */
5993const Hc = [
5994  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
5995  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }]
5996], w1 = T("circle-dot", Hc);
5997/**
5998 * @license lucide-react v0.487.0 - ISC
5999 *
6000 * This source code is licensed under the ISC license.
6001 * See the LICENSE file in the root directory of this source tree.
6002 */
6003const Zc = [
6004  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
6005  [
6006    "path",
6007    {
6008      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
6009      key: "116196"
6010    }
6011  ],
6012  ["path", { d: "m9 14 2 2 4-4", key: "df797q" }]
6013], Wc = T("clipboard-check", Zc);
6014/**
6015 * @license lucide-react v0.487.0 - ISC
6016 *
6017 * This source code is licensed under the ISC license.
6018 * See the LICENSE file in the root directory of this source tree.
6019 */
6020const $c = [
6021  ["rect", { width: "8", height: "4", x: "8", y: "2", rx: "1", ry: "1", key: "tgr4d6" }],
6022  [
6023    "path",
6024    {
6025      d: "M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",
6026      key: "116196"
6027    }
6028  ],
6029  ["path", { d: "M12 11h4", key: "1jrz19" }],
6030  ["path", { d: "M12 16h4", key: "n85exb" }],
6031  ["path", { d: "M8 11h.01", key: "1dfujw" }],
6032  ["path", { d: "M8 16h.01", key: "18s6g9" }]
6033], T1 = T("clipboard-list", $c);
6034/**
6035 * @license lucide-react v0.487.0 - ISC
6036 *
6037 * This source code is licensed under the ISC license.
6038 * See the LICENSE file in the root directory of this source tree.
6039 */
6040const qc = [
6041  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
6042  ["polyline", { points: "12 6 12 12 16 14", key: "68esgv" }]
6043], It = T("clock", qc);
6044/**
6045 * @license lucide-react v0.487.0 - ISC
6046 *
6047 * This source code is licensed under the ISC license.
6048 * See the LICENSE file in the root directory of this source tree.
6049 */
6050const Uc = [
6051  ["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
6052], U4 = T("cloud", Uc);
6053/**
6054 * @license lucide-react v0.487.0 - ISC
6055 *
6056 * This source code is licensed under the ISC license.
6057 * See the LICENSE file in the root directory of this source tree.
6058 */
6059const Gc = [
6060  ["rect", { width: "20", height: "14", x: "2", y: "5", rx: "2", key: "ynyp8z" }],
6061  ["line", { x1: "2", x2: "22", y1: "10", y2: "10", key: "1b3vmo" }]
6062], U7 = T("credit-card", Gc);
6063/**
6064 * @license lucide-react v0.487.0 - ISC
6065 *
6066 * This source code is licensed under the ISC license.
6067 * See the LICENSE file in the root directory of this source tree.
6068 */
6069const Jc = [
6070  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
6071  ["polyline", { points: "7 10 12 15 17 10", key: "2ggqvy" }],
6072  ["line", { x1: "12", x2: "12", y1: "15", y2: "3", key: "1vk2je" }]
6073], Kc = T("download", Jc);
6074/**
6075 * @license lucide-react v0.487.0 - ISC
6076 *
6077 * This source code is licensed under the ISC license.
6078 * See the LICENSE file in the root directory of this source tree.
6079 */
6080const Yc = [
6081  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
6082  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
6083  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
6084], Xc = T("external-link", Yc);
6085/**
6086 * @license lucide-react v0.487.0 - ISC
6087 *
6088 * This source code is licensed under the ISC license.
6089 * See the LICENSE file in the root directory of this source tree.
6090 */
6091const Qc = [
6092  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
6093  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
6094  ["path", { d: "M10 9H8", key: "b1mrlr" }],
6095  ["path", { d: "M16 13H8", key: "t4e002" }],
6096  ["path", { d: "M16 17H8", key: "z1uh3a" }]
6097], G7 = T("file-text", Qc);
6098/**
6099 * @license lucide-react v0.487.0 - ISC
6100 *
6101 * This source code is licensed under the ISC license.
6102 * See the LICENSE file in the root directory of this source tree.
6103 */
6104const el = [
6105  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
6106  ["path", { d: "M12 9v4", key: "juzpu7" }],
6107  ["path", { d: "M12 17h.01", key: "p32p05" }]
6108], tl = T("file-warning", el);
6109/**
6110 * @license lucide-react v0.487.0 - ISC
6111 *
6112 * This source code is licensed under the ISC license.
6113 * See the LICENSE file in the root directory of this source tree.
6114 */
6115const al = [
6116  ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
6117  ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
6118  ["path", { d: "m14.5 12.5-5 5", key: "b62r18" }],
6119  ["path", { d: "m9.5 12.5 5 5", key: "1rk7el" }]
6120], sl = T("file-x", al);
6121/**
6122 * @license lucide-react v0.487.0 - ISC
6123 *
6124 * This source code is licensed under the ISC license.
6125 * See the LICENSE file in the root directory of this source tree.
6126 */
6127const il = [
6128  ["path", { d: "m12 14 4-4", key: "9kzdfg" }],
6129  ["path", { d: "M3.34 19a10 10 0 1 1 17.32 0", key: "19p75a" }]
6130], rl = T("gauge", il);
6131/**
6132 * @license lucide-react v0.487.0 - ISC
6133 *
6134 * This source code is licensed under the ISC license.
6135 * See the LICENSE file in the root directory of this source tree.
6136 */
6137const nl = [
6138  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
6139  ["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
6140  ["path", { d: "M2 12h20", key: "9i4pu4" }]
6141], J1 = T("globe", nl);
6142/**
6143 * @license lucide-react v0.487.0 - ISC
6144 *
6145 * This source code is licensed under the ISC license.
6146 * See the LICENSE file in the root directory of this source tree.
6147 */
6148const ol = [
6149  [
6150    "path",
6151    {
6152      d: "M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",
6153      key: "j76jl0"
6154    }
6155  ],
6156  ["path", { d: "M22 10v6", key: "1lu8f3" }],
6157  ["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
6158], Ll = T("graduation-cap", ol);
6159/**
6160 * @license lucide-react v0.487.0 - ISC
6161 *
6162 * This source code is licensed under the ISC license.
6163 * See the LICENSE file in the root directory of this source tree.
6164 */
6165const cl = [
6166  ["path", { d: "m11 17 2 2a1 1 0 1 0 3-3", key: "efffak" }],
6167  [
6168    "path",
6169    {
6170      d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",
6171      key: "9pr0kb"
6172    }
6173  ],
6174  ["path", { d: "m21 3 1 11h-2", key: "1tisrp" }],
6175  ["path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3", key: "1uvwmv" }],
6176  ["path", { d: "M3 4h8", key: "1ep09j" }]
6177], J7 = T("handshake", cl);
6178/**
6179 * @license lucide-react v0.487.0 - ISC
6180 *
6181 * This source code is licensed under the ISC license.
6182 * See the LICENSE file in the root directory of this source tree.
6183 */
6184const ll = [
6185  [
6186    "path",
6187    {
6188      d: "M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",
6189      key: "1xhozi"
6190    }
6191  ]
6192], dl = T("headphones", ll);
6193/**
6194 * @license lucide-react v0.487.0 - ISC
6195 *
6196 * This source code is licensed under the ISC license.
6197 * See the LICENSE file in the root directory of this source tree.
6198 */
6199const gl = [
6200  ["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
6201  [
6202    "path",
6203    {
6204      d: "M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",
6205      key: "1d0kgt"
6206    }
6207  ]
6208], fl = T("house", gl);
6209/**
6210 * @license lucide-react v0.487.0 - ISC
6211 *
6212 * This source code is licensed under the ISC license.
6213 * See the LICENSE file in the root directory of this source tree.
6214 */
6215const pl = [
6216  [
6217    "path",
6218    {
6219      d: "M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",
6220      key: "zw3jo"
6221    }
6222  ],
6223  [
6224    "path",
6225    {
6226      d: "M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",
6227      key: "1wduqc"
6228    }
6229  ],
6230  [
6231    "path",
6232    {
6233      d: "M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",
6234      key: "kqbvx6"
6235    }
6236  ]
6237], I3 = T("layers", pl);
6238/**
6239 * @license lucide-react v0.487.0 - ISC
6240 *
6241 * This source code is licensed under the ISC license.
6242 * See the LICENSE file in the root directory of this source tree.
6243 */
6244const Ml = [
6245  ["rect", { width: "7", height: "7", x: "3", y: "3", rx: "1", key: "1g98yp" }],
6246  ["rect", { width: "7", height: "7", x: "14", y: "3", rx: "1", key: "6d4xhi" }],
6247  ["rect", { width: "7", height: "7", x: "14", y: "14", rx: "1", key: "nxv5o0" }
6247],
6248  ["rect", { width: "7", height: "7", x: "3", y: "14", rx: "1", key: "1bb6yr" }]
6249], P3 = T("layout-grid", Ml);
6250/**
6251 * @license lucide-react v0.487.0 - ISC
6252 *
6253 * This source code is licensed under the ISC license.
6254 * See the LICENSE file in the root directory of this source tree.
6255 */
6256const ul = [
6257  [
6258    "path",
6259    {
6260      d: "M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",
6261      key: "nnexq3"
6262    }
6263  ],
6264  ["path", { d: "M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12", key: "mt58a7" }]
6265], hl = T("leaf", ul);
6266/**
6267 * @license lucide-react v0.487.0 - ISC
6268 *
6269 * This source code is licensed under the ISC license.
6270 * See the LICENSE file in the root directory of this source tree.
6271 */
6272const ml = [
6273  [
6274    "path",
6275    {
6276      d: "M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",
6277      key: "1gvzjb"
6278    }
6279  ],
6280  ["path", { d: "M9 18h6", key: "x1upvd" }],
6281  ["path", { d: "M10 22h4", key: "ceow96" }]
6282], xl = T("lightbulb", ml);
6283/**
6284 * @license lucide-react v0.487.0 - ISC
6285 *
6286 * This source code is licensed under the ISC license.
6287 * See the LICENSE file in the root directory of this source tree.
6288 */
6289const _l = [
6290  ["path", { d: "M9 17H7A5 5 0 0 1 7 7h2", key: "8i5ue5" }],
6291  ["path", { d: "M15 7h2a5 5 0 1 1 0 10h-2", key: "1b9ql8" }],
6292  ["line", { x1: "8", x2: "16", y1: "12", y2: "12", key: "1jonct" }]
6293], bl = T("link-2", _l);
6294/**
6295 * @license lucide-react v0.487.0 - ISC
6296 *
6297 * This source code is licensed under the ISC license.
6298 * See the LICENSE file in the root directory of this source tree.
6299 */
6300const vl = [
6301  [
6302    "path",
6303    {
6304      d: "M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",
6305      key: "c2jq9f"
6306    }
6307  ],
6308  ["rect", { width: "4", height: "12", x: "2", y: "9", key: "mk3on5" }],
6309  ["circle", { cx: "4", cy: "4", r: "2", key: "bt5ra8" }]
6310], K7 = T("linkedin", vl);
6311/**
6312 * @license lucide-react v0.487.0 - ISC
6313 *
6314 * This source code is licensed under the ISC license.
6315 * See the LICENSE file in the root directory of this source tree.
6316 */
6317const yl = [
6318  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }],
6319  ["path", { d: "m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7", key: "1ocrg3" }]
6320], K1 = T("mail", yl);
6321/**
6322 * @license lucide-react v0.487.0 - ISC
6323 *
6324 * This source code is licensed under the ISC license.
6325 * See the LICENSE file in the root directory of this source tree.
6326 */
6327const wl = [
6328  [
6329    "path",
6330    {
6331      d: "M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",
6332      key: "1r0f0z"
6333    }
6334  ],
6335  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
6336], Pt = T("map-pin", wl);
6337/**
6338 * @license lucide-react v0.487.0 - ISC
6339 *
6340 * This source code is licensed under the ISC license.
6341 * See the LICENSE file in the root directory of this source tree.
6342 */
6343const Tl = [
6344  [
6345    "path",
6346    {
6347      d: "M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",
6348      key: "169xi5"
6349    }
6350  ],
6351  ["path", { d: "M15 5.764v15", key: "1pn4in" }],
6352  ["path", { d: "M9 3.236v15", key: "1uimfh" }]
6353], S1 = T("map", Tl);
6354/**
6355 * @license lucide-react v0.487.0 - ISC
6356 *
6357 * This source code is licensed under the ISC license.
6358 * See the LICENSE file in the root directory of this source tree.
6359 */
6360const Sl = [
6361  ["polyline", { points: "15 3 21 3 21 9", key: "mznyad" }],
6362  ["polyline", { points: "9 21 3 21 3 15", key: "1avn1i" }],
6363  ["line", { x1: "21", x2: "14", y1: "3", y2: "10", key: "ota7mn" }],
6364  ["line", { x1: "3", x2: "10", y1: "21", y2: "14", key: "1atl0r" }]
6365], C3 = T("maximize-2", Sl);
6366/**
6367 * @license lucide-react v0.487.0 - ISC
6368 *
6369 * This source code is licensed under the ISC license.
6370 * See the LICENSE file in the root directory of this source tree.
6371 */
6372const Bl = [
6373  ["line", { x1: "4", x2: "20", y1: "12", y2: "12", key: "1e0a9i" }],
6374  ["line", { x1: "4", x2: "20", y1: "6", y2: "6", key: "1owob3" }],
6375  ["line", { x1: "4", x2: "20", y1: "18", y2: "18", key: "yk5zj1" }
6375]
6376], kl = T("menu", Bl);
6377/**
6378 * @license lucide-react v0.487.0 - ISC
6379 *
6380 * This source code is licensed under the ISC license.
6381 * See the LICENSE file in the root directory of this source tree.
6382 */
6383const Al = [
6384  ["path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z", key: "1lielz" }]
6385], Y7 = T("message-square", Al);
6386/**
6387 * @license lucide-react v0.487.0 - ISC
6388 *
6389 * This source code is licensed under the ISC license.
6390 * See the LICENSE file in the root directory of this source tree.
6391 */
6392const Nl = [
6393  ["path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z", key: "131961" }],
6394  ["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
6395  ["line", { x1: "12", x2: "12", y1: "19", y2: "22", key: "x3vr5v" }]
6396], Il = T("mic", Nl);
6397/**
6398 * @license lucide-react v0.487.0 - ISC
6399 *
6400 * This source code is licensed under the ISC license.
6401 * See the LICENSE file in the root directory of this source tree.
6402 */
6403const Pl = [["path", { d: "M5 12h14", key: "1ays0h" }]], Cl = T("minus", Pl);
6404/**
6405 * @license lucide-react v0.487.0 - ISC
6406 *
6407 * This source code is licensed under the ISC license.
6408 * See the LICENSE file in the root directory of this source tree.
6409 */
6410const Fl = [
6411  ["polygon", { points: "3 11 22 2 13 21 11 13 3 11", key: "1ltx0t" }]
6412], El = T("navigation", Fl);
6413/**
6414 * @license lucide-react v0.487.0 - ISC
6415 *
6416 * This source code is licensed under the ISC license.
6417 * See the LICENSE file in the root directory of this source tree.
6418 */
6419const Rl = [
6420  ["rect", { x: "16", y: "16", width: "6", height: "6", rx: "1", key: "4q2zg0" }],
6421  ["rect", { x: "2", y: "16", width: "6", height: "6", rx: "1", key: "8cvhb9" }],
6422  ["rect", { x: "9", y: "2", width: "6", height: "6", rx: "1", key: "1egb70" }],
6423  ["path", { d: "M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3", key: "1jsf9p" }],
6424  ["path", { d: "M12 12V8", key: "2874zd" }]
6425], X7 = T("network", Rl);
6426/**
6427 * @license lucide-react v0.487.0 - ISC
6428 *
6429 * This source code is licensed under the ISC license.
6430 * See the LICENSE file in the root directory of this source tree.
6431 */
6432const Dl = [
6433  [
6434    "path",
6435    {
6436      d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",
6437      key: "foiqr5"
6438    }
6439  ],
6440  ["path", { d: "M14.05 2a9 9 0 0 1 8 7.94", key: "vmijpz" }],
6441  ["path", { d: "M14.05 6A5 5 0 0 1 18 10", key: "13nbpp" }]
6442], Q7 = T("phone-call", Dl);
6443/**
6444 * @license lucide-react v0.487.0 - ISC
6445 *
6446 * This source code is licensed under the ISC license.
6447 * See the LICENSE file in the root directory of this source tree.
6448 */
6449const zl = [
6450  [
6451    "path",
6452    {
6453      d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",
6454      key: "foiqr5"
6455    }
6456  ]
6457], Y = T("phone", zl);
6458/**
6459 * @license lucide-react v0.487.0 - ISC
6460 *
6461 * This source code is licensed under the ISC license.
6462 * See the LICENSE file in the root directory of this source tree.
6463 */
6464const jl = [
6465  ["path", { d: "M19.07 4.93A10 10 0 0 0 6.99 3.34", key: "z3du51" }],
6466  ["path", { d: "M4 6h.01", key: "oypzma" }],
6467  ["path", { d: "M2.29 9.62A10 10 0 1 0 21.31 8.35", key: "qzzz0" }],
6468  ["path", { d: "M16.24 7.76A6 6 0 1 0 8.23 16.67", key: "1yjesh" }],
6469  ["path", { d: "M12 18h.01", key: "mhygvu" }],
6470  ["path", { d: "M17.99 11.66A6 6 0 0 1 15.77 16.67", key: "1u2y91" }],
6471  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
6472  ["path", { d: "m13.41 10.59 5.66-5.66", key: "mhq4k0" }]
6473], Ol = T("radar", jl);
6474/**
6475 * @license lucide-react v0.487.0 - ISC
6476 *
6477 * This source code is licensed under the ISC license.
6478 * See the LICENSE file in the root directory of this source tree.
6479 */
6480const Vl = [
6481  ["path", { d: "M4.9 19.1C1 15.2 1 8.8 4.9 4.9", key: "1vaf9d" }],
6482  ["path", { d: "M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5", key: "u1ii0m" }],
6483  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
6484  ["path", { d: "M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5", key: "1j5fej" }],
6485  ["path", { d: "M19.1 4.9C23 8.8 23 15.1 19.1 19", key: "10b0cb" }]
6486], Hl = T("radio", Vl);
6487/**
6488 * @license lucide-react v0.487.0 - ISC
6489 *
6490 * This source code is licensed under the ISC license.
6491 * See the LICENSE file in the root directory of this source tree.
6492 */
6493const Zl = [
6494  [
6495    "path",
6496    { d: "M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z", key: "q3az6g" }
6497  ],
6498  ["path", { d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8", key: "1h4pet" }],
6499  ["path", { d: "M12 17.5v-11", key: "1jc1ny" }]
6500], Wl = T("receipt", Zl);
6501/**
6502 * @license lucide-react v0.487.0 - ISC
6503 *
6504 * This source code is licensed under the ISC license.
6505 * See the LICENSE file in the root directory of this source tree.
6506 */
6507const $l = [
6508  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
6509  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
6510  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
6511  ["path", { d: "M8 16H3v5", key: "1cv678" }]
6512], ql = T("refresh-cw", $l);
6513/**
6514 * @license lucide-react v0.487.0 - ISC
6515 *
6516 * This source code is licensed under the ISC license.
6517 * See the LICENSE file in the root directory of this source tree.
6518 */
6519const Ul = [
6520  ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
6521  ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
6522], ei = T("rotate-ccw", Ul);
6523/**
6524 * @license lucide-react v0.487.0 - ISC
6525 *
6526 * This source code is licensed under the ISC license.
6527 * See the LICENSE file in the root directory of this source tree.
6528 */
6529const Gl = [
6530  ["path", { d: "M4 11a9 9 0 0 1 9 9", key: "pv89mb" }],
6531  ["path", { d: "M4 4a16 16 0 0 1 16 16", key: "k0647b" }],
6532  ["circle", { cx: "5", cy: "19", r: "1", key: "bfqh0e" }]
6533], X5 = T("rss", Gl);
6534/**
6535 * @license lucide-react v0.487.0 - ISC
6536 *
6537 * This source code is licensed under the ISC license.
6538 * See the LICENSE file in the root directory of this source tree.
6539 */
6540const Jl = [
6541  ["path", { d: "m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "7g6ntu" }],
6542  ["path", { d: "m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z", key: "ijws7r" }],
6543  ["path", { d: "M7 21h10", key: "1b0cd5" }],
6544  ["path", { d: "M12 3v18", key: "108xh3" }],
6545  ["path", { d: "M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2", key: "3gwbw2" }]
6546], Kl = T("scale", Jl);
6547/**
6548 * @license lucide-react v0.487.0 - ISC
6549 *
6550 * This source code is licensed under the ISC license.
6551 * See the LICENSE file in the root directory of this source tree.
6552 */
6553const Yl = [
6554  ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
6555  ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
6556  ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
6557  ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
6558  ["path", { d: "M7 12h10", key: "b7w52i" }]
6559], Xl = T("scan-line", Yl);
6560/**
6561 * @license lucide-react v0.487.0 - ISC
6562 *
6563 * This source code is licensed under the ISC license.
6564 * See the LICENSE file in the root directory of this source tree.
6565 */
6566const Ql = [
6567  ["circle", { cx: "6", cy: "6", r: "3", key: "1lh9wr" }],
6568  ["path", { d: "M8.12 8.12 12 12", key: "1alkpv" }],
6569  ["path", { d: "M20 4 8.12 15.88", key: "xgtan2" }],
6570  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
6571  ["path", { d: "M14.8 14.8 20 20", key: "ptml3r" }]
6572], Q5 = T("scissors", Ql);
6573/**
6574 * @license lucide-react v0.487.0 - ISC
6575 *
6576 * This source code is licensed under the ISC license.
6577 * See the LICENSE file in the root directory of this source tree.
6578 */
6579const ed = [
6580  [
6581    "path",
6582    {
6583      d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
6584      key: "1ffxy3"
6585    }
6586  ],
6587  ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
6588], ti = T("send", ed);
6589/**
6590 * @license lucide-react v0.487.0 - ISC
6591 *
6592 * This source code is licensed under the ISC license.
6593 * See the LICENSE file in the root directory of this source tree.
6594 */
6595const td = [
6596  [
6597    "path",
6598    {
6599      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
6600      key: "oel41y"
6601    }
6602  ],
6603  ["path", { d: "M12 8v4", key: "1got3b" }],
6604  ["path", { d: "M12 16h.01", key: "1drbdi" }]
6605], ad = T("shield-alert", td);
6606/**
6607 * @license lucide-react v0.487.0 - ISC
6608 *
6609 * This source code is licensed under the ISC license.
6610 * See the LICENSE file in the root directory of this source tree.
6611 */
6612const sd = [
6613  [
6614    "path",
6615    {
6616      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
6617      key: "oel41y"
6618    }
6619  ],
6620  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
6621], F3 = T("shield-check", sd);
6622/**
6623 * @license lucide-react v0.487.0 - ISC
6624 *
6625 * This source code is licensed under the ISC license.
6626 * See the LICENSE file in the root directory of this source tree.
6627 */
6628const id = [
6629  [
6630    "path",
6631    {
6632      d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
6633      key: "oel41y"
6634    }
6635  ]
6636], rd = T("shield", id);
6637/**
6638 * @license lucide-react v0.487.0 - ISC
6639 *
6640 * This source code is licensed under the ISC license.
6641 * See the LICENSE file in the root directory of this source tree.
6642 */
6643const nd = [
6644  ["path", { d: "m18 14 4 4-4 4", key: "10pe0f" }],
6645  ["path", { d: "m18 2 4 4-4 4", key: "pucp1d" }],
6646  ["path", { d: "M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22", key: "1ailkh" }],
6647  ["path", { d: "M2 6h1.972a4 4 0 0 1 3.6 2.2", key: "km57vx" }],
6648  ["path", { d: "M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45", key: "os18l9" }]
6649], ai = T("shuffle", nd);
6650/**
6651 * @license lucide-react v0.487.0 - ISC
6652 *
6653 * This source code is licensed under the ISC license.
6654 * See the LICENSE file in the root directory of this source tree.
6655 */
6656const od = [
6657  ["rect", { width: "14", height: "20", x: "5", y: "2", rx: "2", ry: "2", key: "1yt0o3" }],
6658  ["path", { d: "M12 18h.01", key: "mhygvu" }]
6659], Fe = T("smartphone", od);
6660/**
6661 * @license lucide-react v0.487.0 - ISC
6662 *
6663 * This source code is licensed under the ISC license.
6664 * See the LICENSE file in the root directory of this source tree.
6665 */
6666const Ld = [
6667  ["path", { d: "M7 20h10", key: "e6iznv" }],
6668  ["path", { d: "M10 20c5.5-2.5.8-6.4 3-10", key: "161w41" }],
6669  [
6670    "path",
6671    {
6672      d: "M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z",
6673      key: "9gtqwd"
6674    }
6675  ],
6676  [
6677    "path",
6678    {
6679      d: "M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z",
6680      key: "bkxnd2"
6681    }
6682  ]
6683], cd = T("sprout", Ld);
6684/**
6685 * @license lucide-react v0.487.0 - ISC
6686 *
6687 * This source code is licensed under the ISC license.
6688 * See the LICENSE file in the root directory of this source tree.
6689 */
6690const ld = [
6691  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
6692  ["path", { d: "M8 12h8", key: "1wcyev" }],
6693  ["path", { d: "M12 8v8", key: "napkw2" }]
6694], dd = T("square-plus", ld);
6695/**
6696 * @license lucide-react v0.487.0 - ISC
6697 *
6698 * This source code is licensed under the ISC license.
6699 * See the LICENSE file in the root directory of this source tree.
6700 */
6701const gd = [
6702  ["path", { d: "M11 2v2", key: "1539x4" }],
6703  ["path", { d: "M5 2v2", key: "1yf1q8" }],
6704  ["path", { d: "M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1", key: "rb5t3r" }],
6705  ["path", { d: "M8 15a6 6 0 0 0 12 0v-3", key: "x18d4x" }],
6706  ["circle", { cx: "20", cy: "10", r: "2", key: "ts1r5v" }]
6707], fd = T("stethoscope", gd);
6708/**
6709 * @license lucide-react v0.487.0 - ISC
6710 *
6711 * This source code is licensed under the ISC license.
6712 * See the LICENSE file in the root directory of this source tree.
6713 */
6714const pd = [
6715  ["path", { d: "m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7", key: "ztvudi" }],
6716  ["path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8", key: "1b2hhj" }],
6717  ["path", { d: "M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4", key: "2ebpfo" }],
6718  ["path", { d: "M2 7h20", key: "1fcdvo" }],
6719  [
6720    "path",
6721    {
6722      d: "M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7",
6723      key: "6c3vgh"
6724    }
6725  ]
6726], Md = T("store", pd);
6727/**
6728 * @license lucide-react v0.487.0 - ISC
6729 *
6730 * This source code is licensed under the ISC license.
6731 * See the LICENSE file in the root directory of this source tree.
6732 */
6733const ud = [
6734  ["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
6735  ["line", { x1: "12", x2: "12.01", y1: "18", y2: "18", key: "1dp563" }]
6736], e0 = T("tablet", ud);
6737/**
6738 * @license lucide-react v0.487.0 - ISC
6739 *
6740 * This source code is licensed under the ISC license.
6741 * See the LICENSE file in the root directory of this source tree.
6742 */
6743const hd = [
6744  [
6745    "path",
6746    {
6747      d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
6748      key: "vktsd0"
6749    }
6750  ],
6751  ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
6752], G4 = T("tag", hd);
6753/**
6754 * @license lucide-react v0.487.0 - ISC
6755 *
6756 * This source code is licensed under the ISC license.
6757 * See the LICENSE file in the root directory of this source tree.
6758 */
6759const md = [
6760  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
6761  ["circle", { cx: "12", cy: "12", r: "6", key: "1vlfrh" }],
6762  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
6763], xd = T("target", md);
6764/**
6765 * @license lucide-react v0.487.0 - ISC
6766 *
6767 * This source code is licensed under the ISC license.
6768 * See the LICENSE file in the root directory of this source tree.
6769 */
6770const _d = [
6771  ["path", { d: "M17 14V2", key: "8ymqnk" }],
6772  [
6773    "path",
6774    {
6775      d: "M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z",
6776      key: "m61m77"
6777    }
6778  ]
6779], bd = T("thumbs-down", _d);
6780/**
6781 * @license lucide-react v0.487.0 - ISC
6782 *
6783 * This source code is licensed under the ISC license.
6784 * See the LICENSE file in the root directory of this source tree.
6785 */
6786const vd = [
6787  ["path", { d: "M7 10v12", key: "1qc93n" }],
6788  [
6789    "path",
6790    {
6791      d: "M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",
6792      key: "emmmcr"
6793    }
6794  ]
6795], yd = T("thumbs-up", vd);
6796/**
6797 * @license lucide-react v0.487.0 - ISC
6798 *
6799 * This source code is licensed under the ISC license.
6800 * See the LICENSE file in the root directory of this source tree.
6801 */
6802const wd = [
6803  [
6804    "path",
6805    {
6806      d: "M8 19a4 4 0 0 1-2.24-7.32A3.5 3.5 0 0 1 9 6.03V6a3 3 0 1 1 6 0v.04a3.5 3.5 0 0 1 3.24 5.65A4 4 0 0 1 16 19Z",
6807      key: "oadzkq"
6808    }
6809  ],
6810  ["path", { d: "M12 19v3", key: "npa21l" }]
6811], Td = T("tree-deciduous", wd);
6812/**
6813 * @license lucide-react v0.487.0 - ISC
6814 *
6815 * This source code is licensed under the ISC license.
6816 * See the LICENSE file in the root directory of this source tree.
6817 */
6818const Sd = [
6819  [
6820    "path",
6821    {
6822      d: "m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z",
6823      key: "cpyugq"
6824    }
6825  ],
6826  ["path", { d: "M12 22v-3", key: "kmzjlo" }]
6827], Bd = T("tree-pine", Sd);
6828/**
6829 * @license lucide-react v0.487.0 - ISC
6830 *
6831 * This source code is licensed under the ISC license.
6832 * See the LICENSE file in the root directory of this source tree.
6833 */
6834const kd = [
6835  ["polyline", { points: "22 17 13.5 8.5 8.5 13.5 2 7", key: "1r2t7k" }],
6836  ["polyline", { points: "16 17 22 17 22 11", key: "11uiuu" }]
6837], Ad = T("trending-down", kd);
6838/**
6839 * @license lucide-react v0.487.0 - ISC
6840 *
6841 * This source code is licensed under the ISC license.
6842 * See the LICENSE file in the root directory of this source tree.
6843 */
6844const Nd = [
6845  ["polyline", { points: "22 7 13.5 15.5 8.5 10.5 2 17", key: "126l90" }],
6846  ["polyline", { points: "16 7 22 7 22 13", key: "kwv8wd" }]
6847], E3 = T("trending-up", Nd);
6848/**
6849 * @license lucide-react v0.487.0 - ISC
6850 *
6851 * This source code is licensed under the ISC license.
6852 * See the LICENSE file in the root directory of this source tree.
6853 */
6854const Id = [
6855  [
6856    "path",
6857    {
6858      d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
6859      key: "wmoenq"
6860    }
6861  ],
6862  ["path", { d: "M12 9v4", key: "juzpu7" }],
6863  ["path", { d: "M12 17h.01", key: "p32p05" }]
6864], R3 = T("triangle-alert", Id);
6865/**
6866 * @license lucide-react v0.487.0 - ISC
6867 *
6868 * This source code is licensed under the ISC license.
6869 * See the LICENSE file in the root directory of this source tree.
6870 */
6871const Pd = [
6872  ["path", { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", key: "wrbu53" }],
6873  ["path", { d: "M15 18H9", key: "1lyqi6" }],
6874  [
6875    "path",
6876    {
6877      d: "M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",
6878      key: "lysw3i"
6879    }
6880  ],
6881  ["circle", { cx: "17", cy: "18", r: "2", key: "332jqn" }],
6882  ["circle", { cx: "7", cy: "18", r: "2", key: "19iecd" }]
6883], si = T("truck", Pd);
6884/**
6885 * @license lucide-react v0.487.0 - ISC
6886 *
6887 * This source code is licensed under the ISC license.
6888 * See the LICENSE file in the root directory of this source tree.
6889 */
6890const Cd = [
6891  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
6892  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
6893  ["polyline", { points: "16 11 18 13 22 9", key: "1pwet4" }]
6894], Fd = T("user-check", Cd);
6895/**
6896 * @license lucide-react v0.487.0 - ISC
6897 *
6898 * This source code is licensed under the ISC license.
6899 * See the LICENSE file in the root directory of this source tree.
6900 */
6901const Ed = [
6902  ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
6903  ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
6904], v2 = T("user", Ed);
6905/**
6906 * @license lucide-react v0.487.0 - ISC
6907 *
6908 * This source code is licensed under the ISC license.
6909 * See the LICENSE file in the root directory of this source tree.
6910 */
6911const Rd = [
6912  ["path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2", key: "1yyitq" }],
6913  ["circle", { cx: "9", cy: "7", r: "4", key: "nufk8" }],
6914  ["path", { d: "M22 21v-2a4 4 0 0 0-3-3.87", key: "kshegd" }],
6915  ["path", { d: "M16 3.13a4 4 0 0 1 0 7.75", key: "1da9ce" }]
6916], h1 = T("users", Rd);
6917/**
6918 * @license lucide-react v0.487.0 - ISC
6919 *
6920 * This source code is licensed under the ISC license.
6921 * See the LICENSE file in the root directory of this source tree.
6922 */
6923const Dd = [
6924  [
6925    "path",
6926    {
6927      d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",
6928      key: "cbrjhi"
6929    }
6930  ]
6931], zd = T("wrench", Dd);
6932/**
6933 * @license lucide-react v0.487.0 - ISC
6934 *
6935 * This source code is licensed under the ISC license.
6936 * See the LICENSE file in the root directory of this source tree.
6937 */
6938const jd = [
6939  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
6940  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
6941], D3 = T("x", jd);
6942/**
6943 * @license lucide-react v0.487.0 - ISC
6944 *
6945 * This source code is licensed under the ISC license.
6946 * See the LICENSE file in the root directory of this source tree.
6947 */
6948const Od = [
6949  [
6950    "path",
6951    {
6952      d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
6953      key: "1xq2db"
6954    }
6955  ]
6956], Te = T("zap", Od), ii = r1({
6957  isOpen: !1,
6958  openContactModal: () => {
6959  },
6960  closeContactModal: () => {
6961  }
6962});
6963function Z() {
6964  return oe(ii);
6965}
6966function Vd({ children: t }) {
6967  const [e, s] = j(!1), r = Ge(() => s(!0), []), n = Ge(() => s(!1), []);
6968  return /* @__PURE__ */ i(a, { _fgT: ii.Provider, _fgS: "cnbh0", _fgB: 1790697589400, _fgD: !0, value: { isOpen: e, openContactModal: r, closeContactModal: n }, "data-fg-cnbh0": ":0:/src/app/components/ContactModalContext.tsx:26:5:715:139:e:ContactModalContext.Provider:c:1", children: t });
6969}
6970const Hd = globalThis.__GLOBALS__.getAssetURL("cd85615b0ba2fff565ee759ebd86f5ea1899588c.png");
6971function Zd() {
6972  const [t, e] = j(!1), [s, r] = j(!1), { scrollY: n } = D7(), [o] = p5(), { openContactModal: L } = Z();
6973  F7(n, "change", (h) => {
6974    e(h > 50);
6975  });
6976  const d = () => {
6977    r(!1);
6978  }, l = (h) => o === h, g = (h) => h.some((x) => o === x), f = ["/markets", "/microtransit", "/paratransit", "/nemt", "/markets/fixed-route", "/taxi-dispatch"], p = ["/about", "/news-articles"], u = ["/all-in-one-platform", ...["/ai-solutions", "/ai/voice", "/ai/digital", "/ai/analytics", "/ai/feedback", "/ai/workshop"]];
6979  return /* @__PURE__ */ c(
6980    a,
6981    {
6982      _fgT: "nav",
6983      _fgS: "cqpb0",
6984      _fgB: 1790697589380,
6985      _fgD: !0,
6986      className: `fixed top-0 left-0 right-0 z-50 transition-all duration-300 bg-white ${t ? "py-3 shadow-sm" : "py-6"}`,
6987      "data-fg-cqpb0": ":0:/src/app/components/Navbar.tsx:35:5:1389:9603:e:nav:etxtx:1",
6988      children: [
6989        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb1", _fgB: 1790697589380, className: "max-w-7xl mx-auto px-6 flex items-center justify-between", "data-fg-cqpb1": ":0:/src/app/components/Navbar.tsx:40:7:1553:5714:e:div:etxtetxte", children: [
6990          /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb2", _fgB: 1790697589380, href: "/", "data-fg-cqpb2": ":0:node_modules/wouter:41:9:1636:286:e:Link:e:::::C4yE", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb3", _fgB: 1790697589380, className: "flex items-center gap-2 cursor-pointer", "data-fg-cqpb3": ":0:/src/app/components/Navbar.tsx:42:11:1662:244:e:div:e", children: /* @__PURE__ */ i(
6991            a,
6992            {
6993              _fgT: "img",
6994              _fgS: "cqpb4",
6995              _fgB: 1790697589380,
6996              src: Hd,
6997              alt: "IT Curves",
6998              className: "h-10 w-auto object-contain transition-all duration-300",
6999              "data-fg-cqpb4": ":0:/src/app/components/Navbar.tsx:43:13:1731:158:e:img"
7000            }
7001          ) }) }),
7002          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb6", _fgB: 1790697589380, className: "hidden md:flex items-center gap-8 text-[13px] uppercase tracking-widest transition-colors text-black font-[Inter]", style: { fontWeight: 600 }, "data-fg-cqpb6": ":0:/src/app/components/Navbar.tsx:52:9:1961:4962:e:div:xtetxtetxtete", children: [
7003            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb8", _fgB: 1790697589380, className: "relative group", "data-fg-cqpb8": ":0:/src/app/components/Navbar.tsx:55:11:2177:1759:e:div:ete", children: [
7004              /* @__PURE__ */ c(a, { _fgT: E, _fgS: "cqpb9", _fgB: 1790697589380, href: "/markets", className: `flex items-center gap-1 hover:text-[#EFBB0F] transition-colors focus:outline-none font-[inherit] text-[13px] tracking-[inherit] uppercase ${g(f) ? "text-[#EFBB0F]" : ""}`, style: { fontWeight: 600, letterSpacing: "inherit" }, "data-fg-cqpb9": ":0:node_modules/wouter:56:13:2222:355:e:Link:te:::::C4yE", children: [
7005                "Our Markets ",
7006                /* @__PURE__ */ i(a, { _fgT: t3, _fgS: "cqpb11", _fgB: 1790697589380, size: 14, "data-fg-cqpb11": ":0:node_modules/lucide-react:57:27:2532:25:e:ChevronDown::::::Ddn3" })
7007              ] }),
7008              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb12", _fgB: 1790697589380, className: "absolute top-full left-0 pt-4 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-300 transform translate-y-2 group-hover:translate-y-0", "data-fg-cqpb12": ":0:/src/app/components/Navbar.tsx:60:13:2603:1316:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb13", _fgB: 1790697589380, className: "bg-white rounded-xl shadow-xl border border-slate-100 overflow-hidden min-w-[220px] flex flex-col text-slate-800 py-2", "data-fg-cqpb13": ":0:/src/app/components/Navbar.tsx:61:15:2807:1093:e:div:etetetete", children: [
7009                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb14", _fgB: 1790697589380, href: "/markets/fixed-route", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb14": ":0:node_modules/wouter:62:17:2959:177:e:Link:t:::::C4yE", children: "Fixed Route" }),
7010                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb16", _fgB: 1790697589380, href: "/paratransit", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb16": ":0:node_modules/wouter:65:17:3153:169:e:Link:t:::::C4yE", children: "Paratransit" }),
7011                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb18", _fgB: 1790697589380, href: "/microtransit", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb18": ":0:node_modules/wouter:68:17:3339:171:e:Link:t:::::C4yE", children: "Microtransit" }),
7012                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb20", _fgB: 1790697589380, href: "/nemt", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb20": ":0:node_modules/wouter:71:17:3527:155:e:Link:t:::::C4yE", children: "NEMT" }),
7013                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb22", _fgB: 1790697589380, href: "/taxi-dispatch", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb22": ":0:node_modules/wouter:74:17:3699:180:e:Link:t:::::C4yE", children: "Private TNC's & Taxi" })
7014              ] }) })
7015            ] }),
7016            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb25", _fgB: 1790697589380, className: "relative group", "data-fg-cqpb25": ":0:/src/app/components/Navbar.tsx:82:11:3985:1387:e:div:ete", children: [
7017              /* @__PURE__ */ c(a, { _fgT: "button", _fgS: "cqpb26", _fgB: 1790697589380, className: `flex items-center gap-1 hover:text-[#EFBB0F] transition-colors focus:outline-none font-[inherit] text-[13px] tracking-[inherit] uppercase ${g(u) ? "text-[#EFBB0F]" : ""}`, style: { fontWeight: 600, letterSpacing: "inherit" }, "data-fg-cqpb26": ":0:/src/app/components/Navbar.tsx:83:13:4030:344:e:button:te", children: [
7018                "Solutions ",
7019                /* @__PURE__ */ i(a, { _fgT: t3, _fgS: "cqpb28", _fgB: 1790697589380, size: 14, "data-fg-cqpb28": ":0:node_modules/lucide-react:84:25:4327:25:e:ChevronDown::::::Ddn3" })
7020              ] }),
7021              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb29", _fgB: 1790697589380, className: "absolute top-full left-0 pt-4 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-300 transform translate-y-2 group-hover:translate-y-0", "data-fg-cqpb29": ":0:/src/app/components/Navbar.tsx:87:13:4400:955:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb30", _fgB: 1790697589380, className: "bg-white rounded-xl shadow-xl border border-slate-100 overflow-hidden min-w-[240px] flex flex-col text-slate-800 py-2", "data-fg-cqpb30": ":0:/src/app/components/Navbar.tsx:88:15:4604:732:e:div:etete", children: [
7022                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb31", _fgB: 1790697589380, href: "/all-in-one-platform", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb31": ":0:node_modules/wouter:89:17:4756:185:e:Link:t:::::C4yE", children: "All-In-One Platform" }),
7023                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb33", _fgB: 1790697589380, href: "/ai-solutions", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb33": ":0:node_modules/wouter:92:17:4958:171:e:Link:t:::::C4yE", children: "AI Solutions" }),
7024                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb35", _fgB: 1790697589380, href: "/ai/workshop", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb35": ":0:node_modules/wouter:95:17:5146:169:e:Link:t:::::C4yE", children: "AI Workshop" })
7025              ] }) })
7026            ] }),
7027            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb38", _fgB: 1790697589380, className: "relative group", "data-fg-cqpb38": ":0:/src/app/components/Navbar.tsx:103:11:5427:1172:e:div:ete", children: [
7028              /* @__PURE__ */ c(a, { _fgT: "button", _fgS: "cqpb39", _fgB: 1790697589380, className: `flex items-center gap-1 hover:text-[#EFBB0F] transition-colors focus:outline-none font-[inherit] text-[13px] tracking-[inherit] uppercase ${g(p) ? "text-[#EFBB0F]" : ""}`, style: { fontWeight: 600, letterSpacing: "inherit" }, "data-fg-cqpb39": ":0:/src/app/components/Navbar.tsx:104:13:5472:336:e:button:te", children: [
7029                "About ",
7030                /* @__PURE__ */ i(a, { _fgT: t3, _fgS: "cqpb41", _fgB: 1790697589380, size: 14, "data-fg-cqpb41": ":0:node_modules/lucide-react:105:21:5761:25:e:ChevronDown::::::Ddn3" })
7031              ] }),
7032              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb42", _fgB: 1790697589380, className: "absolute top-full right-0 pt-4 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-300 transform translate-y-2 group-hover:translate-y-0", "data-fg-cqpb42": ":0:/src/app/components/Navbar.tsx:108:13:5834:748:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb43", _fgB: 1790697589380, className: "bg-white rounded-xl shadow-xl border border-slate-100 overflow-hidden min-w-[200px] flex flex-col text-slate-800 py-2", "data-fg-cqpb43": ":0:/src/app/components/Navbar.tsx:109:15:6039:524:e:div:ete", children: [
7033                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb44", _fgB: 1790697589380, href: "/about", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb44": ":0:node_modules/wouter:110:17:6191:159:e:Link:t:::::C4yE", children: "Company" }),
7034                /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb46", _fgB: 1790697589380, href: "/news-articles", className: "px-6 py-3 hover:bg-slate-50 hover:text-[#EFBB0F] transition-colors text-left", "data-fg-cqpb46": ":0:node_modules/wouter:113:17:6367:175:e:Link:t:::::C4yE", children: "News & Articles" })
7035              ] }) })
7036            ] }),
7037            /* @__PURE__ */ i(
7038              a,
7039              {
7040                _fgT: E,
7041                _fgS: "cqpb48",
7042                _fgB: 1790697589380,
7043                href: "/contact",
7044                className: "px-6 py-3 hover:bg-opacity-90 transition-all rounded-lg bg-[rgb(239,187,15)] text-black hover:bg-[rgb(210,165,10)] hover:text-white cursor-pointer",
7045                style: { fontWeight: 700 },
7046                "data-fg-cqpb48": ":0:node_modules/wouter:120:11:6611:297:e:Link:t:::::C4yE",
7047                children: "Contact Us"
7048              }
7049            )
7050          ] }),
7051          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb51", _fgB: 1790697589380, className: "md:hidden", "data-fg-cqpb51": ":0:/src/app/components/Navbar.tsx:130:9:6968:286:e:div:e", children: /* @__PURE__ */ i(
7052            a,
7053            {
7054              _fgT: "button",
7055              _fgS: "cqpb52",
7056              _fgB: 1790697589380,
7057              onClick: () => r(!s),
7058              className: "p-2 transition-colors text-black",
7059              "data-fg-cqpb52": ":0:/src/app/components/Navbar.tsx:131:11:7006:233:e:button:x",
7060              children: s ? /* @__PURE__ */ i(a, { _fgT: D3, _fgS: "cqpb54", _fgB: 1790697589380, size: 24, "data-fg-cqpb54": ":0:node_modules/lucide-react:135:33:7182:15:e:X::::::TvS" }) : /* @__PURE__ */ i(a, { _fgT: kl, _fgS: "cqpb55", _fgB: 1790697589380, size: 24, "data-fg-cqpb55": ":0:node_modules/lucide-react:135:51:7200:18:e:Menu::::::D5X5" })
7061            }
7062          ) })
7063        ] }),
7064        s && /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb58", _fgB: 1790697589380, className: "md:hidden absolute top-full left-0 right-0 bg-black border-t border-white/10 p-6 flex flex-col gap-6 text-white text-sm font-semibold uppercase tracking-widest max-h-[80vh] overflow-y-auto", "data-fg-cqpb58": ":0:/src/app/components/Navbar.tsx:142:9:7332:3640:e:div:xtetxtetxtete", children: [
7065          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb60", _fgB: 1790697589380, className: "flex flex-col gap-4", "data-fg-cqpb60": ":0:/src/app/components/Navbar.tsx:145:11:7601:1602:e:div:ete", children: [
7066            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cqpb61", _fgB: 1790697589380, className: "flex items-center justify-between", onClick: d, "data-fg-cqpb61": ":0:/src/app/components/Navbar.tsx:146:14:7652:272:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb62", _fgB: 1790697589380, href: "/markets", className: `hover:text-[#EFBB0F] ${l("/markets") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb62": ":0:node_modules/wouter:147:17:7745:159:e:Link:t:::::C4yE", children: "Our Markets" }) }),
7067            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb64", _fgB: 1790697589380, className: "flex flex-col gap-3 pl-4 border-l border-white/10", "data-fg-cqpb64": ":0:/src/app/components/Navbar.tsx:151:14:7938:1248:e:div:etetetete", children: [
7068              /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb65", _fgB: 1790697589380, href: "/markets/fixed-route", onClick: d, className: `text-xs hover:text-[#EFBB0F] ${l("/markets/fixed-route") ? "text-[#EFBB0F]" : "text-white/70"}`, "data-fg-cqpb65": ":0:node_modules/wouter:152:17:8022:229:e:Link:t:::::C4yE", children: "Fixed Route" }),
7069              /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb67", _fgB: 1790697589380, href: "/paratransit", onClick: d, className: `text-xs hover:text-[#EFBB0F] ${l("/paratransit") ? "text-[#EFBB0F]" : "text-white/70"}`, "data-fg-cqpb67": ":0:node_modules/wouter:155:17:8268:213:e:Link:t:::::C4yE", children: "Paratransit" }),
7070              /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb69", _fgB: 1790697589380, href: "/microtransit", onClick: d, className: `text-xs hover:text-[#EFBB0F] ${l("/microtransit") ? "text-[#EFBB0F]" : "text-white/70"}`, "data-fg-cqpb69": ":0:node_modules/wouter:158:17:8498:216:e:Link:t:::::C4yE", children: "Microtransit" }),
7071              /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb71", _fgB: 1790697589380, href: "/nemt", onClick: d, className: `text-xs hover:text-[#EFBB0F] ${l("/nemt") ? "text-[#EFBB0F]" : "text-white/70"}`, "data-fg-cqpb71": ":0:node_modules/wouter:161:17:8731:192:e:Link:t:::::C4yE", children: "NEMT" }),
7072              /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb73", _fgB: 1790697589380, href: "/taxi-dispatch", onClick: d, className: `text-xs hover:text-[#EFBB0F] ${l("/taxi-dispatch") ? "text-[#EFBB0F]" : "text-white/70"}`, "data-fg-cqpb73": ":0:node_modules/wouter:164:17:8940:226:e:Link:t:::::C4yE", children: "Private TNC's & Taxi" })
7073            ] })
7074          ] }),
7075          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb76", _fgB: 1790697589380, className: "flex flex-col gap-4", "data-fg-cqpb76": ":0:/src/app/components/Navbar.tsx:171:11:9258:797:e:div:etetete", children: [
7076            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cqpb77", _fgB: 1790697589380, className: "text-white/50 text-xs font-bold uppercase tracking-widest pl-2", "data-fg-cqpb77": ":0:/src/app/components/Navbar.tsx:172:13:9308:97:e:span:t", children: "Solutions" }),
7077            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb79", _fgB: 1790697589380, href: "/all-in-one-platform", onClick: d, className: `hover:text-[#EFBB0F] pl-4 ${l("/all-in-one-platform") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb79": ":0:node_modules/wouter:173:13:9418:213:e:Link:t:::::C4yE", children: "All-In-One Platform" }),
7078            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb81", _fgB: 1790697589380, href: "/ai-solutions", onClick: d, className: `hover:text-[#EFBB0F] pl-4 ${l("/ai-solutions") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb81": ":0:node_modules/wouter:176:13:9644:192:e:Link:t:::::C4yE", children: "AI Solutions" }),
7079            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb83", _fgB: 1790697589380, href: "/ai/workshop", onClick: d, className: `hover:text-[#EFBB0F] pl-4 ${l("/ai/workshop") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb83": ":0:node_modules/wouter:179:13:9849:189:e:Link:t:::::C4yE", children: "AI Workshop" })
7080          ] }),
7081          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cqpb86", _fgB: 1790697589380, className: "flex flex-col gap-4 border-t border-white/10 pt-4 mt-2", "data-fg-cqpb86": ":0:/src/app/components/Navbar.tsx:185:11:10116:594:e:div:etete", children: [
7082            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cqpb87", _fgB: 1790697589380, className: "text-white/50 text-xs font-bold uppercase tracking-widest pl-2", "data-fg-cqpb87": ":0:/src/app/components/Navbar.tsx:186:13:10201:96:e:span:t", children: "About Us" }),
7083            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb89", _fgB: 1790697589380, href: "/about", onClick: d, className: `hover:text-[#EFBB0F] pl-4 ${l("/about") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb89": ":0:node_modules/wouter:187:13:10310:173:e:Link:t:::::C4yE", children: "Company" }),
7084            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cqpb91", _fgB: 1790697589380, href: "/news-articles", onClick: d, className: `hover:text-[#EFBB0F] pl-4 ${l("/news-articles") ? "text-[#EFBB0F]" : ""}`, "data-fg-cqpb91": ":0:node_modules/wouter:190:13:10496:197:e:Link:t:::::C4yE", children: "News & Articles" })
7085          ] }),
7086          /* @__PURE__ */ i(
7087            a,
7088            {
7089              _fgT: E,
7090              _fgS: "cqpb93",
7091              _fgB: 1790697589380,
7092              href: "/contact",
7093              onClick: d,
7094              className: "bg-[#EFBB0F] text-black px-6 py-3 text-center font-bold rounded-lg cursor-pointer block",
7095              "data-fg-cqpb93": ":0:node_modules/wouter:195:11:10722:235:e:Link:t:::::C4yE",
7096              children: "Contact Us"
7097            }
7098          )
7099        ] })
7100      ]
7101    }
7102  );
7103}
7104function Wd() {
7105  const [t] = p5();
7106  return q(() => {
7107    window.scrollTo(0, 0);
7108  }, [t]), null;
7109}
7110function $d() {
7111  return q(() => {
7112    const t = "flexagents-embed";
7113    if (document.getElementById(t)) return;
7114    const e = document.createElement("script");
7115    e.id = t, e.src = "https://dashboard.flexagents.ai/embed.js", e.async = !0, e.setAttribute("data-agent-id", "6a79fab9e4183b30d903cf71"), e.setAttribute("data-org-id", "6a797c79e4183b30d903cf62"), e.setAttribute("data-color", "#0f172a"), e.setAttribute("data-position", "right"), document.body.appendChild(e);
7116  }, []), null;
7117}
7118function qd() {
7119  const { isOpen: t, closeContactModal: e } = Z(), s = H(!1);
7120  return q(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
7121    document.body.style.overflow = "";
7122  }), [t]), q(() => {
7123    const r = (n) => {
7124      n.key === "Escape" && t && e();
7125    };
7126    return window.addEventListener("keydown", r), () => window.removeEventListener("keydown", r);
7127  }, [t, e]), /* @__PURE__ */ c(C, { children: [
7128    /* @__PURE__ */ i(
7129      a,
7130      {
7131        _fgT: "div",
7132        _fgS: "bxly2",
7133        _fgB: 1790697589409,
7134        "aria-hidden": "true",
7135        style: {
7136          position: "fixed",
7137          width: 0,
7138          height: 0,
7139          overflow: "hidden",
7140          opacity: 0,
7141          pointerEvents: "none",
7142          zIndex: -1
7143        },
7144        "data-fg-bxly2": ":0:/src/app/components/ContactModal.tsx:34:7:980:546:e:div:e",
7145        children: /* @__PURE__ */ i(
7146          a,
7147          {
7148            _fgT: "iframe",
7149            _fgS: "bxly3",
7150            _fgB: 1790697589409,
7151            src: "https://meetings.hubspot.com/itcurves/sales-meeting?embed=true",
7152            title: "Schedule a Meeting (preload)",
7153            width: "1",
7154            height: "1",
7155            style: { border: "none" },
7156            onLoad: () => {
7157              s.current = !0;
7158            },
7159            "data-fg-bxly3": ":0:/src/app/components/ContactModal.tsx:4
71596:9:1233:280:e:iframe"
7160          }
7161        )
7162      }
7163    ),
7164    /* @__PURE__ */ c(
7165      a,
7166      {
7167        _fgT: "div",
7168        _fgS: "bxly5",
7169        _fgB: 1790697589409,
7170        className: "fixed inset-0 z-[9999] flex items-center justify-center p-4",
7171        style: {
7172          opacity: t ? 1 : 0,
7173          visibility: t ? "visible" : "hidden",
7174          transition: "opacity 0.25s ease, visibility 0.25s ease",
7175          pointerEvents: t ? "auto" : "none"
7176        },
7177        "data-fg-bxly5": ":0:/src/app/components/ContactModal.tsx:57:7:1608:2448:e:div:xtetxte",
7178        children: [
7179          /* @__PURE__ */ i(
7180            a,
7181            {
7182              _fgT: "div",
7183              _fgS: "bxly7",
7184              _fgB: 1790697589409,
7185              className: "absolute inset-0 bg-black/60 backdrop-blur-sm",
7186              onClick: e,
7187              "data-fg-bxly7": ":0:/src/app/components/ContactModal.tsx:67:9:1968:121:e:div"
7188            }
7189          ),
7190          /* @__PURE__ */ c(
7191            a,
7192            {
7193              _fgT: m.div,
7194              _fgS: "bxly9",
7195              _fgB: 1790697589409,
7196              className: "relative w-full max-w-[700px] max-h-[90vh] bg-white rounded-2xl shadow-2xl border border-slate-100 z-10 flex flex-col",
7197              animate: t ? { opacity: 1, y: 0, scale: 1 } : { opacity: 0, y: 40, scale: 0.95 },
7198              transition: { duration: 0.3, ease: [0.22, 1, 0.36, 1] },
7199              "data-fg-bxly9": ":0:/src/app/components/ContactModal.tsx:73:9:2127:1916:e:motion.div:xtetxtetxte",
7200              children: [
7201                /* @__PURE__ */ i(
7202                  a,
7203                  {
7204                    _fgT: "button",
7205                    _fgS: "bxly11",
7206                    _fgB: 1790697589409,
7207                    onClick: e,
7208                    className: "absolute top-4 right-4 z-20 text-slate-400 hover:text-slate-800 transition-colors p-1.5 hover:bg-slate-100 rounded-lg",
7209                    "data-fg-bxly11": ":0:/src/app/components/ContactModal.tsx:83:11:2546:249:e:button:e",
7210                    children: /* @__PURE__ */ i(a, { _fgT: D3, _fgS: "bxly12", _fgB: 1790697589409, size: 20, "data-fg-bxly12": ":0:node_modules/lucide-react:87:13:2760:15:e:X::::::TvS" })
7211                  }
7212                ),
7213                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bxly14", _fgB: 1790697589409, className: "p-6 sm:p-8 pb-4 border-b border-slate-100 shrink-0", "data-fg-bxly14": ":0:/src/app/components/ContactModal.tsx:91:11:2832:345:e:div:ete", children: [
7214                  /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bxly15", _fgB: 1790697589409, className: "text-xl sm:text-2xl font-bold text-slate-900 tracking-tight", "data-fg-bxly15": ":0:/src/app/components/ContactModal.tsx:92:13:2913:127:e:h3:t", children: "Schedule a Meeting" }),
7215                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bxly17", _fgB: 1790697589409, className: "text-sm text-slate-500 mt-1", "data-fg-bxly17": ":0:/src/app/components/ContactModal.tsx:95:13:3053:107:e:p:t", children: "Choose a time that works for you" })
7216                ] }),
7217                /* @__PURE__ */ i(
7218                  a,
7219                  {
7220                    _fgT: "div",
7221                    _fgS: "bxly20",
7222                    _fgB: 1790697589409,
7223                    className: "flex-1 overflow-y-auto overscroll-contain p-4 sm:p-6",
7224                    style: { WebkitOverflowScrolling: "touch" },
7225                    "data-fg-bxly20": ":0:/src/app/components/ContactModal.tsx:101:11:3250:771:e:div:e",
7226                    children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bxly21", _fgB: 1790697589409, className: "relative w-full", style: { minHeight: "660px" }, "data-fg-bxly21": ":0:/src/app/components/ContactModal.tsx:105:13:3413:591:e:div:e", children: /* @__PURE__ */ i(
7227                      a,
7228                      {
7229                        _fgT: "iframe",
7230                        _fgS: "bxly22",
7231                        _fgB: 1790697589409,
7232                        src: "https://meetings.hubspot.com/itcurves/sales-meeting?embed=true",
7233                        width: "100%",
7234                        height: "660",
7235                        frameBorder: "0",
7236                        scrolling: "yes",
7237                        allow: "fullscreen",
7238                        style: {
7239                          border: "none",
7240                          minHeight: "660px",
7241                          width: "1px",
7242                          minWidth: "100%"
7243                        },
7244                        title: "Schedule a Meeting",
7245                        "data-fg-bxly22": ":0:/src/app/components/ContactModal.tsx:106:15:3492:493:e:iframe"
7246                      }
7247                    ) })
7248                  }
7249                )
7250              ]
7251            }
7252          )
7253        ]
7254      }
7255    )
7256  ] });
7257}
7258const Ud = "/_components/v2/6f7c1cc6f4e6b5f46153147a1b8d898db9975c9c/hero-background-new-website2.9b1046f9.jpg", Gd = globalThis.__GLOBALS__.getAssetURL("b0bb89aabcc7b14684b682ee09a1c12ee0266ee0.png"), za = {
7259  hidden: { scale: 1.08, opacity: 0 },
7260  visible: {
7261    scale: 1,
7262    opacity: 1,
7263    transition: { duration: 1.8, ease: [0.25, 0.46, 0.45, 0.94] }
7264  }
7265}, Jd = {
7266  hidden: {},
7267  visible: {
7268    transition: { staggerChildren: 0.18, delayChildren: 0.6 }
7269  }
7270}, ja = {
7271  hidden: { opacity: 0, y: 28 },
7272  visible: {
7273    opacity: 1,
7274    y: 0,
7275    transition: { duration: 0.75, ease: [0.22, 1, 0.36, 1] }
7276  }
7277}, Kd = {
7278  hidden: { opacity: 0, scale: 0.92 },
7279  visible: {
7280    opacity: 1,
7281    scale: 1,
7282    transition: { duration: 0.55, delay: 1.5, type: "spring", stiffness: 200 }
7283  }
7284};
7285function Yd() {
7286  const { openContactModal: t } = Z();
7287  return /* @__PURE__ */ c(
7288    a,
7289    {
7290      _fgT: "section",
7291      _fgS: "b3wz0",
7292      _fgB: 1790697590022,
7293      _fgD: !0,
7294      "aria-label": "Hero",
7295      className: "relative h-[85vh] min-h-[560px] flex items-center justify-start overflow-hidden bg-[#050505]",
7296      "data-fg-b3wz0": ":0:/src/app/components/HeroV2.tsx:48:5:1174:2552:e:section:xtetxtetxtetxte:1",
7297      children: [
7298        /* @__PURE__ */ i(
7299          a,
7300          {
7301            _fgT: m.div,
7302            _fgS: "b3wz2",
7303            _fgB: 1790697590022,
7304            className: "absolute inset-0 bg-cover bg-right md:bg-center bg-no-repeat hidden md:block",
7305            style: { backgroundImage: `url(${Ud})` },
7306            variants: za,
7307            initial: "hidden",
7308            animate: "visible",
7309            "data-fg-b3wz2": ":0:/src/app/components/HeroV2.tsx:53:7:1396:252:e:motion.div"
7310          }
7311        ),
7312        /* @__PURE__ */ i(
7313          a,
7314          {
7315            _fgT: m.div,
7316            _fgS: "b3wz4",
7317            _fgB: 1790697590022,
7318            className: "absolute inset-0 bg-cover bg-center bg-no-repeat block md:hidden",
7319            style: { backgroundImage: `url(${Gd})` },
7320            variants: za,
7321            initial: "hidden",
7322            animate: "visible",
7323            "data-fg-b3wz4": ":0:/src/app/components/HeroV2.tsx:62:7:1707:246:e:motion.div"
7324          }
7325        ),
7326        /* @__PURE__ */ i(
7327          a,
7328          {
7329            _fgT: "div",
7330            _fgS: "b3wz6",
7331            _fgB: 1790697590022,
7332            className: "absolute inset-0",
7333            style: {
7334              background: "linear-gradient(105deg, rgba(5,5,5,0.41) 0%, rgba(5,5,5,0.18) 50%, rgba(5,5,5,0.02) 100%)"
7335            },
7336            "data-fg-b3wz6": ":0:/src/app/components/HeroV2.tsx:71:7:2036:205:e:div"
7337          }
7338        ),
7339        /* @__PURE__ */ c(
7340          a,
7341          {
7342            _fgT: m.div,
7343            _fgS: "b3wz8",
7344            _fgB: 1790697590022,
7345            className: "relative z-10 w-full max-w-7xl mx-auto px-6 md:px-12 lg:px-16 pt-36 md:pt-40 pb-20 flex flex-col items-start",
7346            variants: Jd,
7347            initial: "hidden",
7348            animate: "visible",
7349            "data-fg-b3wz8": ":0:/src/app/components/HeroV2.tsx:80:7:2282:1429:e:motion.div:xtetxtetxte",
7350            children: [
7351              /* @__PURE__ */ i(
7352                a,
7353                {
7354                  _fgT: m.h1,
7355                  _fgS: "b3wz10",
7356                  _fgB: 1790697590022,
7357                  variants: ja,
7358                  className: "text-3xl md:text-4xl lg:text-5xl font-bold text-white tracking-tight leading-tight font-space-grotesk max-w-3xl mb-6",
7359                  "data-fg-b3wz10": ":0:/src/app/components/HeroV2.tsx:87:9:2552:285:e:motion.h1:t",
7360                  children: "Intelligent Software Built for Transit, by Transit Experts"
7361                }
7362              ),
7363              /* @__PURE__ */ i(
7364                a,
7365                {
7366                  _fgT: m.p,
7367                  _fgS: "b3wz13",
7368                  _fgB: 1790697590022,
7369                  variants: ja,
7370                  className: "text-[#D0D0D0] text-lg md:text-xl font-light mb-10 max-w-xl leading-relaxed",
7371                  "data-fg-b3wz13": ":0:/src/app/components/HeroV2.tsx:95:9:2876:257:e:motion.p:t",
7372                  children: "Serving Paratransit, Fixed Route, Microtransit, NEMT, and Taxi Operations"
7373                }
7374              ),
7375              /* @__PURE__ */ i(
7376                a,
7377                {
7378                  _fgT: m.button,
7379                  _fgS: "b3wz16",
7380                  _fgB: 1790697590022,
7381                  variants: Kd,
7382                  initial: "hidden",
7383                  animate: "visible",
7384                  onClick: t,
7385                  whileHover: { scale: 1.05, backgroundColor: "#004494" },
7386                  whileTap: { scale: 0.97 },
7387                  className: "bg-[#0056B3] text-white font-bold px-8 py-4 uppercase tracking-widest rounded-xl shadow-[0_0_24px_rgba(0,86,179,0.35)] hover:shadow-[0_0_36px_rgba(0,86,179,0.55)] transition-shadow cursor-pointer",
7388                  "data-fg-b3wz16": ":0:/src/app/components/HeroV2.tsx:103:9:3163:528:e:motion.button:t",
7389                  children: "Schedule a Meeting"
7390                }
7391              )
7392            ]
7393          }
7394        )
7395      ]
7396    }
7397  );
7398}
7399const Xd = globalThis.__GLOBALS__.getAssetURL("f6d56eb00d318697fc3e224b7c314922409c78d2.png");
7400function Qd() {
7401  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "b5w0", _fgB: 1790697590044, _fgD: !0, className: "relative bg-[rgb(13,87,177)] overflow-hidden", "data-fg-b5w0": ":0:/src/app/components/AcquisitionBanner.tsx:8:5:254:2459:e:section:xtete:1", children: [
7402    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b5w2", _fgB: 1790697590044, className: "absolute inset-0 opacity-5", "data-fg-b5w2": ":0:/src/app/components/AcquisitionBanner.tsx:10:7:367:306:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b5w3", _fgB: 1790697590044, className: "absolute inset-0", style: {
7403      backgroundImage: "radial-gradient(circle at 20% 50%, rgba(239,187,15,0.3) 0%, transparent 50%), radial-gradient(circle at 80% 50%, rgba(59,130,246,0.2) 0%, transparent 50%)"
7404    }, "data-fg-b5w3": ":0:/src/app/components/AcquisitionBanner.tsx:11:9:420:240:e:div" }) }),
7405    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b5w4", _fgB: 1790697590044, className: "relative z-10 max-w-6xl mx-auto px-6 py-10 md:py-14", "data-fg-b5w4": ":0:/src/app/components/AcquisitionBanner.tsx:16:7:681:2017:e:div:e", children: /* @__PURE__ */ c(
7406      a,
7407      {
7408        _fgT: m.div,
7409        _fgS: "b5w5",
7410        _fgB: 1790697590044,
7411        initial: { opacity: 0, y: 20 },
7412        whileInView: { opacity: 1, y: 0 },
7413        viewport: { once: !0 },
7414        transition: { duration: 0.6 },
7415        className: "flex flex-col md:flex-row items-center gap-6 md:gap-10",
7416        "data-fg-b5w5": ":0:/src/app/components/AcquisitionBanner.tsx:17:9:759:1926:e:motion.div:xtetxtetxte",
7417        children: [
7418          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b5w7", _fgB: 1790697590044, className: "flex-shrink-0", "data-fg-b5w7": ":0:/src/app/components/AcquisitionBanner.tsx:25:11:1069:268:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b5w8", _fgB: 1790697590044, className: "inline-block bg-[rgb(239,187,15)] text-[#0A1628] text-[11px] uppercase tracking-[0.15em] px-4 py-1.5 rounded-full", style: { fontWeight: 700 }, "data-fg-b5w8": ":0:/src/app/components/AcquisitionBanner.tsx:26:13:1113:207:e:span:t", children: "Announcement" }) }),
7419          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b5w11", _fgB: 1790697590044, className: "flex flex-col sm:flex-row items-center gap-5 md:gap-8 flex-1 text-center sm:text-left", "data-fg-b5w11": ":0:/src/app/components/AcquisitionBanner.tsx:32:11:1375:806:e:div:etxte", children: [
7420            /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "b5w12", _fgB: 1790697590044, className: "text-white text-[17px] md:text-[19px] leading-relaxed", "data-fg-b5w12": ":0:/src/app/components/AcquisitionBanner.tsx:33:13:1491:377:e:p:esteste", children: [
7421              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b5w13", _fgB: 1790697590044, className: "text-white", "data-fg-b5w13": ":0:/src/app/components/AcquisitionBanner.tsx:34:15:1575:58:e:span:t", children: "IT Curves has acquired" }),
7422              " ",
7423              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b5w16", _fgB: 1790697590044, className: "text-[rgb(239,187,15)]", style: { fontWeight: 700 }, "data-fg-b5w16": ":0:/src/app/components/AcquisitionBanner.tsx:35:15:1653:86:e:span:t", children: "AI Dev Lab" }),
7424              " ",
7425              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b5w19", _fgB: 1790697590044, className: "text-white", "data-fg-b5w19": ":0:/src/app/components/AcquisitionBanner.tsx:36:15:1759:92:e:span:t", children: "— strengthening our Agentic AI capabilities for transit." })
7426            ] }),
7427            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b5w22", _fgB: 1790697590044, className: "flex-shrink-0 bg-white rounded-xl px-5 py-3", "data-fg-b5w22": ":0:/src/app/components/AcquisitionBanner.tsx:40:13:1918:246:e:div:e", children: /* @__PURE__ */ i(
7428              a,
7429              {
7430                _fgT: "img",
7431                _fgS: "b5w23",
7432                _fgB: 1790697590044,
7433                src: Xd,
7434                alt: "AI Dev Lab",
7435                className: "h-8 md:h-10 w-auto object-contain",
7436                "data-fg-b5w23": ":0:/src/app/components/AcquisitionBanner.tsx:41:15:1994:151:e:img"
7437              }
7438            ) })
7439          ] }),
7440          /* @__PURE__ */ c(
7441            a,
7442            {
7443              _fgT: E,
7444              _fgS: "b5w25",
7445              _fgB: 1790697590044,
7446              href: "/news-articles/it-curves-acquires-ai-dev-lab",
7447              className: "flex-shrink-0 inline-flex items-center gap-2 border border-[rgb(239,187,15)] text-[rgb(239,187,15)] px-5 py-2.5 rounded-lg hover:bg-[rgb(239,187,15)] hover:text-[#0A1628] transition-all text-[13px] uppercase tracking-widest",
7448              style: { fontWeight: 700 },
7449              "data-fg-b5w25": ":0:node_modules/wouter:50:11:2215:448:e:Link:te:::::C4yE",
7450              children: [
7451                "Read More",
7452                /* @__PURE__ */ i(a, { _fgT: Xc, _fgS: "b5w27", _fgB: 1790697590044, size: 14, "data-fg-b5w27": ":0:node_modules/lucide-react:56:13:2619:26:e:ExternalLink::::::tit" })
7453              ]
7454            }
7455          )
7456        ]
7457      }
7458    ) })
7459  ] });
7460}
7461const eg = globalThis.__GLOBALS__.getAssetURL("54ac76442af4746a27a2b2be0cfab735c0305041.png"), tg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIzLjciPjxyZWN0IHg9IjE2IiB5PSIxNiIgd2lkdGg9IjU2IiBoZWlnaHQ9IjU2IiByeD0iNiIvPjxwYXRoIGQ9Im0xNiA1OCAxNi0xOCAzMiAzMiIvPjxjaXJjbGUgY3g9IjUzIiBjeT0iMzUiIHI9IjciLz48L3N2Zz4KCg==";
7462function Le(t) {
7463  const [e, s] = j(!1), r = () => {
7464    s(!0);
7465  }, { src: n, alt: o, style: L, className: d, ...l } = t;
7466  return e ? /* @__PURE__ */ i(
7467    a,
7468    {
7469      _fgT: "div",
7470      _fgS: "csfh0",
7471      _fgB: 1790697592595,
7472      className: `inline-block bg-gray-100 text-center align-middle ${d ?? ""}`,
7473      style: L,
7474      "data-fg-csfh0": ":0:/src/app/components/figma/ImageWithFallback.tsx:16:5:728:310:e:div:e",
7475      children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "csfh1", _fgB: 1790697592595, className: "flex items-center justify-center w-full h-full", "data-fg-csfh1": ":0:/src/app/components/figma/ImageWithFallback.tsx:20:7:854:173:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "csfh2", _fgB: 1790697592595, src: tg, alt: "Error loading image", ...l, "data-original-url": n, "data-fg-csfh2": ":0:/src/app/components/figma/ImageWithFallback.tsx:21:9:927:87:e:img" }) })
7476    }
7477  ) : /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "csfh3", _fgB: 1790697592595, src: n, alt: o, className: d, style: L, ...l, onError: r, "data-fg-csfh3": ":0:/src/app/components/figma/ImageWithFallback.tsx:25:5:1051:95:e:img" });
7478}
7479const ag = globalThis.__GLOBALS__.getAssetURL("cb92dca244274b7fd0d5dfacfde8008a71319747.png"), sg = globalThis.__GLOBALS__.getAssetURL("87c4fa7af57ad070bf18e293e0a7f75b4f7020ef.png"), ig = globalThis.__GLOBALS__.getAssetURL("553a8fa482c9c9c6f76b1d23b29dcea207c73db1.png"), rg = globalThis.__GLOBALS__.getAssetURL("75982e5590fc43f6937a9864f987d374abee42f8.png"), I1 = [
7480  {
7481    id: "microtransit",
7482    label: "Microtransit",
7483    num: "01",
7484    title: "Microtransit",
7485    desc: "Transform traditional fixed routes into dynamic, demand-responsive networks. Our AI algorithms optimize real-time vehicle routing, reduce empty miles, and maximize fleet utilization while delivering app-based convenience that today's riders expect.",
7486    image: eg,
7487    btnText: "Explore Microtransit Solutions",
7488    link: "/microtransit"
7489  },
7490  {
7491    id: "paratransit",
7492    label: "Paratransit",
7493    num: "02",
7494    title: "Paratransit",
7495    desc: "Deliver compassionate, compliant ADA service with intelligent scheduling that balances rider needs with operational efficiency. Our platform streamlines eligibility management, optimizes trip grouping, and ensures on-time performance for your riders.",
7496    image: ag,
7497    btnText: "See Paratransit Features"
7498  },
7499  {
7500    id: "fixed-route",
7501    label: "Fixed Route",
7502    num: "03",
7503    title: "Fixed Route",
7504    desc: "Modernize traditional transit with smart scheduling, real-time tracking, and predictive maintenance. Our AI analyzes ridership patterns to recommend service adjustments, while providing riders with accurate arrival predictions and seamless digital payment options.",
7505    image: sg,
7506    btnText: "Explore Fixed Route",
7507    link: "/markets/fixed-route"
7508  },
7509  {
7510    id: "nemt",
7511    label: "NEMT",
7512    num: "04",
7513    title: "NEMT",
7514    desc: "Streamline non-emergency medical transportation with HIPAA-compliant scheduling, automated broker integration, and intelligent dispatch. Reduce no-shows, optimize driver assignments, and ensure patients reach critical appointments.",
7515    image: ig,
7516    btnText: "Explore NEMT Solutions",
7517    link: "/nemt"
7518  },
7519  {
7520    id: "taxi-dispatch",
7521    label: "Private TNC's and Taxi",
7522    num: "05",
7523    title: "Private TNC's and Taxi",
7524    desc: "Manage multiple fleets from a single dispatch center with our comprehensive platform for Transportation Network Companies (TNCs) and taxi providers. Handle dispatch, driver settlements, and account billing for multiple companies while maintaining unique branding and business rules for each.",
7525    image: rg,
7526    btnText: "Explore TNC & Taxi Solutions",
7527    link: "/taxi-dispatch"
7528  }
7529], ng = {
7530  hidden: { opacity: 0 },
7531  visible: {
7532    opacity: 1,
7533    transition: {
7534      staggerChildren: 0.1,
7535      delayChildren: 0.3
7536    }
7537  }
7538}, og = {
7539  hidden: { y: "100%", opacity: 0 },
7540  visible: {
7541    y: 0,
7542    opacity: 1,
7543    transition: {
7544      duration: 0.8,
7545      ease: [0.33, 1, 0.68, 1]
7546    }
7547  }
7548};
7549function Lg() {
7550  const [t, e] = j(I1[0].id), s = I1.find((h) => h.id === t) || I1[0], [r, n] = j(!1), [o, L] = j(0), d = H(null), l = H(null), g = 1e4, f = 50, p 
7550= Ge(() => {
7551    e((h) => {
7552      const _ = (I1.findIndex((v) => v.id === h) + 1) % I1.length;
7553      return I1[_].id;
7554    }), L(0);
7555  }, []);
7556  q(() => (l.current = setInterval(() => {
7557    L((h) => {
7558      const x = h + f / g * 100;
7559      return x >= 100 ? 100 : x;
7560    });
7561  }, f), d.current = setInterval(() => {
7562    p();
7563  }, g), () => {
7564    d.current && clearInterval(d.current), l.current && clearInterval(l.current);
7565  }), [t, p]);
7566  const M = (h) => {
7567    e(h), L(0);
7568  }, u = "We power innovation across all transit segments.".split(" ");
7569  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "d5se0", _fgB: 1790697590037, _fgD: !0, id: "markets", className: "py-12 sm:py-16 md:py-24 px-4 sm:px-6 bg-zinc-50 relative overflow-hidden", style: { fontFamily: "Inter, sans-serif" }, "data-fg-d5se0": ":0:/src/app/components/Markets.tsx:137:5:4967:8006:e:section:xtetete:1", children: [
7570    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se2", _fgB: 1790697590037, className: "fixed top-[-20%] left-[-10%] w-[50%] h-[50%] blur-[120px] rounded-full pointer-events-none bg-[#0056B3]/10 opacity-50", "data-fg-d5se2": ":0:/src/app/components/Markets.tsx:139:7:5164:137:e:div" }),
7571    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se3", _fgB: 1790697590037, className: "fixed bottom-[-20%] right-[-10%] w-[50%] h-[50%] bg-[#0056B3]/5 blur-[120px] rounded-full pointer-events-none opacity-50", "data-fg-d5se3": ":0:/src/app/components/Markets.tsx:140:7:5308:140:e:div" }),
7572    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d5se4", _fgB: 1790697590037, className: "max-w-[1400px] mx-auto relative z-10", "data-fg-d5se4": ":0:/src/app/components/Markets.tsx:142:7:5456:7502:e:div:ete", children: [
7573      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d5se5", _fgB: 1790697590037, className: "text-center mb-10", "data-fg-d5se5": ":0:/src/app/components/Markets.tsx:143:9:5519:2031:e:div:etete", children: [
7574        /* @__PURE__ */ i(
7575          a,
7576          {
7577            _fgT: m.div,
7578            _fgS: "d5se6",
7579            _fgB: 1790697590037,
7580            initial: { opacity: 0, y: 10 },
7581            whileInView: { opacity: 1, y: 0 },
7582            viewport: { once: !0, amount: 0.8, margin: "0px 0px -100px 0px" },
7583            transition: { delay: 0.2 },
7584            className: "inline-flex items-center justify-center px-4 py-1.5 rounded-full border border-[#0056B3]/10 bg-blue-50 text-[#0056B3] text-xs font-bold uppercase tracking-widest mb-8 font-[Space_Grotesk]",
7585            "data-fg-d5se6": ":0:/src/app/components/Markets.tsx:144:11:5565:496:e:motion.div:t",
7586            children: "Our Markets"
7587          }
7588        ),
7589        /* @__PURE__ */ i(
7590          a,
7591          {
7592            _fgT: m.h2,
7593            _fgS: "d5se8",
7594            _fgB: 1790697590037,
7595            className: "text-3xl sm:text-4xl md:text-5xl lg:text-7xl xl:text-8xl font-light tracking-tighter text-slate-900 mb-4 sm:mb-6 md:mb-8 font-[Space_Grotesk] flex flex-wrap justify-center gap-x-2 sm:gap-x-3 md:gap-x-4 gap-y-1 sm:gap-y-2",
7596            variants: ng,
7597            initial: "hidden",
7598            whileInView: "visible",
7599            viewport: { once: !0, amount: 0.8, margin: "0px 0px -150px 0px" },
7600            "data-fg-d5se8": ":0:/src/app/components/Markets.tsx:154:11:6083:912:e:motion.h2:x",
7601            children: u.map((h, x) => /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d5se10", _fgB: 1790697590037, className: "inline-block overflow-hidden py-1 sm:py-2 md:py-3 px-0.5 sm:px-1", "data-fg-d5se10": ":0:/src/app/components/Markets.tsx:162:15:6584:372:e:span:e", children: /* @__PURE__ */ i(
7602              a,
7603              {
7604                _fgT: m.span,
7605                _fgS: "d5se11",
7606                _fgB: 1790697590037,
7607                className: `inline-block ${h === "all" ? "font-serif italic text-[rgb(239,187,15)]" : ""}`,
7608                variants: og,
7609                "data-fg-d5se11": ":0:/src/app/components/Markets.tsx:163:17:6692:242:e:motion.span:x",
7610                children: h
7611              }
7612            ) }, x))
7613          }
7614        ),
7615        /* @__PURE__ */ i(
7616          a,
7617          {
7618            _fgT: m.p,
7619            _fgS: "d5se13",
7620            _fgB: 1790697590037,
7621            initial: { opacity: 0, y: 20 },
7622            whileInView: { opacity: 1, y: 0 },
7623            viewport: { once: !0, amount: 0.8, margin: "0px 0px -100px 0px" },
7624            transition: { delay: 0.8, duration: 0.8 },
7625            className: "text-sm sm:text-base md:text-lg lg:text-xl font-light text-slate-600 max-w-3xl mx-auto text-center",
7626            "data-fg-d5se13": ":0:/src/app/components/Markets.tsx:173:11:7017:518:e:motion.p:t",
7627            children: "From on-demand microtransit to specialized paratransit—our AI-driven platform adapts to your operational needs."
7628          }
7629        )
7630      ] }),
7631      /* @__PURE__ */ c(
7632        a,
7633        {
7634          _fgT: "div",
7635          _fgS: "d5se15",
7636          _fgB: 1790697590037,
7637          className: "grid grid-cols-12 gap-4 sm:gap-6 md:gap-8 lg:gap-12 xl:gap-20 items-start",
7638          "data-fg-d5se15": ":0:/src/app/components/Markets.tsx:184:9:7560:5385:e:div:xtetxte",
7639          children: [
7640            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se17", _fgB: 1790697590037, className: "col-span-5 flex flex-col gap-2 sm:gap-3 md:gap-4", "data-fg-d5se17": ":0:/src/app/components/Markets.tsx:188:11:7710:2374:e:div:x", children: I1.map((h, x) => {
7641              const _ = t === h.id;
7642              return /* @__PURE__ */ c(
7643                a,
7644                {
7645                  _fgT: m.button,
7646                  _fgS: "d5se19",
7647                  _fgB: 1790697590037,
7648                  initial: { opacity: 0, x: -20 },
7649                  whileInView: { opacity: 1, x: 0 },
7650                  viewport: { once: !0, amount: 0.5 },
7651                  transition: { delay: 0.2 + x * 0.1 },
7652                  onClick: () => M(h.id),
7653                  className: `group relative overflow-hidden rounded-xl sm:rounded-2xl md:rounded-3xl text-left px-3 sm:px-5 md:px-8 py-3 sm:py-5 md:py-8 transition-all duration-500 border ${_ ? "bg-gradient-to-r from-[#0056B3] to-[#00408A] border-blue-500/50 shadow-lg scale-[1.02]" : "bg-white border-black/5 hover:bg-slate-50 opacity-60 hover:opacity-100"}`,
7654                  "data-fg-d5se19": ":0:/src/app/components/Markets.tsx:192:17:7917:2117:e:motion.button:xtxte",
7655                  children: [
7656                    _ && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se22", _fgB: 1790697590037, className: "absolute bottom-0 left-0 right-0 h-[3px] bg-white/10", "data-fg-d5se22": ":0:/src/app/components/Markets.tsx:207:21:8832:354:e:div:e", children: /* @__PURE__ */ i(
7657                      a,
7658                      {
7659                        _fgT: m.div,
7660                        _fgS: "d5se23",
7661                        _fgB: 1790697590037,
7662                        className: "h-full bg-white/50 rounded-full",
7663                        style: { width: `${o}%` },
7664                        transition: { duration: 0.05, ease: "linear" },
7665                        "data-fg-d5se23": ":0:/src/app/components/Markets.tsx:208:23:8925:234:e:motion.div"
7666                      }
7667                    ) }),
7668                    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d5se24", _fgB: 1790697590037, className: "relative z-10 flex items-center justify-between", "data-fg-d5se24": ":0:/src/app/components/Markets.tsx:215:19:9226:775:e:div:ete", children: [
7669                      /* @__PURE__ */ i(
7670                        a,
7671                        {
7672                          _fgT: "h3",
7673                          _fgS: "d5se25",
7674                          _fgB: 1790697590037,
7675                          className: `text-sm sm:text-lg md:text-2xl lg:text-3xl xl:text-4xl font-light tracking-tighter transition-colors ${_ ? "text-white" : "text-slate-500 group-hover:text-slate-700"}`,
7676                          "data-fg-d5se25": ":0:/src/app/components/Markets.tsx:216:21:9312:346:e:h3:x",
7677                          children: h.label
7678                        }
7679                      ),
7680                      /* @__PURE__ */ i(
7681                        a,
7682                        {
7683                          _fgT: "span",
7684                          _fgS: "d5se27",
7685                          _fgB: 1790697590037,
7686                          className: `text-[10px] sm:text-xs md:text-sm font-mono font-medium transition-colors ${_ ? "text-white/80" : "text-slate-400"}`,
7687                          "data-fg-d5se27": ":0:/src/app/components/Markets.tsx:223:21:9679:297:e:span:x",
7688                          children: h.num
7689                        }
7690                      )
7691                    ] })
7692                  ]
7693                },
7694                h.id
7695              );
7696            }) }),
7697            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d5se30", _fgB: 1790697590037, className: "col-span-7 sticky top-24", "data-fg-d5se30": ":0:/src/app/components/Markets.tsx:237:11:10122:2808:e:div:ete", children: [
7698              /* @__PURE__ */ c(
7699                a,
7700                {
7701                  _fgT: m.div,
7702                  _fgS: "d5se31",
7703                  _fgB: 1790697590037,
7704                  initial: { opacity: 0, scale: 0.95 },
7705                  whileInView: { opacity: 1, scale: 1 },
7706                  viewport: { once: !0, amount: 0.3 },
7707                  transition: { duration: 0.8 },
7708                  className: "relative aspect-[21/9] overflow-hidden rounded-xl sm:rounded-2xl md:rounded-3xl bg-slate-900 border border-black/10 shadow-2xl mb-3 sm:mb-4 md:mb-6",
7709                  "data-fg-d5se31": ":0:/src/app/components/Markets.tsx:238:13:10177:1165:e:motion.div:ete",
7710                  children: [
7711                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se32", _fgB: 1790697590037, className: "absolute inset-0 bg-black/20 z-10 bg-[rgba(0,218,182,0)]", "data-fg-d5se32": ":0:/src/app/components/Markets.tsx:245:15:10595:76:e:div" }),
7712                    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "d5se33", _fgB: 1790697590037, mode: "wait", "data-fg-d5se33": ":0:node_modules/motion:246:15:10686:630:e:AnimatePresence:e:::::DAs4", children: /* @__PURE__ */ i(
7713                      a,
7714                      {
7715                        _fgT: m.div,
7716                        _fgS: "d5se34",
7717                        _fgB: 1790697590037,
7718                        initial: { opacity: 0, scale: 1.05 },
7719                        animate: { opacity: 1, scale: 1 },
7720                        exit: { opacity: 0 },
7721                        transition: { duration: 0.5 },
7722                        className: "w-full h-full",
7723                        "data-fg-d5se34": ":0:/src/app/components/Markets.tsx:247:17:10732:551:e:motion.div:e",
7724                        children: /* @__PURE__ */ i(
7725                          a,
7726                          {
7727                            _fgT: Le,
7728                            _fgS: "d5se35",
7729                            _fgB: 1790697590037,
7730                            src: s.image,
7731                            alt: s.title,
7732                            className: "w-full h-full object-cover",
7733                            "data-fg-d5se35": ":0:/src/app/components/Markets.tsx:255:19:11065:188:e:ImageWithFallback::::::DGky"
7734                          }
7735                        )
7736                      },
7737                      s.image
7738                    ) })
7739                  ]
7740                }
7741              ),
7742              /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "d5se36", _fgB: 1790697590037, mode: "wait", "data-fg-d5se36": ":0:node_modules/motion:264:13:11356:1557:e:AnimatePresence:e:::::DAs4", children: /* @__PURE__ */ i(
7743                a,
7744                {
7745                  _fgT: m.div,
7746                  _fgS: "d5se37",
7747                  _fgB: 1790697590037,
7748                  initial: { opacity: 0, y: 20 },
7749                  animate: { opacity: 1, y: 0 },
7750                  exit: { opacity: 0, y: -20 },
7751                  transition: { duration: 0.3 },
7752                  "data-fg-d5se37": ":0:/src/app/components/Markets.tsx:265:15:11400:1482:e:motion.div:e",
7753                  children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d5se38", _fgB: 1790697590037, className: "flex flex-col gap-4", "data-fg-d5se38": ":0:/src/app/components/Markets.tsx:272:17:11670:1184:e:div:etete", children: [
7754                    /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "d5se39", _fgB: 1790697590037, className: "text-base sm:text-lg md:text-2xl lg:text-3xl font-light tracking-tight text-slate-900", "data-fg-d5se39": ":0:/src/app/components/Markets.tsx:273:19:11726:167:e:h3:x", children: s.title }),
7755                    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "d5se41", _fgB: 1790697590037, className: "text-xs sm:text-sm md:text-base lg:text-lg leading-relaxed font-light text-slate-600", "data-fg-d5se41": ":0:/src/app/components/Markets.tsx:276:19:11912:163:e:p:x", children: s.desc }),
7756                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d5se43", _fgB: 1790697590037, className: "pt-1 sm:pt-2", "data-fg-d5se43": ":0:/src/app/components/Markets.tsx:279:19:12094:737:e:div:e", children: /* @__PURE__ */ c(
7757                      a,
7758                      {
7759                        _fgT: E,
7760                        _fgS: "d5se44",
7761                        _fgB: 1790697590037,
7762                        href: s.link || `/markets#${s.id}`,
7763                        className: "group inline-flex items-center justify-center rounded-full px-3 sm:px-4 md:px-6 py-2 sm:py-2.5 md:py-3 text-[10px] sm:text-xs md:text-sm font-bold uppercase tracking-widest bg-[#0056B3] text-white hover:bg-[#004494] hover:text-white transition-all duration-300 shadow-xl",
7764                        "data-fg-d5se44": ":0:node_modules/wouter:280:21:12145:661:e:Link:ete:::::C4yE",
7765                        children: [
7766                          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d5se45", _fgB: 1790697590037, className: "mr-1 sm:mr-2", "data-fg-d5se45": ":0:/src/app/components/Markets.tsx:284:23:12580:60:e:span:x", children: s.btnText }),
7767                          /* @__PURE__ */ i(a, { _fgT: D, _fgS: "d5se47", _fgB: 1790697590037, size: 12, className: "sm:w-3.5 sm:h-3.5 md:w-4 md:h-4 transition-transform group-hover:translate-x-1", "data-fg-d5se47": ":0:node_modules/lucide-react:285:23:12663:115:e:ArrowRight::::::s5N" })
7768                        ]
7769                      }
7770                    ) })
7771                  ] })
7772                },
7773                s.id
7774              ) })
7775            ] })
7776          ]
7777        }
7778      )
7779    ] })
7780  ] });
7781}
7782const cg = globalThis.__GLOBALS__.getAssetURL("40cf81b3682d8072928cbd6cf4aac5bd31c56e61.png"), lg = globalThis.__GLOBALS__.getAssetURL("c2dc0dbbab320fc6f2f1c34ed8eb30f6501ddca5.png"), dg = globalThis.__GLOBALS__.getAssetURL("7fbc18109d9de3fec98ad38befa8daa83a1cf93a.png"), gg = globalThis.__GLOBALS__.getAssetURL("7a4528c6db094eb78a6a42713d69c9380a2ea7bc.png"), fg = globalThis.__GLOBALS__.getAssetURL("ceb62601a2fed9d7a96bb945e725befacbe7265d.png"), pg = globalThis.__GLOBALS__.getAssetURL("d9bc69fd27736db1017964eec5da64eadac8ad51.png"), Mg = globalThis.__GLOBALS__.getAssetURL("3ef1b360d02473dcc9685f8be6bb60ea5018eea1.png"), ug = globalThis.__GLOBALS__.getAssetURL("d46938bcb1d96770eda0743fd8f877b7b7c5d681.png"), hg = globalThis.__GLOBALS__.getAssetURL("86ca4d2fa032fb0cf63b5e3672a31ae5f999fb37.png"), mg = globalThis.__GLOBALS__.getAssetURL("e6e8339d63f4f773f8aed310e947e1c98c6d9008.png"), xg = globalThis.__GLOBALS__.getAssetURL("e64b8f13b71c77eeae83ecb05f8d35f8e191d7d6.png"), _g = globalThis.__GLOBALS__.getAssetURL("5db8e8a1fc6730b9d4b6744f75a974be9ff5e00c.png"), l4 = [
7783  { name: "City of Albany", src: gg, height: 52, url: "https://www.cityofalbany.net" },
7784  { name: "Chatham Area Transit", src: ug, height: 72, url: "https://www.catchacat.org" },
7785  { name: "Grant Transit Authority", src: Mg, height: 52, url: "https://www.granttransit.com" },
7786  { name: "Allegany County", src: dg, height: 52, url: "https://www.alleganymd.gov" },
7787  { name: "Annapolis Transit", src: pg, height: 52, url: "https://www.annapolis.gov/2177/Go-Time-Annapolis-On-Demand-Transit" },
7788  { name: "JeffTran", src: cg, height: 52, url: "https://www.ridejefftran.com" },
7789  { name: "Nexus Labs", src: fg, height: 64, url: "https://www.wmata.com" },
7790  { name: "Access", src: hg, height: 36, url: "https://www.accessservices.org" },
7791  { name: "SilverRide", src: mg, height: 36, url: "https://www.silverride.com" },
7792  { name: "WeAchieve", src: _g, height: 52, url: "https://weachieveinc.org" },
7793  { name: "Tulalip Health System", src: xg, height: 72, url: "https://www.tulaliphealthsystem.com" },
7794  { name: "Transit Group Inc.", src: lg, height: 52, url: "" }
7795];
7796function bg() {
7797  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dbyz0", _fgB: 1790697590032, _fgD: !0, className: "bg-white py-12 border-b border-gray-100", "data-fg-dbyz0": ":0:/src/app/components/TrustedAgencies.tsx:38:5:2281:1695:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbyz1", _fgB: 1790697590032, className: "max-w-7xl mx-auto px-6", "data-fg-dbyz1": ":0:/src/app/components/TrustedAgencies.tsx:39:7:2349:1612:e:div:ete", children: [
7798    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dbyz2", _fgB: 1790697590032, className: "uppercase text-xs font-bold text-[#0056B3] tracking-widest text-center mb-8 text-[20px] font-[Space_Grotesk] no-underline", "data-fg-dbyz2": ":0:/src/app/components/TrustedAgencies.tsx:40:9:2398:194:e:p:t", children: "Trusted by these Leading Agencies" }),
7799    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbyz4", _fgB: 1790697590032, className: "relative overflow-hidden w-full mask-linear-fade", "data-fg-dbyz4": ":0:/src/app/components/TrustedAgencies.tsx:44:9:2610:1338:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbyz5", _fgB: 1790697590032, className: "flex w-max animate-ticker items-center", "data-fg-dbyz5": ":0:/src/app/components/TrustedAgencie
7799s.tsx:45:11:2687:1246:e:div:xtx", children: [...l4, ...l4, ...l4].map((t, e) => {
7800      const s = /* @__PURE__ */ i(
7801        a,
7802        {
7803          _fgT: "img",
7804          _fgS: "dbyz8",
7805          _fgB: 1790697590032,
7806          src: t.src,
7807          alt: t.name,
7808          className: "w-auto object-contain px-6",
7809          style: { mixBlendMode: "multiply", height: `${t.height}px` },
7810          "data-fg-dbyz8": ":0:/src/app/components/TrustedAgencies.tsx:49:17:2920:236:e:img"
7811        }
7812      );
7813      return t.url ? /* @__PURE__ */ i(
7814        a,
7815        {
7816          _fgT: "a",
7817          _fgS: "dbyz9",
7818          _fgB: 1790697590032,
7819          href: t.url,
7820          target: "_blank",
7821          rel: "noopener noreferrer",
7822          className: "flex items-center mx-8 opacity-80 hover:opacity-100 transition-opacity cursor-pointer",
7823          title: t.name,
7824          "data-fg-dbyz9": ":0:/src/app/components/TrustedAgencies.tsx:58:17:3227:383:e:a:x",
7825          children: s
7826        },
7827        `${t.name}-${e}`
7828      ) : /* @__PURE__ */ i(
7829        a,
7830        {
7831          _fgT: "div",
7832          _fgS: "dbyz11",
7833          _fgB: 1790697590032,
7834          className: "flex items-center mx-8 opacity-80 cursor-default",
7835          title: t.name,
7836          "data-fg-dbyz11": ":0:/src/app/components/TrustedAgencies.tsx:69:17:3647:236:e:div:x",
7837          children: s
7838        },
7839        `${t.name}-${e}`
7840      );
7841    }) }) })
7842  ] }) });
7843}
7844const vg = globalThis.__GLOBALS__.getAssetURL("af0b7bd3db71235173fef30e6fb48e3c0d0342af.png"), yg = globalThis.__GLOBALS__.getAssetURL("c71d8f09a3f1ee6cba433f54af8a2de3392ced31.png"), wg = globalThis.__GLOBALS__.getAssetURL("9abf29097e80a334c89411e3945186ea2cb38e9a.png"), Tg = globalThis.__GLOBALS__.getAssetURL("afbbf9490fef0ec3ae2cb39fd4469f2789faea05.png"), Sg = globalThis.__GLOBALS__.getAssetURL("b608d88efca543c800f623910d562d37d9abb502.png"), Bg = [
7845  {
7846    num: "01",
7847    title: "Trip Intelligence",
7848    subtitle: "AI-Powered Optimization",
7849    features: [
7850      {
7851        label: "Intelligent Scheduling",
7852        bullets: [
7853          /* @__PURE__ */ c(C, { children: [
7854            "Automated algorithm optimizes routes in ",
7855            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka2", _fgB: 1790697590027, "data-fg-deka2": ":0:/src/app/components/PlatformStack.tsx:39:53:1490:26:e:strong:t", children: "real-time" })
7856          ] }),
7857          /* @__PURE__ */ c(C, { children: [
7858            "Reduces ",
7859            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka6", _fgB: 1790697590027, "data-fg-deka6": ":0:/src/app/components/PlatformStack.tsx:40:21:1541:31:e:strong:t", children: "deadhead miles" }),
7860            " and boosts passenger capacity"
7861          ] }),
7862          /* @__PURE__ */ c(C, { children: [
7863            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka10", _fgB: 1790697590027, "data-fg-deka10": ":0:/src/app/components/PlatformStack.tsx:41:13:1619:41:e:strong:t", children: "Zero manual intervention" }),
7864            " required"
7865          ] })
7866        ]
7867      },
7868      {
7869        label: "Optimized Routing Engine",
7870        bullets: [
7871          /* @__PURE__ */ c(C, { children: [
7872            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka14", _fgB: 1790697590027, "data-fg-deka14": ":0:/src/app/components/PlatformStack.tsx:47:13:1776:28:e:strong:t", children: "Google Maps" }),
7873            " integration for live traffic analysis"
7874          ] }),
7875          /* @__PURE__ */ c(C, { children: [
7876            "Dynamic rerouting based on ",
7877            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka19", _fgB: 1790697590027, "data-fg-deka19": ":0:/src/app/components/PlatformStack.tsx:48:40:1886:37:e:strong:t", children: "real-time conditions" })
7878          ] }),
7879          /* @__PURE__ */ c(C, { children: [
7880            "Built-in ",
7881            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka23", _fgB: 1790697590027, "data-fg-deka23": ":0:/src/app/components/PlatformStack.tsx:49:22:1949:35:e:strong:t", children: "address validation" }),
7882            " at every step"
7883          ] })
7884        ]
7885      }
7886    ],
7887    btn: "Explore Routing",
7888    img: yg,
7889    link: "/ai-solutions"
7890  },
7891  {
7892    num: "02",
7893    title: "Dispatch & Fleet Operations",
7894    subtitle: "Intelligent Automation",
7895    features: [
7896      {
7897        label: "Real-Time Dispatching",
7898        bullets: [
7899          /* @__PURE__ */ c(C, { children: [
7900            "Automated dispatch via ",
7901            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka28", _fgB: 1790697590027, "data-fg-deka28": ":0:/src/app/components/PlatformStack.tsx:65:36:2332:30:e:strong:t", children: "first-in-zone" }),
7902            ", nearest cab, or co-located stand"
7903          ] }),
7904          /* @__PURE__ */ c(C, { children: [
7905            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka32", _fgB: 1790697590027, "data-fg-deka32": ":0:/src/app/components/PlatformStack.tsx:66:13:2413:33:e:strong:t", children: "Priority routing" }),
7906            " for scheduled and urgent trips"
7907          ] }),
7908          /* @__PURE__ */ c(C, { children: [
7909            "Unprocessable trips ",
7910            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka37", _fgB: 1790697590027, "data-fg-deka37": ":0:/src/app/components/PlatformStack.tsx:67:33:2514:29:e:strong:t", children: "auto-flagged" }),
7911            " for manager attention"
7912          ] })
7913        ]
7914      },
7915      {
7916        label: "Hardware Ecosystem",
7917        bullets: [
7918          /* @__PURE__ */ c(C, { children: [
7919            "Off-the-shelf tablets installed in vehicles, ",
7920            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka42", _fgB: 1790697590027, "data-fg-deka42": ":0:/src/app/components/PlatformStack.tsx:73:58:2711:32:e:strong:t", children: "BYOD compatible" })
7921          ] }),
7922          /* @__PURE__ */ c(C, { children: [
7923            "Integrated with ",
7924            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka46", _fgB: 1790697590027, "data-fg-deka46": ":0:/src/app/components/PlatformStack.tsx:74:29:2776:62:e:strong:t", children: "automatic passenger counters and annunciators" })
7925          ] }),
7926          /* @__PURE__ */ c(C, { children: [
7927            "Connects vehicles to dispatch for ",
7928            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka50", _fgB: 1790697590027, "data-fg-deka50": ":0:/src/app/components/PlatformStack.tsx:75:47:2889:46:e:strong:t", children: "synchronized fleet visibility" })
7929          ] })
7930        ]
7931      }
7932    ],
7933    btn: "Explore Dispatch",
7934    img: vg,
7935    link: "/drivigo"
7936  },
7937  {
7938    num: "03",
7939    title: "Rider & Driver Experience",
7940    subtitle: "Passenger & Driver Apps",
7941    features: [
7942      {
7943        label: "Transigo",
7944        bullets: [
7945          /* @__PURE__ */ c(C, { children: [
7946            "Real-time ",
7947            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka54", _fgB: 1790697590027, "data-fg-deka54": ":0:/src/app/components/PlatformStack.tsx:91:23:3237:33:e:strong:t", children: "vehicle tracking" }),
7948            " and ETA on map"
7949          ] }),
7950          /* @__PURE__ */ c(C, { children: [
7951            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka58", _fgB: 1790697590027, "data-fg-deka58": ":0:/src/app/components/PlatformStack.tsx:92:13:3302:31:e:strong:t", children: "3-step booking" }),
7952            " for now, future, or on behalf of others"
7953          ] }),
7954          /* @__PURE__ */ c(C, { children: [
7955            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka62", _fgB: 1790697590027, "data-fg-deka62": ":0:/src/app/components/PlatformStack.tsx:93:13:3390:31:e:strong:t", children: "Digital wallet" }),
7956            " with automatic copay and subsidy splitting"
7957          ] }),
7958          /* @__PURE__ */ c(C, { children: [
7959            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka66", _fgB: 1790697590027, "data-fg-deka66": ":0:/src/app/components/PlatformStack.tsx:94:13:3481:24:e:strong:t", children: "QR code" }),
7960            " contactless boarding"
7961          ] }),
7962          /* @__PURE__ */ c(C, { children: [
7963            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka70", _fgB: 1790697590027, "data-fg-deka70": ":0:/src/app/components/PlatformStack.tsx:95:13:3543:29:e:strong:t", children: "BLE guidance" }),
7964            " navigates riders directly to their vehicle"
7965          ] })
7966        ]
7967      },
7968      {
7969        label: "Drivego",
7970        bullets: [
7971          /* @__PURE__ */ c(C, { children: [
7972            "Full ",
7973            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka75", _fgB: 1790697590027, "data-fg-deka75": ":0:/src/app/components/PlatformStack.tsx:101:18:3710:30:e:strong:t", children: "trip manifest" }),
7974            " in stop order, always up to date"
7975          ] }),
7976          /* @__PURE__ */ c(C, { children: [
7977            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka79", _fgB: 1790697590027, "data-fg-deka79": ":0:/src/app/components/PlatformStack.tsx:102:13:3790:29:e:strong:t", children: "Push-to-Talk" }),
7978            " with dispatchers, masked calls with riders"
7979          ] }),
7980          /* @__PURE__ */ c(C, { children: [
7981            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka83", _fgB: 1790697590027, "data-fg-deka83": ":0:/src/app/components/PlatformStack.tsx:103:13:3879:27:e:strong:t", children: "Wall trips" }),
7982            " for driver self-dispatch"
7983          ] }),
7984          /* @__PURE__ */ c(C, { children: [
7985            "Soft ",
7986            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka88", _fgB: 1790697590027, "data-fg-deka88": ":0:/src/app/components/PlatformStack.tsx:104:18:3953:27:e:strong:t", children: "taxi meter" }),
7987            " with flexible fare and copay calculation"
7988          ] }),
7989          /* @__PURE__ */ c(C, { children: [
7990            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka92", _fgB: 1790697590027, "data-fg-deka92": ":0:/src/app/components/PlatformStack.tsx:105:13:4038:34:e:strong:t", children: "Digital signature" }),
7991            " capture, available iOS & Android"
7992          ] })
7993        ]
7994      }
7995    ],
7996    btn: "Explore Rider & Driver Apps",
7997    img: wg,
7998    link: "/rider-apps"
7999  },
8000  {
8001    num: "04",
8002    title: "Finance & Integrations",
8003    subtitle: "EDI, APIs & Invoicing",
8004    features: [
8005      {
8006        label: "Automated Billing",
8007        bullets: [
8008          /* @__PURE__ */ c(C, { children: [
8009            "Handles ",
8010            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka97", _fgB: 1790697590027, "data-fg-deka97": ":0:/src/app/components/PlatformStack.tsx:121:21:4430:29:e:strong:t", children: "credit cards" }),
8011            ", subsidized billing, and vouchers"
8012          ] }),
8013          /* @__PURE__ */ c(C, { children: [
8014            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka101", _fgB: 1790697590027, "data-fg-deka101": ":0:/src/app/components/PlatformStack.tsx:122:13:4510:32:e:strong:t", children: "Batch invoicing" }),
8015            " across multiple funding sources at once"
8016          ] }),
8017          /* @__PURE__ */ c(C, { children: [
8018            "Tracks receivables with ",
8019            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka106", _fgB: 1790697590027, "data-fg-deka106": ":0:/src/app/components/PlatformStack.tsx:123:37:4623:30:e:strong:t", children: "aging reports" }),
8020            " and re-invoicing"
8021          ] }),
8022          /* @__PURE__ */ c(C, { children: [
8023            "Integrates with ",
8024            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka111", _fgB: 1790697590027, "data-fg-deka111": ":0:/src/app/components/PlatformStack.tsx:124:29:4703:41:e:strong:t", children: "Stripe, Square, Ingenico" }),
8025            ", and Verifone"
8026          ] })
8027        ]
8028      },
8029      {
8030        label: "Broker Integration",
8031        bullets: [
8032          /* @__PURE__ */ c(C, { children: [
8033            "Automated data exchange with ",
8034            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka116", _fgB: 1790697590027, "data-fg-deka116": ":0:/src/app/components/PlatformStack.tsx:130:42:4888:31:e:strong:t", children: "Modivcare, MTM" }),
8035            ", and other brokers"
8036          ] }),
8037          /* @__PURE__ */ c(C, { children: [
8038            "Streamlines ",
8039            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka121", _fgB: 1790697590027, "data-fg-deka121": ":0:/src/app/components/PlatformStack.tsx:131:25:4967:29:e:strong:t", children: "trip imports" }),
8040            " directly into dispatch"
8041          ] }),
8042          /* @__PURE__ */ c(C, { children: [
8043            "Reduces ",
8044            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka126", _fgB: 1790697590027, "data-fg-deka126": ":0:/src/app/components/PlatformStack.tsx:132:21:5044:29:e:strong:t", children: "manual entry" }),
8045            " and billing errors across providers"
8046          ] })
8047        ]
8048      }
8049    ],
8050    btn: "Explore Billing",
8051    img: Tg,
8052    link: "/fixed-route"
8053  },
8054  {
8055    num: "05",
8056    title: "Fixed Route Operations",
8057    subtitle: "Flexible Route Creation and Operation Tools",
8058    features: [
8059      {
8060        label: "Route Planning & Scheduling",
8061        bullets: [
8062          /* @__PURE__ */ c(C, { children: [
8063            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka130", _fgB: 1790697590027, "data-fg-deka130": ":0:/src/app/components/PlatformStack.tsx:148:13:5439:41:e:strong:t", children: "Graphical route planning" }),
8064            " with stations, waypoints, and custom blocks"
8065          ] }),
8066          /* @__PURE__ */ c(C, { children: [
8067            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka134", _fgB: 1790697590027, "data-fg-deka134": ":0:/src/app/components/PlatformStack.tsx:149:13:5541:40:e:strong:t", children: "Blocking and runcutting" }),
8068            " made easy."
8069          ] }),
8070          /* @__PURE__ */ c(C, { children: [
8071            "Driver and shift scheduling with ",
8072            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka139", _fgB: 1790697590027, "data-fg-deka139": ":0:/src/app/components/PlatformStack.tsx:150:46:5642:38:e:strong:t", children: "weekly hours tracking" })
8073          ] })
8074        ]
8075      },
8076      {
8077        label: "Live Operations & Integration",
8078        bullets: [
8079          /* @__PURE__ */ c(C, { children: [
8080            "Live operator dashboard with ",
8081            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka143", _fgB: 1790697590027, "data-fg-deka143": ":0:/src/app/components/PlatformStack.tsx:156:42:5821:35:e:strong:t", children: "real-time tracking" }),
8082            ", passenger counts, and dwell time"
8083          ] }),
8084          /* @__PURE__ */ c(C, { children: [
8085            "Driver MDTs with ",
8086            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka148", _fgB: 1790697590027, "data-fg-deka148": ":0:/src/app/components/PlatformStack.tsx:157:30:5924:40:e:strong:t", children: "stop-by-stop navigation" }),
8087            " and automatic rider onboarding"
8088          ] }),
8089          /* @__PURE__ */ c(C, { children: [
8090            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka152", _fgB: 1790697590027, "data-fg-deka152": ":0:/src/app/components/PlatformStack.tsx:158:13:6012:33:e:strong:t", children: "GTFS integration" }),
8091            " with live feeds and automatic uploads"
8092          ] }),
8093          /* @__PURE__ */ c(C, { children: [
8094            "Integrates with ",
8095            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "deka157", _fgB: 1790697590027, "data-fg-deka157": ":0:/src/app/components/PlatformStack.tsx:159:29:6116:37:e:strong:t", children: "Iris and Jarvis APCs" }),
8096            " for automatic passenger counting"
8097          ] })
8098        ]
8099      }
8100    ],
8101    btn: "Explore Fixed Route",
8102    img: Sg,
8103    link: "/fixed-route"
8104  }
8105];
8106function kg({ card: t, index: e }) {
8107  return /* @__PURE__ */ i(
8108    a,
8109    {
8110      _fgT: "div",
8111      _fgS: "deka160",
8112      _fgB: 1790697590027,
8113      _fgD: !0,
8114      className: "sticky top-[15vh] flex items-start justify-center w-full mb-6",
8115      style: {
8116        zIndex: e + 10
8117      },
8118      "data-fg-deka160": ":0:/src/app/components/PlatformStack.tsx:171:5:6392:3376:e:div:e:1",
8119      children: /* @__PURE__ */ c(
8120        a,
8121        {
8122          _fgT: m.div,
8123          _fgS: "deka161",
8124          _fgB: 1790697590027,
8125          initial: { opacity: 0, y: 50, scale: 0.95 },
8126          whileInView: { opacity: 1, y: 0, scale: 1 },
8127          viewport: { once: !0, amount: 0.4 },
8128          transition: { duration: 0.5, ease: "easeOut" },
8129          className: "relative w-[95%] max-w-[1200px] min-h-[70vh] bg-[#0056B3] border border-white/20 rounded-2xl overflow-hidden shadow-2xl grid grid-cols-1 md:grid-cols-[2fr_3fr] group",
8130          "data-fg-deka161": ":0:/src/app/components/PlatformStack.tsx:177:7:6543:3214:e:motion.div:xtetxte",
8131          children: [
8132            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deka163", _fgB: 1790697590027, className: "p-6 md:p-8 lg:p-10 flex flex-col order-2 md:order-1 z-10 h-full overflow-y-auto", "data-fg-deka163": ":0:/src/app/components/PlatformStack.tsx:186:9:7000:2237:e:div:xtetxtetxte", children: [
8133              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deka165", _fgB: 1790697590027, className: "mb-5 shrink-0", "data-fg-deka165": ":0:/src/app/components/PlatformStack.tsx:188:11:7133:630:e:div:ete", children: [
8134                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deka166", _fgB: 1790697590027, className: "flex justify-between items-start", "data-fg-deka166": ":0:/src/app/components/PlatformStack.tsx:189:13:7177:400:e:div:ete", children: [
8135                  /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "deka167", _fgB: 1790697590027, className: "text-[32px] md:text-[54px] tracking-tight font-space-grotesk leading-[1.05] text-white", style: { fontWeight: 800 }, "data-fg-deka167": ":0:/src/app/components/PlatformStack.tsx:190:15:7242:180:e:h3:x", children: t.title }),
8136                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka169", _fgB: 1790697590027, className: "text-4xl font-semibold text-white/20 font-space-grotesk", "data-fg-deka169": ":0:/src/app/components/PlatformStack.tsx:193:15:7437:121:e:div:x", children: t.num })
8137                ] }),
8138                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "deka171", _fgB: 1790697590027, className: "text-[13px] mt-3 text-blue-200/85 uppercase font-semibold", style: { letterSpacing: "0.18em" }, "data-fg-deka171": ":0:/src/app/components/PlatformStack.tsx:197:13:7590:156:e:p:x", children: t.subtitle })
8139              ] }),
8140              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka174", _fgB: 1790697590027, className: "flex-1 min-h-0 space-y-1", "data-fg-deka174": ":0:/src/app/components/PlatformStack.tsx:203:11:7820:968:e:div:x", children: t.features.map((s, r) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deka176", _fgB: 1790697590027, className: r > 0 ? "mt-[22px]" : "", "data-fg-deka176": ":0:/src/app/components/PlatformStack.tsx:205:15:7929:826:e:div:ete", children: [
8141                /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "deka177", _fgB: 1790697590027, className: "text-[13px] uppercase tracking-widest text-amber-200 mb-1.5", style: { fontWeight: 700 }, "data-fg-deka177": ":0:/src/app/components/PlatformStack.tsx:206:17:8002:160:e:h4:x", children: s.label }),
8142                /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "deka179", _fgB: 1790697590027, className: "space-y-[7px]", style: { fontSize: "15px" }, "data-fg-deka179": ":0:/src/app/components/PlatformStack.tsx:209:17:8179:555:e:ul:x", children: s.bullets.map((n, o) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "deka181", _fgB: 1790697590027, className: "flex items-start gap-2 text-blue-100/[.77] leading-[1.6] [&_strong]:text-white [&_strong]:font-[650]", style: { fontWeight: 500, fontSize: "15px" }, "data-fg-deka181": ":0:/src/app/components/PlatformStack.tsx:211:21:8318:372:e:li:ete", children: [
8143                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "deka182", _fgB: 1790697590027, className: "mt-[7px] h-1.5 w-1.5 rounded-full bg-amber-400 shrink-0", "data-fg-deka182": ":0:/src/app/components/PlatformStack.tsx:212:23:8515:76:e:span" }),
8144                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "deka183", _fgB: 1790697590027, style: { fontSize: "15px" }, "data-fg-deka183": ":0:/src/app/components/PlatformStack.tsx:213:23:8614:50:e:span:x", children: n })
8145                ] }, o)) })
8146              ] }, r)) }),
8147              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka186", _fgB: 1790697590027, className: "mt-4 shrink-0", "data-fg-deka186": ":0:/src/app/components/PlatformStack.tsx:222:11:8832:390:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: E, _fgS: "deka187", _fgB: 1790697590027, href: t.link || "#", className: "flex items-center gap-2 text-white uppercase tracking-widest text-xs font-semibold border-b border-white/30 pb-2 w-max hover:border-white hover:text-white transition-colors group-hover:pl-2 duration-300", "data-fg-deka187": ":0:node_modules/wouter:223:13:8876:329:e:Link:xte:::::C4yE", children: [
8148                t.btn,
8149                /* @__PURE__ */ i(a, { _fgT: D, _fgS: "deka189", _fgB: 1790697590027, size: 16, "data-fg-deka189": ":0:node_modules/lucide-react:225:1
81495:9161:24:e:ArrowRight::::::s5N" })
8150              ] }) })
8151            ] }),
8152            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka191", _fgB: 1790697590027, className: "relative h-48 md:h-full overflow-hidden order-1 md:order-2 bg-[#004494]", "data-fg-deka191": ":0:/src/app/components/PlatformStack.tsx:231:9:9269:468:e:div:e", children: /* @__PURE__ */ i(
8153              a,
8154              {
8155                _fgT: Le,
8156                _fgS: "deka192",
8157                _fgB: 1790697590027,
8158                src: t.img,
8159                alt: t.title,
8160                className: `w-full h-full transition-transform duration-[1500ms] ease-out group-hover:scale-105 ${t.title === "Rider & Driver Experience" ? "object-cover object-top -scale-x-100 group-hover:scale-x-[-1.05] group-hover:scale-y-105" : "object-cover"}`,
8161                "data-fg-deka192": ":0:/src/app/components/PlatformStack.tsx:232:11:9369:353:e:ImageWithFallback::::::DGky"
8162              }
8163            ) })
8164          ]
8165        }
8166      )
8167    }
8168  );
8169}
8170const Ag = {
8171  hidden: { opacity: 0 },
8172  visible: {
8173    opacity: 1,
8174    transition: {
8175      staggerChildren: 0.1,
8176      delayChildren: 0.2
8177    }
8178  }
8179}, Ng = {
8180  hidden: { y: "110%", rotate: 3 },
8181  visible: {
8182    y: 0,
8183    rotate: 0,
8184    transition: {
8185      duration: 0.8,
8186      ease: [0.2, 0.65, 0.3, 0.9]
8187    }
8188  }
8189};
8190function Ig() {
8191  const t = ["COMPLETE", "TRANSIT", "SUITE"];
8192  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "deka193", _fgB: 1790697590027, _fgD: !0, id: "solutions", className: "py-24 relative bg-white", "data-fg-deka193": ":0:/src/app/components/PlatformStack.tsx:270:5:10236:1641:e:section:ete:1", children: [
8193    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deka194", _fgB: 1790697590027, className: "text-center mb-16 px-6", "data-fg-deka194": ":0:/src/app/components/PlatformStack.tsx:271:7:10303:1370:e:div:etete", children: [
8194      /* @__PURE__ */ i(
8195        a,
8196        {
8197          _fgT: m.div,
8198          _fgS: "deka195",
8199          _fgB: 1790697590027,
8200          initial: { opacity: 0, y: 10 },
8201          whileInView: { opacity: 1, y: 0 },
8202          viewport: { once: !0, amount: 0.8 },
8203          className: "uppercase text-xs font-bold text-[#0056B3] tracking-widest mb-4",
8204          "data-fg-deka195": ":0:/src/app/components/PlatformStack.tsx:272:9:10352:289:e:motion.div:t",
8205          children: "The Platform"
8206        }
8207      ),
8208      /* @__PURE__ */ i(
8209        a,
8210        {
8211          _fgT: m.h2,
8212          _fgS: "deka197",
8213          _fgB: 1790697590027,
8214          className: "text-5xl md:text-7xl font-semibold text-slate-900 tracking-tight font-space-grotesk mb-6 flex justify-center gap-4 flex-wrap",
8215          variants: Ag,
8216          initial: "hidden",
8217          whileInView: "visible",
8218          viewport: { once: !0, amount: 0.8, margin: "0px 0px -100px 0px" },
8219          "data-fg-deka197": ":0:/src/app/components/PlatformStack.tsx:281:9:10659:611:e:motion.h2:x",
8220          children: t.map((e, s) => /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka199", _fgB: 1790697590027, className: "overflow-hidden", "data-fg-deka199": ":0:/src/app/components/PlatformStack.tsx:289:13:11053:182:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: m.span, _fgS: "deka200", _fgB: 1790697590027, className: "block", variants: Ng, "data-fg-deka200": ":0:/src/app/components/PlatformStack.tsx:290:15:11109:107:e:motion.span:x", children: e }) }, s))
8221        }
8222      ),
8223      /* @__PURE__ */ i(
8224        a,
8225        {
8226          _fgT: m.p,
8227          _fgS: "deka202",
8228          _fgB: 1790697590027,
8229          initial: { opacity: 0, y: 20 },
8230          whileInView: { opacity: 1, y: 0 },
8231          viewport: { once: !0, amount: 0.8 },
8232          transition: { delay: 0.5, duration: 0.8 },
8233          className: "font-light text-slate-600 max-w-xl mx-auto text-lg",
8234          "data-fg-deka202": ":0:/src/app/components/PlatformStack.tsx:297:9:11288:372:e:motion.p:t",
8235          children: "One platform to rule every aspect of your transit operation"
8236        }
8237      )
8238    ] }),
8239    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "deka204", _fgB: 1790697590027, className: "w-full max-w-[1400px] mx-auto px-6 pb-24", "data-fg-deka204": ":0:/src/app/components/PlatformStack.tsx:308:7:11681:181:e:div:x", children: Bg.map((e, s) => /* @__PURE__ */ i(a, { _fgT: kg, _fgS: "deka206", _fgB: 1790697590027, card: e, index: s, "data-fg-deka206": ":0:/src/app/components/PlatformStack.tsx:310:19:11792:45:e:Card::::::B4Xc" }, e.num)) })
8240  ] });
8241}
8242const Pg = globalThis.__GLOBALS__.getAssetURL("2eb91e84f53b0a5e76be6b68861a7e5535f1b1d8.png"), Cg = {
8243  hidden: { opacity: 0 },
8244  visible: {
8245    opacity: 1,
8246    transition: {
8247      staggerChildren: 0.05,
8248      delayChildren: 0.1
8249    }
8250  }
8251}, Oa = {
8252  hidden: { opacity: 0, y: 20, filter: "blur(8px)" },
8253  visible: {
8254    opacity: 1,
8255    y: 0,
8256    filter: "blur(0px)",
8257    transition: {
8258      duration: 0.6,
8259      ease: "easeOut"
8260    }
8261  }
8262};
8263function Fg() {
8264  const { openContactModal: t } = Z(), e = "Your riders are waiting.".split(" "), s = "Let's build something better.".split(" ");
8265  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "dn1t0", _fgB: 1790697590041, _fgD: !0, id: "contact", className: "relative z-20 overflow-hidden px-4 md:px-8 py-4 md:py-8", "data-fg-dn1t0": ":0:/src/app/components/CTA.tsx:35:5:782:2271:e:section:xtete:1", children: [
8266    /* @__PURE__ */ i(
8267      a,
8268      {
8269        _fgT: "img",
8270        _fgS: "dn1t2",
8271        _fgB: 1790697590041,
8272        src: Pg,
8273        alt: "",
8274        className: "absolute inset-4 md:inset-8 w-[calc(100%-2rem)] md:w-[calc(100%-4rem)] h-[calc(100%-2rem)] md:h-[calc(100%-4rem)] object-cover rounded-2xl md:rounded-3xl",
8275        "data-fg-dn1t2": ":0:/src/app/components/CTA.tsx:37:7:946:222
8275:e:img"
8276      }
8277    ),
8278    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dn1t3", _fgB: 1790697590041, className: "relative z-10 flex flex-col items-center min-h-[750px] md:min-h-[900px] px-6 text-center", "data-fg-dn1t3": ":0:/src/app/components/CTA.tsx:43:7:1176:1862:e:div:xtetxtetxte", children: [
8279      /* @__PURE__ */ c(
8280        a,
8281        {
8282          _fgT: m.h2,
8283          _fgS: "dn1t5",
8284          _fgB: 1790697590041,
8285          className: "text-4xl md:text-6xl font-bold text-[#1a2332] pt-12 md:pt-16 tracking-tight font-space-grotesk",
8286          variants: Cg,
8287          initial: "hidden",
8288          whileInView: "visible",
8289          viewport: { once: !0, amount: 0.8, margin: "0px 0px -100px 0px" },
8290          "data-fg-dn1t5": ":0:/src/app/components/CTA.tsx:45:9:1334:869:e:motion.h2:ete",
8291          children: [
8292            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dn1t6", _fgB: 1790697590041, className: "flex flex-wrap justify-center gap-x-3", "data-fg-dn1t6": ":0:/src/app/components/CTA.tsx:52:11:1660:253:e:span:x", children: e.map((r, n) => /* @__PURE__ */ i(a, { _fgT: m.span, _fgS: "dn1t8", _fgB: 1790697590041, variants: Oa, "data-fg-dn1t8": ":0:/src/app/components/CTA.tsx:54:15:1774:105:e:motion.span:x", children: r }, `l1-${n}`)) }),
8293            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dn1t10", _fgB: 1790697590041, className: "flex flex-wrap justify-center gap-x-3 mt-1", "data-fg-dn1t10": ":0:/src/app/components/CTA.tsx:59:11:1924:258:e:span:x", children: s.map((r, n) => /* @__PURE__ */ i(a, { _fgT: m.span, _fgS: "dn1t12", _fgB: 1790697590041, variants: Oa, "data-fg-dn1t12": ":0:/src/app/components/CTA.tsx:61:15:2043:105:e:motion.span:x", children: r }, `l2-${n}`)) })
8294          ]
8295        }
8296      ),
8297      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dn1t15", _fgB: 1790697590041, className: "flex-1", "data-fg-dn1t15": ":0:/src/app/components/CTA.tsx:69:9:2275:26:e:div" }),
8298      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dn1t17", _fgB: 1790697590041, className: "pb-10 md:pb-14", "data-fg-dn1t17": ":0:/src/app/components/CTA.tsx:72:9:2372:653:e:div:e", children: /* @__PURE__ */ i(
8299        a,
8300        {
8301          _fgT: m.div,
8302          _fgS: "dn1t18",
8303          _fgB: 1790697590041,
8304          initial: { opacity: 0, y: 20 },
8305          whileInView: { opacity: 1, y: 0 },
8306          viewport: { once: !0, amount: 1 },
8307          transition: { delay: 0.6, duration: 0.5 },
8308          "data-fg-dn1t18": ":0:/src/app/components/CTA.tsx:73:11:2415:595:e:motion.div:e",
8309          children: /* @__PURE__ */ i(
8310            a,
8311            {
8312              _fgT: "button",
8313              _fgS: "dn1t19",
8314              _fgB: 1790697590041,
8315              onClick: t,
8316              className: "inline-block bg-transparent border-2 border-white text-white font-bold tracking-widest rounded-full px-14 py-6 text-lg hover:bg-white/15 transition-all duration-300 backdrop-blur-sm cursor-pointer",
8317              "data-fg-dn1t19": ":0:/src/app/components/CTA.tsx:79:13:2646:340:e:button:t",
8318              children: "Schedule a Meeting"
8319            }
8320          )
8321        }
8322      ) })
8323    ] })
8324  ] });
8325}
8326const Eg = globalThis.__GLOBALS__.getAssetURL("13f77251b9538c4af5e5122a2eab7014a16ccf54.png");
8327function Me() {
8328  p5();
8329  const t = (e) => {
8330    switch (e) {
8331      case "All Markets":
8332        return "/markets";
8333      case "Microtransit":
8334        return "/microtransit";
8335      case "Paratransit":
8336        return "/paratransit";
8337      case "NEMT":
8338        return "/nemt";
8339      case "Fixed Route":
8340        return "/markets/fixed-route";
8341      case "Private TNC's & Taxi":
8342        return "/taxi-dispatch";
8343      case "Offerings":
8344        return "/offerings";
8345      case "All-In-One Platform":
8346        return "/all-in-one-platform";
8347      case "AI Solutions":
8348        return "/ai-solutions";
8349      case "About Us":
8350        return "/about";
8351      case "News & Articles":
8352        return "/news-articles";
8353      case "Book a Meeting":
8354        return "/meet";
8355      default:
8356        return "#";
8357    }
8358  };
8359  return /* @__PURE__ */ i(a, { _fgT: "footer", _fgS: "bb440", _fgB: 1790697589916, _fgD: !0, className: "w-full bg-[#0A1628] text-white py-8 md:py-10", "data-fg-bb440": ":0:/src/app/components/Footer.tsx:26:5:941:4932:e:footer:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb441", _fgB: 1790697589916, className: "w-full max-w-7xl mx-auto px-6", "data-fg-bb441": ":0:/src/app/components/Footer.tsx:27:7:1013:4846:e:div:ete", children: [
8360    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb442", _fgB: 1790697589916, className: "grid grid-cols-1 md:grid-cols-12 gap-8 w-full mb-8 items-start", "data-fg-bb442": ":0:/src/app/components/Footer.tsx:28:9:1069:4311:e:div:xtetxte", children: [
8361      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb444", _fgB: 1790697589916, className: "md:col-span-5 flex flex-col gap-4", "data-fg-bb444": ":0:/src/app/components/Footer.tsx:30:11:1184:1316:e:div:etete", children: [
8362        /* @__PURE__ */ i(a, { _fgT: E, _fgS: "bb445", _fgB: 1790697589916, href: "/", className: "self-start inline-block transition-transform duration-300 hover:-translate-y-1", "data-fg-bb445": ":0:node_modules/wouter:31:13:1248:299:e:Link:e:::::C4yE", children: /* @__PURE__ */ i(
8363          a,
8364          {
8365            _fgT: "img",
8366            _fgS: "bb446",
8367            _fgB: 1790697589916,
8368            src: Eg,
8369            alt: "IT Curves",
8370            className: "h-8 w-auto object-contain brightness-0 invert",
8371            "data-fg-bb446": ":0:/src/app/components/Footer.tsx:32:15:1369:158:e:img"
8372          }
8373        ) }),
8374        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bb447", _fgB: 1790697589916, className: "text-blue-100 max-w-sm font-light text-sm leading-snug", "data-fg-bb447": ":0:/src/app/components/Footer.tsx:38:13:1560:226:e:p:t", children: "Empowering transportation service providers with next-generation dispatch, scheduling, and routing technology." }),
8375        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bb449", _fgB: 1790697589916, className: "flex gap-2.5 mt-1", "data-fg-bb449": ":0:/src/app/components/Footer.tsx:42:13:1799:684:e:div:x", children: [
8376          { Icon: K7, href: "https://www.linkedin.com/company/it-curves/posts/?feedView=all" }
8377        ].map(({ Icon: e, href: s }, r) => /* @__PURE__ */ i(
8378          a,
8379          {
8380            _fgT: "a",
8381            _fgS: "bb4411",
8382            _fgB: 1790697589916,
8383            href: s,
8384            target: "_blank",
8385            rel: "noopener noreferrer",
8386            className: "w-8 h-8 rounded-full border border-white/20 flex items-center justify-center transition-all duration-300 hover:-translate-y-1 hover:text-yellow-400 hover:border-yellow-400 bg-white/5",
8387            "data-fg-bb4411": ":0:/src/app/components/Footer.tsx:46:17:2021:425:e:a:e",
8388            children: /* @__PURE__ */ i(a, { _fgT: e, _fgS: "bb4412", _fgB: 1790697589916, size: 14, "data-fg-bb4412": ":0:/src/app/components/Footer.tsx:53:19:2407:18:e:Icon" })
8389          },
8390          r
8391        )) })
8392      ] }),
8393      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4414", _fgB: 1790697589916, className: "md:col-span-7 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8 md:gap-4 md:pl-10", "data-fg-bb4414": ":0:/src/app/components/Footer.tsx:60:11:2564:2801:e:div:etetete", children: [
8394        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4415", _fgB: 1790697589916, "data-fg-bb4415": ":0:/src/app/components/Footer.tsx:61:13:2679:677:e:div:ete", children: [
8395          /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bb4416", _fgB: 1790697589916, className: "font-bold uppercase tracking-widest text-[11px] mb-3 text-blue-200", "data-fg-bb4416": ":0:/src/app/components/Footer.tsx:62:15:2699:127:e:h4:t", children: "Markets" }),
8396          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bb4418", _fgB: 1790697589916, className: "flex flex-col gap-2 text-white text-[13px] font-medium", "data-fg-bb4418": ":0:/src/app/components/Footer.tsx:65:15:2841:496:e:ul:x", children: ["All Markets", "Microtransit", "Paratransit", "NEMT", "Fixed Route", "Private TNC's & Taxi"].map((e) => /* @__PURE__ */ i(a, { _fgT: "li", _fgS: "bb4420", _fgB: 1790697589916, "data-fg-bb4420": ":0:/src/app/components/Footer.tsx:67:19:3058:239:e:li:e", children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "bb4421", _fgB: 1790697589916, href: t(e), className: "inline-block transition-all duration-300 hover:text-yellow-400 hover:translate-x-1", "data-fg-bb4421": ":0:node_modules/wouter:68:21:3094:179:e:Link:x:::::C4yE", children: e }) }, e)) })
8397        ] }),
8398        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4423", _fgB: 1790697589916, "data-fg-bb4423": ":0:/src/app/components/Footer.tsx:76:13:3370:625:e:div:ete", children: [
8399          /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bb4424", _fgB: 1790697589916, className: "font-bold uppercase tracking-widest text-[11px] mb-3 text-blue-200", "data-fg-bb4424": ":0:/src/app/components/Footer.tsx:77:15:3390:129:e:h4:t", children: "Solutions" }),
8400          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bb4426", _fgB: 1790697589916, className: "flex flex-col gap-2 text-white text-[13px] font-medium", "data-fg-bb4426": ":0:/src/app/components/Footer.tsx:80:15:3534:442:e:ul:x", children: ["All-In-One Platform", "AI Solutions"].map((e) => /* @__PURE__ */ i(a, { _fgT: "li", _fgS: "bb4428", _fgB: 1790697589916, "data-fg-bb4428": ":0:/src/app/components/Footer.tsx:82:19:3697:239:e:li:e", children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "bb4429", _fgB: 1790697589916, href: t(e), className: "inline-block transition-all duration-300 hover:text-yellow-400 hover:translate-x-1", "data-fg-bb4429": ":0:node_modules/wouter:83:21:3733:179:e:Link:x:::::C4yE", children: e }) }, e)) })
8401        ] }),
8402        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4431", _fgB: 1790697589916, "data-fg-bb4431": ":0:/src/app/components/Footer.tsx:91:13:4009:779:e:div:ete", children: [
8403          /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bb4432", _fgB: 1790697589916, className: "font-bold uppercase tracking-widest text-[11px] mb-3 text-blue-200", "data-fg-bb4432": ":0:/src/app/components/Footer.tsx:92:15:4029:127:e:h4:t", children: "Company" }),
8404          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bb4434", _fgB: 1790697589916, className: "flex flex-col gap-2 text-white text-[13px] font-medium", "data-fg-bb4434": ":0:/src/app/components/Footer.tsx:95:15:4171:598:e:ul:x", children: ["About Us", "News & Articles", "Book a Meeting"].map((e) => /* @__PURE__ */ i(a, { _fgT: "li", _fgS: "bb4436", _fgB: 1790697589916, "data-fg-bb4436": ":0:/src/app/components/Footer.tsx:97:19:4344:385:e:li:e", children: /* @__PURE__ */ i(
8405            a,
8406            {
8407              _fgT: E,
8408              _fgS: "bb4437",
8409              _fgB: 1790697589916,
8410              href: t(e),
8411              onClick: () => {
8412                window.scrollTo(0, 0);
8413              },
8414              className: "inline-block transition-all duration-300 hover:text-yellow-400 hover:translate-x-1 cursor-pointer",
8415              "data-fg-bb4437": ":0:node_modules/wouter:98:21:4380:325:e:Link:x:::::C4yE",
8416              children: e
8417            }
8418          ) }, e)) })
8419        ] }),
8420        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4439", _fgB: 1790697589916, "data-fg-bb4439": ":0:/src/app/components/Footer.tsx:110:13:4802:546:e:div:ete", children: [
8421          /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bb4440", _fgB: 1790697589916, className: "font-bold uppercase tracking-widest text-[11px] mb-3 text-blue-200", "data-fg-bb4440": ":0:/src/app/components/Footer.tsx:111:15:4822:133:e:h4:t", children: "Quick Contact" }),
8422          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4442", _fgB: 1790697589916, className: "flex flex-col gap-2 text-white text-[13px] font-medium", "data-fg-bb4442": ":0:/src/app/components/Footer.tsx:114:15:4970:359:e:div:ete", children: [
8423            /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "bb4443", _fgB: 1790697589916, "data-fg-bb4443": ":0:/src/app/components/Footer.tsx:115:17:5059:58:e:p:tet", children: [
8424              "8201 Snouffer School Rd",
8425              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bb4445", _fgB: 1790697589916, "data-fg-bb4445": ":0:/src/app/components/Footer.tsx:115:43:5085:6:e:br" }),
8426              "Gaithersburg, MD 20879"
8427            ] }),
8428            /* @__PURE__ */ i(a, { _fgT: "a", _fgS: "bb4447", _fgB: 1790697589916, href: "tel:+13012082222", className: "inline-block transition-all duration-300 hover:text-yellow-400 hover:translate-x-1", "data-fg-bb4447": ":0:/src/app/components/Footer.tsx:116:17:5134:174:e:a:t", children: "301.208.2222" })
8429          ] })
8430        ] })
8431      ] })
8432    ] }),
8433    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bb4449", _fgB: 1790697589916, className: "border-t border-white/10 pt-5 flex flex-col md:flex-row justify-between items-center gap-4 text-[11px] text-blue-200", "data-fg-bb4449": ":0:/src/app/components/Footer.tsx:124:9:5390:456:e:div:ete", children: [
8434      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bb4450", _fgB: 1790697589916, "data-fg-bb4450": ":0:/src/app/components/Footer.tsx:125:11:5535:45:e:p:t", children: "© 2026 IT Curves. All rights reserved." }),
8435      /* @__PURE__ */ i(
8436        a,
8437        {
8438          _fgT: E,
8439          _fgS: "bb4452",
8440          _fgB: 1790697589916,
8441          href: "/flyers",
8442          onClick: () => {
8443            window.scrollTo(0, 0);
8444          },
8445          className: "text-white/30 hover:text-white/60 transition-colors duration-300 cursor-pointer",
8446          "data-fg-bb4452": ":0:node_modules/wouter:126:11:5591:240:e:Link:t:::::C4yE",
8447          children: "Flyers"
8448        }
8449      )
8450    ] })
8451  ] }) });
8452}
8453function Rg() {
8454  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "b3c70", _fgB: 1790697590043, _fgD: !0, className: "py-24 bg-[#0A1628]", "data-fg-b3c70": ":0:/src/app/components/VideoShowcase.tsx:5:5:89:1624:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b3c71", _fgB: 1790697590043, className: "container mx-auto px-6", "data-fg-b3c71": ":0:/src/app/components/VideoShowcase.tsx:6:7:136:1562:e:div:ete", children: [
8455    /* @__PURE__ */ c(
8456      a,
8457      {
8458        _fgT: m.div,
8459        _fgS: "b3c72",
8460        _fgB: 1790697590043,
8461        initial: { opacity: 0, y: 30 },
8462        whileInView: { opacity: 1, y: 0 },
8463        viewport: { once: !0 },
8464        transition: { duration: 0.6 },
8465        className: "max-w-4xl mx-auto text-center mb-12",
8466        "data-fg-b3c72": ":0:/src/app/components/VideoShowcase.tsx:7:9:185:728:e:motion.div:ete",
8467        children: [
8468          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "b3c73", _fgB: 1790697590043, className: "text-3xl md:text-4xl font-light text-white mb-6 font-[Space_Grotesk]", "data-fg-b3c73": ":0:/src/app/components/VideoShowcase.tsx:14:11:439:148:e:h2:t", children: "IT Curves is more than technology." }),
8469          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b3c75", _fgB: 1790697590043, className: "text-gray-400 text-lg leading-relaxed max-w-3xl mx-auto", "data-fg-b3c75": ":0:/src/app/components/VideoShowcase.tsx:17:11:598:293:e:p:t", children: "IT Curves is more than technology. We're proud to be a Maryland-based, vertically integrated network of four transportation companies—delivering smarter, safer, and more reliable transportation." })
8470        ]
8471      }
8472    ),
8473    /* @__PURE__ */ i(
8474      a,
8475      {
8476        _fgT: m.div,
8477        _fgS: "b3c77",
8478        _fgB: 1790697590043,
8479        initial: { opacity: 0, y: 30 },
8480        whileInView: { opacity: 1, y: 0 },
8481        viewport: { once: !0 },
8482        transition: { duration: 0.6, delay: 0.2 },
8483        className: "max-w-4xl mx-auto",
8484        "data-fg-b3c77": ":0:/src/app/components/VideoShowcase.tsx:22:9:923:762:e:motion.div:e",
8485        children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b3c78", _fgB: 1790697590043, className: "relative w-full rounded-2xl overflow-hidden shadow-2xl border border-white/10", style: { paddingBottom: "56.25%" }, "data-fg-b3c78": ":0:/src/app/components/VideoShowcase.tsx:29:11:1171:492:e:div:e", children: /* @__PURE__ */ i(
8486          a,
8487          {
8488            _fgT: "iframe",
8489            _fgS: "b3c79",
8490            _fgB: 1790697590043,
8491            className: "absolute inset-0 w-full h-full",
8492            src: "https://www.youtube.com/embed/LyuFJtAiXUI",
8493            title: "IT Curves Video",
8494            allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
8495            allowFullScreen: !0,
8496            "data-fg-b3c79": ":0:/src/app/components/VideoShowcase.tsx:30:13:1315:331:e:iframe"
8497          }
8498        ) })
8499      }
8500    )
8501  ] }) });
8502}
8503function Va() {
8504  return /* @__PURE__ */ c(C, { children: [
8505    /* @__PURE__ */ i(a, { _fgT: Yd, _fgS: "q5z1", _fgB: 1790697589402, "data-fg-q5z1": ":0:/src/app/pages/HomePage.tsx:15:7:626:10:e:HeroV2::::::Dp4V" }),
8506    /* @__PURE__ */ i(a, { _fgT: Qd, _fgS: "q5z3", _fgB: 1790697589402, "data-fg-q5z3": ":0:/src/app/pages/HomePage.tsx:17:7:666:21:e:AcquisitionBanner::::::io3" }),
8507    /* @__PURE__ */ i(a, { _fgT: Lg, _fgS: "q5z4", _fgB: 1790697589402, "data-fg-q5z4": ":0:/src/app/pages/HomePage.tsx:18:7:694:11:e:Markets::::::BBXd" }),
8508    /* @__PURE__ */ i(a, { _fgT: bg, _fgS: "q5z5", _fgB: 1790697589402, "data-fg-q5z5": ":0:/src/app/pages/HomePage.tsx:19:7:712:19:e:TrustedAgencies::::::Bms5" }),
8509    /* @__PURE__ */ i(a, { _fgT: Ig, _fgS: "q5z6", _fgB: 1790697589402, "data-fg-q5z6": ":0:/src/app/pages/HomePage.tsx:20:7:738:17:e:PlatformStack::::::EFxV" }),
8510    /* @__PURE__ */ i(a, { _fgT: Rg, _fgS: "q5z8", _fgB: 1790697589402, "data-fg-q5z8": ":0:/src/app/pages/HomePage.tsx:22:7:793:17:e:VideoShowcase::::::oyR" }),
8511    /* @__PURE__ */ i(a, { _fgT: Fg, _fgS: "q5z9", _fgB: 1790697589402, "data-fg-q5z9": ":0:/src/app/pages/HomePage.tsx:23:7:817:7:e:CTA::::::EAYt" }),
8512    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "q5z10", _fgB: 1790697589402, "data-fg-q5z10": ":0:/src/app/pages/HomePage.tsx:24:7:831:10:e:Footer::::::B1Vv" })
8513  ] });
8514}
8515const Dg = globalThis.__GLOBALS__.getAssetURL("8c7e6bacabea10a317ff6e5ecdc576f762c88036.png");
8516function zg() {
8517  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "ba160", _fgB: 1790697590046, _fgD: !0, className: "relative h-[80vh] min-h-[600px] overflow-hidden bg-black", "data-fg-ba160": ":0:/src/app/components/markets/MarketsHero.tsx:8:5:313:1437:e:section:xtetxte:1", children: [
8518    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ba162", _fgB: 1790697590046, className: "absolute inset-0", "data-fg-ba162": ":0:/src/app/components/markets/MarketsHero.tsx:10:7:429:329:e:div:ete", children: [
8519      /* @__PURE__ */ i(
8520        a,
8521        {
8522          _fgT: Le,
8523          _fgS: "ba163",
8524          _fgB: 1790697590046,
8525          src: Dg,
8526          alt: "Transit riders",
8527          className: "w-full h-full object-cover object-top opacity-60",
8528          "data-fg-ba163": ":0:/src/app/components/markets/MarketsHero.tsx:11:9:472:161:e:ImageWithFallback::::::Bqoy"
8529        }
8530      ),
8531      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ba164", _fgB: 1790697590046, className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/40 to-transparent w-[60%]", "data-fg-ba164": ":0:/src/app/components/markets/MarketsHero.tsx:16:9:642:103:e:div" })
8532    ] }),
8533    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ba166", _fgB: 1790697590046, className: "relative z-10 h-full flex flex-col justify-center px-6 md:px-12 lg:px-16 max-w-4xl mr-auto", "data-fg-ba166": ":0:/src/app/components/markets/MarketsHero.tsx:20:7:788:947:e:div:e", children: /* @__PURE__ */ c(
8534      a,
8535      {
8536        _fgT: m.div,
8537        _fgS: "ba167",
8538        _fgB: 1790697590046,
8539        initial: { opacity: 0, y: 30 },
8540        animate: { opacity: 1, y: 0 },
8541        transition: { duration: 0.8, delay: 0.2 },
8542        "data-fg-ba167": ":0:/src/app/components/markets/MarketsHero.tsx:21:9:905:817:e:motion.div:etete",
8543        children: [
8544          /* @__PURE__ */ i(a, { _fgT: "h5", _fgS: "ba168", _fgB: 1790697590046, className: "text-[#EFBB0F] font-bold tracking-widest uppercase mb-4", "data-fg-ba168": ":0:/src/app/components/markets/MarketsHero.tsx:26:11:1073:96:e:h5:t", children: "Beyond the Software" }),
8545          /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "ba1610", _fgB: 1790697590046, className: "text-5xl md:text-7xl lg:text-8xl font-light text-white mb-6 leading-[0.9] font-[Space_Grotesk]", "data-fg-ba1610": ":0:/src/app/components/markets/MarketsHero.tsx:27:11:1180:249:e:h1:tete", children: [
8546            "Moving People, ",
8547            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "ba1612", _fgB: 1790697590046, "data-fg-ba1612": ":0:/src/app/components/markets/MarketsHero.tsx:28:28:1319:6:e:br" }),
8548            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ba1613", _fgB: 1790697590046, className: "font-serif italic text-blue-200", "data-fg-ba1613": ":0:/src/app/components/markets/MarketsHero.tsx:29:13:1338:75:e:span:t", children: "Not Just Vehicles." })
8549          ] }),
8550          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ba1615", _fgB: 1790697590046, className: "text-xl md:text-2xl text-gray-200 max-w-2xl font-light leading-relaxed", "data-fg-ba1615": ":0:/src/app/components/markets/MarketsHero.tsx:31:11:1440:260:e:p:t", children: "IT Curves serves the full spectrum of public and specialized transit. One platform, purpose-built for the markets that keep communities connected." })
8551        ]
8552      }
8553    ) })
8554  ] });
8555}
8556const Ha = [
8557  { id: "paratransit", title: "Paratransit", desc: "Specialized care & ADA compliance", angle: 270, color: "bg-blue-100 text-blue-700", href: "/paratransit" },
8558  { id: "fixed-route", title: "Fixed Route", desc: "Reliable backbone of city transit", angle: 342, color: "bg-amber-100 text-amber-700", href: "/markets/fixed-route" },
8559  { id: "microtransit", title: "Microtransit", desc: "Flexible, on-demand urban mobility", angle: 54, color: "bg-green-100 text-green-700", href: "/microtransit" },
8560  { id: "nemt", title: "NEMT", desc: "Compassionate medical transportation", angle: 126, color: "bg-purple-100 text-purple-700", href: "/nemt" },
8561  { id: "taxi-dispatch", title: "Private TNC's & Taxi", desc: "Centralized multi-provider dispatch", angle: 198, color: "bg-yellow-100 text-yellow-700", href: "/taxi-dispatch" }
8562];
8563function jg() {
8564  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "bwio0", _fgB: 1790697590062, _fgD: !0, className: "py-12 bg-gradient-to-b from-blue-50 via-sky-50 to-white overflow-hidden relative flex flex-col items-center", "data-fg-bwio0": ":0:/src/app/components/markets/MarketHub.tsx:18:5:1113:4854:e:section:etxte:1", children: [
8565    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio1", _fgB: 1790697590062, className: "max-w-7xl mx-auto px-6 text-center relative z-10 mb-2", "data-fg-bwio1": ":0:/src/app/components/markets/MarketHub.tsx:19:7:1249:528:e:div:e", children: /* @__PURE__ */ c(
8566      a,
8567      {
8568        _fgT: m.div,
8569        _fgS: "bwio2",
8570        _fgB: 1790697590062,
8571        initial: { opacity: 0, y: 20 },
8572        whileInView: { opacity: 1, y: 0 },
8573        viewport: { once: !0 },
8574        transition: { duration: 0.6 },
8575        "data-fg-bwio2": ":0:/src/app/components/markets/MarketHub.tsx:20:9:1329:435:e:motion.div:ete",
8576        children: [
8577          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bwio3", _fgB: 1790697590062, className: "text-4xl md:text-5xl font-light text-slate-900 mb-4 font-[Space_Grotesk]", "data-fg-bwio3": ":0:/src/app/components/markets/MarketHub.tsx:26:11:1525:115:e:h2:t", children: "How Can We Serve You?" }),
8578          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bwio5", _fgB: 1790697590062, className: "text-slate-500 text-lg", "data-fg-bwio5": ":0:/src/app/components/markets/MarketHub.tsx:27:11:1651:91:e:p:t", children: "Select your market to explore tailored solutions." })
8579        ]
8580      }
8581    ) }),
8582    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bwio8", _fgB: 1790697590062, className: "relative w-[850px] h-[850px] scale-[0.35] sm:scale-50 md:scale-65 lg:scale-80 xl:scale-90 flex-shrink-0 flex items-center justify-center", "data-fg-bwio8": ":0:/src/app/components/markets/MarketHub.tsx:32:7:1863:4089:e:div:xtetxtetxte", children: [
8583      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio10", _fgB: 1790697590062, className: "absolute inset-0 z-10 pointer-events-none", "data-fg-bwio10": ":0:/src/app/components/markets/MarketHub.tsx:35:9:2063:1220:e:div:x", children: Ha.map((e, s) => /* @__PURE__ */ c(
8584        a,
8585        {
8586          _fgT: "div",
8587          _fgS: "bwio12",
8588          _fgB: 1790697590062,
8589          className: "absolute top-1/2 left-1/2 h-14 bg-gray-400/70 origin-left flex items-center overflow-hidden rounded-r-full",
8590          style: {
8591            width: "280px",
8592            transform: `translate(0, -50%) rotate(${e.angle}deg)`
8593          },
8594          "data-fg-bwio12": ":0:/src/app/components/markets/MarketHub.tsx:37:13:2175:1079:e:div:ete",
8595          children: [
8596            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio13", _fgB: 1790697590062, className: "w-full h-0 border-t-2 border-dashed border-yellow-400", "data-fg-bwio13": ":0:/src/app/components/markets/MarketHub.tsx:45:15:2530:73:e:div" }),
8597            /* @__PURE__ */ i(
8598              a,
8599              {
8600                _fgT: m.div,
8601                _fgS: "bwio14",
8602                _fgB: 1790697590062,
8603                className: "absolute",
8604                animate: {
8605                  left: ["10%", "80%", "10%"]
8606                },
8607                transition: {
8608                  duration: 10,
8609                  repeat: 1 / 0,
8610                  ease: "linear",
8611                  delay: s * 2
8612                },
8613                "data-fg-bwio14": ":0:/src/app/components/markets/MarketHub.tsx:47:15:2633:602:e:motion.div:e",
8614                children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio15", _fgB: 1790697590062, className: "p-1.5 bg-white rounded-full shadow-sm border border-slate-300 rotate-90 relative z-20", "data-fg-bwio15": ":0:/src/app/components/markets/MarketHub.tsx:59:19:3014:193:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: kc, _fgS: "bwio16", _fgB: 1790697590062, size: 14, className: "text-[#EFBB0F]", "data-fg-bwio16": ":0:node_modules/lucide-react:60:21:3138:44:e:Bus::::::EI9C" }) })
8615              }
8616            )
8617          ]
8618        },
8619        `road-${s}`
8620      )) }),
8621      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio18", _fgB: 1790697590062, className: "absolute inset-0 z-20 pointer-events-none", "data-fg-bwio18": ":0:/src/app/components/markets/MarketHub.tsx:68:9:3329:1800:e:div:x", children: Ha.map((e) => {
8622        const s = e.angle * Math.PI / 180, r = Math.cos(s) * 280, n = Math.sin(s) * 280;
8623        return /* @__PURE__ */ i(
8624          a,
8625          {
8626            _fgT: "div",
8627            _fgS: "bwio20",
8628            _fgB: 1790697590062,
8629            className: "absolute pointer-events-auto",
8630            style: {
8631              left: "50%",
8632              top: "50%",
8633              transform: `translate(${r}px, ${n}px) translate(-50%, -50%)`
8634            },
8635            "data-fg-bwio20": ":0:/src/app/components/markets/MarketHub.tsx:75:16:3630:1454:e:div:e",
8636            children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "bwio21", _fgB: 1790697590062, href: e.href, "data-fg-bwio21": ":0:node_modules/wouter:84:18:3975:1087:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(
8637              a,
8638              {
8639                _fgT: m.div,
8640                _fgS: "bwio22",
8641                _fgB: 1790697590062,
8642                whileHover: { scale: 1.05 },
8643                whileTap: { scale: 0.95 },
8644                className: "w-56 h-56 rounded-full bg-white border-4 border-white shadow-[0_8px_30px_rgba(0,0,0,0.12),0_2px_8px_rgba(0,0,0,0.06)] flex flex-col items-center justify-center p-5 cursor-pointer group transition-colors hover:border-blue-100",
8645                "data-fg-bwio22": ":0:/src/app/components/markets/MarketHub.tsx:85:20:4020:1017:e:motion.div:etete",
8646                children: [
8647                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio23", _fgB: 1790697590062, className: `w-12 h-12 rounded-full ${e.color} flex items-center justify-center mb-3 transition-transform duration-300`, "data-fg-bwio23": ":0:/src/app/components/markets/MarketHub.tsx:90:23:4435:343:e:div:e", children: /* @__PURE__ */ i(
8648                    a,
8649                    {
8650                      _fgT: D,
8651                      _fgS: "bwio24",
8652                      _fgB: 1790697590062,
8653                      size: 20,
8654                      style: { transform: `rotate(${e.angle}deg)` },
8655                      "data-fg-bwio24": ":0:node_modules/lucide-react:91:26:4591:158:e:ArrowRight::::::s5N"
8656                    }
8657                  ) }),
8658                  /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bwio25", _fgB: 1790697590062, className: "font-bold text-slate-800 text-xl mb-1 text-center", "data-fg-bwio25": ":0:/src/app/components/markets/MarketHub.tsx:96:23:4801:85:e:h3:x", children: e.title }),
8659                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bwio27", _fgB: 1790697590062, className: "text-xs text-slate-500 leading-tight max-w-[160px] text-center", "data-fg-bwio27": ":0:/src/app/components/markets/MarketHub.tsx:97:23:4909:95:e:p:x", children: e.desc })
8660                ]
8661              }
8662            ) })
8663          },
8664          `card-wrapper-${e.id}`
8665        );
8666      }) }),
8667      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bwio30", _fgB: 1790697590062, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-30 pointer-events-none", "data-fg-bwio30": ":0:/src/app/components/markets/MarketHub.tsx:106:9:5179:751:e:div:ete", children: [
8668        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio31", _fgB: 1790697590062, className: "w-44 h-44 bg-[#0056B3] rounded-full flex flex-col items-center justify-center shadow-[0_20px_50px_rgba(0,86,179,0.3)] relative border-[6px] border-white pointer-events-auto", "data-fg-bwio31": ":0:/src/app/components/markets/MarketHub.tsx:107:11:5292:454:e:div:xte", children: /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "bwio33", _fgB: 1790697590062, className: "text-white font-bold text-xl tracking-tight text-center leading-none", "data-fg-bwio33": ":0:/src/app/components/markets/MarketHub.tsx:109:13:5536:193:e:h1:tete", children: [
8669          "Dispatching ",
8670          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bwio35", _fgB: 1790697590062, "data-fg-bwio35": ":0:/src/app/components/markets/MarketHub.tsx:110:27:5648:6:e:br" }),
8671          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bwio36", _fgB: 1790697590062, className: "text-2xl", "data-fg-bwio36": ":0:/src/app/components/markets/MarketHub.tsx:111:15:5669:42:e:span:t", children: "Platform" })
8672        ] }) }),
8673        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bwio38", _fgB: 1790697590062, className: "absolute inset-0 rounded-full border-2 border-[#0056B3]/20 animate-ping pointer-events-none", style: { animationDuration: "3s" }, "data-fg-bwio38": ":0:/src/app/components/markets/MarketHub.tsx:115:11:5768:147:e:div" })
8674      ] })
8675    ] })
8676  ] });
8677}
8678const Og = globalThis.__GLOBALS__.getAssetURL("80cea0175c4f60a9cda5c3dc132266878b0d04e0.png"), Vg = globalThis.__GLOBALS__.getAssetURL("11b989c93598f45766dc3ea801f732037e64b931.png"), Hg = globalThis.__GLOBALS__.getAssetURL("66efa3c62e5aee394d99e73e037fdc61e8edcf77.png"), Zg = [
8679  {
8680    id: "paratransit",
8681    tag: "PARATRANSIT",
8682    num: "01",
8683    title: "Preserving Dignity & Efficiency.",
8684    body: "Paratransit is the backbone of equitable transit. IT Curves has deep expertise in demand-response operations, ADA-compliant scheduling, and eligibility management. Our platform powers the full paratransit lifecycle: rider registration and eligibility verification, automated scheduling and dispatch, real-time vehicle tracking, driver manifests via Drivego, and rider self-service through Transigo and IVR.",
8685    features: [
8686      { title: "Demand-Response Scheduling", desc: "Advanced algorithms optimize shared rides, reduce deadhead miles, and maximize vehicle utilization." },
8687      { title: "Rider Self-Service", desc: "Riders book, track, and manage trips via Transigo, web portal, SMS, or IVR phone system." },
8688      { title: "Compliance & Reporting", desc: "Built-in FTA compliance tools, ADA reporting, and NTD-ready data exports." }
8689    ],
8690    result: null,
8691    image: Og,
8692    btnText: "See Paratransit Features",
8693    link: "/paratransit"
8694  },
8695  {
8696    id: "fixed-route",
8697    tag: "FIXED ROUTE",
8698    num: "02",
8699    title: "Flexible Urban Freedom.",
8700    body: "IT Curves entered the Fixed Route space in 2020 and has since built robust tools for route building, scheduling, zone management, and real-time rider information. The 'Where's My Bus?' feature gives riders live vehicle locations pulled directly from the dispatch AVL system.",
8701    features: [
8702      { title: "Route Building & Scheduling", desc: "Graphical interface for creating and managing entire route networks with stops, timetables, and service parameters." },
8703      { title: "AI-Optimized Planning", desc: "Algorithm-driven route optimization that maximizes resource utilization and on-time performance." },
8704      { title: "Real-Time Rider Info", desc: "'Where's My Bus?' delivers live tracking via web, mobile app, and public displays." }
8705    ],
8706    result: null,
8707    image: "https://images.unsplash.com/photo-1600206085398-f6ede93b06f8?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjaXR5JTIwYnVzJTIwdXJiYW5lJTIwc3RyZWV0JTIwbW9kZXJufGVufDF8fHx8MTc3MDA2OTM5Nnww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
8708    btnText: "Explore Fixed Route",
8709    link: "/markets/fixed-route"
8710  },
8711  {
8712    id: "microtransit",
8713    tag: "MICROTRANSIT",
8714    num: "03",
8715    title: "The Backbone of Community Transit.",
8716    body: "Microtransit bridges the gap between fixed route and on-demand service. IT Curves powers flexible, zone-based transit that adapts to real-time rider demand. Our white-label capability means agencies deploy microtransit under their own brand.",
8717    features: [
8718      { title: "Zone-Based Dispatch", desc: "Flexible service zones with real-time demand-response routing within defined areas." },
8719      { title: "White-Label Deployment", desc: "Full brand customization, deployed as Annapolis Go Time and available for any agency." },
8720      { title: "Rider Experience", desc: "Riders book on-demand through Transigo with real-time tracking and fare payment." }
8721    ],
8722    result: null,
8723    image: Vg,
8724    btnText: "Explore Microtransit",
8725    link: "/microtransit"
8726  },
8727  {
8728    id: "nemt",
8729    tag: "NEMT",
8730    num: "04",
8731    title: "Compassion Powered by Technology.",
8732    body: "Non-Emergency Medical Transportation requires precision coordination between patients, healthcare facilities, transportation providers, and funding agencies. IT Curves’ Rides to Health (RTH) platform is purpose-built for this challenge, specifically targeting the complex, repeat-need transportation required by dialysis patients and other chronic care needs.",
8733    features: [
8734      { title: "Multi-Stakeholder Coordination", desc: "Central hub integrating patients, healthcare facilities, transportation providers, and funding agencies." },
8735      { title: "Subsidy Integration", desc: "Manages public subsidy programs (Medicaid), checks eligibility, and provides secure digital wallet." },
8736      { title: "Healthcare Facility Portal", desc: "Staff view, monitor, and manage all patient arrivals and departures regardless of assigned provider." }
8737    ],
8738    result: "Pilot with 3 local operators demonstrated cross-provider trip brokering. 7,242 pickups from dialysis centers.",
8739    image: Hg,
8740    btnText: "Explore NEMT Solutions",
8741    link: "/nemt"
8742  },
8743  {
8744    id: "taxi-dispatch",
8745    tag: "PRIVATE TNC'S & TAXI",
8746    num: "05",
8747    title: "Centralized Dispatch for Multi-Provider Networks.",
8748    body: "Transit agencies and transportation brokers often coordinate service across multiple contracted taxi and transportation companies. Dispatch 2.0’s built-in broker capability centralizes ride request distribution, provider assignment, and real-time trip tracking across all contracted operators.",
8749    features: [
8750      { title: "Multi-Provider Assignment", desc: "Route ride requests to the optimal provider based on availability, proximity, and cost." },
8751      { title: "Unified Tracking", desc: "Real-time visibility across all contracted operators from one dispatch dashboard." },
8752      { title: "Rider Transparency", desc: "Riders experience seamless service regardless of which provider is assigned." }
8753    ],
8754    result: null,
8755    image: "https://images.unsplash.com/photo-1657486232260-8be85026c8e0?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxtb2Rlcm4lMjB0YXhpJTIwZmxlZXQlMjBkaXNwYXRjaCUyMGNlbnRlcnxlbnwxfHx8fDE3NzEwMDkxODB8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
8756    btnText: "Learn About TNC & Taxi Dispatch",
8757    link: "/taxi-dispatch"
8758  }
8759];
8760function Wg() {
8761  const t = H(null), [e, s] = j({ width: 0, height: 0 });
8762  return q(() => {
8763    if (!t.current) return;
8764    const r = new ResizeObserver((n) => {
8765      const o = n[0];
8766      if (o) {
8767        const { width: L, height: d } = o.contentRect;
8768        s({ width: L, height: d });
8769      }
8770    });
8771    return r.observe(t.current), () => r.disconnect();
8772  }, []), [t, e];
8773}
8774function $g({ direction: t }) {
8775  const [e, { width: s, height: r }] = Wg();
8776  if (s === 0 || r === 0)
8777    return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a0", _fgB: 1790697590070, ref: e, className: "absolute inset-0 pointer-events-none", "data-fg-cd3a0": ":0:/src/app/components/markets/MarketDeepDives.tsx:128:12:7214:66:e:div" });
8778  const n = s / 2, o = 0, L = s / 2, d = r, l = t === "left" ? s * 0.15 : s * 0.85, g = r / 2, f = `
8779    M ${n}, ${o}
8780    C ${n}, ${r * 0.25}, ${l}, ${r * 0.25}, ${l}, ${g}
8781    C ${l}, ${r * 0.75}, ${L}, ${r * 0.75}, ${L}, ${d}
8782  `, p = 260, M = 20;
8783  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a1", _fgB: 1790697590070, _fgD: !0, ref: e, className: "absolute inset-0 pointer-events-none overflow-visible", "data-fg-cd3a1": ":0:/src/app/components/markets/MarketDeepDives.tsx:179:5:9009:1317:e:div:e:1", children: /* @__PURE__ */ c(
8784    a,
8785    {
8786      _fgT: "svg",
8787      _fgS: "cd3a2",
8788      _fgB: 1790697590070,
8789      width: s,
8790      height: r,
8791      className: "overflow-visible block",
8792      style: { width: "100%", height: "100%" },
8793      "data-fg-cd3a2": ":0:/src/app/components/markets/MarketDeepDives.tsx:180:7:9097:1218:e:svg:xtetxtetxtetxte",
8794      children: [
8795        /* @__PURE__ */ i(
8796          "path",
8797          {
8798            d: f,
8799            fill: "none",
8800            stroke: "rgba(0,0,0,0.08)",
8801            strokeWidth: p + M * 2 + 10,
8802            strokeLinecap: "butt",
8803            className: "blur-sm",
8804            "data-fg-cd3a4": ":0:/src/app/components/markets/MarketDeepDives.tsx:187:10:9315:216:e:path"
8805          }
8806        ),
8807        /* @__PURE__ */ i(
8808          "path",
8809          {
8810            d: f,
8811            fill: "none",
8812            stroke: "rgba(255, 255, 255, 0.4)",
8813            strokeWidth: p + M * 2,
8814            strokeLinecap: "butt",
8815            "data-fg-cd3a6": ":0:/src/app/components/markets/MarketDeepDives.tsx:197:9:9600:189:e:path"
8816          }
8817        ),
8818        /* @__PURE__ */ i(
8819          "path",
8820          {
8821            d: f,
8822            fill: "none",
8823            stroke: "rgba(51, 65, 85, 0.2)",
8824            strokeWidth: p,
8825            strokeLinecap: "butt",
8826            "data-fg-cd3a8": ":0:/src/app/components/markets/MarketDeepDives.tsx:206:9:9856:168:e:path"
8827          }
8828        ),
8829        /* @__PURE__ */ i(
8830          "path",
8831          {
8832            d: f,
8833            fill: "none",
8834            stroke: "rgba(245, 158, 11, 0.5)",
8835            strokeWidth: 8,
8836            strokeDasharray: "40 50",
8837            strokeLinecap: "butt",
8838            "data-fg-cd3a10": ":0:/src/app/components/markets/MarketDeepDives.tsx:215:9:10105:197:e:path"
8839          }
8840        )
8841      ]
8842    }
8843  ) });
8844}
8845function qg() {
8846  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a11", _fgB: 1790697590070, _fgD: !0, className: "bg-zinc-50 relative overflow-hidden", "data-fg-cd3a11": ":0:/src/app/components/markets/MarketDeepDives.tsx:230:5:10386:6187:e:div:xtetetx:1", children: [
8847    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a13", _fgB: 1790697590070, className: "fixed top-[-20%] left-[-10%] w-[50%] h-[50%] blur-[120px] rounded-full pointer-events-none bg-[#0056B3]/10 opacity-50 z-0", "data-fg-cd3a13": ":0:/src/app/components/markets/MarketDeepDives.tsx:232:7:10485:141:e:div" }),
8848    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a14", _fgB: 1790697590070, className: "fixed bottom-[-20%] right-[-10%] w-[50%] h-[50%] bg-[#0056B3]/5 blur-[120px] rounded-full pointer-events-none opacity-50 z-0", "data-fg-cd3a14": ":0:/src/app/components/markets/MarketDeepDives.tsx:233:7:10633:144:e:div" }),
8849    Zg.map((t, e) => {
8850      const s = e % 2 === 0, r = s ? "left" : "right";
8851      return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cd3a16", _fgB: 1790697590070, id: t.id, className: "relative py-24 md:py-32 w-full", "data-fg-cd3a16": ":0:/src/app/components/markets/MarketDeepDives.tsx:243:11:11245:5296:e:section:xtete", children: [
8852        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a18", _fgB: 1790697590070, className: "absolute inset-0 pointer-events-none flex justify-center overflow-hidden", "data-fg-cd3a18": ":0:/src/app/components/markets/MarketDeepDives.tsx:250:13:11549:262:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a19", _fgB: 1790697590070, className: "w-full max-w-[1400px] h-full relative", "data-fg-cd3a19": ":0:/src/app/components/markets/MarketDeepDives.tsx:251:16:11655:137:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: $g, _fgS: "cd3a20", _fgB: 1790697590070, direction: r, "data-fg-cd3a20": ":0:/src/app/components/markets/MarketDeepDives.tsx:252:19:11729:41:e:RoadSegment::::::DAb" }) }) }),
8853        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a21", _fgB: 1790697590070, className: "max-w-7xl mx-auto px-6 relative z-10", "data-fg-cd3a21": ":0:/src/app/components/markets/MarketDeepDives.tsx:256:13:11825:4695:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a22", _fgB: 1790697590070, className: `grid grid-cols-1 lg:grid-cols-2 gap-16 items-center ${s ? "" : "lg:flex-row-reverse"}`, "data-fg-cd3a22": ":0:/src/app/components/markets/MarketDeepDives.tsx:257:15:11894:4607:e:div:xtetxte", children: [
8854          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a24", _fgB: 1790697590070, className: `flex flex-col gap-6 ${s ? "lg:pr-20" : "lg:pl-20"}`, "data-fg-cd3a24": ":0:/src/app/components/markets/MarketDeepDives.tsx:260:17:12119:3483:e:div:etetetxtetxte", children: [
8855            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a25", _fgB: 1790697590070, className: "flex items-center gap-4", "data-fg-cd3a25": ":0:/src/app/components/markets/MarketDeepDives.tsx:261:21:12215:458:e:div:etete", children: [
8856              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cd3a26", _fgB: 1790697590070, className: "text-[#0056B3] font-mono text-xl font-bold bg-white/40 backdrop-blur-md px-2 py-1 rounded shadow-sm", "data-fg-cd3a26": ":0:/src/app/components/markets/MarketDeepDives.tsx:262:23:12279:135:e:span:x", children: t.num }),
8857              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a28", _fgB: 1790697590070, className: "h-px bg-[#0056B3]/30 w-12", "data-fg-cd3a28": ":0:/src/app/components/markets/MarketDeepDives.tsx:263:23:12437:45:e:div" }),
8858              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cd3a29", _fgB: 1790697590070, className: "text-slate-500 font-bold uppercase tracking-widest text-sm bg-white/40 backdrop-blur-md px-2 py-1 rounded", "data-fg-cd3a29": ":0:/src/app/components/markets/MarketDeepDives.tsx:264:23:12505:141:e:span:x", children: t.tag })
8859            ] }),
8860            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cd3a31", _fgB: 1790697590070, className: "text-4xl md:text-5xl lg:text-6xl font-light tracking-tight text-slate-900 bg-zinc-50/60 backdrop-blur-md rounded-xl p-3 -ml-3 inline-block shadow-sm border border-white/20", "data-fg-cd3a31": ":0:/src/app/components/markets/MarketDeepDives.tsx:267:21:12715:249:e:h3:x", children: t.title }),
8861            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a33", _fgB: 1790697590070, className: "bg-zinc-50/70 backdrop-blur-md rounded-xl p-6 border border-white/50 shadow-lg", "data-fg-cd3a33": ":0:/src/app/components/markets/MarketDeepDives.tsx:271:21:13006:278:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cd3a34", _fgB: 1790697590070, className: "text-lg text-slate-700 font-light leading-relaxed", "data-fg-cd3a34": ":0:/src/app/components/markets/MarketDeepDives.tsx:272:25:13127:130:e:p:x", children: t.body }) }),
8862            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a37", _fgB: 1790697590070, className: "space-y-4 mt-2", "data-fg-cd3a37": ":0:/src/app/components/markets/MarketDeepDives.tsx:278:21:13348:836:e:div:x", children: t.features.map((n, o) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a39", _fgB: 1790697590070, className: "flex gap-4 p-4 rounded-xl bg-white/60 backdrop-blur-md border border-white/40 hover:bg-white/80 transition-colors shadow-sm", "data-fg-cd3a39": ":0:/src/app/components/markets/MarketDeepDives.tsx:280:29:13470:659:e:div:ete", children: [
8863              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a40", _fgB: 1790697590070, className: "mt-1 flex-shrink-0 text-[#EFBB0F]", "data-fg-cd3a40": ":0:/src/app/components/markets/MarketDeepDives.tsx:281:33:13652:153:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cd3a41", _fgB: 1790697590070, size: 20, "data-fg-cd3a41": ":0:node_modules/lucide-react:282:37:13740:26:e:CheckCircle2::::::CELI" }) }),
8864              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a42", _fgB: 1790697590070, "data-fg-cd3a42": ":0:/src/app/components/markets/MarketDeepDives.tsx:284:33:13838:256:e:div:ete", children: [
8865                /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "cd3a43", _fgB: 1790697590070, className: "font-bold text-slate-900 text-sm", "data-fg-cd3a43": ":0:/src/app/components/markets/MarketDeepDives.tsx:285:37:13880:69:e:h4:x", children: n.title }),
8866                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cd3a45", _fgB: 1790697590070, className: "text-slate-500 text-sm leading-snug", "data-fg-cd3a45": ":0:/src/app/components/markets/MarketDeepDives.tsx:286:37:13986:69:e:p:x", children: n.desc })
8867              ] })
8868            ] }, o)) }),
8869            t.result && /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a48", _fgB: 1790697590070, className: "bg-slate-900/95 backdrop-blur-md rounded-2xl p-6 border border-slate-800 flex items-start gap-4 shadow-xl mt-4 text-white", "data-fg-cd3a48": ":0:/src/app/components/markets/MarketDeepDives.tsx:293:23:14246:626:e:div:ete", children: [
8870              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a49", _fgB: 1790697590070, className: "p-2 bg-white/10 rounded-lg shadow-sm text-[#EFBB0F]", "data-fg-cd3a49": ":0:/src/app/components/markets/MarketDeepDives.tsx:294:25:14410:151:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: E3, _fgS: "cd3a50", _fgB: 1790697590070, size: 20, "data-fg-cd3a50": ":0:node_modules/lucide-react:295:27:14506:24:e:TrendingUp::::::tM8" }) }),
8871              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cd3a51", _fgB: 1790697590070, "data-fg-cd3a51": ":0:/src/app/components/markets/MarketDeepDives.tsx:297:25:14586:257:e:div:ete", children: [
8872                /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "cd3a52", _fgB: 1790697590070, className: "font-bold text-xs uppercase tracking-wider text-slate-400 mb-1", "data-fg-cd3a52": ":0:/src/app/components/markets/MarketDeepDives.tsx:298:27:14618:90:e:h4:t", children: "Impact" }),
8873                /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "cd3a54", _fgB: 1790697590070, className: "font-medium italic text-sm leading-relaxed", "data-fg-cd3a54": ":0:/src/app/components/markets/MarketDeepDives.tsx:299:27:14735:77:e:p:txt", children: [
8874                  '"',
8875                  t.result,
8876                  '"'
8877                ] })
8878              ] })
8879            ] }),
8880            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a58", _fgB: 1790697590070, className: "pt-4", "data-fg-cd3a58": ":0:/src/app/components/markets/MarketDeepDives.tsx:304:21:14937:642:e:div:e", children: /* @__PURE__ */ c(
8881              a,
8882              {
8883                _fgT: E,
8884                _fgS: "cd3a59",
8885                _fgB: 1790697590070,
8886                href: t.link || `/markets#${t.id}`,
8887                className: "group inline-flex items-center justify-center rounded-full px-8 py-4 text-sm font-bold uppercase tracking-widest bg-[#0056B3] text-white hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-2xl hover:-translate-y-1",
8888                "data-fg-cd3a59": ":0:node_modules/wouter:305:23:14982:570:e:Link:ete:::::C4yE",
8889                children: [
8890                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cd3a60", _fgB: 1790697590070, className: "mr-2", "data-fg-cd3a60": ":0:/src/app/components/markets/MarketDeepDives.tsx:309:25:15370:44:e:span:x", children: t.btnText }),
8891                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cd3a62", _fgB: 1790697590070, size: 16, className: "transition-transform group-hover:translate-x-1", "data-fg-cd3a62": ":0:node_modules/lucide-react:310:25:15439:83:e:ArrowRight::::::s5N" })
8892                ]
8893              }
8894            ) })
8895          ] }),
8896          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cd3a64", _fgB: 1790697590070, className: "relative", "data-fg-cd3a64": ":0:/src/app/components/markets/MarketDeepDives.tsx:316:17:15664:799:e:div:e", children: /* @__PURE__ */ i(
8897            a,
8898            {
8899              _fgT: m.div,
8900              _fgS: "cd3a65",
8901              _fgB: 1790697590070,
8902              initial: { opacity: 0, scale: 0.95 },
8903              whileInView: { opacity: 1, scale: 1 },
8904              viewport: { once: !0, amount: 0.3 },
8905              transition: { duration: 0.8 },
8906              className: "relative aspect-[4/3] overflow-hidden rounded-[2.5rem] bg-slate-100 shadow-2xl border-8 border-white z-10",
8907              "data-fg-cd3a65": ":0:/src/app/components/markets/MarketDeepDives.tsx:317:22:15712:728:e:motion.div:e",
8908              children: /* @__PURE__ */ i(
8909                a,
8910                {
8911                  _fgT: Le,
8912                  _fgS: "cd3a66",
8913                  _fgB: 1790697590070,
8914                  src: t.image,
8915                  alt: t.title,
8916                  className: "w-full h-full object-cover transition-transform duration-700 hover:scale-105",
8917                  "data-fg-cd3a66": ":0:/src/app/components/markets/MarketDeepDives.tsx:324:25:16158:246:e:ImageWithFallback::::::Bqoy"
8918                }
8919              )
8920            }
8921          ) })
8922        ] }) })
8923      ] }, t.id);
8924    })
8925  ] });
8926}
8927function Ug() {
8928  const { openContactModal: t } = Z();
8929  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "be6g0", _fgB: 1790697590065, _fgD: !0, className: "py-24 bg-slate-900 text-white text-center relative overflow-hidden", "data-fg-be6g0": ":0:/src/app/components/markets/MarketsCTA.tsx:10:5:275:1927:e:section:xtete:1", children: [
8930    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "be6g2", _fgB: 1790697590065, className: "absolute inset-0 opacity-20 bg-[radial-gradient(#ffffff_1px,transparent_1px)] [background-size:20px_20px]", "data-fg-be6g2": ":0:/src/app/components/markets/MarketsCTA.tsx:12:7:401:129:e:div:_" }),
8931    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "be6g3", _fgB: 1790697590065, className: "max-w-4xl mx-auto px-6 relative z-10", "data-fg-be6g3": ":0:/src/app/components/markets/MarketsCTA.tsx:14:7:544:1643:e:div:ete", children: [
8932      /* @__PURE__ */ c(
8933        a,
8934        {
8935          _fgT: m.h2,
8936          _fgS: "be6g4",
8937          _fgB: 1790697590065,
8938          initial: { opacity: 0, y: 20 },
8939          whileInView: { opacity: 1, y: 0 },
8940          viewport: { once: !0 },
8941          className: "text-4xl md:text-5xl font-light mb-8 font-[Space_Grotesk]",
8942          "data-fg-be6g4": ":0:/src/app/components/markets/MarketsCTA.tsx:15:9:607:370:e:motion.h2:tete",
8943          children: [
8944            "Ready to modernize your ",
8945            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "be6g6", _fgB: 1790697590065, "data-fg-be6g6": ":0:/src/app/components/markets/MarketsCTA.tsx:21:35:866:6:e:br" }),
8946            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "be6g7", _fgB: 1790697590065, className: "font-bold text-[#EFBB0F]", "data-fg-be6g7": ":0:/src/app/components/markets/MarketsCTA.tsx:22:11:883:73:e:span:t", children: "Transportation Service?" })
8947          ]
8948        }
8949      ),
8950      /* @__PURE__ */ c(
8951        a,
8952        {
8953          _fgT: m.div,
8954          _fgS: "be6g9",
8955          _fgB: 1790697590065,
8956          initial: { opacity: 0, y: 20 },
8957          whileInView: { opacity: 1, y: 0 },
8958          viewport: { once: !0 },
8959          transition: { delay: 0.2 },
8960          className: "flex flex-col sm:flex-row items-center justify-center gap-6",
8961          "data-fg-be6g9": ":0:/src/app/components/markets/MarketsCTA.tsx:25:9:995:1179:e:motion.div:ete",
8962          children: [
8963            /* @__PURE__ */ c(
8964              a,
8965              {
8966                _fgT: "button",
8967                _fgS: "be6g10",
8968                _fgB: 1790697590065,
8969                onClick: t,
8970                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-[0_0_20px_rgba(0,86,179,0.5)] hover:shadow-[0_0_30px_rgba(0,86,179,0.7)] cursor-pointer",
8971                "data-fg-be6g10": ":0:/src/app/components/markets/MarketsCTA.tsx:32:11:1270:474:e:button:te",
8972                children: [
8973                  "Schedule a Meeting",
8974                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "be6g12", _fgB: 1790697590065, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-be6g12": ":0:node_modules/lucide-react:37:13:1641:83:e:ArrowRight::::::s5N" })
8975                ]
8976              }
8977            ),
8978            /* @__PURE__ */ c(
8979              a,
8980              {
8981                _fgT: E,
8982                _fgS: "be6g13",
8983                _fgB: 1790697590065,
8984                href: "/contact",
8985                className: "group inline-flex items-center gap-3 bg-transparent border-2 border-white/20 text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-white/10 transition-all duration-300 cursor-pointer",
8986                "data-fg-be6g13": ":0:node_modules/wouter:40:11:1766:386:e:Link:te:::::C4yE",
8987                children: [
8988                  "Contact Us",
8989                  /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "be6g15", _fgB: 1790697590065, size: 20, className: "group-hover:scale-110 transition-transform", "data-fg-be6g15": ":0:node_modules/lucide-react:45:13:2061:73:e:Mail::::::D4VR" })
8990                ]
8991              }
8992            )
8993          ]
8994        }
8995      )
8996    ] })
8997  ] });
8998}
8999function Gg() {
9000  return /* @__PURE__ */ c(C, { children: [
9001    /* @__PURE__ */ i(a, { _fgT: zg, _fgS: "c0kn1", _fgB: 1790697589524, "data-fg-c0kn1": ":0:/src/app/pages/MarketsPage.tsx:11:7:463:15:e:MarketsHero::::::DHvh" }),
9002    /* @__PURE__ */ i(a, { _fgT: jg, _fgS: "c0kn2", _fgB: 1790697589524, "data-fg-c0kn2": ":0:/src/app/pages/MarketsPage.tsx:12:7:485:13:e:MarketHub::::::CJnR" }),
9003    /* @__PURE__ */ i(a, { _fgT: qg, _fgS: "c0kn3", _fgB: 1790697589524, "data-fg-c0kn3": ":0:/src/app/pages/MarketsPage.tsx:13:7:505:19:e:MarketDeepDives::::::DR5Z" }),
9004    /* @__PURE__ */ i(a, { _fgT: Ug, _fgS: "c0kn5", _fgB: 1790697589524, "data-fg-c0kn5": ":0:/src/app/pages/MarketsPage.tsx:15:7:568:14:e:MarketsCTA::::::BlMF" }),
9005    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "c0kn6", _fgB: 1790697589524, "data-fg-c0kn6": ":0:/src/app/pages/MarketsPage.tsx:16:7:589:10:e:Footer::::::B1Vv" })
9006  ] });
9007}
9008const Jg = globalThis.__GLOBALS__.getAssetURL("663bc8624ae08899af6b8e658b1c2327ec70a8cf.png");
9009function Kg() {
9010  const { openContactModal: t } = Z();
9011  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cy3s0", _fgB: 1790697590189, _fgD: !0, className: "relative h-[80vh] min-h-[600px] overflow-hidden bg-[#0B1B2B]", "data-fg-cy3s0": ":0:/src/app/components/offerings/OfferingsHero.tsx:9:5:277:1903:e:section:xtetxte:1", children: [
9012    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cy3s2", _fgB: 1790697590189, className: "absolute inset-0", "data-fg-cy3s2": ":0:/src/app/components/offerings/OfferingsHero.tsx:11:7:397:377:e:div:etete", children: [
9013      /* @__PURE__ */ i(
9014        a,
9015        {
9016          _fgT: "img",
9017          _fgS: "cy3s3",
9018          _fgB: 1790697590189,
9019          src: Jg,
9020          alt: "Transit Operations",
9021          className: "w-full h-full object-cover opacity-50",
9022          "data-fg-cy3s3": ":0:/src/app/components/offerings/OfferingsHero.tsx:12:9:440:133:e:img"
9023        }
9024      ),
9025      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cy3s4", _fgB: 1790697590189, className: "absolute inset-0 bg-[#0B1B2B]/60 mix-blend-multiply", "data-fg-cy3s4": ":0:/src/app/components/offerings/OfferingsHero.tsx:17:9:582:71:e:div" }),
9026      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cy3s5", _fgB: 1790697590189, className: "absolute inset-0 bg-gradient-to-t from-[#0B1B2B] via-transparent to-transparent", "data-fg-cy3s5": ":0:/src/app/components/offerings/OfferingsHero.tsx:18:9:662:99:e:div" })
9027    ] }),
9028    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cy3s7", _fgB: 1790697590189, className: "relative z-10 h-full flex flex-col justify-center items-center text-center px-6 md:px-12 pt-24 max-w-5xl mx-auto", "data-fg-cy3s7": ":0:/src/app/components/offerings/OfferingsHero.tsx:22:7:804:1361:e:div:e", children: /* @__PURE__ */ c(
9029      a,
9030      {
9031        _fgT: m.div,
9032        _fgS: "cy3s8",
9033        _fgB: 1790697590189,
9034        initial: { opacity: 0, y: 30 },
9035        animate: { opacity: 1, y: 0 },
9036        transition: { duration: 0.8 },
9037        className: "flex flex-col items-center",
9038        "data-fg-cy3s8": ":0:/src/app/components/offerings/OfferingsHero.tsx:23:9:943:1209:e:motion.div:etete",
9039        children: [
9040          /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "cy3s9", _fgB: 1790697590189, className: "text-5xl md:text-6xl lg:text-7xl font-bold text-white mb-6 leading-tight font-['DM_Sans']", "data-fg-cy3s9": ":0:/src/app/components/offerings/OfferingsHero.tsx:29:11:1148:285:e:h1:te", children: [
9041            "The Complete Transit Ecosystem.",
9042            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cy3s11", _fgB: 1790697590189, className: "block text-[#EFBB0F] italic font-serif mt-2", "data-fg-cy3s11": ":0:/src/app/components/offerings/OfferingsHero.tsx:31:13:1311:106:e:span:t", children: "One Platform. Every Side of the Ride." })
9043          ] }),
9044          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cy3s13", _fgB: 1790697590189, className: "text-lg md:text-xl text-gray-200 max-w-3xl font-light leading-relaxed mb-10 mx-auto", "data-fg-cy3s13": ":0:/src/app/components/offerings/OfferingsHero.tsx:34:11:1455:367:e:p:t", children: "Our platform connects every piece of your transit operation, from the moment a rider calls to the final compliance report. Scheduling, dispatch, driver tools, rider apps, billing, and reporting. All in one system. All talking to each other." }),
9045          /* @__PURE__ */ i(
9046            a,
9047            {
9048              _fgT: "button",
9049              _fgS: "cy3s15",
9050              _fgB: 1790697590189,
9051              onClick: t,
9052              className: "px-8 py-4 bg-[#0056B3] text-white font-bold rounded-full shadow-lg hover:bg-[#004494] transition-all hover:scale-105 hover:shadow-blue-500/25 text-lg cursor-pointer",
9053              "data-fg-cy3s15": ":0:/src/app/components/offerings/OfferingsHero.tsx:38:11:1834:296:e:button:t",
9054              children: "Schedule a Demo"
9055            }
9056          )
9057        ]
9058      }
9059    ) })
9060  ] });
9061}
9062const J4 = [
9063  {
9064    id: 1,
9065    side: "right",
9066    icon: Y,
9067    iconColor: "text-blue-500",
9068    bgColor: "bg-blue-50",
9069    title: "The Trip Comes In",
9070    points: [
9071      "**Call center,** rider app, web portal, or IVR captures the request.",
9072      "**Caller ID** pulls up previous trips instantly so agents can rebook in seconds.",
9073      "**Bulk trip imports** and broker file ingestion for high-volume NEMT and Medicaid providers."
9074    ],
9075    linkText: "Explore Call Center & Telephony",
9076    linkUrl: "/ivr"
9077  },
9078  {
9079    id: 2,
9080    side: "left",
9081    icon: S1,
9082    iconColor: "text-amber-500",
9083    bgColor: "bg-amber-50",
9084    title: "It Gets Routed",
9085    points: [
9086      "**Patented ERSA algorithm** builds shared-ride manifests from thousands of requests.",
9087      "**Pickup windows,** max ride times, and driver hours all enforced automatically.",
9088      "**Dynamic mode** inserts same-day trips into active routes without rebuilding."
9089    ],
9090    linkText: "Explore Manifest Builder",
9091    linkUrl: "/fixed-route"
9092  },
9093  {
9094    id: 3,
9095    side: "right",
9096    icon: Hl,
9097    iconColor: "text-blue-600",
9098    bgColor: "bg-blue-50",
9099    title: "It Gets Dispatched",
9100    points: [
9101      "**Auto dispatch** by nearest vehicle, zone rank, or driver bidding.",
9102      "**Live map** tracks every vehicle with real-time status, speed, and location.",
9103      "**Priority handling** for scheduled, high-priority, and time-sensitive trips, with ranked route suggestions so dispatchers stay in control."
9104    ],
9105    linkText: "Explore Dispatch",
9106    linkUrl: "/taxi-dispatch"
9107  },
9108  {
9109    id: 4,
9110    side: "left",
9111    icon: q7,
9112    iconColor: "text-green-500",
9113    bgColor: "bg-green-50",
9114    title: "The Ride Happens",
9115    points: [
9116      "**Driver app** on phone or tablet shows manifest, navigation, and trip details.",
9117      "**Contactless rider ID** via facial recognition, QR code, or Bluetooth. Boarding is logged automatically with no driver input required.",
9118      "**Backseat interface** for passenger payment, tipping, and ride info."
9119    ],
9120    linkText: "Explore In-Vehicle Tools",
9121    linkUrl: "/drivigo"
9122  },
9123  {
9124    id: 5,
9125    side: "right",
9126    icon: G7,
9127    iconColor: "text-amber-600",
9128    bgColor: "bg-amber-50",
9129    title: "It Gets Settled",
9130    points: [
9131      "**Automated billing** by funding source, with copayments, subsidies, and program accounts separated and invoiced automatically.",
9132      "**Batch invoicing** across multiple accounts with custom rate structures per funder.",
9133      "**NTD-ready reporting** and trip-level audit trails for compliance."
9134    ],
9135    linkText: "Explore Billing & Cashiering",
9136    linkUrl: "/taxi-dispatch"
9137  }
9138], Za = [Td, Bd], Wa = [hl, cd], Yg = [U4], Xg = Array.from({ length: 80 }).map((t, e) => {
9139  const s = Math.random();
9140  let r, n, o, L, d;
9141  if (s > 0.85) {
9142    r = Za[Math.floor(Math.random() * Za.length)];
9143    const f = ["text-green-900", "text-emerald-900", "text-green-950", "text-lime-900"];
9144    n = f[Math.floor(Math.random() * f.length)], o = Math.floor(Math.random() * 16) + 24, L = 0.9, d = 0;
9145  } else if (s > 0.75)
9146    r = Yg[0], n = "text-green-300", o = Math.floor(Math.random() * 10) + 16, L = 0.7, d = 0;
9147  else {
9148    r = Wa[Math.floor(Math.random() * Wa.length)];
9149    const f = ["text-green-300", "text-emerald-300", "text-lime-400", "text-green-200"];
9150    n = f[Math.floor(Math.random() * f.length)], o = Math.floor(Math.random() * 8) + 10, L = 0.7, d = Math.floor(Math.random() * 60) - 30;
9151  }
9152  const g = Math.random() > 0.5 ? Math.random() * 35 : 65 + Math.random() * 29;
9153  return {
9154    id: e,
9155    Type: r,
9156    top: `${Math.random() * 98}%`,
9157    left: `${g}%`,
9158    size: o,
9159    color: n,
9160    opacity: L,
9161    rotation: d
9162  };
9163}), Qg = J4.map((t, e) => {
9164  const s = J4.length, r = e / (s - 1) * 0.85 + 0.05;
9165  return Math.max(0, r - 0.09);
9166});
9167function ef() {
9168  const t = H(null), [e, s] = j(/* @__PURE__ */ new Set()), { scrollYProgress: r } = D7({
9169    target: t,
9170    offset: ["start center", "end center"]
9171  }), n = QL(r, {
9172    stiffness: 200,
9173    damping: 25,
9174    restDelta: 1e-3
9175  }), o = O7(n, [0, 1], ["5%", "95%"]);
9176  return F7(n, "change", (L) => {
9177    const d = new Set(e);
9178    let l = !1;
9179    Qg.forEach((g, f) => {
9180      L >= g && !d.has(f) && (d.add(f), l = !0);
9181    }), l && s(new Set(d));
9182  }), /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "by4t0", _fgB: 1790697590198, _fgD: !0, className: "py-24 bg-[#F8FAFC] relative overflow-hidden font-['DM_Sans']", "data-fg-by4t0": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:181:5:6065:7036:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t1", _fgB: 1790697590198, className: "relative z-10 max-w-7xl mx-auto px-6 flex flex-col items-center", "data-fg-by4t1": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:183:7:6161:6925:e:div:xtetxte", children: [
9183    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t3", _fgB: 1790697590198, className: "text-center mb-24", "data-fg-by4t3": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:186:9:6291:525:e:div:etete", children: [
9184      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "by4t4", _fgB: 1790697590198, className: "text-[#0056B3] font-bold tracking-widest uppercase text-xs mb-3 block", "data-fg-by4t4": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:187:11:6337:114:e:span:t", children: "HOW IT ALL CONNECTS" }),
9185      /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "by4t6", _fgB: 1790697590198, className: "text-4xl md:text-5xl font-bold text-[#0B1B2B] mb-4 font-['DM_Serif_Display']", "data-fg-by4t6": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:188:11:6462:138:e:h2:t", children: "Follow the Trip." }),
9186      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "by4t8", _fgB: 1790697590198, className: "text-xl text-slate-600 max-w-2xl mx-auto", "data-fg-by4t8": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:191:11:6611:190:e:p:t", children: "From the moment a rider reaches out to the final invoice, every step flows through one connected platform." })
9187    ] }),
9188    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t11", _fgB: 1790697590198, className: "w-full relative", "data-fg-by4t11": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:197:9:6871:6201:e:div:e", children: /* @__PURE__ */ c(
9189      a,
9190      {
9191        _fgT: "div",
9192        _fgS: "by4t12",
9193        _fgB: 1790697590198,
9194        ref: t,
9195        style: { position: "relative" },
9196        className: "relative min-h-[1600px] md:min-h-[1400px] bg-[#60A865] rounded-3xl border border-green-600 shadow-2xl overflow-hidden",
9197        "data-fg-by4t12": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:198:11:6915:6142:e:div:xtetxtetxtetxtetxte",
9198        children: [
9199          /* @__PURE__ */ i(
9200            a,
9201            {
9202              _fgT: "div",
9203              _fgS: "by4t14",
9204              _fgB: 1790697590198,
9205              className: "absolute inset-0 z-0 opacity-25",
9206              style: {
9207                backgroundImage: "radial-gradient(#519656 1.5px, transparent 1.5px)",
9208                backgroundSize: "32px 32px",
9209                backgroundPosition: "0 0"
9210              },
9211              "data-fg-by4t14": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:204:15:7212:305:e:div"
9212            }
9213          ),
9214          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t16", _fgB: 1790697590198, className: "absolute inset-0 z-0 pointer-events-none overflow-hidden", "data-fg-by4t16": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:214:15:7569:726:e:div:x", children: Xg.map((L) => /* @__PURE__ */ i(
9215            a,
9216            {
9217              _fgT: "div",
9218              _fgS: "by4t18",
9219              _fgB: 1790697590198,
9220              className: `absolute ${L.color} transition-all duration-1000`,
9221              style: {
9222                top: L.top,
9223                left: L.left,
9224                opacity: L.opacity,
9225                transform: `rotate(${L.rotation}deg) ${L.Type === U4 ? "scaleY(0.6)" : ""}`
9226              },
9227              "data-fg-by4t18": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:216:19:7709:545:e:div:e",
9228              children: /* @__PURE__ */ i(a, { _fgT: L.Type, _fgS: "by4t19", _fgB: 1790697590198, size: L.size, strokeWidth: L.Type === U4 ? 2 : 2.5, "data-fg-by4t19": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:226:21:8155:74:e:item.Type" })
9229            },
9230            L.id
9231          )) }),
9232          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t21", _fgB: 1790697590198, className: "absolute top-0 bottom-0 left-4 md:left-1/2 md:-translate-x-1/2 w-20 md:w-40 bg-[#333333] shadow-[0_0_15px_rgba(0,0,0,0.1)] z-10 flex flex-col items-center border-x-4 border-[#777777]", "data-fg-by4t21": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:232:15:8354:798:e:div:etetetete", children: [
9233            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t22", _fgB: 1790697590198, className: "absolute inset-0 opacity-10 bg-[url('https://www.transparenttextures.com/patterns/asphalt-dark.png')] mix-blend-overlay", "data-fg-by4t22": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:233:18:8572:139:e:div" }),
9234            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t23", _fgB: 1790697590198, className: "absolute inset-y-0 w-2 border-l-2 border-dashed border-yellow-400 left-1/2 -translate-x-[3px]", "data-fg-by4t23": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:234:18:8729:113:e:div" }),
9235            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t24", _fgB: 1790697590198, className: "absolute inset-y-0 w-2 border-r-2 border-dashed border-yellow-400 left-1/2 translate-x-[3px]", "data-fg-by4t24": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:235:18:8860:112:e:div" }),
9236            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t25", _fgB: 1790697590198, className: "absolute inset-y-0 left-2 w-1 bg-white/80", "data-fg-by4t25": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:236:18:8990:61:e:div" }),
9237            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t26", _fgB: 1790697590198, className: "absolute inset-y-0 right-2 w-1 bg-white/80", "data-fg-by4t26": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:237:18:9069:62:e:div" })
9238          ] }),
9239          /* @__PURE__ */ i(
9240            a,
9241            {
9242              _fgT: m.div,
9243              _fgS: "by4t28",
9244              _fgB: 1790697590198,
9245              className: "absolute left-4 md:left-1/2 md:-translate-x-1/2 -translate-y-1/2 z-30 w-14 md:w-auto h-24 md:h-auto bg-[#0056B3] rounded-lg md:rounded-xl p-1 md:p-2 shadow-2xl border-2 border-white flex flex-col items-center justify-between",
9246              style: { top: o },
9247              "data-fg-by4t28": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:241:15:9218:2303:e:motion.div:e",
9248              children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t29", _fgB: 1790697590198, className: "w-10 md:w-12 h-20 md:h-28 bg-[#0056B3] flex flex-col items-center justify-between py-1.5 relative overflow-hidden", "data-fg-by4t29": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:245:18:9557:1936:e:div:xtetxtetxte", children: [
9249                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t31", _fgB: 1790697590198, className: "w-8 md:w-10 h-3 flex justify-between px-0.5", "data-fg-by4t31": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:247:21:9759:342:e:div:ete", children: [
9250                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t32", _fgB: 1790697590198, className: "w-2 h-2 bg-red-600 rounded-full animate-pulse shadow-[0_0_5px_rgba(220,38,38,0.8)]", "data-fg-by4t32": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:248:25:9845:102:e:div" }),
9251                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t33", _fgB: 1790697590198, className: "w-2 h-2 bg-red-600 rounded-full animate-pulse shadow-[0_0_5px_rgba(220,38,38,0.8)]", "data-fg-by4t33": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:249:25:9972:102:e:div" })
9252                ] }),
9253                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t35", _fgB: 1790697590198, className: "w-8 md:w-10 h-10 bg-white/10 rounded-sm border border-white/20 flex items-center justify-center overflow-hidden p-0.5", "data-fg-by4t35": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:253:21:10205:563
9253:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Le, _fgS: "by4t36", _fgB: 1790697590198, src: "https://images.unsplash.com/photo-1571514926545-c61ae8be36be?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx0cmFuc2l0JTIwbG9nbyUyMGljb25zfGVufDF8fHx8MTc3MzE5MTE5MXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral", alt: "Icons", className: "w-full h-full object-cover opacity-90 rounded-sm mix-blend-screen", "data-fg-by4t36": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:254:25:10365:376:e:ImageWithFallback::::::BDpS" }) }),
9254                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t38", _fgB: 1790697590198, className: "flex flex-col gap-1 w-full items-center", "data-fg-by4t38": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:258:21:10877:592:e:div:ete", children: [
9255                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t39", _fgB: 1790697590198, className: "w-8 md:w-10 h-4 bg-sky-900/80 rounded-sm border border-white/20", "data-fg-by4t39": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:259:25:10959:83:e:div" }),
9256                  /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t40", _fgB: 1790697590198, className: "w-8 md:w-10 h-2 flex justify-between px-0.5 mt-0.5", "data-fg-by4t40": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:260:25:11067:375:e:div:ete", children: [
9257                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t41", _fgB: 1790697590198, className: "w-2 h-1.5 bg-yellow-100 rounded-b-sm animate-pulse shadow-[0_0_8px_rgba(254,240,138,0.8)]", "data-fg-by4t41": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:261:29:11164:109:e:div" }),
9258                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t42", _fgB: 1790697590198, className: "w-2 h-1.5 bg-yellow-100 rounded-b-sm animate-pulse shadow-[0_0_8px_rgba(254,240,138,0.8)]", "data-fg-by4t42": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:262:29:11302:109:e:div" })
9259                  ] })
9260                ] })
9261              ] })
9262            }
9263          ),
9264          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t44", _fgB: 1790697590198, className: "w-full flex flex-col justify-between h-full gap-24 py-24 relative z-20", "data-fg-by4t44": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:269:15:11572:1468:e:div:x", children: J4.map((L, d) => {
9265            const l = e.has(d);
9266            return /* @__PURE__ */ c(
9267              a,
9268              {
9269                _fgT: "div",
9270                _fgS: "by4t46",
9271                _fgB: 1790697590198,
9272                className: "relative w-full flex items-center min-h-[250px]",
9273                "data-fg-by4t46": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:274:21:11837:1141:e:div:xtetxtetxte",
9274                children: [
9275                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t48", _fgB: 1790697590198, className: "hidden md:flex flex-1 justify-end pr-16 lg:pr-24 pl-4", "data-fg-by4t48": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:279:23:12054:279:e:div:x", children: d % 2 !== 0 && /* @__PURE__ */ i(a, { _fgT: d4, _fgS: "by4t50", _fgB: 1790697590198, step: L, align: "right", isRevealed: l, index: d, "data-fg-by4t50": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:281:27:12194:83:e:TimelineCardContent::::::BUBj" }) }),
9276                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t52", _fgB: 1790697590198, className: "hidden md:flex flex-1 justify-start pl-16 lg:pl-24 pr-4", "data-fg-by4t52": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:286:23:12413:281:e:div:x", children: d % 2 === 0 && /* @__PURE__ */ i(a, { _fgT: d4, _fgS: "by4t54", _fgB: 1790697590198, step: L, align: "left", isRevealed: l, index: d, "data-fg-by4t54": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:288:27:12556:82:e:TimelineCardContent::::::BUBj" }) }),
9277                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t56", _fgB: 1790697590198, className: "md:hidden w-full pl-28 pr-4", "data-fg-by4t56": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:293:23:12760:191:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: d4, _fgS: "by4t57", _fgB: 1790697590198, step: L, align: "left", isMobile: !0, isRevealed: l, index: d, "data-fg-by4t57": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:294:26:12831:91:e:TimelineCardContent::::::BUBj" }) })
9278                ]
9279              },
9280              d
9281            );
9282          }) })
9283        ]
9284      }
9285    ) })
9286  ] }) });
9287}
9288function tf(t) {
9289  return t.split(/\*\*(.*?)\*\*/g).map(
9290    (s, r) => r % 2 === 1 ? /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "by4t58", _fgB: 1790697590198, className: "text-slate-900 font-semibold", "data-fg-by4t58": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:312:9:13252:72:e:strong:x", children: s }, r) : s
9291  );
9292}
9293function d4({ step: t, align: e, isMobile: s = !1, isRevealed: r, index: n }) {
9294  return /* @__PURE__ */ i(
9295    a,
9296    {
9297      _fgT: m.div,
9298      _fgS: "by4t60",
9299      _fgB: 1790697590198,
9300      _fgD: !0,
9301      className: "w-full relative",
9302      initial: { opacity: 0, scale: 0.7, y: 30 },
9303      animate: r ? { opacity: 1, scale: 1, y: 0 } : { opacity: 0, scale: 0.7, y: 30 },
9304      transition: {
9305        duration: 0.6,
9306        ease: [0.34, 1.56, 0.64, 1],
9307        // springy overshoot
9308        delay: 0.1
9309      },
9310      "data-fg-by4t60": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:320:5:13545:7141:e:motion.div:e:1",
9311      children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t61", _fgB: 1790697590198, className: "p-6 md:p-8 bg-white/95 backdrop-blur-sm rounded-2xl shadow-[0_4px_20px_rgba(0,0,0,0.08)] flex flex-col gap-4 w-full hover:shadow-xl transition-all relative group border border-slate-100 z-20", "data-fg-by4t61": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:333:7:13906:6762:e:div:xtxtxtxtetete", children: [
9312        !s && /* @__PURE__ */ c(C, { children: [
9313          /* @__PURE__ */ i(
9314            a,
9315            {
9316              _fgT: m.div,
9317              _fgS: "by4t66",
9318              _fgB: 1790697590198,
9319              className: `absolute top-1/2 -translate-y-1/2 h-[2px] border-t-2 border-dashed border-slate-400 origin-${e === "left" ? "right" : "left"}
9320                  ${e === "left" ? "left-0 -translate-x-[64px] lg:-translate-x-[96px] w-[64px] lg:w-[96px]" : "right-0 translate-x-[64px] lg:translate-x-[96px] w-[64px] lg:w-[96px]"}
9321                `,
9322              initial: { scaleX: 0 },
9323              animate: r ? { scaleX: 1 } : { scaleX: 0 },
9324              transition: { duration: 0.4, delay: 0.3 },
9325              style: { transformOrigin: e === "left" ? "right" : "left" },
9326              "data-fg-by4t66": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:339:15:14272:706:e:motion.div"
9327            }
9328          ),
9329          /* @__PURE__ */ i(
9330            a,
9331            {
9332              _fgT: m.div,
9333              _fgS: "by4t68",
9334              _fgB: 1790697590198,
9335              className: `absolute top-1/2 -translate-y-1/2 w-3 h-3 rounded-full bg-slate-400 z-20
9336                  ${e === "left" ? "left-[-64px] lg:left-[-96px]" : "right-[-64px] lg:right-[-96px]"}
9337                `,
9338              initial: { scale: 0 },
9339              animate: r ? { scale: 1 } : { scale: 0 },
9340              transition: { duration: 0.3, delay: 0.6, ease: [0.34, 1.56, 0.64, 1] },
9341              "data-fg-by4t68": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:353:15:15058:449:e:motion.div"
9342            }
9343          ),
9344          /* @__PURE__ */ i(
9345            a,
9346            {
9347              _fgT: m.div,
9348              _fgS: "by4t70",
9349              _fgB: 1790697590198,
9350              className: `absolute z-10 flex flex-col items-center
9351                  ${e === "left" ? "left-0 -translate-x-[200px] lg:-translate-x-[240px]" : "right-0 translate-x-[200px] lg:translate-x-[240px]"}
9352                `,
9353              style: { top: "calc(50% - 20px)" },
9354              initial: { opacity: 0, y: -20, scale: 0.5 },
9355              animate: r ? { opacity: 1, y: 0, scale: 1 } : { opacity: 0, y: -20, scale: 0.5 },
9356              transition: { duration: 0.5, delay: 0.5, ease: [0.34, 1.56, 0.64, 1] },
9357              "data-fg-by4t70": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:363:15:15580:2692:e:motion.div:e",
9358              children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t71", _fgB: 1790697590198, className: "relative flex flex-col items-center group/stop", "data-fg-by4t71": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:378:18:16286:1958:e:div:etetxte", children: [
9359                /* @__PURE__ */ i(
9360                  a,
9361                  {
9362                    _fgT: m.div,
9363                    _fgS: "by4t72",
9364                    _fgB: 1790697590198,
9365                    className: "absolute top-1 w-10 h-10 rounded-full z-10",
9366                    animate: r ? {
9367                      boxShadow: [
9368                        "0 0 0 0 rgba(0, 86, 179, 0)",
9369                        "0 0 0 12px rgba(0, 86, 179, 0.3)",
9370                        "0 0 0 0 rgba(0, 86, 179, 0)"
9371                      ]
9372                    } : {},
9373                    transition: { duration: 1.5, delay: 0.8, ease: "easeOut" },
9374                    "data-fg-by4t72": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:379:20:16370:499:e:motion.div"
9375                  }
9376                ),
9377                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t73", _fgB: 1790697590198, className: "relative z-20 flex items-center justify-center", "data-fg-by4t73": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:390:20:16889:1187:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "svg", _fgS: "by4t74", _fgB: 1790697590198, width: "40", height: "56", viewBox: "0 0 24 34", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "drop-shadow-lg", "data-fg-by4t74": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:391:22:16975:1075:e:svg:etete", children: [
9378                  /* @__PURE__ */ i("path", { d: "M12 0C5.37258 0 0 5.37258 0 12C0 21 12 34 12 34C12 34 24 21 24 12C24 5.37258 18.6274 0 12 0ZM12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18Z", fill: "#0056B3", "data-fg-by4t75": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:392:24:17121:232:e:path" }),
9379                  /* @__PURE__ */ i("path", { d: "M12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 20.25 12 32.5 12 32.5C12 32.5 22.5 20.25 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18Z", fill: "url(#shading)", fillOpacity: "0.2", "data-fg-by4t76": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:393:24:17377:287:e:path" }),
9380                  /* @__PURE__ */ i("defs", { "data-fg-by4t77": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:394:24:17688:334:e:defs:e", children: /* @__PURE__ */ c("linearGradient", { id: "shading", x1: "0", y1: "0", x2: "24", y2: "34", gradientUnits: "userSpaceOnUse", "data-fg-by4t78": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:395:26:17720:271:e:linearGradient:ete", children: [
9381                    /* @__PURE__ */ i("stop", { offset: "0%", stopColor: "#ffffff", "data-fg-by4t79": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:396:28:17838:40:e:stop" }),
9382                    /* @__PURE__ */ i("stop", { offset: "100%", stopColor: "#000000", "data-fg-by4t80": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:397:28:17906:42:e:stop" })
9383                  ] }) })
9384                ] }) }),
9385                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "by4t82", _fgB: 1790697590198, className: "w-8 h-2 bg-black/20 rounded-full blur-[2px] mt-0 relative z-10", "data-fg-by4t82": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:403:20:18138:82:e:div" })
9386              ] })
9387            }
9388          )
9389        ] }),
9390        s && /* @__PURE__ */ i(
9391          a,
9392          {
9393            _fgT: m.div,
9394            _fgS: "by4t85",
9395            _fgB: 1790697590198,
9396            className: "absolute left-0 top-8 -translate-x-[40px] w-[40px] h-[1px] border-t-2 border-dashed border-slate-400",
9397            initial: { scaleX: 0 },
9398            animate: r ? { scaleX: 1 } : { scaleX: 0 },
9399            transition: { duration: 0.3, delay: 0.3 },
9400            style: { transformOrigin: "right" },
9401            "data-fg-by4t85": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:411:13:18373:367:e:motion.div"
9402          }
9403        ),
9404        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t86", _fgB: 1790697590198, className: "flex items-center gap-4 border-b border-slate-100 pb-4 mb-2", "data-fg-by4t86": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:420:9:18761:577:e:div:ete", children: [
9405          /* @__PURE__ */ i(
9406            a,
9407            {
9408              _fgT: m.div,
9409              _fgS: "by4t87",
9410              _fgB: 1790697590198,
9411              className: `w-12 h-12 rounded-xl ${t.bgColor} ${t.iconColor} flex items-center justify-center shrink-0`,
9412              initial: { rotate: -10 },
9413              animate: r ? { rotate: 0 } : { rotate: -10 },
9414              transition: { duration: 0.4, delay: 0.2 },
9415              "data-fg-by4t87": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:421:11:18849:383:e:motion.div:e",
9416              children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "by4t88", _fgB: 1790697590198, size: 24, strokeWidth: 2, "data-fg-by4t88": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:427:13:19169:39:e:step.icon" })
9417            }
9418          ),
9419          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "by4t89", _fgB: 1790697590198, className: "font-bold text-xl text-[#0B1B2B] leading-tight", "data-fg-by4t89": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:429:11:19243:80:e:h3:x", children: t.title })
9420        ] }),
9421        /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "by4t91", _fgB: 1790697590198, className: "space-y-3", "data-fg-by4t91": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:432:9:19356:737:e:ul:x", children: t.points.map((o, L) => /* @__PURE__ */ c(
9422          a,
9423          {
9424            _fgT: m.li,
9425            _fgS: "by4t93",
9426            _fgB: 1790697590198,
9427            className: "flex items-start text-slate-600 text-sm leading-relaxed",
9428            initial: { opacity: 0, x: -10 },
9429            animate: r ? { opacity: 1, x: 0 } : { opacity: 0, x: -10 },
9430            transition: { duration: 0.3, delay: 0.4 + L * 0.1 },
9431            "data-fg-by4t93": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:435:19:19485:564:e:motion.li:ete",
9432            children: [
9433              /* @__PURE__ */ i(a, { _fgT: G, _fgS: "by4t94", _fgB: 1790697590198, size: 14, className: `mt-1 mr-2 flex-shrink-0 ${t.iconColor}`, "data-fg-by4t94": ":0:node_modules/lucide-react:442:23:19877:82:e:CheckCircle2::::::CELI" }),
9434              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "by4t95", _fgB: 1790697590198, "data-fg-by4t95": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:443:23:19982:36:e:span:x", children: tf(o) })
9435            ]
9436          },
9437          L
9438        )) }),
9439        /* @__PURE__ */ i(
9440          a,
9441          {
9442            _fgT: m.div,
9443            _fgS: "by4t97",
9444            _fgB: 1790697590198,
9445            initial: { opacity: 0 },
9446            animate: r ? { opacity: 1 } : { opacity: 0 },
9447            transition: { duration: 0.3, delay: 0.7 },
9448            "data-fg-by4t97": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:449:9:20103:552:e:motion.div:e",
9449            children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "by4t98", _fgB: 1790697590198, href: t.linkUrl, "data-fg-by4t98": ":0:node_modules/wouter:454:11:20288:345:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "by4t99", _fgB: 1790697590198, className: "inline-flex items-center text-[#0056B3] font-bold text-sm hover:text-[#004494] transition-colors cursor-pointer group/link mt-2", "data-fg-by4t99": ":0:/src/app/components/offerings/OfferingsTimeline.tsx:455:13:20327:288:e:div:xte", children: [
9450              t.linkText,
9451              " ",
9452              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "by4t101", _fgB: 1790697590198, size: 16, className: "ml-2 group-hover/link:translate-x-1 transition-transform", "data-fg-by4t101": ":0:node_modules/lucide-react:456:31:20503:93:e:ArrowRight::::::s5N" })
9453            ] }) })
9454          }
9455        )
9456      ] })
9457    }
9458  );
9459}
9460const af = [
9461  {
9462    icon: Fe,
9463    title: "Transigo Rider App",
9464    desc: [
9465      "Book, track, and pay from a branded mobile app on iOS and Android",
9466      "Fare estimates, favorite addresses, and trip history all at the rider's fingertips"
9467    ],
9468    linkText: "Explore Rider Apps",
9469    linkUrl: "/rider-apps"
9470  },
9471  {
9472    icon: Pt,
9473    title: "Where's My Ride",
9474    desc: [
9475      "Real-time vehicle tracking and ETA notifications across web, app, and IVR",
9476      "Digital wallet, trip planner, and automatic pickup alerts reduce no-shows"
9477    ],
9478    linkText: "Explore Rider Tools",
9479    linkUrl: "/fixed-route"
9480  },
9481  {
9482    icon: Q7,
9483    title: "IVR Self-Service",
9484    desc: [
9485      "Riders book, confirm, and cancel trips by phone without speaking to an agent",
9486      "Automated call-out messages notify riders when their vehicle is arriving"
9487    ],
9488    linkText: "Explore Telephony",
9489    linkUrl: "/ivr"
9490  }
9491];
9492function sf() {
9493  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "caq80", _fgB: 1790697590215, _fgD: !0, className: "py-24 px-6 bg-white font-['DM_Sans'] border-t border-slate-100", "data-fg-caq80": ":0:/src/app/components/offerings/RiderTools.tsx:40:5:1130:2394:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "caq81", _fgB: 1790697590215, className: "max-w-7xl mx-auto", "data-fg-caq81": ":0:/src/app/components/offerings/RiderTools.tsx:41:7:1221:2288:e:div:ete", children: [
9494    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "caq82", _fgB: 1790697590215, className: "text-center mb-16", "data-fg-caq82": ":0:/src/app/components/offerings/RiderTools.tsx:42:9:1265:506:e:div:etete", children: [
9495      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "caq83", _fgB: 1790697590215, className: "text-[#0056B3] font-bold tracking-widest uppercase text-xs mb-3 block", "data-fg-caq83": ":0:/src/app/components/offerings/RiderTools.tsx:43:11:1311:111:e:span:t", children: "RIDER EXPERIENCE" }),
9496      /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "caq85", _fgB: 1790697590215, className: "text-4xl md:text-5xl font-bold text-[#0B1B2B] mb-4 font-['DM_Serif_Display']", "data-fg-caq85": ":0:/src/app/components/offerings/RiderTools.tsx:44:11:1433:152:e:h2:t", children: "Tools Your Riders Actually Use" }),
9497      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "caq87", _fgB: 1790697590215, className: "text-lg text-slate-600 max-w-2xl mx-auto", "data-fg-caq87": ":0:/src/app/components/offerings/RiderTools.tsx:47:11:1596:160:e:p:t", children: "Every rider touchpoint connects back to the same dispatch and data platform." })
9498    ] }),
9499    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "caq89", _fgB: 1790697590215, className: "grid md:grid-cols-3 gap-8", "data-fg-caq89": ":0:/src/app/components/offerings/RiderTools.tsx:52:9:1781:1715:e:div:x", children: af.map((t, e) => /* @__PURE__ */ c(
9500      a,
9501      {
9502        _fgT: m.div,
9503        _fgS: "caq811",
9504        _fgB: 1790697590215,
9505        initial: { opacity: 0, y: 30 },
9506        whileInView: { opacity: 1, y: 0 },
9507        viewport: { once: !0 },
9508        transition: { delay: e * 0.1 },
9509        className: "group p-8 rounded-2xl border border-slate-100 bg-slate-50 hover:bg-white hover:shadow-xl hover:-translate-y-1 transition-all duration-300",
9510        "data-fg-caq811": ":0:/src/app/components/offerings/RiderTools.tsx:54:13:1877:1590:e:motion.div:etetete",
9511        children: [
9512          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "caq812", _fgB: 1790697590215, className: "w-14 h-14 bg-white rounded-xl shadow-sm border border-slate-100 flex items-center justify-center text-[#0056B3] mb-6 group-hover:bg-[#0056B3] group-hover:text-white transition-colors", "data-fg-caq812": ":0:/src/app/components/offerings/RiderTools.tsx:62:15:2292:261:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "caq813", _fgB: 1790697590215, size: 28, "data-fg-caq813": ":0:/src/app/components/offerings/RiderTools.tsx:63:17:2509:23:e:tool.icon" }) }),
9513          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "caq814", _fgB: 1790697590215, className: "text-xl font-bold text-[#0B1B2B] mb-4", "data-fg-caq814": ":0:/src/app/components/offerings/RiderTools.tsx:66:15:2583:71:e:h3:x", children: t.title }),
9514          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "caq816", _fgB: 1790697590215, className: "space-y-3 mb-8 min-h-[80px]", "data-fg-caq816": ":0:/src/app/components/offerings/RiderTools.tsx:68:15:2684:385:e:ul:x", children: t.desc.map((s, r) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "caq818", _fgB: 1790697590215, className: "flex items-start text-slate-600 text-sm leading-relaxed", "data-fg-caq818": ":0:/src/app/components/offerings/RiderTools.tsx:70:19:2794:235:e:li:etx", children: [
9515            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "caq819", _fgB: 1790697590215, className: "w-1.5 h-1.5 rounded-full bg-[#EFBB0F] mt-2 mr-3 flex-shrink-0", "data-fg-caq819": ":0:/src/app/components/offerings/RiderTools.tsx:71:21:2895:82:e:span" }),
9516            s
9517          ] }, r)) }),
9518          /* @__PURE__ */ i(a, { _fgT: E, _fgS: "caq821", _fgB: 1790697590215, href: t.linkUrl, "data-fg-caq821": ":0:node_modules/wouter:77:15:3085:356:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "caq822", _fgB: 1790697590215, className: "inline-flex items-center text-[#0056B3] font-bold text-sm hover:text-[#004494] transition-colors cursor-pointer group/link", "data-fg-caq822": ":0:/src/app/components/offerings/RiderTools.tsx:78:17:3128:291:e:div:xte", children: [
9519            t.linkText,
9520            " ",
9521            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "caq824", _fgB: 1790697590215, size: 16, className: "ml-2 group-hover/link:translate-x-1 transition-transform", "data-fg-caq824": ":0:node_modules/lucide-react:79:35:3303:93:e:ArrowRight::::::s5N" })
9522          ] }) })
9523        ]
9524      },
9525      e
9526    )) })
9527  ] }) });
9528}
9529function rf() {
9530  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "dzxw0", _fgB: 1790697590207, _fgD: !0, className: "py-24 bg-[#0B1B2B] relative overflow-hidden font-['DM_Sans']", "data-fg-dzxw0": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:7:5:172:4331:e:section:ete:1", children: [
9531    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw1", _fgB: 1790697590207, className: "absolute inset-0 z-0 opacity-10", "data-fg-dzxw1": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:8:7:261:185:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw2", _fgB: 1790697590207, className: "absolute inset-0 bg-[radial-gradient(#ffffff_1px,transparent_1px)] [background-size:32px_32px]", "data-fg-dzxw2": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:9:9:319:114:e:div" }) }),
9532    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw3", _fgB: 1790697590207, className: "max-w-7xl mx-auto px-6 relative z-10 grid md:grid-cols-2 gap-16 items-center", "data-fg-dzxw3": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:12:7:454:4034:e:div:xtetxte", children: [
9533      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw5", _fgB: 1790697590207, className: "md:w-[55%]", "data-fg-dzxw5": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:14:9:592:1917:e:div:etetetete", children: [
9534        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dzxw6", _fgB: 1790697590207, className: "text-[#EFBB0F] font-bold tracking-widest uppercase text-xs mb-3 block", "data-fg-dzxw6": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:15:11:631:106:e:span:t", children: "FIXED ROUTE" }),
9535        /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "dzxw8", _fgB: 1790697590207, className: "text-4xl md:text-5xl font-bold text-white mb-6 font-['DM_Serif_Display']", "data-fg-dzxw8": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:16:11:748:150:e:h2:t", children: "Built for Scheduled Service Too." }),
9536        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dzxw10", _fgB: 1790697590207, className: "text-lg text-slate-400 mb-8 leading-relaxed max-w-xl", "data-fg-dzxw10": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:19:11:909:298:e:p:t", children: "Our dispatching platform includes a dedicated toolset for fixed route operations. Build route networks, monitor schedule adherence in real time, and give riders live bus tracking through Where's My Bus." }),
9537        /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "dzxw12", _fgB: 1790697590207, className: "space-y-4 mb-10", "data-fg-dzxw12": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:23:11:1219:949:e:ul:x", children: [
9538          "Route network builder for stops, timetables, and service patterns",
9539          "Real-time schedule adherence with automatic early/late flagging at every timepoint",
9540          "Where's My Bus rider tools powered by the same AVL data your dispatchers use"
9541        ].map((t, e) => {
9542          const s = t.split(" "), r = s.slice(0, 3).join(" "), n = s.slice(3).join(" ");
9543          return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "dzxw14", _fgB: 1790697590207, className: "flex items-start text-slate-300", "data-fg-dzxw14": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:34:17:1792:327:e:li:ete", children: [
9544            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw15", _fgB: 1790697590207, className: "w-1.5 h-1.5 rounded-full bg-[#0056B3] mt-2.5 mr-3 flex-shrink-0", "data-fg-dzxw15": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:35:19:1867:83:e:div" }),
9545            /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dzxw16", _fgB: 1790697590207, "data-fg-dzxw16": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:36:19:1969:128:e:span:etx", children: [
9546              /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dzxw17", _fgB: 1790697590207, className: "text-white font-semibold", "data-fg-dzxw17": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:37:21:1996:64:e:strong:x", children: r }),
9547              " ",
9548              n
9549            ] })
9550          ] }, e);
9551        }) }),
9552        /* @__PURE__ */ i(a, { _fgT: E, _fgS: "dzxw20", _fgB: 1790697590207, href: "/fixed-route", "data-fg-dzxw20": ":0:node_modules/wouter:44:11:2180:314:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(a, { _fgT: "button", _fgS: "dzxw21", _fgB: 1790697590207, className: "px-8 py-3.5 bg-[#0056B3] text-white font-bold rounded-full shadow-lg hover:bg-[#004494] transition-all hover:scale-105 inline-flex items-center gap-2", "data-fg-dzxw21": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:45:13:2219:257:e:button:te", children: [
9553          "Explore Fixed Route Tools ",
9554          /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dzxw23", _fgB: 1790697590207, size: 18, "data-fg-dzxw23": ":0:node_modules/lucide-react:46:41:2430:24:e:ArrowRight::::::s5N" })
9555        ] }) })
9556      ] }),
9557      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw25", _fgB: 1790697590207, className: "relative", "data-fg-dzxw25": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:52:9:2557:1918:e:div:ete", children: [
9558        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw26", _fgB: 1790697590207, className: "absolute -inset-4 bg-gradient-to-tr from-[#0056B3] to-[#EFBB0F] rounded-2xl opacity-20 blur-xl", "data-fg-dzxw26": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:53:11:2594:114:e:div" }),
9559        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw27", _fgB: 1790697590207, className: "relative bg-[#1E293B] border border-white/10 rounded-2xl p-2 shadow-2xl overflow-hidden group hover:scale-[1.02] transition-transform duration-500", "data-fg-dzxw27": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:54:11:2719:1741:e:div:etxte", children: [
9560          /* @__PURE__ */ i(
9561            a,
9562            {
9563              _fgT: "img",
9564              _fgS: "dzxw28",
9565              _fgB: 1790697590207,
9566              src: "https://images.unsplash.com/photo-1758578484467-52d57a339904?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxidXMlMjByb3V0ZSUyMG1hcCUyMHRyYW5zaXQlMjBzY2hlZHVsZSUyMHNjcmVlbnxlbnwxfHx8fDE3NzE0MzM5NTh8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
9567              alt: "Fixed Route Map",
9568              className: "w-full h-auto rounded-xl shadow-inner brightness-90 group-hover:brightness-100 transition-all duration-500",
9569              "data-fg-dzxw28": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:55:14:2897:508:e:img"
9570            }
9571          ),
9572          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw30", _fgB: 1790697590207, className: "absolute bottom-6 left-6 right-6 bg-white/95 backdrop-blur-sm rounded-xl p-4 shadow-lg border border-slate-200 transform translate-y-2 opacity-90 group-hover:translate-y-0 group-hover:opacity-100 transition-all duration-500 delay-100", "data-fg-dzxw30": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:62:14:3472:971:e:div:etete", children: [
9573            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw31", _fgB: 1790697590207, className: "flex items-center justify-between mb-2", "data-fg-dzxw31": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:63:16:3739:303:e:div:ete", children: [
9574              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dzxw32", _fgB: 1790697590207, className: "font-bold text-[#0B1B2B] text-sm", "data-fg-dzxw32": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:64:18:3813:82:e:span:t", children: "Route 12 - Downtown Loop" }),
9575              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dzxw34", _fgB: 1790697590207, className: "bg-green-100 text-green-700 text-[10px] font-bold px-2 py-0.5 rounded-full", "data-fg-dzxw34": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:65:18:3913:107:e:span:t", children: "ON TIME" })
9576            ] }),
9577            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw36", _fgB: 1790697590207, className: "h-1.5 w-full bg-slate-100 rounded-full overflow-hidden", "data-fg-dzxw36": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:67:16:4058:172:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dzxw37", _fgB: 1790697590207, className: "h-full w-[70%] bg-green-500 rounded-full", "data-fg-dzxw37": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:68:18:4148:60:e:div" }) }),
9578            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dzxw38", _fgB: 1790697590207, className: "flex justify-between mt-1 text-[10px] text-slate-500", "data-fg-dzxw38": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:70:16:4246:177:e:div:ete", children: [
9579              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dzxw39", _fgB: 1790697590207, "data-fg-dzxw39": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:71:18:4334:19:e:span:t", children: "Stop 4" }),
9580              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dzxw41", _fgB: 1790697590207, "data-fg-dzxw41": ":0:/src/app/components/offerings/FixedRouteCallout.tsx:72:18:4371:30:e:span:t", children: "Next: Stop 5 (2m)" })
9581            ] })
9582          ] })
9583        ] })
9584      ] })
9585    ] })
9586  ] });
9587}
9588const ri = globalThis.__GLOBALS__.getAssetURL("faa3239c6239668bb14413059149123a9f79bd28.png");
9589function nf() {
9590  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "2ki0", _fgB: 1790697590210, _fgD: !0, className: "py-24 bg-[#F8FAFC] relative overflow-hidden font-['DM_Sans']", "data-fg-2ki0": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:8:5:261:3813:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki1", _fgB: 1790697590210, className: "max-w-7xl mx-auto px-6 relative z-10 grid md:grid-cols-2 gap-16 items-center", "data-fg-2ki1": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:9:7:350:3709:e:div:xtetxte", children: [
9591    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki3", _fgB: 1790697590210, className: "relative order-2 md:order-1", "data-fg-2ki3": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:11:9:496:1585:e:div:ete", children: [
9592      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "2ki4", _fgB: 1790697590210, className: "absolute -inset-4 bg-gradient-to-tr from-[#CBD5E1] to-[#E2E8F0] rounded-2xl opacity-50 blur-xl", "data-fg-2ki4": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:12:11:552:114:e:div" }),
9593      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki5", _fgB: 1790697590210, className: "relative bg-white border border-slate-200 rounded-2xl p-2 shadow-xl overflow-hidden group hover:shadow-2xl transition-all duration-300", "data-fg-2ki5": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:13:11:677:1389:e:div:etxte", children: [
9594        /* @__PURE__ */ i(
9595          a,
9596          {
9597            _fgT: "img",
9598            _fgS: "2ki6",
9599            _fgB: 1790697590210,
9600            src: ri,
9601            alt: "Fleet Maintenance",
9602            className: "w-full h-auto rounded-xl shadow-inner group-hover:scale-105 transition-transform duration-500",
9603            "data-fg-2ki6": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:14:14:843:213:e:img"
9604          }
9605        ),
9606        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki8", _fgB: 1790697590210, className: "absolute top-6 right-6 bg-white/95 backdrop-blur-sm rounded-xl p-4 shadow-lg border border-slate-200 transform translate-x-2 opacity-90 group-hover:translate-x-0 group-hover:opacity-100 transition-all duration-500 delay-100 max-w-[200px]", "data-fg-2ki8": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:21:14:1123:926:e:div:ete", children: [
9607          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki9", _fgB: 1790697590210, className: "flex items-center gap-3 mb-2", "data-fg-2ki9": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:22:16:1394:475:e:div:ete", children: [
9608            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "2ki10", _fgB: 1790697590210, className: "w-8 h-8 rounded-full bg-amber-100 text-amber-600 flex items-center justify-center", "data-fg-2ki10": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:23:18:1458:163:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: zd, _fgS: "2ki11", _fgB: 1790697590210, size: 14, "data-fg-2ki11": ":0:node_modules/lucide-react:24:20:1577:20:e:Wrench::::::dbj" }) }),
9609            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki12", _fgB: 1790697590210, "data-fg-2ki12": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:26:18:1639:208:e:div:ete", children: [
9610              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "2ki13", _fgB: 1790697590210, className: "font-bold text-[#0B1B2B] text-xs block", "data-fg-2ki13": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:27:20:1664:75:e:span:t", children: "Service Due" }),
9611              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "2ki15", _fgB: 1790697590210, className: "text-[10px] text-slate-500", "data-fg-2ki15": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:28:20:1759:64:e:span:t", children: "Vehicle #402" })
9612            ] })
9613          ] }),
9614          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "2ki17", _fgB: 1790697590210, className: "text-[10px] text-slate-600 font-medium", "data-fg-2ki17": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:31:16:1885:144:e:div:t", children: "Oil change & brake inspection overdue by 2 days." })
9615        ] })
9616      ] })
9617    ] }),
9618    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "2ki20", _fgB: 1790697590210, className: "md:w-[90%] order-1 md:order-2 md:pl-10", "data-fg-2ki20": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:39:9:2127:1919:e:div:etetetete", children: [
9619      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "2ki21", _fgB: 1790697590210, className: "text-[#0056B3] font-bold tracking-widest uppercase text-xs mb-3 block", "data-fg-2ki21": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:40:11:2194:111:e:span:t", children: "FLEET MANAGEMENT" }),
9620      /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "2ki23", _fgB: 1790697590210, className: "text-4xl md:text-5xl font-bold text-[#0B1B2B] mb-6 font-['DM_Serif_Display']", "data-fg-2ki23": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:41:11:2316:152:e:h2:t", children: "Keep Every Vehicle Road-Ready." }),
9621      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "2ki25", _fgB: 1790697590210, className: "text-lg text-slate-600 mb-8 leading-relaxed", "data-fg-2ki25": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:44:11:2479:244:e:p:t", children: "Ensure your fleet is safe, compliant, and always available. Track maintenance schedules, repairs, and inventory in the same system you use to dispatch trips." }),
9622      /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "2ki27", _fgB: 1790697590210, className: "space-y-4 mb-10", "data-fg-2ki27": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:48:11:2735:952:e:ul:x", children: [
9623        "Scheduled renewals and inspections tracked by date with automatic reminders",
9624        "Preventive maintenance by mileage or calendar with full repair ticket management",
9625        "Parts inventory with vendor tracking and warranty period monitoring"
9626      ].map((t, e) => {
9627        const s = t.split(" "), r = s.slice(0, 3).join(" "), n = s.slice(3).join(" ");
9628        return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "2ki29", _fgB: 1790697590210, className: "flex items-start text-slate-600", "data-fg-2ki29": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:59:17:3307:331:e:li:ete", children: [
9629          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "2ki30", _fgB: 1790697590210, className: "w-1.5 h-1.5 rounded-full bg-[#EFBB0F] mt-2.5 mr-3 flex-shrink-0", "data-fg-2ki30": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:60:19:3382:83:e:div" }),
9630          /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "2ki31", _fgB: 1790697590210, "data-fg-2ki31": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:61:19:3484:132:e:span:etx", children: [
9631            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "2ki32", _fgB: 1790697590210, className: "text-slate-900 font-semibold", "data-fg-2ki32": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:62:21:3511:68:e:strong:x", children: r }),
9632            " ",
9633            n
9634          ] })
9635        ] }, e);
9636      }) }),
9637      /* @__PURE__ */ i(a, { _fgT: E, _fgS: "2ki35", _fgB: 1790697590210, href: "/taxi-dispatch", "data-fg-2ki35": ":0:node_modules/wouter:69:11:3699:332:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(a, { _fgT: "button", _fgS: "2ki36", _fgB: 1790697590210, className: "text-[#0056B3] font-bold text-sm hover:text-[#004494] transition-colors inline-flex items-center group", "data-fg-2ki36": ":0:/src/app/components/offerings/FleetManagementCallout.tsx:70:13:3740:273:e:button:te", children: [
9638        "Explore Fleet Management ",
9639        /* @__PURE__ */ i(a, { _fgT: D, _fgS: "2ki38", _fgB: 1790697590210, size: 16, className: "ml-2 group-hover:translate-x-1 transition-transform", "data-fg-2ki38": ":0:node_modules/lucide-react:71:40:3903:88:e:ArrowRight::::::s5N" })
9640      ] }) })
9641    ] })
9642  ] }) });
9643}
9644const of = globalThis.__GLOBALS__.getAssetURL("d0e02d3ff436228c65a89df8c7f7e125917c0994.png"), Lf = globalThis.__GLOBALS__.getAssetURL("34e37c0454410ffe0ce2ac4667e2b2779ce8dccb.png"), cf = [
9645  { label: "How it Works?", href: "https://www.youtube.com/watch?v=zUV2L-xK0hs", newTab: !0 },
9646  { label: "Run Default Simulation", href: "https://simdispatch.itcurves.us/SimulationScheduler", newTab: !0 },
9647  { label: "Run My Simulation", href: "https://simdispatch.itcurves.us/MySimulation", newTab: !0 }
9648];
9649function ni() {
9650  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "c3d80", _fgB: 1790697590184, _fgD: !0, className: "py-24 bg-white relative overflow-hidden font-['DM_Sans']", "data-fg-c3d80": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:16:5:710:5057:e:section:xtete:1", children: [
9651    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c3d82", _fgB: 1790697590184, className: "absolute inset-0 pointer-events-none", "data-fg-c3d82": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:18:7:834:844:e:div:xtetxtetxtetxtete", children: [
9652      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d84", _fgB: 1790697590184, className: "absolute -top-32 -left-32 w-[600px] h-[600px] bg-[#EFBB0F]/20 rounded-full blur-3xl", "data-fg-c3d84": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:20:9:933:103:e:div" }),
9653      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d86", _fgB: 1790697590184, className: "absolute -bottom-32 -right-32 w-[550px] h-[550px] bg-[#0056B3]/12 rounded-full blur-3xl", "data-fg-c3d86": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:22:9:1085:107:e:div" }),
9654      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d88", _fgB: 1790697590184, className: "absolute inset-0 bg-gradient-to-br from-[#EFBB0F]/8 via-transparent to-[#0056B3]/6", "data-fg-c3d88": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:24:9:1269:102:e:div" }),
9655      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d810", _fgB: 1790697590184, className: "absolute top-0 inset-x-0 h-24 bg-gradient-to-b from-white to-transparent", "data-fg-c3d810": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:26:9:1469:92:e:div" }),
9656      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d811", _fgB: 1790697590184, className: "absolute bottom-0 inset-x-0 h-24 bg-gradient-to-t from-white to-transparent", "data-fg-c3d811": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:27:9:1570:95:e:div" })
9657    ] }),
9658    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d812", _fgB: 1790697590184, className: "max-w-7xl mx-auto px-6 relative z-10", "data-fg-c3d812": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:30:7:1686:4066:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c3d813", _fgB: 1790697590184, className: "flex flex-col lg:flex-row items-center gap-10 lg:gap-16", "data-fg-c3d813": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:31:9:1749:3990:e:div:xtetxtetxte", children: [
9659      /* @__PURE__ */ c(
9660        a,
9661        {
9662          _fgT: m.div,
9663          _fgS: "c3d815",
9664          _fgB: 1790697590184,
9665          className: "flex-shrink-0 flex flex-col items-center gap-3",
9666          initial: { opacity: 0, y: 30 },
9667          whileInView: { opacity: 1, y: 0 },
9668          viewport: { once: !0 },
9669          transition: { duration: 0.6, ease: [0.22, 1, 0.36, 1] },
9670          "data-fg-c3d815": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:34:11:1877:624:e:motion.div:ete",
9671          children: [
9672            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c3d816", _fgB: 1790697590184, className: "text-xs font-bold tracking-widest uppercase text-[#0B1B2B]/50", "data-fg-c3d816": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:41:13:2182:124:e:span:t", children: "Rider App" }),
9673            /* @__PURE__ */ i(
9674              a,
9675              {
9676                _fgT: "img",
9677                _fgS: "c3d818",
9678                _fgB: 1790697590184,
9679                src: of,
9680                alt: "Rider App",
9681                className: "w-[160px] sm:w-[180px] h-auto block drop-shadow-xl",
9682                "data-fg-c3d818": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:44:13:2319:158:e:img"
9683              }
9684            )
9685          ]
9686        }
9687      ),
9688      /* @__PURE__ */ c(
9689        a,
9690        {
9691          _fgT: m.div,
9692          _fgS: "c3d820",
9693          _fgB: 1790697590184,
9694          className: "flex-shrink-0 flex flex-col items-center gap-3 lg:mt-10",
9695          initial: { opacity: 0, y: 40 },
9696          whileInView: { opacity: 1, y: 0 },
9697          viewport: { once: !0 },
9698          transition: { duration: 0.6, delay: 0.1, ease: [0.22, 1, 0.36, 1] },
9699          "data-fg-c3d820": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:52:11:2557:648:e:motion.div:ete",
9700          children: [
9701            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c3d821", _fgB: 1790697590184, className: "text-xs font-bold tracking-widest uppercase text-[#0B1B2B]/50", "data-fg-c3d821": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:59:13:2883:125:e:span:t", children: "Driver App" }),
9702            /* @__PURE__ */ i(
9703              a,
9704              {
9705                _fgT: "img",
9706                _fgS: "c3d823",
9707                _fgB: 1790697590184,
9708                src: Lf,
9709                alt: "Driver App",
9710                className: "w-[160px] sm:w-[180px] h-auto block drop-shadow-xl",
9711                "data-fg-c3d823": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:62:13:3021:160:e:img"
9712              }
9713            )
9714          ]
9715        }
9716      ),
9717      /* @__PURE__ */ c(
9718        a,
9719        {
9720          _fgT: m.div,
9721          _fgS: "c3d825",
9722          _fgB: 1790697590184,
9723          className: "flex-1 min-w-0",
9724          initial: { opacity: 0, x: 30 },
9725          whileInView: { opacity: 1, x: 0 },
9726          viewport: { once: !0 },
9727          transition: { duration: 0.65, delay: 0.15, ease: [0.22, 1, 0.36, 1] },
9728          "data-fg-c3d825": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:70:11:3254:2469:e:motion.div:xtetxtetxtetxte",
9729          children: [
9730            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c3d827", _fgB: 1790697590184, className: "text-[#0056B3] font-bold tracking-widest uppercase text-xs mb-3 block", "data-fg-c3d827": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:78:13:3567:135:e:span:t", children: "Microtransit" }),
9731            /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "c3d830", _fgB: 1790697590184, className: "text-3xl md:text-4xl font-bold text-[#0B1B2B] mb-6 font-['DM_Serif_Display'] leading-tight", "data-fg-c3d830": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:83:13:3744:185:e:h2:t", children: "Transforming Urban Mobility with Microtransit" }),
9732            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c3d833", _fgB: 1790697590184, className: "text-base text-slate-600 leading-relaxed mb-8", "data-fg-c3d833": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:88:13:3973:887:e:p:t", children: "Microtransit is redefining how communities navigate their urban landscapes by offering flexible, on-demand transportation solutions that bridge the gap between traditional public transit and ridesharing services. By utilizing small, efficient vehicles and smart technology, microtransit systems provide tailored routes that adapt to real-time passenger needs, reducing wait times and enhancing accessibility. This innovative approach not only alleviates congestion and lowers emissions but also connects underserved areas to vital resources, ensuring that everyone has the opportunity to travel seamlessly throughout their city. Join the movement towards smarter, more sustainable urban mobility!" }),
9733            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c3d836", _fgB: 1790697590184, className: "flex flex-wrap gap-3", "data-fg-c3d836": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:100:13:4906:793:e:div:x", children: cf.map(({ label: t, href: e, newTab: s }) => /* @__PURE__ */ c(
9734              a,
9735              {
9736                _fgT: "a",
9737                _fgS: "c3d838",
9738                _fgB: 1790697590184,
9739                href: e,
9740                target: s ? "_blank" : void 0,
9741                rel: s ? "noopener noreferrer" : void 0,
9742                className: "inline-flex items-center gap-2 px-5 py-2.5 rounded-full border-2 border-[#0B1B2B] text-[#0B1B2B] text-sm font-semibold hover:bg-[#0B1B2B] hover:text-white transition-all duration-200 group",
9743                "data-fg-c3d838": ":0:/src/app/components/offerings/MicrotransitCallout.tsx:102:17:5017:645:e:a:xte",
9744                children: [
9745                  t,
9746                  /* @__PURE__ */ i(
9747                    a,
9748                    {
9749                      _fgT: D,
9750                      _fgS: "c3d840",
9751                      _fgB: 1790697590184,
9752                      size: 14,
9753                      className: "group-hover:translate-x-0.5 transition-transform duration-200",
9754                      "data-fg-c3d840": ":0:node_modules/lucide-react:110:19:5485:156:e:ArrowRight::::::s5N"
9755                    }
9756                  )
9757                ]
9758              },
9759              t
9760            )) })
9761          ]
9762        }
9763      )
9764    ] }) })
9765  ] });
9766}
9767function lf() {
9768  const { openContactModal: t } = Z();
9769  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "dy60", _fgB: 1790697590213, _fgD: !0, className: "py-24 px-6 bg-gradient-to-br from-[#0056B3] to-[#003366] text-white font-['DM_Sans'] relative overflow-hidden", "data-fg-dy60": ":0:/src/app/components/offerings/OfferingsCTA.tsx:8:5:199:1178:e:section:ete:1", children: [
9770    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dy61", _fgB: 1790697590213, className: "absolute inset-0 z-0", "data-fg-dy61": ":0:/src/app/components/offerings/OfferingsCTA.tsx:9:7:337:339:e:div:ete", children: [
9771      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dy62", _fgB: 1790697590213, className: "absolute top-0 right-0 w-[600px] h-[600px] bg-white/5 rounded-full blur-[100px] -translate-y-1/2 translate-x-1/2", "data-fg-dy62": ":0:/src/app/components/offerings/OfferingsCTA.tsx:10:9:384:132:e:div" }),
9772      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dy63", _fgB: 1790697590213, className: "absolute bottom-0 left-0 w-[400px] h-[400px] bg-[#EFBB0F]/10 rounded-full blur-[80px] translate-y-1/2 -translate-x-1/2", "data-fg-dy63": ":0:/src/app/components/offerings/OfferingsCTA.tsx:11:9:525:138:e:div" })
9773    ] }),
9774    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dy64", _fgB: 1790697590213, className: "max-w-4xl mx-auto text-center relative z-10", "data-fg-dy64": ":0:/src/app/components/offerings/OfferingsCTA.tsx:14:7:684:678:e:div:ete", children: [
9775      /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "dy65", _fgB: 1790697590213, className: "text-4xl md:text-5xl font-bold mb-10 font-['DM_Serif_Display'] leading-tight", "data-fg-dy65": ":0:/src/app/components/offerings/OfferingsCTA.tsx:15:9:754:174:e:h2:t", children: "See What's Possible When Technology Gets Out of the Way." }),
9776      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dy67", _fgB: 1790697590213, className: "flex flex-col sm:flex-row items-center justify-center gap-6", "data-fg-dy67": ":0:/src/app/components/offerings/OfferingsCTA.tsx:19:9:946:403:e:div:e", children: /* @__PURE__ */ i(
9777        a,
9778        {
9779          _fgT: "button",
9780          _fgS: "dy68",
9781          _fgB: 1790697590213,
9782          onClick: t,
9783          className: "px-8 py-4 border-2 border-white text-white font-bold rounded-full hover:bg-white hover:text-[#0056B3] transition-all hover:scale-105 min-w-[200px] text-lg cursor-pointer",
9784          "data-fg-dy68": ":0:/src/app/components/offerings/OfferingsCTA.tsx:20:11:1034:300:e:button:t",
9785          children: "Schedule a Demo"
9786        }
9787      ) })
9788    ] })
9789  ] });
9790}
9791function df() {
9792  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "dw9d0", _fgB: 1790697589404, _fgD: !0, className: "relative", "data-fg-dw9d0": ":0:/src/app/pages/OfferingsPage.tsx:13:5:746:283:e:main:etetetetetetxtete:1", children: [
9793    /* @__PURE__ */ i(a, { _fgT: Kg, _fgS: "dw9d1", _fgB: 1790697589404, "data-fg-dw9d1": ":0:/src/app/pages/OfferingsPage.tsx:14:7:780:17:e:OfferingsHero::::::D5aR" }),
9794    /* @__PURE__ */ i(a, { _fgT: ef, _fgS: "dw9d2", _fgB: 1790697589404, "data-fg-dw9d2": ":0:/src/app/pages/OfferingsPage.tsx:15:7:804:21:e:OfferingsTimeline::::::Cb5N" }),
9795    /* @__PURE__ */ i(a, { _fgT: sf, _fgS: "dw9d3", _fgB: 1790697589404, "data-fg-dw9d3": ":0:/src/app/pages/OfferingsPage.tsx:16:7:832:14:e:RiderTools::::::B6ph" }),
9796    /* @__PURE__ */ i(a, { _fgT: rf, _fgS: "dw9d4", _fgB: 1790697589404, "data-fg-dw9d4": ":0:/src/app/pages/OfferingsPage.tsx:17:7:853:21:e:FixedRouteCallout::::::o2d" }),
9797    /* @__PURE__ */ i(a, { _fgT: ni, _fgS: "dw9d5", _fgB: 1790697589404, "data-fg-dw9d5": ":0:/src/app/pages/OfferingsPage.tsx:18:7:881:23:e:MicrotransitCallout::::::rNL" }),
9798    /* @__PURE__ */ i(a, { _fgT: nf, _fgS: "dw9d6", _fgB: 1790697589404, "data-fg-dw9d6": ":0:/src/app/pages/OfferingsPage.tsx:19:7:911:26:e:FleetManagementCallout::::::C8V5" }),
9799    /* @__PURE__ */ i(a, { _fgT: lf, _fgS: "dw9d8", _fgB: 1790697589404, "data-fg-dw9d8": ":0:/src/app/pages/OfferingsPage.tsx:21:7:984:16:e:OfferingsCTA::::::CTRV" }),
9800    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "dw9d9", _fgB: 1790697589404, "data-fg-dw9d9": ":0:/src/app/pages/OfferingsPage.tsx:22:7:1007:10:e:Footer::::::B1Vv" })
9801  ] });
9802}
9803function gf() {
9804  const { openContactModal: t } = Z();
9805  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "tjy0", _fgB: 1790697590720, _fgD: !0, className: "bg-[#0B1B2B] relative overflow-hidden flex items-center font-['DM_Sans'] pt-28 pb-12", "data-fg-tjy0": ":0:/src/app/components/ai/AIHero.tsx:8:5:294:4247:e:section:xtete:1", children: [
9806    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy2", _fgB: 1790697590720, className: "absolute inset-0 z-0", "data-fg-tjy2": ":0:/src/app/components/ai/AIHero.tsx:10:7:441:745:e:div:xtetxtete", children: [
9807      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "tjy4", _fgB: 1790697590720, className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_at_center,black_40%,transparent_80%)]", "data-fg-tjy4": ":0:/src/app/components/ai/AIHero.tsx:12:9:524:261:e:div" }),
9808      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "tjy6", _fgB: 1790697590720, className: "absolute -top-[20%] -right-[10%] w-[900px] h-[900px] bg-[#2B7AE8] opacity-[0.08] blur-[120px] rounded-full pointer-events-none mix-blend-screen", "data-fg-tjy6": ":0:/src/app/components/ai/AIHero.tsx:15:9:836:163:e:div" }),
9809      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "tjy7", _fgB: 1790697590720, className: "absolute -bottom-[20%] -left-[10%] w-[700px] h-[700px] bg-[#EFBB0F] opacity-[0.05] blur-[100px] rounded-full pointer-events-none mix-blend-screen", "data-fg-tjy7": ":0:/src/app/components/ai/AIHero.tsx:16:9:1008:165:e:div" })
9810    ] }),
9811    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy8", _fgB: 1790697590720, className: "max-w-[1024px] mx-auto px-6 md:px-12 relative z-10 w-full flex flex-col items-center text-center", "data-fg-tjy8": ":0:/src/app/components/ai/AIHero.tsx:19:7:1194:3332:e:div:etxte", children: [
9812      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy9", _fgB: 1790697590720, className: "max-w-[900px] mb-4 relative z-20", "data-fg-tjy9": ":0:/src/app/components/ai/AIHero.tsx:20:9:1317:1748:e:div:xtetxtetxte", children: [
9813        /* @__PURE__ */ c(
9814          a,
9815          {
9816            _fgT: m.div,
9817            _fgS: "tjy11",
9818            _fgB: 1790697590720,
9819            initial: { opacity: 0, y: 20 },
9820            animate: { opacity: 1, y: 0 },
9821            transition: { duration: 0.5 },
9822            className: "inline-flex items-center gap-2 px-4 py-1.5 border border-white/10 rounded-full bg-white/5 backdrop-blur-sm text-white text-[11px] font-bold tracking-[2.5px] uppercase mb-4",
9823            "data-fg-tjy11": ":0:/src/app/components/ai/AIHero.tsx:22:11:1402:517:e:motion.div:et",
9824            children: [
9825              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "tjy12", _fgB: 1790697590720, className: "w-2 h-2 rounded-full bg-[#EFBB0F] animate-pulse shadow-[0_0_8px_#EFBB0F]", "data-fg-tjy12": ":0:/src/app/components/ai/AIHero.tsx:28:13:1765:93:e:span" }),
9826              "AGENTIC TRANSIT PLATFORM"
9827            ]
9828          }
9829        ),
9830        /* @__PURE__ */ c(
9831          a,
9832          {
9833            _fgT: m.h1,
9834            _fgS: "tjy15",
9835            _fgB: 1790697590720,
9836            initial: { opacity: 0, y: 20 },
9837            animate: { opacity: 1, y: 0 },
9838            transition: { duration: 0.5, delay: 0.1 },
9839            className: "font-['DM_Serif_Display'] text-[36px] sm:text-[48px] md:text-[64px] lg:text-[72px] leading-[1.05] text-white mb-4",
9840            "data-fg-tjy15": ":0:/src/app/components/ai/AIHero.tsx:33:11:1968:478:e:motion.h1:te",
9841            children: [
9842              "Your Operations Are Already Telling You Something.",
9843              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "tjy17", _fgB: 1790697590720, className: "text-[#EFBB0F] italic block mt-2", "data-fg-tjy17": ":0:/src/app/components/ai/AIHero.tsx:40:13:2347:76:e:span:t", children: "Are You Listening?" })
9844            ]
9845          }
9846        ),
9847        /* @__PURE__ */ c(
9848          a,
9849          {
9850            _fgT: m.p,
9851            _fgS: "tjy20",
9852            _fgB: 1790697590720,
9853            initial: { opacity: 0, y: 20 },
9854            animate: { opacity: 1, y: 0 },
9855            transition: { duration: 0.5, delay: 0.2 },
9856            className: "text-lg md:text-xl leading-[1.7] text-[#94A3B8] max-w-[90%] mx-auto",
9857            "data-fg-tjy20": ":0:/src/app/components/ai/AIHero.tsx:44:11:2495:555:e:motion.p:te",
9858            children: [
9859              "Every booking, missed trip, complaint, and no-show is a signal. Our Agentic Transit Platform puts six specialized AI agents to work on those signals — automating workflows, guiding your team, and improving service in real time. ",
9860              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "tjy22", _fgB: 1790697590720, className: "font-bold", "data-fg-tjy22": ":0:/src/app/components/ai/AIHero.tsx:49:240:2979:60:e:span:t", children: "Six agents. One platform." })
9861            ]
9862          }
9863        )
9864      ] }),
9865      /* @__PURE__ */ c(
9866        a,
9867        {
9868          _fgT: m.div,
9869          _fgS: "tjy25",
9870          _fgB: 1790697590720,
9871          initial: { opacity: 0, scale: 0.9 },
9872          animate: { opacity: 1, scale: 1 },
9873          transition: { duration: 0.8, delay: 0.3 },
9874          className: "relative w-full max-w-[800px] h-[220px] sm:h-[280px] md:h-[320px] flex items-center justify-center z-10",
9875          "data-fg-tjy25": ":0:/src/app/components/ai/AIHero.tsx:53:9:3144:1369:e:motion.div:etxte",
9876          children: [
9877            /* @__PURE__ */ i(a, { _fgT: ff, _fgS: "tjy26", _fgB: 1790697590720, "data-fg-tjy26": ":0:/src/app/components/ai/AIHero.tsx:59:11:3448:16:e:BrainNetwork::::::BXbc" }),
9878            /* @__PURE__ */ i(
9879              a,
9880              {
9881                _fgT: "button",
9882                _fgS: "tjy28",
9883                _fgB: 1790697590720,
9884                onClick: t,
9885                className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-30 group cursor-pointer",
9886                "data-fg-tjy28": ":0:/src/app/components/ai/AIHero.tsx:62:11:3531:960:e:button:e",
9887                children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy29", _fgB: 1790697590720, className: "relative", "data-fg-tjy29": ":0:/src/app/components/ai/AIHero.tsx:66:13:3713:758:e:div:ete", children: [
9888                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "tjy30", _fgB: 1790697590720, className: "absolute inset-0 bg-[#2B7AE8] blur-2xl opacity-40 group-hover:opacity-60 transition-opacity duration-500 rounded-full", "data-fg-tjy30": ":0:/src/app/components/ai/AIHero.tsx:67:15:3754:137:e:div" }),
9889                  /* @__PURE__ */ c(
9890                    a,
9891                    {
9892                      _fgT: m.div,
9893                      _fgS: "tjy31",
9894                      _fgB: 1790697590720,
9895                      className: "relative flex items-center gap-3 px-8 py-5 bg-[#2B7AE8] text-white rounded-full text-lg font-bold hover:bg-[#3D8EF7] transition-all shadow-[0_0_40px_rgba(43,122,232,0.3)] hover:shadow-[0_0_60px_rgba(43,122,232,0.5)] border border-white/10",
9896                      whileHover: { scale: 1.05 },
9897                      whileTap: { scale: 0.95 },
9898                      "data-fg-tjy31": ":0:/src/app/components/ai/AIHero.tsx:68:15:3906:546:e:motion.div:te",
9899                      children: [
9900                        "Schedule a Meeting",
9901                        /* @__PURE__ */ i(a, { _fgT: D, _fgS: "tjy33", _fgB: 1790697590720, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-tjy33": ":0:node_modules/lucide-react:74:17:4341:83:e:ArrowRight::::::s5N" })
9902                      ]
9903                    }
9904                  )
9905                ] })
9906              }
9907            )
9908          ]
9909        }
9910      )
9911    ] })
9912  ] });
9913}
9914function ff() {
9915  const t = [
9916    // Frontal Lobe
9917    { x: 75, y: 30 },
9918    { x: 85, y: 40 },
9919    { x: 90, y: 55 },
9920    { x: 80, y: 65 },
9921    { x: 70, y: 60 },
9922    { x: 65, y: 45 },
9923    { x: 60, y: 35 },
9924    { x: 55, y: 30 },
9925    // Parietal Lobe (Top)
9926    { x: 50, y: 20 },
9927    { x: 40, y: 15 },
9928    { x: 30, y: 18 },
9929    { x: 20, y: 25 },
9930    // Occipital Lobe (Back)
9931    { x: 10, y: 40 },
9932    { x: 15, y: 55 },
9933    { x: 25, y: 60 },
9934    // Temporal Lobe
9935    { x: 40, y: 70 },
9936    { x: 50, y: 75 },
9937    { x: 60, y: 70 },
9938    { x: 30, y: 65 },
9939    // Cerebellum
9940    { x: 15, y: 75 },
9941    { x: 25, y: 80 },
9942    { x: 10, y: 70 },
9943    // Brainstem area
9944    { x: 35, y: 85 },
9945    { x: 40, y: 90 },
9946    // Inner fill
9947    { x: 35, y: 40 },
9948    { x: 45, y: 50 },
9949    { x: 55, y: 55 },
9950    { x: 25, y: 45 },
9951    { x: 65, y: 65 }
9952  ];
9953  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy34", _fgB: 1790697590720, _fgD: !0, className: "absolute inset-0 w-full h-full pointer-events-none", "data-fg-tjy34": ":0:/src/app/components/ai/AIHero.tsx:106:5:5442:2875:e:div:etxte:1", children: [
9954    /* @__PURE__ */ c(a, { _fgT: "svg", _fgS: "tjy35", _fgB: 1790697590720, className: "w-full h-full", viewBox: "0 0 100 100", preserveAspectRatio: "none", "data-fg-tjy35": ":0:/src/app/components/ai/AIHero.tsx:107:7:5517:2002:e:svg:xtxtxtxtxtx", children: [
9955      t.map((e, s) => t.slice(s + 1).map((r, n) => Math.hypot(e.x - r.x, e.y - r.y) < 20 ? /* @__PURE__ */ i(
9956        a,
9957        {
9958          _fgT: m.line,
9959          _fgS: "tjy38",
9960          _fgB: 1790697590720,
9961          x1: `${e.x}%`,
9962          y1: `${e.y}%`,
9963          x2: `${r.x}%`,
9964          y2: `${r.y}%`,
9965          stroke: "rgba(43,122,232,0.15)",
9966          strokeWidth: "0.5",
9967          initial: { opacity: 0 },
9968          animate: { opacity: [0.1, 0.3, 0.1] },
9969          transition: { duration: 3 + Math.random() * 2, repeat: 1 / 0, delay: Math.random() * 2 },
9970          "data-fg-tjy38": ":0:/src/app/components/ai/AIHero.tsx:114:17:5856:505:e:motion.line"
9971        },
9972        `${s}-${n}`
9973      ) : null)),
9974      t.filter((e, s) => s % 3 === 0).map((e, s) => /* @__PURE__ */ i(
9975        a,
9976        {
9977          _fgT: m.line,
9978          _fgS: "tjy41",
9979          _fgB: 1790697590720,
9980          x1: `${e.x}%`,
9981          y1: `${e.y}%`,
9982          x2: "50%",
9983          y2: "50%",
9984          stroke: "rgba(43,122,232,0.2)",
9985          strokeWidth: "0.8",
9986          strokeDasharray: "4 4",
9987          initial: { strokeDashoffset: 0 },
9988          animate: { strokeDashoffset: -20 },
9989          transition: { duration: 4, repeat: 1 / 0, ease: "linear" },
9990          "data-fg-tjy41": ":0:/src/app/components/ai/AIHero.tsx:134:11:6582:436:e:motion.line"
9991        },
9992        `center-${s}`
9993      )),
9994      t.map((e, s) => /* @__PURE__ */ i(
9995        a,
9996        {
9997          _fgT: m.circle,
9998          _fgS: "tjy44",
9999          _fgB: 1790697590720,
10000          cx: `${e.x}%`,
10001          cy: `${e.y}%`,
10002          r: "1",
10003          fill: "#2B7AE8",
10004          initial: { opacity: 0.2, scale: 1 },
10005          animate: { opacity: [0.2, 0.8, 0.2], scale: [1, 1.5, 1] },
10006          transition: { duration: 2 + Math.random() * 3, repeat: 1 / 0, delay: Math.random() * 2 },
10007          "data-fg-tjy44": ":0:/src/app/components/ai/AIHero.tsx:151:11:7105:389:e:motion.circle"
10008        },
10009        `node-${s}`
10010      ))
10011    ] }),
10012    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "tjy46", _fgB: 1790697590720, className: "absolute inset-0", "data-fg-tjy46": ":0:/src/app/components/ai/AIHero.tsx:165:7:7601:705:e:div:etetetetete", children: [
10013      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy47", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "tjy48", _fgB: 1790697590720, size: 16, "data-fg-tjy48": ":0:node_modules/lucide-react:166:29:7664:24:e:Smartphone::::::DHxb" }), label: "RiderAssist AI", top: "15%", left: "50%", delay: 0, "data-fg-tjy47": ":0:/src/app/components/ai/AIHero.tsx:166:9:7644:102:e:FloatingIcon::::::CYpD" }),
10014      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy49", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "tjy50", _fgB: 1790697590720, size: 16, "data-fg-tjy50": ":0:node_modules/lucide-react:167:29:7775:19:e:Phone::::::DmpI" }), label: "CallAssist AI", top: "30%", left: "82%", delay: 0.3, "data-fg-tjy49": ":0:/src/app/components/ai/AIHero.tsx:167:9:7755:98:e:FloatingIcon::::::CYpD" }),
10015      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy51", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: y1, _fgS: "tjy52", _fgB: 1790697590720, size: 16, "data-fg-tjy52": ":0:node_modules/lucide-react:168:29:7882:23:e:BarChart3::::::C2Ja" }), label: "AnalyticsAI", top: "70%", left: "82%", delay: 0.6, "data-fg-tjy51": ":0:/src/app/components/ai/AIHero.tsx:168:9:7862:100:e:FloatingIcon::::::CYpD" }),
10016      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy53", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: w1, _fgS: "tjy54", _fgB: 1790697590720, size: 16, "data-fg-tjy54": ":0:node_modules/lucide-react:169:29:7991:23:e:CircleDot::::::CPqJ" }), label: "DriverAssist AI", top: "85%", left: "50%", delay: 0.9, "data-fg-tjy53": ":0:/src/app/components/ai/AIHero.tsx:169:9:7971:104:e:FloatingIcon::::::CYpD" }),
10017      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy55", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: T1, _fgS: "tjy56", _fgB: 1790697590720, size: 16, "data-fg-tjy56": ":0:node_modules/lucide-react:170:29:8104:27:e:ClipboardList::::::CPfu" }), label: "SurveyAI", top: "70%", left: "18%", delay: 1.2, "data-fg-tjy55": ":0:/src/app/components/ai/AIHero.tsx:170:9:8084:101:e:FloatingIcon::::::CYpD" }),
10018      /* @__PURE__ */ i(a, { _fgT: Y1, _fgS: "tjy57", _fgB: 1790697590720, icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "tjy58", _fgB: 1790697590720, size: 16, "data-fg-tjy58": ":0:node_modules/lucide-react:171:29:8214:17:e:Zap::::::Cp7" }), label: "SmartDispatch AI", top: "30%", left: "18%", delay: 1.5, "data-fg-tjy57": ":0:/src/app/components/ai/AIHero.tsx:171:9:8194:99:e:FloatingIcon::::::CYpD" })
10019    ] })
10020  ] });
10021}
10022function Y1({ icon: t, label: e, top: s, left: r, delay: n }) {
10023  return /* @__PURE__ */ c(
10024    a,
10025    {
10026      _fgT: m.div,
10027      _fgS: "tjy59",
10028      _fgB: 1790697590720,
10029      _fgD: !0,
10030      className: "absolute flex flex-col items-center gap-1 z-20",
10031      style: { top: s, left: r, transform: "translate(-50%, -50%)" },
10032      initial: { opacity: 0, scale: 0 },
10033      animate: { opacity: 1, scale: 1, y: [0, -5, 0] },
10034      transition: {
10035        opacity: { duration: 0.5, delay: n },
10036        scale: { duration: 0.5, delay: n },
10037        y: { duration: 4, repeat: 1 / 0, ease: "easeInOut", delay: n }
10038      },
10039      "data-fg-tjy59": ":0:/src/app/components/ai/AIHero.tsx:179:5:8405:827:e:motion.div:etx:1",
10040      children: [
10041        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "tjy60", _fgB: 1790697590720, className: "w-8 h-8 rounded-full bg-[#0B1B2B] border border-[#2B7AE8]/30 flex items-center justify-center text-[#2B7AE8] shadow-[0_0_15px_rgba(43,122,232,0.3)]", "data-fg-tjy60": ":0:/src/app/components/ai/AIHero.tsx:190:7:8840:193:e:div:x", children: t }),
10042        e && /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "tjy63", _fgB: 1790697590720, className: "text-white text-[7px] sm:text-[8px] font-semibold whitespace-nowrap tracking-wide opacity-75", "data-fg-tjy63": ":0:/src/app/components/ai/AIHero.tsx:194:9:9060:145:e:span:x", children: e })
10043      ]
10044    }
10045  );
10046}
10047const $a = [
10048  { icon: Fe, label: "RiderAssist AI", desc: "Rider interaction automation across all channels", anchor: "#riderassist", top: "15%", left: "50%", delay: 0 },
10049  { icon: Y, label: "CallAssist AI", desc: "The intelligent front door for rider support", anchor: "#callassist", top: "34%", left: "83%", delay: 0.3 },
10050  { icon: y1, label: "AnalyticsAI", desc: "Decision-grade operational and tactical analytics", anchor: "#analyticsai", top: "72%", left: "83%", delay: 0.6 },
10051  { icon: w1, label: "DriverAssist AI", desc: "Hands-free driver intelligence for every shift", anchor: "#driverassist", top: "88%", left: "50%", delay: 0.9 },
10052  { icon: T1, label: "SurveyAI", desc: "Automated feedback collection at scale", anchor: "#surveyai", top: "72%", left: "17%", delay: 1.2 },
10053  { icon: Te, label: "SmartDispatch AI", desc: "Fleet orchestration at operational scale", anchor: "#smartdispatch", top: "34%", left: "17%", delay: 1.5 }
10054], N2 = [
10055  // Hexagon icon positions (must match ICON_NODES exactly)
10056  { x: 50, y: 15 },
10057  { x: 83, y: 34 },
10058  { x: 83, y: 72 },
10059  { x: 50, y: 88 },
10060  { x: 17, y: 72 },
10061  { x: 17, y: 34 },
10062  // Spread broadly across the area
10063  { x: 8, y: 20 },
10064  { x: 15, y: 35 },
10065  { x: 12, y: 55 },
10066  { x: 20, y: 70 },
10067  { x: 25, y: 15 },
10068  { x: 30, y: 30 },
10069  { x: 28, y: 50 },
10070  { x: 35, y: 65 },
10071  { x: 32, y: 85 },
10072  { x: 40, y: 20 },
10073  { x: 42, y: 40 },
10074  { x: 45, y: 55 },
10075  { x: 48, y: 75 },
10076  { x: 50, y: 30 },
10077  { x: 55, y: 15 },
10078  { x: 52, y: 50 },
10079  { x: 58, y: 68 },
10080  { x: 55, y: 85 },
10081  { x: 60, y: 25 },
10082  { x: 65, y: 42 },
10083  { x: 62, y: 60 },
10084  { x: 68, y: 75 },
10085  { x: 70, y: 20 },
10086  { x: 75, y: 38 },
10087  { x: 72, y: 55 },
10088  { x: 78, y: 70 },
10089  { x: 80, y: 30 },
10090  { x: 85, y: 50 },
10091  { x: 82, y: 65 },
10092  { x: 88, y: 40 },
10093  { x: 90, y: 22 },
10094  { x: 92, y: 60 },
10095  { x: 18, y: 45 },
10096  { x: 38, y: 35 },
10097  { x: 47, y: 65 },
10098  { x: 63, y: 35 },
10099  { x: 73, y: 48 },
10100  { x: 83, y: 78 },
10101  { x: 22, y: 25 },
10102  { x: 87, y: 15 },
10103  { x: 10, y: 75 },
10104  { x: 95, y: 50 },
10105  { x: 43, y: 10 },
10106  { x: 57, y: 90 },
10107  { x: 33, y: 45 },
10108  { x: 67, y: 55 },
10109  { x: 77, y: 85 },
10110  { x: 15, y: 15 }
10111], pf = 18;
10112function Mf() {
10113  const [t, e] = j(null), s = (r) => {
10114    const n = document.querySelector(r);
10115    n && n.scrollIntoView({ behavior: "smooth" });
10116  };
10117  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "basg0", _fgB: 1790697590777, _fgD: !0, className: "relative bg-[#0B1A2E] overflow-hidden py-20 md:py-28", "data-fg-basg0": ":0:/src/app/components/ai/AIEcosystem.tsx:48:5:2820:10542:e:section:xtetxtetxtetxte:1", children: [
10118    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "basg2", _fgB: 1790697590777, className: "absolute inset-0 z-0", "data-fg-basg2": ":0:/src/app/components/ai/AIEcosystem.tsx:50:7:2952:700:e:div:etxtete", children: [
10119      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg3", _fgB: 1790697590777, className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_at_center,black_40%,transparent_80%)]", "data-fg-basg3": ":0:/src/app/components/ai/AIEcosystem.tsx:51:9:2999:261:e:div" }),
10120      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg5", _fgB: 1790697590777, className: "absolute -top-[20%] -right-[10%] w-[900px] h-[900px] bg-[#2B7AE8] opacity-[0.06] blur-[120px] rounded-full pointer-events-none mix-blend-screen", "data-fg-basg5": ":0:/src/app/components/ai/AIEcosystem.tsx:53:9:3302:163:e:div" }),
10121      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg6", _fgB: 1790697590777, className: "absolute -bottom-[20%] -left-[10%] w-[600px] h-[600px] bg-[#EFBB0F] opacity-[0.03] blur-[100px] rounded-full pointer-events-none mix-blend-screen", "data-fg-basg6": ":0:/src/app/components/ai/AIEcosystem.tsx:54:9:3474:165:e:div" })
10122    ] }),
10123    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg8", _fgB: 1790697590777, className: "relative z-10 max-w-4xl mx-auto px-6 text-center mb-4 md:mb-8", "data-fg-basg8": ":0:/src/app/components/ai/AIEcosystem.tsx:58:7:3689:1035:e:div:e", children: /* @__PURE__ */ c(
10124      a,
10125      {
10126        _fgT: m.div,
10127        _fgS: "basg9",
10128        _fgB: 1790697590777,
10129        initial: { opacity: 0, y: 20 },
10130        whileInView: { opacity: 1, y: 0 },
10131        viewport: { once: !0 },
10132        transition: { duration: 0.6 },
10133        "data-fg-basg9": ":0:/src/app/components/ai/AIEcosystem.tsx:59:9:3777:934:e:motion.div:etete",
10134        children: [
10135          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg10", _fgB: 1790697590777, className: "text-[#3B82F6] text-xs font-bold tracking-[3px] uppercase mb-4 block", "data-fg-basg10": ":0:/src/app/components/ai/AIEcosystem.tsx:65:11:3973:141:e:span:t", children: "Integrated Intelligence" }),
10136          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "basg12", _fgB: 1790697590777, className: "font-['DM_Serif_Display'] text-[28px] sm:text-[36px] md:text-[44px] leading-[1.15] text-white mb-4", "data-fg-basg12": ":0:/src/app/components/ai/AIEcosystem.tsx:68:11:4125:265:e:h2:tste", children: [
10137            "Our AI Ecosystem for Demand-Responsive",
10138            " ",
10139            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg15", _fgB: 1790697590777, className: "text-[#EFBB0F] italic", "data-fg-basg15": ":0:/src/app/components/ai/AIEcosystem.tsx:70:13:4309:65:e:span:t", children: "Transit Operations" })
10140          ] }),
10141          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "basg17", _fgB: 1790697590777, className: "text-[15px] md:text-[17px] text-[#6B8BAD] max-w-[580px] mx-auto leading-relaxed", "data-fg-basg17": ":0:/src/app/components/ai/AIEcosystem.tsx:72:11:4401:288:e:p:t", children: "Every AI agent feeds into and learns from a single transit brain — your dispatching platform at the center. Hover any agent to learn more. Click to explore it fully." })
10142        ]
10143      }
10144    ) }),
10145    /* @__PURE__ */ c(
10146      a,
10147      {
10148        _fgT: m.div,
10149        _fgS: "basg20",
10150        _fgB: 1790697590777,
10151        initial: { opacity: 0, scale: 0.9 },
10152        whileInView: { opacity: 1, scale: 1 },
10153        viewport: { once: !0 },
10154        transition: { duration: 0.8, delay: 0.2 },
10155        className: "relative z-10 max-w-[900px] mx-auto px-6 hidden md:flex items-center justify-center",
10156        style: { height: "380px" },
10157        "data-fg-basg20": ":0:/src/app/components/ai/AIEcosystem.tsx:79:7:4769:7029:e:motion.div:xtetxte",
10158        children: [
10159          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "basg22", _fgB: 1790697590777, className: "absolute inset-0 w-full h-full pointer-events-none", "data-fg-basg22": ":0:/src/app/components/ai/AIEcosystem.tsx:88:9:5176:5863:e:div:etxte", children: [
10160            /* @__PURE__ */ c(a, { _fgT: "svg", _fgS: "basg23", _fgB: 1790697590777, className: "w-full h-full", viewBox: "0 0 100 100", preserveAspectRatio: "none", "data-fg-basg23": ":0:/src/app/components/ai/AIEcosystem.tsx:89:11:5255:2441:e:svg:xtxtxtxtxtx", children: [
10161              N2.map(
10162                (r, n) => N2.slice(n + 1).map((o, L) => Math.hypot(r.x - o.x, r.y - o.y) < pf ? /* @__PURE__ */ i(
10163                  a,
10164                  {
10165                    _fgT: m.line,
10166                    _fgS: "basg26",
10167                    _fgB: 1790697590777,
10168                    x1: `${r.x}%`,
10169                    y1: `${r.y}%`,
10170                    x2: `${o.x}%`,
10171                    y2: `${o.y}%`,
10172                    stroke: "rgba(43,122,232,0.15)",
10173                    strokeWidth: "0.5",
10174                    initial: { opacity: 0 },
10175                    animate: { opacity: [0.1, 0.3, 0.1] },
10176                    transition: {
10177                      duration: 3 + n % 3,
10178                      repeat: 1 / 0,
10179                      delay: (n + L) % 5 * 0.4
10180                    },
10181                    "data-fg-basg26": ":0:/src/app/components/ai/AIEcosystem.tsx:96:21:5682:638:e:motion.line"
10182                  },
10183                  `net-${n}-${L}`
10184                ) : null)
10185              ),
10186              N2.map((r, n) => /* @__PURE__ */ i(
10187                a,
10188                {
10189                  _fgT: m.line,
10190                  _fgS: "basg29",
10191                  _fgB: 1790697590777,
10192                  x1: `${r.x}%`,
10193                  y1: `${r.y}%`,
10194                  x2: "50%",
10195                  y2: "50%",
10196                  stroke: "rgba(43,122,232,0.12)",
10197                  strokeWidth: "0.5",
10198                  strokeDasharray: "4 4",
10199                  initial: { strokeDashoffset: 0 },
10200                  animate: { strokeDashoffset: -20 },
10201                  transition: { duration: 3 + n % 3, repeat: 1 / 0, ease: "linear" },
10202                  "data-fg-basg29": ":0:/src/app/components/ai/AIEcosystem.tsx:120:15:6551:495:e:motion.line"
10203                },
10204                `center-${n}`
10205              )),
10206              N2.map((r, n) => /* @__PURE__ */ i(
10207                a,
10208                {
10209                  _fgT: m.circle,
10210                  _fgS: "basg32",
10211                  _fgB: 1790697590777,
10212                  cx: `${r.x}%`,
10213                  cy: `${r.y}%`,
10214                  r: "1",
10215                  fill: "#2B7AE8",
10216                  initial: { opacity: 0.2, scale: 1 },
10217                  animate: { opacity: [0.2, 0.8, 0.2], scale: [1, 1.5, 1] },
10218                  transition: {
10219                    duration: 2 + n % 4,
10220                    repeat: 1 / 0,
10221                    delay: n % 6 * 0.4
10222                  },
10223                  "data-fg-basg32": ":0:/src/app/components/ai/AIEcosystem.tsx:137:15:7181:482:e:motion.circle"
10224                },
10225                `node-${n}`
10226              ))
10227            ] }),
10228            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg34", _fgB: 1790697590777, className: "absolute inset-0", "data-fg-basg34": ":0:/src/app/components/ai/AIEcosystem.tsx:155:11:7797:3227:e:div:x", children: $a.map((r, n) => {
10229              const o = r.icon, L = t === n, l = parseFloat(r.top) > 50;
10230              return /* @__PURE__ */ c(
10231                a,
10232                {
10233                  _fgT: m.div,
10234                  _fgS: "basg36",
10235                  _fgB: 1790697590777,
10236                  className: "absolute flex flex-col items-center z-20 -translate-x-1/2 -translate-y-1/2 cursor-pointer",
10237                  style: { top: r.top, left: r.left },
10238                  initial: { opacity: 0, scale: 0 },
10239                  animate: { opacity: 1, scale: L ? 1.1 : 1, y: [0, -5, 0] },
10240                  transition: {
10241                    opacity: { duration: 0.5, delay: r.delay },
10242                    scale: { duration: 0.2, ease: "easeOut" },
10243                    y: { duration: 4, repeat: 1 / 0, ease: "easeInOut", delay: r.delay }
10244                  },
10245                  onMouseEnter: () => e(n),
10246                  onMouseLeave: () => e(null),
10247                  onClick: () => s(r.anchor),
10248                  "data-fg-basg36": ":0:/src/app/components/ai/AIEcosystem.tsx:164:17:8178:2796:e:motion.div:xtetxtetxte",
10249                  children: [
10250                    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "basg38", _fgB: 1790697590777, "data-fg-basg38": ":0:node_modules/motion:180:19:9074:1110:e:AnimatePresence:x:::::DAs4", children: L && /* @__PURE__ */ c(
10251                      a,
10252                      {
10253                        _fgT: m.div,
10254                        _fgS: "basg40",
10255                        _fgB: 1790697590777,
10256                        initial: { opacity: 0, y: l ? 6 : -6 },
10257                        animate: { opacity: 1, y: 0 },
10258                        exit: { opacity: 0, y: l ? 6 : -6 },
10259                        transition: { duration: 0.15, ease: "easeOut" },
10260                        className: `absolute ${l ? "bottom-full mb-3" : "top-full mt-3"} bg-[#111C2D] border border-[rgba(45,107,228,0.4)] rounded-xl px-4 py-3.5 shadow-[0_8px_24px_rgba(0,0,0,0.4)] max-w-[220px] z-50 pointer-events-none`,
10261                        "data-fg-basg40": ":0:/src/app/components/ai/AIEcosystem.tsx:182:23:9150:974:e:motion.div:ete",
10262                        children: [
10263                          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "basg41", _fgB: 1790697590777, className: "flex items-center gap-2 mb-1.5", "data-fg-basg41": ":0:/src/app/components/ai/AIEcosystem.tsx:189:25:9735:257:e:div:ete", children: [
10264                            /* @__PURE__ */ i(a, { _fgT: o, _fgS: "basg42", _fgB: 1790697590777, size: 16, className: "text-[#EFBB0F] shrink-0", "data-fg-basg42": ":0:/src/app/components/ai/AIEcosystem.tsx:190:27:9810:54:e:Icon" }),
10265                            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg43", _fgB: 1790697590777, className: "text-white text-[14px] font-bold", "data-fg-basg43": ":0:/src/app/components/ai/AIEcosystem.tsx:191:27:9891:70:e:span:x", children: r.label })
10266                          ] }),
10267                          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "basg45", _fgB: 1790697590777, className: "text-[#6B8BAD] text-[12px] leading-[1.5]", "data-fg-basg45": ":0:/src/app/components/ai/AIEcosystem.tsx:193:25:10017:71:e:p:x", children: r.desc })
10268                        ]
10269                      }
10270                    ) }),
10271                    /* @__PURE__ */ i(
10272                      a,
10273                      {
10274                        _fgT: "div",
10275                        _fgS: "basg48",
10276                        _fgB: 1790697590777,
10277                        className: `w-18 h-18 rounded-full bg-[#0B1A2E] border flex items-center justify-center transition-shadow duration-200 ${L ? "border-[#2B7AE8]/70 shadow-[0_0_28px_rgba(43,122,232,0.6)]" : "border-[#2B7AE8]/30 shadow-[0_0_20px_rgba(43,122,232,0.4)]"}`,
10278                        "data-fg-basg48": ":0:/src/app/components/ai/AIEcosystem.tsx:199:19:10242:487:e:div:e",
10279                        children: /* @__PURE__ */ i(a, { _fgT: o, _fgS: "basg49", _fgB: 1790697590777, size: 30, className: "text-[#2B7AE8]", "data-fg-basg49": ":0:/src/app/components/ai/AIEcosystem.tsx:206:21:10659:45:e:Icon" })
10280                      }
10281                    ),
10282                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg51", _fgB: 1790697590777, className: "text-white text-[9px] font-semibold whitespace-nowrap tracking-wide mt-1.5 opacity-80", "data-fg-basg51": ":0:/src/app/components/ai/AIEcosystem.tsx:210:19:10781:163:e:span:x", children: r.label })
10283                  ]
10284                },
10285                `float-${n}`
10286              );
10287            }) })
10288          ] }),
10289          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg54", _fgB: 1790697590777, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-30", "data-fg-basg54": ":0:/src/app/components/ai/AIEcosystem.tsx:220:9:11103:675:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "basg55", _fgB: 1790697590777, className: "relative", "data-fg-basg55": ":0:/src/app/components/ai/AIEcosystem.tsx:221:11:11196:567:e:div:ete", children: [
10290            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg56", _fgB: 1790697590777, className: "absolute inset-0 bg-[#2B7AE8] blur-2xl opacity-40 rounded-full", "data-fg-basg56": ":0:/src/app/components/ai/AIEcosystem.tsx:222:13:11235:82:e:div" }),
10291            /* @__PURE__ */ i(
10292              a,
10293              {
10294                _fgT: m.div,
10295                _fgS: "basg57",
10296                _fgB: 1790697590777,
10297                initial: { opacity: 0, scale: 0.9 },
10298                whileInView: { opacity: 1, scale: 1 },
10299                viewport: { once: !0 },
10300                className: "relative px-8 py-5 bg-[#2B7AE8] text-white rounded-full text-lg font-bold shadow-[0_0_40px_rgba(43,122,232,0.3)] border border-white/10 whitespace-nowrap select-none",
10301                "data-fg-basg57": ":0:/src/app/components/ai/AIEcosystem.tsx:223:13:11330:416:e:motion.div:t",
10302                children: "Transit System"
10303              }
10304            )
10305          ] }) })
10306        ]
10307      }
10308    ),
10309    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "basg60", _fgB: 1790697590777, className: "md:hidden relative z-10 mt-8 px-6 max-w-md mx-auto", "data-fg-basg60": ":0:/src/app/components/ai/AIEcosystem.tsx:236:7:11836:1511:e:div:ete", children: [
10310      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg61", _fgB: 1790697590777, className: "flex justify-center mb-5", "data-fg-basg61": ":0:/src/app/components/ai/AIEcosystem.tsx:237:9:11913:262:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg62", _fgB: 1790697590777, className: "px-8 py-4 bg-[#2B7AE8] text-white rounded-full text-base font-semibold shadow-[0_0_30px_rgba(43,122,232,0.3)] border border-white/10", "data-fg-basg62": ":0:/src/app/components/ai/AIEcosystem.tsx:238:11:11966:194:e:div:t", children: "Transit System" }) }),
10311      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg64", _fgB: 1790697590777, className: "grid grid-cols-2 gap-3", "data-fg-basg64": ":0:/src/app/components/ai/AIEcosystem.tsx:242:9:12184:1150:e:div:x", children: $a.map((r, n) => {
10312        const o = r.icon;
10313        return /* @__PURE__ */ c(
10314          a,
10315          {
10316            _fgT: m.button,
10317            _fgS: "basg66",
10318            _fgB: 1790697590777,
10319            initial: { opacity: 0, y: 15 },
10320            whileInView: { opacity: 1, y: 0 },
10321            viewport: { once: !0 },
10322            transition: { delay: n * 0.06 },
10323            onClick: () => s(r.anchor),
10324            className: "bg-[#0F2340]/70 border border-[#2B7AE8]/20 rounded-xl p-3.5 flex flex-col items-center gap-2 cursor-pointer hover:border-[#2B7AE8]/50 transition-colors",
10325            "data-fg-basg66": ":0:/src/app/components/ai/AIEcosystem.tsx:246:15:12337:953:e:motion.button:etete",
10326            children: [
10327              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "basg67", _fgB: 1790697590777, className: "w-9 h-9 rounded-full bg-[#0B1A2E] border border-[#2B7AE8]/40 flex items-center justify-center", "data-fg-basg67": ":0:/src/app/components/ai/AIEcosystem.tsx:255:17:12851:198:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: o, _fgS: "basg68", _fgB: 1790697590777, size: 14, className: "text-[#2B7AE8]", "data-fg-basg68": ":0:/src/app/components/ai/AIEcosystem.tsx:256:19:12981:45:e:Icon" }) }),
10328              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg69", _fgB: 1790697590777, className: "text-white text-[10px] font-semibold tracking-wide", "data-fg-basg69": ":0:/src/app/components/ai/AIEcosystem.tsx:258:17:13066:88:e:span:x", children: r.label }),
10329              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "basg71", _fgB: 1790697590777, className: "text-[#6B8BAD] text-[9px] leading-tight text-center", "data-fg-basg71": ":0:/src/app/components/ai/AIEcosystem.tsx:259:17:13171:88:e:span:x", children: r.desc })
10330            ]
10331          },
10332          `mobile-${n}`
10333        );
10334      }) })
10335    ] })
10336  ] });
10337}
10338function uf() {
10339  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cxf0", _fgB: 1790697590757, _fgD: !0, className: "py-24 px-6 max-w-[1280px] mx-auto bg-white font-['DM_Sans']", "data-fg-cxf0": ":0:/src/app/components/ai/AIProblem.tsx:3:5:45:1646:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cxf1", _fgB: 1790697590757, className: "grid grid-cols-1 lg:grid-cols-2 gap-20 items-start", "data-fg-cxf1": ":0:/src/app/components/ai/AIProblem.tsx:4:7:133:1543:e:div:xtetxte", children: [
10340    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cxf3", _fgB: 1790697590757, className: "lg:sticky lg:top-24", "data-fg-cxf3": ":0:/src/app/components/ai/AIProblem.tsx:6:9:242:434:e:div:ete", children: [
10341      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cxf4", _fgB: 1790697590757, className: "text-[#EFBB0F] text-xs font-bold tracking-[2.5px] uppercase mb-4", "data-fg-cxf4": ":0:/src/app/components/ai/AIProblem.tsx:7:11:290:99:e:div:t", children: "THE PROBLEM" }),
10342      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cxf6", _fgB: 1790697590757, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-[#0B1B2B]", "data-fg-cxf6": ":0:/src/app/components/ai/AIProblem.tsx:8:11:400:261:e:h2:te", children: [
10343        "Transit operations still run on ",
10344        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cxf8", _fgB: 1790697590757, className: "text-[#EFBB0F] italic", "data-fg-cxf8": ":0:/src/app/components/ai/AIProblem.tsx:9:45:558:87:e:span:t", children: "manual decisions and disconnected tools." })
10345      ] })
10346    ] }),
10347    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cxf11", _fgB: 1790697590757, className: "flex flex-col gap-6", "data-fg-cxf11": ":0:/src/app/components/ai/AIProblem.tsx:14:9:708:955:e:div:etete", children: [
10348      /* @__PURE__ */ i(
10349        a,
10350        {
10351          _fgT: g4,
10352          _fgS: "cxf12",
10353          _fgB: 1790697590757,
10354          title: '"Riders call to ask where their ride is."',
10355          desc: `Dispatchers field the same question hundreds of times a day while managing live operations. Every "where's my ride?" call is time pulled away from real exceptions and service decisions.`,
10356          "data-fg-cxf12": ":0:/src/app/components/ai/AIProblem.tsx:15:11:756:297:e:ProblemCard::::::ts6"
10357        }
10358      ),
10359      /* @__PURE__ */ i(
10360        a,
10361        {
10362          _fgT: g4,
10363          _fgS: "cxf13",
10364          _fgB: 1790697590757,
10365          title: '"Our drivers miss steps. Every shift."',
10366          desc: "New and experienced drivers alike skip timestamps, miss notes, and create gaps in the operational record — not from negligence, but because the tools don't support them in the moment.",
10367          "data-fg-cxf13": ":0:/src/app/components/ai/AIProblem.tsx:19:11:1064:290:e:ProblemCard::::::ts6"
10368        }
10369      ),
10370      /* @__PURE__ */ i(
10371        a,
10372        {
10373          _fgT: g4,
10374          _fgS: "cxf14",
10375          _fgB: 1790697590757,
10376          title: `"We have the data. We just can't act on it."`,
10377          desc: "Survey responses pile up. Dashboards require an analyst. Service quality drifts before anyone notices. By the time you see the pattern, it's already affected your riders.",
10378          "data-fg-cxf14": ":0:/src/app/components/ai/AIProblem.tsx:23:11:1365:283:e:ProblemCard::::::ts6"
10379        }
10380      )
10381    ] })
10382  ] }) });
10383}
10384function g4({ title: t, desc: e }) {
10385  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cxf15", _fgB: 1790697590757, _fgD: !0, className: "p-7 pl-8 border-l-[3px] border-[#EFBB0F] bg-[#F7F9FC] rounded-r-xl", "data-fg-cxf15": ":0:/src/app/components/ai/AIProblem.tsx:35:5:1788:242:e:div:ete:1", children: [
10386    /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cxf16", _fgB: 1790697590757, className: "text-lg font-bold text-[#0B1B2B] mb-2", "data-fg-cxf16": ":0:/src/app/components/ai/AIProblem.tsx:36:7:1879:66:e:h3:x", children: t }),
10387    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cxf18", _fgB: 1790697590757, className: "text-[15px] leading-[1.65] text-[#5A6A80]", "data-fg-cxf18": ":0:/src/app/components/ai/AIProblem.tsx:37:7:1952:67:e:p:x", children: e })
10388  ] });
10389}
10390const hf = [
10391  {
10392    num: "01",
10393    id: "riderassist",
10394    eyebrow: "RIDER AI",
10395    title: "Rider Interaction Automation",
10396    description: "Lives in the rider-facing app as an always-on trip companion. Manages booking, trip updates, eligibility, and notifications in real time — reducing call volume and keeping riders informed without staff intervention.",
10397    bullets: [
10398      { bold: "In-app trip management", text: "— book, modify, cancel, and confirm trips in real time" },
10399      { bold: "Proactive trip updates", text: "— ETA changes, early/late arrivals, and pickup readiness alerts automatically pushed to riders" },
10400      { bold: "Smart escalation only when needed", text: ", with full context already captured so staff pick up mid-conversation" }
10401    ],
10402    cta: "Explore RiderAssist AI",
10403    href: "/ai/voice",
10404    icon: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "ce1m0", _fgB: 1790697590735, size: 18, "data-fg-ce1m0": ":0:node_modules/lucide-react:25:11:1207:24:e:Smartphone::::::DHxb" }),
10405    bg: "bg-white"
10406  },
10407  {
10408    num: "02",
10409    id: "callassist",
10410    eyebrow: "CALL AI",
10411    title: "Intelligent Front Door for Rider Support",
10412    description: "Automates call handling for booking, trip changes, verification, and general inquiries. Transfers to staff only when needed — with full context and a warm handoff summary so riders never have to repeat themselves.",
10413    bullets: [
10414      { bold: "Voice-first call handling", text: "with natural conversation across languages" },
10415      { bold: "Trip help and requests", text: "— book, modify, cancel, verify, and check status without hold time" },
10416      { bold: "Warm handoff to staff", text: "with interaction history, rider intent, and next-step guidance already on screen" }
10417    ],
10418    cta: "Explore CallAssist AI",
10419    href: "/ai/voice",
10420    icon: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "ce1m1", _fgB: 1790697590735, size: 18, "data-fg-ce1m1": ":0:node_modules/lucide-react:42:11:2053:19:e:Phone::::::DmpI" }),
10421    bg: "bg-[#F7F8FA]"
10422  },
10423  {
10424    num: "03",
10425    id: "analyticsai",
10426    eyebrow: "ANALYTICS AI",
10427    title: "Decision-Grade Operational Intelligence",
10428    description: "Unifies operational data from vehicles, riders, and apps. Identifies patterns, explains drivers of performance, and generates actionable reports for operational and tactical decisions — in minutes, not days.",
10429    bullets: [
10430      { bold: "Unified intelligence layer", text: "across all operational data sources — vehicles, dispatch, rider app, and call center" },
10431      { bold: "Before/after and period comparisons", text: "— week-over-week, quarter-over-quarter, and change impact analysis" },
10432      { bold: "Guided reports with recommendations", text: "for staffing, fleet sizing, and shift structure" }
10433    ],
10434    cta: "Explore AnalyticsAI",
10435    href: "/ai/analytics",
10436    icon: /* @__PURE__ */ i(a, { _fgT: y1, _fgS: "ce1m2", _fgB: 1790697590735, size: 18, "data-fg-ce1m2": ":0:node_modules/lucide-react:59:11:2936:23:e:BarChart3::::::C2Ja" }),
10437    bg: "bg-white"
10438  },
10439  {
10440    num: "04",
10441    id: "driverassist",
10442    eyebrow: "DRIVER AI",
10443    title: "Hands-Free Driver Intelligence",
10444    description: "Operates on every driver device, reducing admin work and guiding real-time decisions. Provides voice-first support, monitors key events, and coordinates with dispatch — so drivers stay focused on the road, not the screen.",
10445    bullets: [
10446      { bold: "Voice-first driver support", text: "— questions, guidance, and task completion with eyes on the road" },
10447      { bold: "Automatic workflow capture", text: "— timestamps, notes, and exceptions logged with minimal taps" },
10448      { bold: "Field-to-ops escalation", text: "— breakdowns, delays, and no-shows routed to dispatch with full context" }
10449    ],
10450    cta: "Explore DriverAssist AI",
10451    href: "/ai/driver",
10452    icon: /* @__PURE__ */ i(a, { _fgT: w1, _fgS: "ce1m3", _fgB: 1790697590735, size: 18, "data-fg-ce1m3": ":0:node_modules/lucide-react:76:11:3800:23:e:CircleDot::::::CPqJ" }),
10453    bg: "bg-[#F7F8FA]"
10454  },
10455  {
10456    num: "05",
10457    id: "surveyai",
10458    eyebrow: "SURVEY AI",
10459    title: "Automated Feedback Collection at Scale",
10460    description: "Automates feedback collection across voice and web after key trip events. Uses trip and rider context to ask targeted questions and collect structured feedback — without manual review or spreadsheet wrangling.",
10461    bullets: [
10462      { bold: "Event-triggered outreach", text: "— automatically reaches out after service recoveries, first rides, and exceptions" },
10463      { bold: "Adaptive questioning", text: "based on trip context and rider history" },
10464      { bold: "Automated theme extraction and sentiment analysis", text: "across all responses so nothing urgent gets missed" }
10465    ],
10466    cta: "Explore SurveyAI",
10467    href: "/ai/feedback",
10468    icon: /* @__PURE__ */ i(a, { _fgT: T1, _fgS: "ce1m4", _fgB: 1790697590735, size: 18, "data-fg-ce1m4": ":0:node_modules/lucide-react:93:11:4648:27:e:ClipboardList::::::CPfu" }),
10469    bg: "bg-white"
10470  },
10471  {
10472    num: "06",
10473    id: "smartdispatch",
10474    eyebrow: "DISPATCH AI",
10475    title: "Fleet Orchestration at Operational Scale",
10476    description: "Manages live operations in real time — continuously balancing service quality, capacity, and disruptions. Executes policy-compliant recovery actions with full traceability and explainable operational reasoning.",
10477    bullets: [
10478      { bold: "Continuous assignment + reassignment", text: "as conditions change — delays, vehicle down, or demand spikes" },
10479      { bold: "Service recovery automation", text: "— resequencing, rebalancing, and rerouting with policy guardrails" },
10480      { bold: "Explainable decisioning", text: "— trade-offs, expected impact, and audit-ready logs for every action" }
10481    ],
10482    cta: "Explore SmartDispatch AI",
10483    href: "/ai/dispatch",
10484    icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "ce1m5", _fgB: 1790697590735, size: 18, "data-fg-ce1m5": ":0:node_modules/lucide-react:110:11:5531:17:e:Zap::::::Cp7" }),
10485    bg: "bg-[#F7F8FA]"
10486  }
10487];
10488function mf() {
10489  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m6", _fgB: 1790697590735, _fgD: !0, className: "font-['DM_Sans']", "data-fg-ce1m6": ":0:/src/app/components/ai/AIProducts.tsx:117:5:5629:2799:e:div:x:1", children: hf.map((t, e) => {
10490    const s = e % 2 === 1;
10491    return /* @__PURE__ */ i(
10492      a,
10493      {
10494        _fgT: "section",
10495        _fgS: "ce1m8",
10496        _fgB: 1790697590735,
10497        id: t.id,
10498        className: `${t.bg} py-16 md:py-24 px-6`,
10499        "data-fg-ce1m8": ":0:/src/app/components/ai/AIProducts.tsx:121:11:5761:2635:e:section:e",
10500        children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m9", _fgB: 1790697590735, className: "max-w-[1280px] mx-auto", "data-fg-ce1m9": ":0:/src/app/components/ai/AIProducts.tsx:126:13:5906:2469:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m10", _fgB: 1790697590735, className: "grid grid-cols-1 lg:grid-cols-2 gap-10 xl:gap-[60px] items-center", "data-fg-ce1m10": ":0:/src/app/components/ai/AIProducts.tsx:127:15:5961:2395:e:div:xtetxte", children: [
10501          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m12", _fgB: 1790697590735, className: `relative ${s ? "lg:order-2" : "lg:order-1"}`, "data-fg-ce1m12": ":0:/src/app/components/ai/AIProducts.tsx:129:17:6095:2135:e:div:ete", children: [
10502            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m13", _fgB: 1790697590735, className: "absolute -top-8 -left-2 text-[80px] sm:text-[100px] md:text-[140px] font-bold leading-none text-[rgba(0,0,0,0.04)] pointer-events-none select-none font-['DM_Sans']", "data-fg-ce1m13": ":0:/src/app/components/ai/AIProducts.tsx:130:19:6182:240:e:span:x", children: t.num }),
10503            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m15", _fgB: 1790697590735, className: "relative", "data-fg-ce1m15": ":0:/src/app/components/ai/AIProducts.tsx:133:19:6441:1766:e:div:etetetetx", children: [
10504              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m16", _fgB: 1790697590735, className: "inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-[#FEF0E6] mb-5", "data-fg-ce1m16": ":0:/src/app/components/ai/AIProducts.tsx:134:21:6488:291:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m17", _fgB: 1790697590735, className: "text-[#E87722] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-ce1m17": ":0:/src/app/components/ai/AIProducts.tsx:135:23:6602:150:e:span:x", children: t.eyebrow }) }),
10505              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "ce1m19", _fgB: 1790697590735, className: "font-['DM_Serif_Display'] text-[28px] sm:text-[32px] md:text-[36px] leading-[1.15] text-[#0D1B2E] mb-4", "data-fg-ce1m19": ":0:/src/app/components/ai/AIProducts.tsx:139:21:6800:181:e:h3:x", children: t.title }),
10506              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m21", _fgB: 1790697590735, className: "text-[16px] leading-[1.7] text-[#6B7280] mb-8 max-w-[440px]", "data-fg-ce1m21": ":0:/src/app/components/ai/AIProducts.tsx:142:21:7002:142:e:p:x", children: t.description }),
10507              /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "ce1m23", _fgB: 1790697590735, className: "flex flex-col gap-4 mb-8", "data-fg-ce1m23": ":0:/src/app/components/ai/AIProducts.tsx:145:21:7165:603:e:ul:x", children: t.bullets.map((r, n) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "ce1m25", _fgB: 1790697590735, className: "flex gap-3 items-start text-[15px] leading-[1.6] text-[#6B7280]", "data-fg-ce1m25": ":0:/src/app/components/ai/AIProducts.tsx:147:25:7290:426:e:li:ete", children: [
10508                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m26", _fgB: 1790697590735, className: "w-1.5 h-1.5 rounded-full bg-[#E87722] mt-2.5 shrink-0", "data-fg-ce1m26": ":0:/src/app/components/ai/AIProducts.tsx:148:27:7406:74:e:span" }),
10509                /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "ce1m27", _fgB: 1790697590735, "data-fg-ce1m27": ":0:/src/app/components/ai/AIProducts.tsx:149:27:7507:179:e:span:estx", children: [
10510                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m28", _fgB: 1790697590735, className: "font-bold text-[#0D1B2E]", "data-fg-ce1m28": ":0:/src/app/components/ai/AIProducts.tsx:150:29:7542:63:e:span:x", children: r.bold }),
10511                  " ",
10512                  r.text
10513                ] })
10514              ] }, n)) }),
10515              t.id === "riderassist" && /* @__PURE__ */ c(a, { _fgT: E, _fgS: "ce1m33", _fgB: 1790697590735, href: t.href, className: "inline-flex items-center gap-2 text-[#E87722] font-semibold text-[15px] group hover:gap-3 transition-all", "data-fg-ce1m33": ":0:node_modules/wouter:157:23:7844:315:e:Link:xte:::::C4yE", children: [
10516                t.cta,
10517                /* @__PURE__ */ i(a, { _fgT: D, _fgS: "ce1m35", _fgB: 1790697590735, size: 16, className: "group-hover:translate-x-1 transition-transform", "data-fg-ce1m35": ":0:node_modules/lucide-react:159:25:8046:83:e:ArrowRight::::::s5N" })
10518              ] })
10519            ] })
10520          ] }),
10521          /* @__PURE__ */ i(a, { _fgT: Sf, _fgS: "ce1m37", _fgB: 1790697590735, isEven: s, index: e, "data-fg-ce1m37": ":0:/src/app/components/ai/AIProducts.tsx:166:17:8284:51:e:ScrollActivatedMockup::::::Bvr" })
10522        ] }) })
10523      },
10524      t.num
10525    );
10526  }) });
10527}
10528function xf({ onComplete: t }) {
10529  const [e, s] = j(0), [r, n] = j(!1), [o, L] = j(!1), d = [
10530    { role: "ai", text: "Hi! Your trip tomorrow at 8 AM from Oak Street is confirmed. Driver: Marcus, Vehicle #42." },
10531    { role: "rider", text: "Can I move it to 9 AM?" },
10532    { role: "ai", text: "Done — your trip is rescheduled to 9:00 AM from Oak Street. You'll get a reminder 30 min before pickup." }
10533  ];
10534  return q(() => {
10535    if (o) return;
10536    if (e < d.length) {
10537      const g = d[e]?.role === "ai" ? 2200 : 1400, f = setTimeout(() => s((p) => p + 1), g);
10538      return () => clearTimeout(f);
10539    }
10540    const l = setTimeout(() => {
10541      n(!0), L(!0), t?.();
10542    }, 1200);
10543    return () => clearTimeout(l);
10544  }, [e, o]), /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m38", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col gap-3 flex-1", "data-fg-ce1m38": ":0:/src/app/components/ai/AIProducts.tsx:208:5:9748:3273:e:div:xtetxtetxte:1", children: [
10545    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m40", _fgB: 1790697590735, className: "flex items-center gap-3 mb-2 pb-3 border-b border-white/5", "data-fg-ce1m40": ":0:/src/app/components/ai/AIProducts.tsx:210:7:9820:728:e:div:etete", children: [
10546      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m41", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#E87722]/20 flex items-center justify-center", "data-fg-ce1m41": ":0:/src/app/components/ai/AIProducts.tsx:211:9:9904:164:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "ce1m42", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m42": ":0:node_modules/lucide-react:212:11:10002:51:e:Smartphone::::::DHxb" }) }),
10547      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m43", _fgB: 1790697590735, "data-fg-ce1m43": ":0:/src/app/components/ai/AIProducts.tsx:214:9:10077:200:e:div:ete", children: [
10548        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m44", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m44": ":0:/src/app/components/ai/AIProducts.tsx:215:11:10093:70:e:div:t", children: "RiderAssist AI" }),
10549        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m46", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m46": ":0:/src/app/components/ai/AIProducts.tsx:216:11:10174:88:e:div:t", children: "Rider Session" })
10550      ] }),
10551      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m48", _fgB: 1790697590735, className: "ml-auto flex items-center gap-1.5", "data-fg-ce1m48": ":0:/src/app/components/ai/AIProducts.tsx:218:9:10286:249:e:div:ete", children: [
10552        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m49", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E] animate-pulse", "data-fg-ce1m49": ":0:/src/app/components/ai/AIProducts.tsx:219:11:10348:68:e:span" }),
10553        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m50", _fgB: 1790697590735, className: "text-[#22C55E] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m50": ":0:/src/app/components/ai/AIProducts.tsx:220:11:10427:93:e:span:t", children: "Online" })
10554      ] })
10555    ] }),
10556    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m53", _fgB: 1790697590735, className: "flex flex-col gap-2.5 flex-1 overflow-hidden", "data-fg-ce1m53": ":0:/src/app/components/ai/AIProducts.tsx:225:7:10579:2038:e:div:etxtxte", children: [
10557      /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m54", _fgB: 1790697590735, mode: "sync", "data-fg-ce1m54": ":0:node_modules/motion:226:9:10650:1103:e:AnimatePresence:x:::::DAs4", children: d.slice(0, e).map((l, g) => /* @__PURE__ */ c(
10558        a,
10559        {
10560          _fgT: m.div,
10561          _fgS: "ce1m56",
10562          _fgB: 1790697590735,
10563          initial: { opacity: 0, y: 12 },
10564          animate: { opacity: 1, y: 0 },
10565          transition: { duration: 0.35 },
10566          className: `flex gap-2.5 items-start ${l.role === "rider" ? "flex-row-reverse" : ""}`,
10567          "data-fg-ce1m56": ":0:/src/app/components/ai/AIProducts.tsx:228:13:10754:958:e:motion.div:ete",
10568          children: [
10569            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m57", _fgB: 1790697590735, className: `w-6 h-6 rounded-full flex items-center justify-center shrink-0 ${l.role === "ai" ? "bg-[#E87722]/20 text-[#E87722]" : "bg-[#64748B]/30 text-[#94A3B8]"}`, "data-fg-ce1m57": ":0:/src/app/components/ai/AIProducts.tsx:235:15:11057:303:e:div:x", children: l.role === "ai" ? /* @__PURE__ */ i(a, { _fgT: K5, _fgS: "ce1m59", _fgB: 1790697590735, size: 12, "data-fg-ce1m59": ":0:node_modules/lucide-react:238:38:11300:17:e:Bot::::::EI6D" }) : /* @__PURE__ */ i(a, { _fgT: v2, _fgS: "ce1m60", _fgB: 1790697590735, size: 12, "data-fg-ce1m60": ":0:node_modules/lucide-react:238:58:11320:18:e:User::::::wpV" }) }),
10570            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m61", _fgB: 1790697590735, className: `max-w-[80%] px-3.5 py-2.5 text-[13px] leading-[1.5] text-white ${l.role === "ai" ? "bg-[#E87722] rounded-[16px_16px_16px_4px]" : "bg-[#1E2D40] rounded-[16px_16px_4px_16px]"}`, "data-fg-ce1m61": ":0:/src/app/components/ai/AIProducts.tsx:240:15:11375:311:e:div:x", children: l.text })
10571          ]
10572        },
10573        g
10574      )) }),
10575      e < d.length && !o && /* @__PURE__ */ i(a, { _fgT: oi, _fgS: "ce1m64", _fgB: 1790697590735, side: d[e].role === "ai" ? "left" : "right", "data-fg-ce1m64": ":0:/src/app/components/ai/AIProducts.tsx:252:11:11821:82:e:TypingIndicator::::::owg" }),
10576      /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m66", _fgB: 1790697590735, "data-fg-ce1m66": ":0:node_modules/motion:256:9:11955:649:e:AnimatePresence:x:::::DAs4", children: r && /* @__PURE__ */ c(
10577        a,
10578        {
10579          _fgT: m.div,
10580          _fgS: "ce1m68",
10581          _fgB: 1790697590735,
10582          initial: { opacity: 0, y: 8 },
10583          animate: { opacity: 1, y: 0 },
10584          transition: { duration: 0.3 },
10585          className: "flex gap-2 ml-8 mt-1",
10586          "data-fg-ce1m68": ":0:/src/app/components/ai/AIProducts.tsx:258:13:12013:551:e:motion.div:ete",
10587          children: [
10588            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m69", _fgB: 1790697590735, className: "px-3.5 py-1.5 rounded-full text-[11px] font-bold bg-[#2D6BE4] text-white", "data-fg-ce1m69": ":0:/src/app/components/ai/AIProducts.tsx:264:15:12235:147:e:span:t", children: "View Trip Details" }),
10589            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m71", _fgB: 1790697590735, className: "px-3.5 py-1.5 rounded-full text-[11px] font-bold bg-[#2D6BE4] text-white", "data-fg-ce1m71": ":0:/src/app/components/ai/AIProducts.tsx:267:15:12397:141:e:span:t", children: "Cancel Ride" })
10590          ]
10591        }
10592      ) })
10593    ] }),
10594    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m74", _fgB: 1790697590735, className: "mt-4 flex items-center gap-2 bg-transparent rounded-full border border-white/10 px-4 py-3", "data-fg-ce1m74": ":0:/src/app/components/ai/AIProducts.tsx:276:7:12649:361:e:div:ete", children: [
10595      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m75", _fgB: 1790697590735, className: "text-[#64748B] text-sm flex-1", "data-fg-ce1m75": ":0:/src/app/components/ai/AIProducts.tsx:277:9:12765:72:e:span:t", children: "Type a message..." }),
10596      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m77", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#2D6BE4] flex items-center justify-center", "data-fg-ce1m77": ":0:/src/app/components/ai/AIProducts.tsx:278:9:12846:151:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: ti, _fgS: "ce1m78", _fgB: 1790697590735, size: 14, className: "text-white", "data-fg-ce1m78": ":0:node_modules/lucide-react:279:11:12941:41:e:Send::::::dtm" }) })
10597    ] })
10598  ] });
10599}
10600function _f({ onComplete: t }) {
10601  const [e, s] = j(0), [r, n] = j(0), [o, L] = j(!1), d = [
10602    { role: "ai", text: "Metro Transit, how can I help you today?" },
10603    { role: "rider", text: "I need to reschedule my ride for Thursday." },
10604    { role: "ai", text: "I found your Thursday trip — 10:15 AM from Pine Ridge Community Center. Would you like to move it to a different time?" },
10605    { role: "rider", text: "Yes, 1 PM please." },
10606    { role: "ai", text: "Done. Your trip is confirmed for Thursday at 1:00 PM. Anything else I can help with?" }
10607  ];
10608  return q(() => {
10609    if (o) return;
10610    const g = setInterval(() => n((f) => f + 1), 1e3);
10611    return () => clearInterval(g);
10612  }, [o]), q(() => {
10613    if (!o) {
10614      if (e < d.length) {
10615        const g = d[e]?.role === "ai" ? 2200 : 1400, f = setTimeout(() => s((p) => p + 1), g);
10616        return () => clearTimeout(f);
10617      }
10618      L(!0), t?.();
10619    }
10620  }, [e, o]), /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m79", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col gap-3 flex-1", "data-fg-ce1m79": ":0:/src/app/components/ai/AIProducts.tsx:323:5:14593:3071:e:div:xtetxtetxte:1", children: [
10621    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m81", _fgB: 1790697590735, className: "flex items-center gap-3 mb-2 pb-3 border-b border-white/5", "data-fg-ce1m81": ":0:/src/app/components/ai/AIProducts.tsx:325:7:14665:886:e:div:etete", children: [
10622      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m82", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#2D6BE4]/20 flex items-center justify-center", "data-fg-ce1m82": ":0:/src/app/components/ai/AIProducts.tsx:326:9:14749:159:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "ce1m83", _fgB: 1790697590735, size: 14, className: "text-[#2D6BE4]", "data-fg-ce1m83": ":0:node_modules/lucide-react:327:11:14847:46:e:Phone::::::DmpI" }) }),
10623      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m84", _fgB: 1790697590735, "data-fg-ce1m84": ":0:/src/app/components/ai/AIProducts.tsx:329:9:14917:206:e:div:ete", children: [
10624        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m85", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m85": ":0:/src/app/components/ai/AIProducts.tsx:330:11:14933:69:e:div:t", children: "CallAssist AI" }),
10625        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m87", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m87": ":0:/src/app/components/ai/AIProducts.tsx:331:11:15013:95:e:div:t", children: "Live Call Transcript" })
10626      ] }),
10627      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m89", _fgB: 1790697590735, className: "ml-auto flex items-center gap-3", "data-fg-ce1m89": ":0:/src/app/components/ai/AIProducts.tsx:333:9:15132:406:e:div:ete", children: [
10628        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m90", _fgB: 1790697590735, className: "text-white text-xs font-mono", "data-fg-ce1m90": ":0:/src/app/components/ai/AIProducts.tsx:334:11:15192:73:e:span:x", children: ((g) => `${Math.floor(g / 60)}:${String(g % 60).padStart(2, "0")}`)(r) }),
10629        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m92", _fgB: 1790697590735, className: "flex items-center gap-1.5", "data-fg-ce1m92": ":0:/src/app/components/ai/AIProducts.tsx:335:11:15276:247:e:div:ete", children: [
10630          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m93", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E] animate-pulse", "data-fg-ce1m93": ":0:/src/app/components/ai/AIProducts.tsx:336:13:15332:68:e:span" }),
10631          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m94", _fgB: 1790697590735, className: "text-[#22C55E] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m94": ":0:/src/app/components/ai/AIProducts.tsx:337:13:15413:93:e:span:t", children: "Active" })
10632        ] })
10633      ] })
10634    ] }),
10635    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m97", _fgB: 1790697590735, className: "flex flex-col gap-2.5 flex-1 overflow-hidden", "data-fg-ce1m97": ":0:/src/app/components/ai/AIProducts.tsx:343:7:15582:1348:e:div:etx", children: [
10636      /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m98", _fgB: 1790697590735, mode: "sync", "data-fg-ce1m98": ":0:node_modules/motion:344:9:15653:1103:e:AnimatePresence:x:::::DAs4", children: d.slice(0, e).map((g, f) => /* @__PURE__ */ c(
10637        a,
10638        {
10639          _fgT: m.div,
10640          _fgS: "ce1m100",
10641          _fgB: 1790697590735,
10642          initial: { opacity: 0, y: 12 },
10643          animate: { opacity: 1, y: 0 },
10644          transition: { duration: 0.35 },
10645          className: `flex gap-2.5 items-start ${g.role === "rider" ? "flex-row-reverse" : ""}`,
10646          "data-fg-ce1m100": ":0:/src/app/components/ai/AIProducts.tsx:346:13:15757:958:e:motion.div:ete",
10647          children: [
10648            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m101", _fgB: 1790697590735, className: `w-6 h-6 rounded-full flex items-center justify-center shrink-0 ${g.role === "ai" ? "bg-[#2D6BE4]/20 text-[#2D6BE4]" : "bg-[#E87722]/20 text-[#E87722]"}`, "data-fg-ce1m101": ":0:/src/app/components/ai/AIProducts.tsx:353:15:16060:303:e:div:x", children: g.role === "ai" ? /* @__P
10648URE__ */ i(a, { _fgT: K5, _fgS: "ce1m103", _fgB: 1790697590735, size: 12, "data-fg-ce1m103": ":0:node_modules/lucide-react:356:38:16303:17:e:Bot::::::EI6D" }) : /* @__PURE__ */ i(a, { _fgT: v2, _fgS: "ce1m104", _fgB: 1790697590735, size: 12, "data-fg-ce1m104": ":0:node_modules/lucide-react:356:58:16323:18:e:User::::::wpV" }) }),
10649            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m105", _fgB: 1790697590735, className: `max-w-[80%] px-3.5 py-2.5 text-[13px] leading-[1.5] text-white ${g.role === "ai" ? "bg-[#2D6BE4] rounded-[16px_16px_16px_4px]" : "bg-[#1E2D40] rounded-[16px_16px_4px_16px]"}`, "data-fg-ce1m105": ":0:/src/app/components/ai/AIProducts.tsx:358:15:16378:311:e:div:x", children: g.text })
10650          ]
10651        },
10652        f
10653      )) }),
10654      e < d.length && !o && /* @__PURE__ */ i(a, { _fgT: oi, _fgS: "ce1m108", _fgB: 1790697590735, side: d[e].role === "ai" ? "left" : "right", "data-fg-ce1m108": ":0:/src/app/components/ai/AIProducts.tsx:370:11:16824:82:e:TypingIndicator::::::owg" })
10655    ] }),
10656    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m110", _fgB: 1790697590735, className: "mt-auto bg-[#0D2040] rounded-xl p-3 grid grid-cols-3 gap-3 text-center", "data-fg-ce1m110": ":0:/src/app/components/ai/AIProducts.tsx:375:7:16962:691:e:div:etete", children: [
10657      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m111", _fgB: 1790697590735, "data-fg-ce1m111": ":0:/src/app/components/ai/AIProducts.tsx:376:9:17059:190:e:div:ete", children: [
10658        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m112", _fgB: 1790697590735, className: "text-[#22C55E] font-bold text-sm", "data-fg-ce1m112": ":0:/src/app/components/ai/AIProducts.tsx:377:11:17075:62:e:div:t", children: "<1s" }),
10659        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m114", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m114": ":0:/src/app/components/ai/AIProducts.tsx:378:11:17148:86:e:div:t", children: "Answer Time" })
10660      ] }),
10661      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m116", _fgB: 1790697590735, "data-fg-ce1m116": ":0:/src/app/components/ai/AIProducts.tsx:380:9:17258:184:e:div:ete", children: [
10662        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m117", _fgB: 1790697590735, className: "text-[#22C55E] font-bold text-sm", "data-fg-ce1m117": ":0:/src/app/components/ai/AIProducts.tsx:381:11:17274:57:e:div:t", children: "0" }),
10663        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m119", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m119": ":0:/src/app/components/ai/AIProducts.tsx:382:11:17342:85:e:div:t", children: "Hold Queue" })
10664      ] }),
10665      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m121", _fgB: 1790697590735, "data-fg-ce1m121": ":0:/src/app/components/ai/AIProducts.tsx:384:9:17451:189:e:div:ete", children: [
10666        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m122", _fgB: 1790697590735, className: "text-[#22C55E] font-bold text-sm", "data-fg-ce1m122": ":0:/src/app/components/ai/AIProducts.tsx:385:11:17467:60:e:div:t", children: "24/7" }),
10667        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m124", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m124": ":0:/src/app/components/ai/AIProducts.tsx:386:11:17538:87:e:div:t", children: "Availability" })
10668      ] })
10669    ] })
10670  ] });
10671}
10672function bf({ onComplete: t }) {
10673  const [e, s] = j(0), r = 12;
10674  q(() => {
10675    if (e >= r) {
10676      t?.();
10677      return;
10678    }
10679    const l = setInterval(() => s((g) => g + 1), 3e3);
10680    return () => clearInterval(l);
10681  }, [e]);
10682  const n = e % 12, o = [
10683    { value: "1,247", label: "TRIPS TODAY", color: "text-[#2D6BE4]" },
10684    { value: "91%", label: "ON-TIME RATE", color: "text-[#22C55E]" },
10685    { value: "0:22", label: "AVG RESPONSE TIME", color: "text-[#E87722]" },
10686    { value: "78%", label: "AI HANDLED", color: "text-[#2D6BE4]" }
10687  ], L = [22, 45, 78, 95, 68, 52, 60, 55, 48, 72, 88, 82], d = ["6a", "7a", "8a", "9a", "10a", "11a", "12p", "1p", "2p", "3p", "4p", "5p"];
10688  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m126", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col flex-1 gap-4", "data-fg-ce1m126": ":0:/src/app/components/ai/AIProducts.tsx:423:5:18709:2897:e:div:xtetxtetxtetxte:1", children: [
10689    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m128", _fgB: 1790697590735, className: "flex items-center gap-3 pb-3 border-b border-white/5", "data-fg-ce1m128": ":0:/src/app/components/ai/AIProducts.tsx:425:7:18781:723:e:div:etete", children: [
10690      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m129", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#2D6BE4]/20 flex items-center justify-center", "data-fg-ce1m129": ":0:/src/app/components/ai/AIProducts.tsx:426:9:18860:163:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: y1, _fgS: "ce1m130", _fgB: 1790697590735, size: 14, className: "text-[#2D6BE4]", "data-fg-ce1m130": ":0:node_modules/lucide-react:427:11:18958:50:e:BarChart3::::::C2Ja" }) }),
10691      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m131", _fgB: 1790697590735, "data-fg-ce1m131": ":0:/src/app/components/ai/AIProducts.tsx:429:9:19032:203:e:div:ete", children: [
10692        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m132", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m132": ":0:/src/app/components/ai/AIProducts.tsx:430:11:19048:69:e:div:t", children: "Ops Dashboard" }),
10693        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m134", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m134": ":0:/src/app/components/ai/AIProducts.tsx:431:11:19128:92:e:div:t", children: "Today · Real-Time" })
10694      ] }),
10695      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m136", _fgB: 1790697590735, className: "ml-auto flex items-center gap-1.5", "data-fg-ce1m136": ":0:/src/app/components/ai/AIProducts.tsx:433:9:19244:247:e:div:ete", children: [
10696        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m137", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E] animate-pulse", "data-fg-ce1m137": ":0:/src/app/components/ai/AIProducts.tsx:434:11:19306:68:e:span" }),
10697        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m138", _fgB: 1790697590735, className: "text-[#22C55E] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m138": ":0:/src/app/components/ai/AIProducts.tsx:435:11:19385:91:e:span:t", children: "Live" })
10698      ] })
10699    ] }),
10700    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m141", _fgB: 1790697590735, className: "grid grid-cols-2 gap-3", "data-fg-ce1m141": ":0:/src/app/components/ai/AIProducts.tsx:440:7:19548:361:e:div:x", children: o.map((l) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m143", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-lg p-4", "data-fg-ce1m143": ":0:/src/app/components/ai/AIProducts.tsx:442:11:19631:253:e:div:ete", children: [
10701      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m144", _fgB: 1790697590735, className: `text-[28px] font-bold ${l.color}`, "data-fg-ce1m144": ":0:/src/app/components/ai/AIProducts.tsx:443:13:19703:67:e:div:x", children: l.value }),
10702      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m146", _fgB: 1790697590735, className: "text-[#64748B] text-[11px] uppercase tracking-wider", "data-fg-ce1m146": ":0:/src/app/components/ai/AIProducts.tsx:444:13:19783:84:e:div:x", children: l.label })
10703    ] }, l.label)) }),
10704    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m149", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-lg border-l-[3px] border-[#2D6BE4] py-3.5 px-4", "data-fg-ce1m149": ":0:/src/app/components/ai/AIProducts.tsx:450:7:19950:513:e:div:ete", children: [
10705      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m150", _fgB: 1790697590735, className: "flex items-center gap-1.5 mb-1.5", "data-fg-ce1m150": ":0:/src/app/components/ai/AIProducts.tsx:451:9:20044:236:e:div:ete", children: [
10706        /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "ce1m151", _fgB: 1790697590735, size: 12, className: "text-[#E87722]", "data-fg-ce1m151": ":0:node_modules/lucide-react:452:11:20105:44:e:Zap::::::Cp7" }),
10707        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m152", _fgB: 1790697590735, className: "text-[#E87722] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m152": ":0:/src/app/components/ai/AIProducts.tsx:453:11:20160:105:e:span:t", children: "Recommended Action" })
10708      ] }),
10709      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m154", _fgB: 1790697590735, className: "text-white text-[13px] leading-[1.5]", "data-fg-ce1m154": ":0:/src/app/components/ai/AIProducts.tsx:455:9:20289:161:e:p:t", children: "Route 7 showing 18% late arrivals this week — recommend adding 1 vehicle to AM shift." })
10710    ] }),
10711    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m157", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-lg p-4", "data-fg-ce1m157": ":0:/src/app/components/ai/AIProducts.tsx:461:7:20495:1100:e:div:ete", children: [
10712      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m158", _fgB: 1790697590735, className: "text-[#64748B] text-[11px] mb-3", "data-fg-ce1m158": ":0:/src/app/components/ai/AIProducts.tsx:462:9:20549:89:e:div:t", children: "Hourly Trip Volume — Last 12 Hours" }),
10713      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m160", _fgB: 1790697590735, className: "flex items-end gap-1.5 h-[80px]", "data-fg-ce1m160": ":0:/src/app/components/ai/AIProducts.tsx:463:9:20647:935:e:div:x", children: L.map((l, g) => {
10714        const f = g === n, p = f ? Math.min(l + 12, 100) : l;
10715        return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m162", _fgB: 1790697590735, className: "flex-1 flex flex-col items-center gap-1", "data-fg-ce1m162": ":0:/src/app/components/ai/AIProducts.tsx:468:15:20894:644:e:div:ete", children: [
10716          /* @__PURE__ */ i(
10717            a,
10718            {
10719              _fgT: m.div,
10720              _fgS: "ce1m163",
10721              _fgB: 1790697590735,
10722              className: `w-full rounded-t transition-colors duration-300 ${f ? "bg-[#E87722]" : "bg-[#2D6BE4]"}`,
10723              animate: { height: `${p}%` },
10724              transition: { duration: 0.6, ease: "easeOut" },
10725              style: { minHeight: 4 },
10726              "data-fg-ce1m163": ":0:/src/app/components/ai/AIProducts.tsx:469:17:20984:363:e:motion.div"
10727            }
10728          ),
10729          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m164", _fgB: 1790697590735, className: `text-[8px] transition-colors ${f ? "text-[#E87722]" : "text-[#64748B]"}`, "data-fg-ce1m164": ":0:/src/app/components/ai/AIProducts.tsx:477:17:21364:153:e:span:x", children: d[g] })
10730        ] }, d[g]);
10731      }) })
10732    ] })
10733  ] });
10734}
10735function vf({ onComplete: t }) {
10736  const [e, s] = j(0);
10737  return q(() => {
10738    if (e >= 4) {
10739      t?.();
10740      return;
10741    }
10742    const n = setTimeout(() => s((o) => o + 1), [1500, 2e3, 2e3, 2e3][e] || 2e3);
10743    return () => clearTimeout(n);
10744  }, [e]), /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m166", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col flex-1 gap-3", "data-fg-ce1m166": ":0:/src/app/components/ai/AIProducts.tsx:507:5:22187:3558:e:div:xtetxtetxtetxtetxte:1", children: [
10745    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m168", _fgB: 1790697590735, className: "flex items-center gap-3 pb-3 border-b border-white/5", "data-fg-ce1m168": ":0:/src/app/components/ai/AIProducts.tsx:509:7:22259:735:e:div:etete", children: [
10746      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m169", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#E87722]/20 flex items-center justify-center", "data-fg-ce1m169": ":0:/src/app/components/ai/AIProducts.tsx:510:9:22338:163:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: w1, _fgS: "ce1m170", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m170": ":0:node_modules/lucide-react:511:11:22436:50:e:CircleDot::::::CPqJ" }) }),
10747      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m171", _fgB: 1790697590735, "data-fg-ce1m171": ":0:/src/app/components/ai/AIProducts.tsx:513:9:22510:211:e:div:ete", children: [
10748        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m172", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m172": ":0:/src/app/components/ai/AIProducts.tsx:514:11:22526:71:e:div:t", children: "DriverAssist AI" }),
10749        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m174", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m174": ":0:/src/app/components/ai/AIProducts.tsx:515:11:22608:98:e:div:t", children: "Route 12 · Active Shift" })
10750      ] }),
10751      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m176", _fgB: 1790697590735, className: "ml-auto flex items-center gap-1.5", "data-fg-ce1m176": ":0:/src/app/components/ai/AIProducts.tsx:517:9:22730:251:e:div:ete", children: [
10752        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m177", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E] animate-pulse", "data-fg-ce1m177": ":0:/src/app/components/ai/AIProducts.tsx:518:11:22792:68:e:span" }),
10753        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m178", _fgB: 1790697590735, className: "text-[#22C55E] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m178": ":0:/src/app/components/ai/AIProducts.tsx:519:11:22871:95:e:span:t", children: "On Route" })
10754      ] })
10755    ] }),
10756    /* @__PURE__ */ c(
10757      a,
10758      {
10759        _fgT: m.div,
10760        _fgS: "ce1m181",
10761        _fgB: 1790697590735,
10762        initial: { opacity: 0, y: 10 },
10763        animate: { opacity: e >= 0 ? 1 : 0, y: e >= 0 ? 0 : 10 },
10764        transition: { duration: 0.4 },
10765        className: "bg-[#0D2040] rounded-lg border-l-[3px] border-[#2D6BE4] py-3.5 px-4",
10766        "data-fg-ce1m181": ":0:/src/app/components/ai/AIProducts.tsx:524:7:23029:591:e:motion.div:etete",
10767        children: [
10768          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m182", _fgB: 1790697590735, className: "text-[#2D6BE4] text-[10px] font-bold uppercase tracking-wider mb-1", "data-fg-ce1m182": ":0:/src/app/components/ai/AIProducts.tsx:530:9:23298:102:e:div:t", children: "Current Stop" }),
10769          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m184", _fgB: 1790697590735, className: "text-white text-[14px] font-bold", "data-fg-ce1m184": ":0:/src/app/components/ai/AIProducts.tsx:531:9:23409:91:e:div:t", children: "Stop 4 of 11 — Riverside Apartments" }),
10770          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m186", _fgB: 1790697590735, className: "text-[#64748B] text-[12px] mt-0.5", "data-fg-ce1m186": ":0:/src/app/components/ai/AIProducts.tsx:532:9:23509:91:e:div:t", children: "Rider: Janet M. | Pickup confirmed" })
10771        ]
10772      }
10773    ),
10774    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m189", _fgB: 1790697590735, "data-fg-ce1m189": ":0:node_modules/motion:536:7:23657:729:e:AnimatePresence:x:::::DAs4", children: e >= 1 && /* @__PURE__ */ c(
10775      a,
10776      {
10777        _fgT: m.div,
10778        _fgS: "ce1m191",
10779        _fgB: 1790697590735,
10780        initial: { opacity: 0, y: 10 },
10781        animate: { opacity: 1, y: 0 },
10782        transition: { duration: 0.4 },
10783        className: "bg-[#0D2040] rounded-lg border-l-[3px] border-[#E87722] py-3.5 px-4",
10784        "data-fg-ce1m191": ":0:/src/app/components/ai/AIProducts.tsx:538:11:23710:640:e:motion.div:ete",
10785        children: [
10786          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m192", _fgB: 1790697590735, className: "flex items-center gap-1.5 mb-1", "data-fg-ce1m192": ":0:/src/app/components/ai/AIProducts.tsx:544:13:23968:254:e:div:ete", children: [
10787            /* @__PURE__ */ i(a, { _fgT: R3, _fgS: "ce1m193", _fgB: 1790697590735, size: 12, className: "text-[#E87722]", "data-fg-ce1m193": ":0:node_modules/lucide-react:545:15:24031:54:e:AlertTriangle::::::Ruk" }),
10788            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m194", _fgB: 1790697590735, className: "text-[#E87722] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m194": ":0:/src/app/components/ai/AIProducts.tsx:546:15:24100:103:e:span:t", children: "No-Show Detected" })
10789          ] }),
10790          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m196", _fgB: 1790697590735, className: "text-white text-[13px]", "data-fg-ce1m196": ":0:/src/app/components/ai/AIProducts.tsx:548:13:24235:91:e:p:t", children: "No-show at Stop 4 — how would you like to log it?" })
10791        ]
10792      }
10793    ) }),
10794    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m199", _fgB: 1790697590735, "data-fg-ce1m199": ":0:node_modules/motion:554:7:24423:736:e:AnimatePresence:x:::::DAs4", children: e >= 2 && /* @__PURE__ */ c(
10795      a,
10796      {
10797        _fgT: m.div,
10798        _fgS: "ce1m201",
10799        _fgB: 1790697590735,
10800        initial: { opacity: 0, y: 10 },
10801        animate: { opacity: 1, y: 0 },
10802        transition: { duration: 0.4 },
10803        className: "flex flex-col gap-2",
10804        "data-fg-ce1m201": ":0:/src/app/components/ai/AIProducts.tsx:556:11:24476:647:e:motion.div:etete",
10805        children: [
10806          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m202", _fgB: 1790697590735, className: "bg-[#2D6BE4] text-white text-[13px] font-bold text-center py-3 rounded-lg", "data-fg-ce1m202": ":0:/src/app/components/ai/AIProducts.tsx:562:13:24686:108:e:div:t", children: "Log No-Show" }),
10807          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m204", _fgB: 1790697590735, className: "bg-[#1E2D40] text-white text-[13px] font-bold text-center py-3 rounded-lg border border-[#2D6BE4]/30", "data-fg-ce1m204": ":0:/src/app/components/ai/AIProducts.tsx:563:13:24807:142:e:div:t", children: "Rider Running Late" }),
10808          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m206", _fgB: 1790697590735, className: "bg-[#1E2D40] text-white text-[13px] font-bold text-center py-3 rounded-lg border border-[#2D6BE4]/30", "data-fg-ce1m206": ":0:/src/app/components/ai/AIProducts.tsx:564:13:24962:137:e:div:t", children: "Call Dispatch" })
10809        ]
10810      }
10811    ) }),
10812    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m209", _fgB: 1790697590735, "data-fg-ce1m209": ":0:node_modules/motion:570:7:25192:542:e:AnimatePresence:x:::::DAs4", children: e >= 3 && /* @__PURE__ */ i(
10813      a,
10814      {
10815        _fgT: m.div,
10816        _fgS: "ce1m211",
10817        _fgB: 1790697590735,
10818        initial: { opacity: 0 },
10819        animate: { opacity: 1 },
10820        transition: { duration: 0.4 },
10821        className: "mt-auto flex flex-col gap-1.5",
10822        "data-fg-ce1m211": ":0:/src/app/components/ai/AIProducts.tsx:572:11:25245:453:e:motion.div:x",
10823        children: ["Stop 5 — Pine Ridge Community Center", "Stop 6 — Valley Medical Clinic", "Stop 7 — Downtown Transit Hub"].map((r, n) => /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m213", _fgB: 1790697590735, className: "text-[#64748B] text-[12px]", "data-fg-ce1m213": ":0:/src/app/components/ai/AIProducts.tsx:579:15:25594:64:e:div:x", children: r }, n))
10824      }
10825    ) })
10826  ] });
10827}
10828function yf({ onComplete: t }) {
10829  const [e, s] = j(0);
10830  q(() => {
10831    if (e >= 3) {
10832      t?.();
10833      return;
10834    }
10835    const o = setTimeout(() => s((L) => L + 1), [1500, 2500, 2500][e] || 2e3);
10836    return () => clearTimeout(o);
10837  }, [e]);
10838  const r = [
10839    { label: "Positive", icon: /* @__PURE__ */ i(a, { _fgT: yd, _fgS: "ce1m215", _fgB: 1790697590735, size: 12, "data-fg-ce1m215": ":0:node_modules/lucide-react:606:32:26361:22:e:ThumbsUp::::::ErW" }), pct: 52, color: "text-[#22C55E]", bar: "bg-[#22C55E]" },
10840    { label: "Neutral", icon: /* @__PURE__ */ i(a, { _fgT: Cl, _fgS: "ce1m216", _fgB: 1790697590735, size: 12, "data-fg-ce1m216": ":0:node_modules/lucide-react:607:31:26472:19:e:Minus::::::fva" }), pct: 18, color: "text-[#94A3B8]", bar: "bg-[#64748B]" },
10841    { label: "Negative", icon: /* @__PURE__ */ i(a, { _fgT: bd, _fgS: "ce1m217", _fgB: 1790697590735, size: 12, "data-fg-ce1m217": ":0:node_modules/lucide-react:608:32:26581:24:e:ThumbsDown::::::Dkov" }), pct: 30, color: "text-[#EF4444]", bar: "bg-[#EF4444]" }
10842  ];
10843  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m218", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col flex-1 gap-4", "data-fg-ce1m218": ":0:/src/app/components/ai/AIProducts.tsx:612:5:26685:3982:e:div:xtetxtetxtetxte:1", children: [
10844    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m220", _fgB: 1790697590735, className: "flex items-center gap-3 pb-3 border-b border-white/5", "data-fg-ce1m220": ":0:/src/app/components/ai/AIProducts.tsx:614:7:26757:497:e:div:ete", children: [
10845      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m221", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#E87722]/20 flex items-center justify-center", "data-fg-ce1m221": ":0:/src/app/components/ai/AIProducts.tsx:615:9:26836:167:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: T1, _fgS: "ce1m222", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m222": ":0:node_modules/lucide-react:616:11:26934:54:e:ClipboardList::::::CPfu" }) }),
10846      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m223", _fgB: 1790697590735, "data-fg-ce1m223": ":0:/src/app/components/ai/AIProducts.tsx:618:9:27012:229:e:div:ete", children: [
10847        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m224", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m224": ":0:/src/app/components/ai/AIProducts.tsx:619:11:27028:77:e:div:t", children: "Feedback Intelligence" }),
10848        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m226", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m226": ":0:/src/app/components/ai/AIProducts.tsx:620:11:27116:110:e:div:t", children: "Processing · 143 Responses Analyzed" })
10849      ] })
10850    ] }),
10851    /* @__PURE__ */ c(
10852      a,
10853      {
10854        _fgT: m.div,
10855        _fgS: "ce1m229",
10856        _fgB: 1790697590735,
10857        initial: { opacity: 0, y: 10 },
10858        animate: { opacity: e >= 0 ? 1 : 0, y: e >= 0 ? 0 : 10 },
10859        transition: { duration: 0.5 },
10860        className: "bg-[#0D2040] rounded-lg p-4",
10861        "data-fg-ce1m229": ":0:/src/app/components/ai/AIProducts.tsx:625:7:27296:1189:e:motion.div:ete",
10862        children: [
10863          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m230", _fgB: 1790697590735, className: "text-white text-[13px] font-semibold mb-3", "data-fg-ce1m230": ":0:/src/app/components/ai/AIProducts.tsx:631:9:27525:84:e:div:t", children: "Sentiment Breakdown" }),
10864          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m232", _fgB: 1790697590735, className: "space-y-2.5", "data-fg-ce1m232": ":0:/src/app/components/ai/AIProducts.tsx:632:9:27618:847:e:div:x", children: r.map((n) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m234", _fgB: 1790697590735, className: "flex items-center gap-3", "data-fg-ce1m234": ":0:/src/app/components/ai/AIProducts.tsx:634:13:27698:738:e:div:etete", children: [
10865            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m235", _fgB: 1790697590735, className: `flex items-center gap-1.5 w-20 ${n.color}`, "data-fg-ce1m235": ":0:/src/app/components/ai/AIProducts.tsx:635:15:27768:170:e:div:xte", children: [
10866              n.icon,
10867              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m237", _fgB: 1790697590735, className: "text-[11px]", "data-fg-ce1m237": ":0:/src/app/components/ai/AIProducts.tsx:637:17:27871:46:e:span:x", children: n.label })
10868            ] }),
10869            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m239", _fgB: 1790697590735, className: "flex-1 h-2.5 bg-white/5 rounded-full overflow-hidden", "data-fg-ce1m239": ":0:/src/app/components/ai/AIProducts.tsx:639:15:27953:369:e:div:e", children: /* @__PURE__ */ i(
10870              a,
10871              {
10872                _fgT: m.div,
10873                _fgS: "ce1m240",
10874                _fgB: 1790697590735,
10875                className: `h-full rounded-full ${n.bar}`,
10876                initial: { width: 0 },
10877                animate: { width: `${n.pct}%` },
10878                transition: { duration: 0.8, ease: "easeOut", delay: 0.2 },
10879                "data-fg-ce1m240": ":0:/src/app/components/ai/AIProducts.tsx:640:17:28040:261:e:motion.div"
10880              }
10881            ) }),
10882            /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "ce1m241", _fgB: 1790697590735, className: `text-xs font-bold w-10 text-right ${n.color}`, "data-fg-ce1m241": ":0:/src/app/components/ai/AIProducts.tsx:647:15:28337:80:e:span:xt", children: [
10883              n.pct,
10884              "%"
10885            ] })
10886          ] }, n.label)) })
10887        ]
10888      }
10889    ),
10890    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m245", _fgB: 1790697590735, "data-fg-ce1m245": ":0:node_modules/motion:654:7:28527:1297:e:AnimatePresence:x:::::DAs4", children: e >= 1 && /* @__PURE__ */ c(
10891      a,
10892      {
10893        _fgT: m.div,
10894        _fgS: "ce1m247",
10895        _fgB: 1790697590735,
10896        initial: { opacity: 0, y: 10 },
10897        animate: { opacity: 1, y: 0 },
10898        transition: { duration: 0.4 },
10899        className: "bg-[#0D2040] rounded-lg p-3.5",
10900        "data-fg-ce1m247": ":0:/src/app/components/ai/AIProducts.tsx:656:11:28580:1208:e:motion.div:etete",
10901        children: [
10902          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m248", _fgB: 1790697590735, className: "flex items-center gap-2 mb-2", "data-fg-ce1m248": ":0:/src/app/components/ai/AIProducts.tsx:662:13:28800:245:e:div:ete", children: [
10903            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m249", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m249": ":0:/src/app/components/ai/AIProducts.tsx:663:15:28861:97:e:span:t", children: "Classified" }),
10904            /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ce1m251", _fgB: 1790697590735, size: 12, className: "text-[#22C55E]", "data-fg-ce1m251": ":0:node_modules/lucide-react:664:15:28973:53:e:CheckCircle2::::::CELI" })
10905          ] }),
10906          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m252", _fgB: 1790697590735, className: "text-white text-[13px] italic leading-[1.5] mb-3", "data-fg-ce1m252": ":0:/src/app/components/ai/AIProducts.tsx:666:13:29058:160:e:p:t", children: '"Early pickup at Stop 3 — driver left before my scheduled time."' }),
10907          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m254", _fgB: 1790697590735, className: "flex gap-1.5 flex-wrap", "data-fg-ce1m254": ":0:/src/app/components/ai/AIProducts.tsx:669:13:29231:533:e:div:xte", children: [
10908            ["EARLY DEPARTURE", "STOP 3", "ROUTE 12"].map((n) => /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m256", _fgB: 1790697590735, className: "px-2 py-0.5 rounded text-[9px] font-bold uppercase tracking-wider bg-white/5 text-[#2D6BE4] border border-white/5", "data-fg-ce1m256": ":0:/src/app/components/ai/AIProducts.tsx:671:17:29360:190:e:span:x", children: n }, n)),
10909            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m258", _fgB: 1790697590735, className: "px-2 py-0.5 rounded text-[9px] font-bold uppercase tracking-wider bg-[#EF4444]/10 text-[#EF4444]", "data-fg-ce1m258": ":0:/src/app/components/ai/AIProducts.tsx:675:15:29583:162:e:span:t", children: "Negative" })
10910          ] })
10911        ]
10912      }
10913    ) }),
10914    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m261", _fgB: 1790697590735, "data-fg-ce1m261": ":0:node_modules/motion:684:7:29861:795:e:AnimatePresence:x:::::DAs4", children: e >= 2 && /* @__PURE__ */ c(
10915      a,
10916      {
10917        _fgT: m.div,
10918        _fgS: "ce1m263",
10919        _fgB: 1790697590735,
10920        initial: { opacity: 0, y: 10 },
10921        animate: { opacity: 1, y: 0 },
10922        transition: { duration: 0.4 },
10923        className: "bg-[#0D2040] rounded-lg border-l-[3px] border-[#E87722] py-3 px-3.5",
10924        "data-fg-ce1m263": ":0:/src/app/components/ai/AIProducts.tsx:686:11:29914:706:e:motion.div:ete",
10925        children: [
10926          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m264", _fgB: 1790697590735, className: "flex items-center gap-1.5 mb-1", "data-fg-ce1m264": ":0:/src/app/components/ai/AIProducts.tsx:692:13:30172:249:e:div:ete", children: [
10927            /* @__PURE__ */ i(a, { _fgT: E3, _fgS: "ce1m265", _fgB: 1790697590735, size: 12, className: "text-[#E87722]", "data-fg-ce1m265": ":0:node_modules/lucide-react:693:15:30235:51:e:TrendingUp::::::tM8" }),
10928            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m266", _fgB: 1790697590735, className: "text-[#E87722] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m266": ":0:/src/app/components/ai/AIProducts.tsx:694:15:30301:101:e:span:t", children: "Emerging Theme" })
10929          ] }),
10930          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m268", _fgB: 1790697590735, className: "text-white text-[12px] leading-[1.5]", "data-fg-ce1m268": ":0:/src/app/components/ai/AIProducts.tsx:696:13:30434:162:e:p:t", children: "Early pickup complaints up 22% this week on Route 12 — flagged for ops review." })
10931        ]
10932      }
10933    ) })
10934  ] });
10935}
10936function wf({ onComplete: t }) {
10937  const [e, s] = j(0);
10938  q(() => {
10939    if (e >= 3) {
10940      t?.();
10941      return;
10942    }
10943    const o = setTimeout(() => s((L) => L + 1), [1500, 2500, 2500][e] || 2e3);
10944    return () => clearTimeout(o);
10945  }, [e]);
10946  const r = [
10947    { trip: "#3041", vehicle: "Vehicle 9", badge: "+4 min", badgeColor: "text-[#E87722] bg-[#E87722]/10" },
10948    { trip: "#3044", vehicle: "Vehicle 11", badge: "+2 min", badgeColor: "text-[#E87722] bg-[#E87722]/10" },
10949    { trip: "#3047", vehicle: "Vehicle 6", badge: "On time", badgeColor: "text-[#22C55E] bg-[#22C55E]/10" }
10950  ];
10951  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m270", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col flex-1 gap-3", "data-fg-ce1m270": ":0:/src/app/components/ai/AIProducts.tsx:730:5:31611:4105:e:div:xtetxtetxtetxte:1", children: [
10952    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m272", _fgB: 1790697590735, className: "flex items-center gap-3 pb-3 border-b border-white/5", "data-fg-ce1m272": ":0:/src/app/components/ai/AIProducts.tsx:732:7:31683:720:e:div:etete", children: [
10953      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m273", _fgB: 1790697590735, className: "w-8 h-8 rounded-full bg-[#E87722]/20 flex items-center justify-center", "data-fg-ce1m273": ":0:/src/app/components/ai/AIProducts.tsx:733:9:31762:157:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "ce1m274", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m274": ":0:node_modules/lucide-react:734:11:31860:44:e:Zap::::::Cp7" }) }),
10954      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m275", _fgB: 1790697590735, "data-fg-ce1m275": ":0:/src/app/components/ai/AIProducts.tsx:736:9:31928:204:e:div:ete", children: [
10955        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m276", _fgB: 1790697590735, className: "text-white text-[13px] font-bold", "data-fg-ce1m276": ":0:/src/app/components/ai/AIProducts.tsx:737:11:31944:72:e:div:t", children: "SmartDispatch AI" }),
10956        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m278", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m278": ":0:/src/app/components/ai/AIProducts.tsx:738:11:32027:90:e:div:t", children: "Live Operations" })
10957      ] }),
10958      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m280", _fgB: 1790697590735, className: "ml-auto flex items-center gap-1.5", "data-fg-ce1m280": ":0:/src/app/components/ai/AIProducts.tsx:740:9:32141:249:e:div:ete", children: [
10959        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m281", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E] animate-pulse", "data-fg-ce1m281": ":0:/src/app/components/ai/AIProducts.tsx:741:11:32203:68:e:span" }),
10960        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m282", _fgB: 1790697590735, className: "text-[#22C55E] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m282": ":0:/src/app/components/ai/AIProducts.tsx:742:11:32282:93:e:span:t", children: "Active" })
10961      ] })
10962    ] }),
10963    /* @__PURE__ */ c(
10964      a,
10965      {
10966        _fgT: m.div,
10967        _fgS: "ce1m285",
10968        _fgB: 1790697590735,
10969        initial: { opacity: 0, y: 10 },
10970        animate: { opacity: e >= 0 ? 1 : 0, y: e >= 0 ? 0 : 10 },
10971        transition: { duration: 0.4 },
10972        className: "bg-[rgba(232,119,34,0.12)] rounded-lg border-l-[3px] border-[#E87722] py-3 px-4",
10973        "data-fg-ce1m285": ":0:/src/app/components/ai/AIProducts.tsx:747:7:32442:661:e:motion.div:ete",
10974        children: [
10975          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m286", _fgB: 1790697590735, className: "flex items-center gap-1.5 mb-1", "data-fg-ce1m286": ":0:/src/app/components/ai/AIProducts.tsx:753:9:32723:245:e:div:ete", children: [
10976            /* @__PURE__ */ i(a, { _fgT: R3, _fgS: "ce1m287", _fgB: 1790697590735, size: 12, className: "text-[#E87722]", "data-fg-ce1m287": ":0:node_modules/lucide-react:754:11:32782:54:e:AlertTriangle::::::Ruk" }),
10977            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m288", _fgB: 1790697590735, className: "text-[#E87722] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m288": ":0:/src/app/components/ai/AIProducts.tsx:755:11:32847:106:e:span:t", children: "Disruption Detected" })
10978          ] }),
10979          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m290", _fgB: 1790697590735, className: "text-white text-[13px]", "data-fg-ce1m290": ":0:/src/app/components/ai/AIProducts.tsx:757:9:32977:106:e:p:t", children: "Vehicle 14 — breakdown on Route 3. Reassigning 3 affected trips." })
10980        ]
10981      }
10982    ),
10983    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m293", _fgB: 1790697590735, "data-fg-ce1m293": ":0:node_modules/motion:761:7:33142:1389:e:AnimatePresence:x:::::DAs4", children: e >= 1 && /* @__PURE__ */ c(
10984      a,
10985      {
10986        _fgT: m.div,
10987        _fgS: "ce1m295",
10988        _fgB: 1790697590735,
10989        initial: { opacity: 0, y: 10 },
10990        animate: { opacity: 1, y: 0 },
10991        transition: { duration: 0.4 },
10992        className: "bg-[#0D2040] rounded-lg border-l-[3px] border-[#2D6BE4] py-3.5 px-4",
10993        "data-fg-ce1m295": ":0:/src/app/components/ai/AIProducts.tsx:763:11:33195:1300:e:motion.div:etete",
10994        children: [
10995          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m296", _fgB: 1790697590735, className: "text-[#2D6BE4] text-[10px] font-bold uppercase tracking-wider mb-3", "data-fg-ce1m296": ":0:/src/app/components/ai/AIProducts.tsx:769:13:33453:106:e:div:t", children: "Recovery Actions" }),
10996          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m298", _fgB: 1790697590735, className: "flex flex-col gap-2", "data-fg-ce1m298": ":0:/src/app/components/ai/AIProducts.tsx:770:13:33572:679:e:div:x", children: r.map((n, o) => /* @__PURE__ */ c(
10997            a,
10998            {
10999              _fgT: m.div,
11000              _fgS: "ce1m300",
11001              _fgB: 1790697590735,
11002              initial: { opacity: 0, x: -10 },
11003              animate: { opacity: 1, x: 0 },
11004              transition: { duration: 0.3, delay: o * 0.15 },
11005              className: "flex items-center justify-between text-[13px]",
11006              "data-fg-ce1m300": ":0:/src/app/components/ai/AIProducts.tsx:772:17:33673:541:e:motion.div:ete",
11007              children: [
11008                /* @__P
11008URE__ */ c(a, { _fgT: "span", _fgS: "ce1m301", _fgB: 1790697590735, className: "text-white", "data-fg-ce1m301": ":0:/src/app/components/ai/AIProducts.tsx:779:19:33994:77:e:span:txtx", children: [
11009                  "Trip ",
11010                  n.trip,
11011                  " → Reassigned to ",
11012                  n.vehicle
11013                ] }),
11014                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m306", _fgB: 1790697590735, className: `text-[10px] font-bold px-2 py-0.5 rounded ${n.badgeColor}`, "data-fg-ce1m306": ":0:/src/app/components/ai/AIProducts.tsx:780:19:34090:94:e:span:x", children: n.badge })
11015              ]
11016            },
11017            n.trip
11018          )) }),
11019          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m308", _fgB: 1790697590735, className: "border-t border-white/[0.06] mt-3 pt-2.5", "data-fg-ce1m308": ":0:/src/app/components/ai/AIProducts.tsx:784:13:34264:207:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ce1m309", _fgB: 1790697590735, className: "text-[#64748B] text-[11px]", "data-fg-ce1m309": ":0:/src/app/components/ai/AIProducts.tsx:785:15:34337:115:e:p:t", children: "On-time performance impact: -1.2% | All riders notified automatically" }) })
11020        ]
11021      }
11022    ) }),
11023    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "ce1m312", _fgB: 1790697590735, "data-fg-ce1m312": ":0:node_modules/motion:792:7:34566:1139:e:AnimatePresence:x:::::DAs4", children: e >= 2 && /* @__PURE__ */ c(
11024      a,
11025      {
11026        _fgT: m.div,
11027        _fgS: "ce1m314",
11028        _fgB: 1790697590735,
11029        initial: { opacity: 0, y: 10 },
11030        animate: { opacity: 1, y: 0 },
11031        transition: { duration: 0.4 },
11032        className: "mt-auto grid grid-cols-3 gap-2",
11033        "data-fg-ce1m314": ":0:/src/app/components/ai/AIProducts.tsx:794:11:34619:1050:e:motion.div:etete",
11034        children: [
11035          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m315", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-md py-2 px-3 flex items-center gap-1.5", "data-fg-ce1m315": ":0:/src/app/components/ai/AIProducts.tsx:800:13:34840:260:e:div:ete", children: [
11036            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m316", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#22C55E]", "data-fg-ce1m316": ":0:/src/app/components/ai/AIProducts.tsx:801:15:34932:54:e:span" }),
11037            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m317", _fgB: 1790697590735, className: "text-[#22C55E] text-[11px] font-bold uppercase", "data-fg-ce1m317": ":0:/src/app/components/ai/AIProducts.tsx:802:15:35001:80:e:span:t", children: "On Route" })
11038          ] }),
11039          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m319", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-md py-2 px-3 flex items-center gap-1.5", "data-fg-ce1m319": ":0:/src/app/components/ai/AIProducts.tsx:804:13:35113:259:e:div:ete", children: [
11040            /* @__P
11040URE__ */ i(a, { _fgT: "span", _fgS: "ce1m320", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#E87722]", "data-fg-ce1m320": ":0:/src/app/components/ai/AIProducts.tsx:805:15:35205:54:e:span" }),
11041            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m321", _fgB: 1790697590735, className: "text-[#E87722] text-[11px] font-bold uppercase", "data-fg-ce1m321": ":0:/src/app/components/ai/AIProducts.tsx:806:15:35274:79:e:span:t", children: "Delayed" })
11042          ] }),
11043          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m323", _fgB: 1790697590735, className: "bg-[#0D2040] rounded-md py-2 px-3 flex items-center gap-1.5", "data-fg-ce1m323": ":0:/src/app/components/ai/AIProducts.tsx:808:13:35385:260:e:div:ete", children: [
11044            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m324", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#EF4444]", "data-fg-ce1m324": ":0:/src/app/components/ai/AIProducts.tsx:809:15:35477:54:e:span" }),
11045            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m325", _fgB: 1790697590735, className: "text-[#EF4444] text-[11px] font-bold uppercase", "data-fg-ce1m325": ":0:/src/app/components/ai/AIProducts.tsx:810:15:35546:80:e:span:t", children: "Veh Down" })
11046          ] })
11047        ]
11048      }
11049    ) })
11050  ] });
11051}
11052function oi({ side: t }) {
11053  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m327", _fgB: 1790697590735, _fgD: !0, className: `flex gap-2.5 items-start ${t === "right" ? "flex-row-reverse" : ""}`, "data-fg-ce1m327": ":0:/src/app/components/ai/AIProducts.tsx:825:5:35965:893:e:div:ete:1", children: [
11054    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m328", _fgB: 1790697590735, className: `w-6 h-6 rounded-full flex items-center justify-center shrink-0 ${t === "left" ? "bg-[#2D6BE4]/20 text-[#2D6BE4]" : "bg-[#E87722]/20 text-[#E87722]"}`, "data-fg-ce1m328": ":0:/src/app/components/ai/AIProducts.tsx:826:7:36062:267:e:div:x", children: t === "left" ? /* @__PURE__ */ i(a, { _fgT: K5, _fgS: "ce1m330", _fgB: 1790697590735, size: 12, "data-fg-ce1m330": ":0:node_modules/lucide-react:829:28:36277:17:e:Bot::::::EI6D" }) : /* @__PURE__ */ i(a, { _fgT: v2, _fgS: "ce1m331", _fgB: 1790697590735, size: 12, "data-fg-ce1m331": ":0:node_modules/lucide-react:829:48:36297:18:e:User::::::wpV" }) }),
11055    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m332", _fgB: 1790697590735, className: "bg-[#1E293B] rounded-2xl rounded-tl-sm px-4 py-3 border border-white/5", "data-fg-ce1m332": ":0:/src/app/components/ai/AIProducts.tsx:831:7:36336:511:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m333", _fgB: 1790697590735, className: "flex gap-1", "data-fg-ce1m333": ":0:/src/app/components/ai/AIProducts.tsx:832:9:36433:401:e:div:etete", children: [
11056      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m334", _fgB: 1790697590735, className: "w-1.5 h-1.5 bg-[#64748B] rounded-full animate-bounce", style: { animationDelay: "0ms" }, "data-fg-ce1m334": ":0:/src/app/components/ai/AIProducts.tsx:833:11:36472:107:e:span" }),
11057      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m335", _fgB: 1790697590735, className: "w-1.5 h-1.5 bg-[#64748B] rounded-full animate-bounce", style: { animationDelay: "150ms" }, "data-fg-ce1m335": ":0:/src/app/components/ai/AIProducts.tsx:834:11:36590:109:e:span" }),
11058      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m336", _fgB: 1790697590735, className: "w-1.5 h-1.5 bg-[#64748B] rounded-full animate-bounce", style: { animationDelay: "300ms" }, "data-fg-ce1m336": ":0:/src/app/components/ai/AIProducts.tsx:835:11:36710:109:e:span" })
11059    ] }) })
11060  ] });
11061}
11062function Tf() {
11063  const t = H(null), [e, s] = j(!1);
11064  return q(() => {
11065    const r = t.current;
11066    if (!r) return;
11067    const n = new IntersectionObserver(
11068      ([o]) => s(o.isIntersecting),
11069      { rootMargin: "-25% 0px -25% 0px", threshold: 0.3 }
11070    );
11071    return n.observe(r), () => n.disconnect();
11072  }, []), [t, e];
11073}
11074function Sf({ isEven: t, index: e }) {
11075  const [s, r] = Tf(), [n, o] = j("waiting"), [L, d] = j(0);
11076  q(() => {
11077    r && n === "waiting" && o("playing");
11078  }, [r, n]);
11079  const l = Ge(() => {
11080    o("finished");
11081  }, []), g = Ge(() => {
11082    d((f) => f + 1), o("playing");
11083  }, []);
11084  return /* @__PURE__ */ c(
11085    a,
11086    {
11087      _fgT: "div",
11088      _fgS: "ce1m337",
11089      _fgB: 1790697590735,
11090      _fgD: !0,
11091      ref: s,
11092      className: `${t ? "lg:order-1" : "lg:order-2"} flex flex-col gap-4`,
11093      "data-fg-ce1m337": ":0:/src/app/components/ai/AIProducts.tsx:885:5:38175:1885:e:div:etxtx:1",
11094      children: [
11095        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m338", _fgB: 1790697590735, className: "bg-[#111C2D] rounded-2xl p-6 md:p-7 relative overflow-hidden border border-[#1E293B] shadow-[0_0_40px_rgba(45,107,228,0.12)] min-h-[400px] flex flex-col", "data-fg-ce1m338": ":0:/src/app/components/ai/AIProducts.tsx:889:7:38288:1162:e:div:ete", children: [
11096          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m339", _fgB: 1790697590735, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[500px] h-[500px] bg-[radial-gradient(circle,rgba(43,122,232,0.08)_0%,transparent_70%)] pointer-events-none", "data-fg-ce1m339": ":0:/src/app/components/ai/AIProducts.tsx:890:9:38467:189:e:div" }),
11097          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m340", _fgB: 1790697590735, className: "relative z-10 flex-1 flex flex-col", "data-fg-ce1m340": ":0:/src/app/components/ai/AIProducts.tsx:891:9:38665:772:e:div:x", children: n === "playing" || n === "finished" ? /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m342", _fgB: 1790697590735, className: "flex-1 flex flex-col", "data-fg-ce1m342": ":0:/src/app/components/ai/AIProducts.tsx:893:13:38791:554:e:div:xtxtxtxtxtx", children: [
11098            e === 0 && /* @__PURE__ */ i(a, { _fgT: xf, _fgS: "ce1m344", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m344": ":0:/src/app/components/ai/AIProducts.tsx:894:31:38874:49:e:RiderAssistMockup::::::BB8M" }),
11099            e === 1 && /* @__PURE__ */ i(a, { _fgT: _f, _fgS: "ce1m346", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m346": ":0:/src/app/components/ai/AIProducts.tsx:895:31:38955:48:e:CallAssistMockup::::::BMKQ" }),
11100            e === 2 && /* @__PURE__ */ i(a, { _fgT: bf, _fgS: "ce1m348", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m348": ":0:/src/app/components/ai/AIProducts.tsx:896:31:39035:47:e:AnalyticsMockup::::::ECgr" }),
11101            e === 3 && /* @__PURE__ */ i(a, { _fgT: vf, _fgS: "ce1m350", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m350": ":0:/src/app/components/ai/AIProducts.tsx:897:31:39114:50:e:DriverAssistMockup::::::B6Mm" }),
11102            e === 4 && /* @__PURE__ */ i(a, { _fgT: yf, _fgS: "ce1m352", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m352": ":0:/src/app/components/ai/AIProducts.tsx:898:31:39196:46:e:SurveyAIMockup::::::BrZN" }),
11103            e === 5 && /* @__PURE__ */ i(a, { _fgT: wf, _fgS: "ce1m354", _fgB: 1790697590735, onComplete: l, "data-fg-ce1m354": ":0:/src/app/components/ai/AIProducts.tsx:899:31:39274:51:e:SmartDispatchMockup::::::BgrO" })
11104          ] }, L) : /* @__PURE__ */ i(a, { _fgT: Bf, _fgS: "ce1m355", _fgB: 1790697590735, index: e, "data-fg-ce1m355": ":0:/src/app/components/ai/AIProducts.tsx:902:13:39374:35:e:MockupPlaceholder::::::Bsgu" }) })
11105        ] }),
11106        n === "finished" && /* @__PURE__ */ c(
11107          a,
11108          {
11109            _fgT: m.button,
11110            _fgS: "ce1m358",
11111            _fgB: 1790697590735,
11112            initial: { opacity: 0, y: 8 },
11113            animate: { opacity: 1, y: 0 },
11114            transition: { duration: 0.3 },
11115            onClick: g,
11116            className: "flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl bg-[#0B1B2B] border border-[#1E293B] text-[#94A3B8] hover:text-white hover:border-[#2D6BE4]/40 transition-all duration-300 text-[13px] font-bold cursor-pointer mx-auto",
11117            "data-fg-ce1m358": ":0:/src/app/components/ai/AIProducts.tsx:909:9:39527:513:e:motion.button:et",
11118            children: [
11119              /* @__PURE__ */ i(a, { _fgT: ei, _fgS: "ce1m359", _fgB: 1790697590735, size: 14, "data-fg-ce1m359": ":0:node_modules/lucide-react:916:11:39970:23:e:RotateCcw::::::D1GU" }),
11120              "Replay Demo"
11121            ]
11122          }
11123        )
11124      ]
11125    }
11126  );
11127}
11128function Bf({ index: t }) {
11129  const s = [
11130    { icon: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "ce1m361", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m361": ":0:node_modules/lucide-react:926:13:40160:51:e:Smartphone::::::DHxb" }), title: "RiderAssist AI", subtitle: "Rider Session", color: "bg-[#E87722]/20" },
11131    { icon: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "ce1m362", _fgB: 1790697590735, size: 14, className: "text-[#2D6BE4]", "data-fg-ce1m362": ":0:node_modules/lucide-react:927:13:40305:46:e:Phone::::::DmpI" }), title: "CallAssist AI", subtitle: "Live Call Transcript", color: "bg-[#2D6BE4]/20" },
11132    { icon: /* @__PURE__ */ i(a, { _fgT: y1, _fgS: "ce1m363", _fgB: 1790697590735, size: 14, className: "text-[#2D6BE4]", "data-fg-ce1m363": ":0:node_modules/lucide-react:928:13:40451:50:e:BarChart3::::::C2Ja" }), title: "Ops Dashboard", subtitle: "Today · Real-Time", color: "bg-[#2D6BE4]/20" },
11133    { icon: /* @__PURE__ */ i(a, { _fgT: w1, _fgS: "ce1m364", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m364": ":0:node_modules/lucide-react:929:13:40598:50:e:CircleDot::::::CPqJ" }), title: "DriverAssist AI", subtitle: "Route 12 · Active Shift", color: "bg-[#E87722]/20" },
11134    { icon: /* @__PURE__ */ i(a, { _fgT: T1, _fgS: "ce1m365", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m365": ":0:node_modules/lucide-react:930:13:40753:54:e:ClipboardList::::::CPfu" }), title: "Feedback Intelligence", subtitle: "Processing · 143 Responses Analyzed", color: "bg-[#E87722]/20" },
11135    { icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "ce1m366", _fgB: 1790697590735, size: 14, className: "text-[#E87722]", "data-fg-ce1m366": ":0:node_modules/lucide-react:931:13:40930:44:e:Zap::::::Cp7" }), title: "SmartDispatch AI", subtitle: "Live Operations", color: "bg-[#E87722]/20" }
11136  ][t];
11137  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m367", _fgB: 1790697590735, _fgD: !0, className: "flex flex-col gap-3 flex-1", "data-fg-ce1m367": ":0:/src/app/components/ai/AIProducts.tsx:936:5:41111:908:e:div:ete:1", children: [
11138    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m368", _fgB: 1790697590735, className: "flex items-center gap-3 mb-2 pb-3 border-b border-white/5", "data-fg-ce1m368": ":0:/src/app/components/ai/AIProducts.tsx:937:7:41162:667:e:div:etete", children: [
11139      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m369", _fgB: 1790697590735, className: `w-8 h-8 rounded-full ${s.color} flex items-center justify-center`, "data-fg-ce1m369": ":0:/src/app/components/ai/AIProducts.tsx:938:9:41246:122:e:div:x", children: s.icon }),
11140      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m371", _fgB: 1790697590735, "data-fg-ce1m371": ":0:/src/app/components/ai/AIProducts.tsx:941:9:41377:194:e:div:ete", children: [
11141        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m372", _fgB: 1790697590735, className: "text-white text-sm font-bold", "data-fg-ce1m372": ":0:/src/app/components/ai/AIProducts.tsx:942:11:41393:63:e:div:x", children: s.title }),
11142        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m374", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] uppercase tracking-wider", "data-fg-ce1m374": ":0:/src/app/components/ai/AIProducts.tsx:943:11:41467:89:e:div:x", children: s.subtitle })
11143      ] }),
11144      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ce1m376", _fgB: 1790697590735, className: "ml-auto flex items-center gap-1.5", "data-fg-ce1m376": ":0:/src/app/components/ai/AIProducts.tsx:945:9:41580:236:e:div:ete", children: [
11145        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m377", _fgB: 1790697590735, className: "w-2 h-2 rounded-full bg-[#64748B]", "data-fg-ce1m377": ":0:/src/app/components/ai/AIProducts.tsx:946:11:41642:54:e:span" }),
11146        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ce1m378", _fgB: 1790697590735, className: "text-[#64748B] text-[10px] font-bold uppercase tracking-wider", "data-fg-ce1m378": ":0:/src/app/components/ai/AIProducts.tsx:947:11:41707:94:e:span:t", children: "Standby" })
11147      ] })
11148    ] }),
11149    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m380", _fgB: 1790697590735, className: "flex-1 flex items-center justify-center", "data-fg-ce1m380": ":0:/src/app/components/ai/AIProducts.tsx:950:7:41836:172:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ce1m381", _fgB: 1790697590735, className: "text-[#64748B]/50 text-xs uppercase tracking-widest", "data-fg-ce1m381": ":0:/src/app/components/ai/AIProducts.tsx:951:9:41902:93:e:div:t", children: "Scroll to activate" }) })
11150  ] });
11151}
11152function kf() {
11153  const [t, e] = j(0);
11154  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dbis4", _fgB: 1790697590751, _fgD: !0, className: "py-24 px-6 bg-white font-['DM_Sans']", "data-fg-dbis4": ":0:/src/app/components/ai/AIUseCases.tsx:16:5:681:1919:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis5", _fgB: 1790697590751, className: "max-w-[1280px] mx-auto", "data-fg-dbis5": ":0:/src/app/components/ai/AIUseCases.tsx:17:7:746:1839:e:div:etxtetxte", children: [
11155    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis6", _fgB: 1790697590751, className: "text-center mb-12", "data-fg-dbis6": ":0:/src/app/components/ai/AIUseCases.tsx:18:9:795:396:e:div:ete", children: [
11156      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis7", _fgB: 1790697590751, className: "text-[#2B7AE8] text-xs font-bold tracking-[2.5px] uppercase mb-3", "data-fg-dbis7": ":0:/src/app/components/ai/AIUseCases.tsx:19:11:841:97:e:div:t", children: "BUILT FOR" }),
11157      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "dbis9", _fgB: 1790697590751, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-[#0B1B2B]", "data-fg-dbis9": ":0:/src/app/components/ai/AIUseCases.tsx:20:11:949:227:e:h2:te", children: [
11158        "Agencies That Need ",
11159        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis11", _fgB: 1790697590751, className: "text-[#EFBB0F] italic", "data-fg-dbis11": ":0:/src/app/components/ai/AIUseCases.tsx:21:32:1094:66:e:span:t", children: "Results, Not Demos." })
11160      ] })
11161    ] }),
11162    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis14", _fgB: 1790697590751, className: "flex flex-wrap justify-center gap-2 mb-12", "data-fg-dbis14": ":0:/src/app/components/ai/AIUseCases.tsx:26:9:1225:917:e:div:x", children: [
11163      { id: 0, label: "Paratransit", icon: /* @__PURE__ */ i(a, { _fgT: _2, _fgS: "dbis0", _fgB: 1790697590751, size: 16, "data-fg-dbis0": ":0:node_modules/lucide-react:9:42:312:27:e:Accessibility::::::DNxc" }), color: "blue", hex: "#2B7AE8" },
11164      { id: 1, label: "Fixed Route", icon: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "dbis1", _fgB: 1790697590751, size: 16, "data-fg-dbis1": ":0:node_modules/lucide-react:10:42:415:23:e:Building2::::::DOEu" }), color: "amber", hex: "#EFBB0F" },
11165      { id: 2, label: "NEMT", icon: /* @__PURE__ */ i(a, { _fgT: S1, _fgS: "dbis2", _fgB: 1790697590751, size: 16, "data-fg-dbis2": ":0:node_modules/lucide-react:11:35:508:17:e:Map::::::ELje" }), color: "green", hex: "#22C55E" },
11166      { id: 3, label: "Microtransit", icon: /* @__PURE__ */ i(a, { _fgT: I3, _fgS: "dbis3", _fgB: 1790697590751, size: 16, "data-fg-dbis3": ":0:node_modules/lucide-react:12:43:603:20:e:Layers::::::U3Y" }), color: "purple", hex: "#8B5CF6" }
11167    ].map((r) => /* @__PURE__ */ c(
11168      a,
11169      {
11170        _fgT: "button",
11171        _fgS: "dbis16",
11172        _fgB: 1790697590751,
11173        onClick: () => e(r.id),
11174        className: `flex items-center gap-2.5 px-7 py-3.5 rounded-full border transition-all duration-300 font-semibold text-sm ${t === r.id ? "bg-[#0B1B2B] border-[#0B1B2B] text-white shadow-[0_4px_16px_rgba(11,27,43,0.2)]" : "bg-white border-[#D8E0EA] text-[#5A6A80] hover:border-[#8B9BB5] hover:text-[#0B1B2B]"}`,
11175        "data-fg-dbis16": ":0:/src/app/components/ai/AIUseCases.tsx:28:13:1328:785:e:button:xtxtx",
11176        children: [
11177          r.icon,
11178          r.label,
11179          t === r.id && /* @__PURE__ */ i(
11180            a,
11181            {
11182              _fgT: "span",
11183              _fgS: "dbis20",
11184              _fgB: 1790697590751,
11185              className: "w-2 h-2 rounded-full ml-1",
11186              style: { backgroundColor: r.hex },
11187              "data-fg-dbis20": ":0:/src/app/components/ai/AIUseCases.tsx:40:17:1937:137:e:span"
11188            }
11189          )
11190        ]
11191      },
11192      r.id
11193    )) }),
11194    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis22", _fgB: 1790697590751, className: "min-h-[500px]", "data-fg-dbis22": ":0:/src/app/components/ai/AIUseCases.tsx:50:9:2183:389:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: pe, _fgS: "dbis23", _fgB: 1790697590751, mode: "wait", "data-fg-dbis23": ":0:node_modules/motion:51:11:2225:332:e:AnimatePresence:xtxtxtx:::::DAs4", children: [
11195      t === 0 && /* @__PURE__ */ i(a, { _fgT: Af, _fgS: "dbis25", _fgB: 1790697590751, "data-fg-dbis25": ":0:/src/app/components/ai/AIUseCases.tsx:52:33:2287:38:e:PanelParatransit::::::DqUH" }, "paratransit"),
11196      t === 1 && /* @__PURE__ */ i(a, { _fgT: Nf, _fgS: "dbis27", _fgB: 1790697590751, "data-fg-dbis27": ":0:/src/app/components/ai/AIUseCases.tsx:53:33:2359:36:e:PanelFixedRoute::::::CBtf" }, "fixedroute"),
11197      t === 2 && /* @__PURE__ */ i(a, { _fgT: If, _fgS: "dbis29", _fgB: 1790697590751, "data-fg-dbis29": ":0:/src/app/components/ai/AIUseCases.tsx:54:33:2429:24:e:PanelNEMT::::::BiAC" }, "nemt"),
11198      t === 3 && /* @__PURE__ */ i(a, { _fgT: Pf, _fgS: "dbis31", _fgB: 1790697590751, "data-fg-dbis31": ":0:/src/app/components/ai/AIUseCases.tsx:55:33:2487:40:e:PanelMicrotransit::::::CT8P" }, "microtransit")
11199    ] }) })
11200  ] }) });
11201}
11202function Ve({ num: t, label: e, desc: s, colorClass: r }) {
11203  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis32", _fgB: 1790697590751, _fgD: !0, className: "flex items-start gap-4 p-5 bg-[#F7F9FC] rounded-xl border border-[#EEF2F7] hover:border-[#D8E0EA] transition-colors", "data-fg-dbis32": ":0:/src/app/components/ai/AIUseCases.tsx:67:5:2775:473:e:div:ete:1", children: [
11204    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis33", _fgB: 1790697590751, className: `text-[22px] font-extrabold min-w-[64px] leading-tight ${r}`, "data-fg-dbis33": ":0:/src/app/components/ai/AIUseCases.tsx:68:7:2915:98:e:div:x", children: t }),
11205    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis35", _fgB: 1790697590751, className: "flex flex-col gap-0.5", "data-fg-dbis35": ":0:/src/app/components/ai/AIUseCases.tsx:69:7:3020:217:e:div:ete", children: [
11206      /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis36", _fgB: 1790697590751, className: "text-[15px] font-bold text-[#0B1B2B]", "data-fg-dbis36": ":0:/src/app/components/ai/AIUseCases.tsx:70:9:3068:73:e:strong:x", children: e }),
11207      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis38", _fgB: 1790697590751, className: "text-[13px] leading-relaxed text-[#5A6A80]", "data-fg-dbis38": ":0:/src/app/components/ai/AIUseCases.tsx:71:9:3150:74:e:span:x", children: s })
11208    ] })
11209  ] });
11210}
11211function z3({ children: t, glowColor: e, title: s, titleColor: r }) {
11212  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis40", _fgB: 1790697590751, _fgD: !0, className: "bg-[#0B1B2B] rounded-3xl p-9 relative overflow-hidden min-h-[400px] flex flex-col justify-center border border-[#1A2F45]", "data-fg-dbis40": ":0:/src/app/components/ai/AIUseCases.tsx:79:5:3424:675:e:div:xtetxtetc:1", children: [
11213    /* @__PURE__ */ i(
11214      a,
11215      {
11216        _fgT: "div",
11217        _fgS: "dbis42",
11218        _fgB: 1790697590751,
11219        className: "absolute -top-20 -right-20 w-60 h-60 rounded-full opacity-[0.08] pointer-events-none",
11220        style: { backgroundColor: e },
11221        "data-fg-dbis42": ":0:/src/app/components/ai/AIUseCases.tsx:81:7:3595:167:e:div"
11222      }
11223    ),
11224    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis44", _fgB: 1790697590751, className: "flex items-center gap-2.5 mb-6 relative z-10", "data-fg-dbis44": ":0:/src/app/components/ai/AIUseCases.tsx:87:7:3797:273:e:div:ete", children: [
11225      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis45", _fgB: 1790697590751, className: "w-2.5 h-2.5 rounded-full", style: { backgroundColor: r }, "data-fg-dbis45": ":0:/src/app/components/ai/AIUseCases.tsx:88:9:3868:84:e:div" }),
11226      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis46", _fgB: 1790697590751, className: "text-[13px] font-semibold text-[#8B9BB5] uppercase tracking-wider", "data-fg-dbis46": ":0:/src/app/components/ai/AIUseCases.tsx:89:9:3961:96:e:div:x", children: s })
11227    ] }),
11228    t
11229  ] });
11230}
11231function Af() {
11232  return /* @__PURE__ */ c(
11233    a,
11234    {
11235      _fgT: m.div,
11236      _fgS: "dbis49",
11237      _fgB: 1790697590751,
11238      _fgD: !0,
11239      initial: { opacity: 0, y: 12 },
11240      animate: { opacity: 1, y: 0 },
11241      exit: { opacity: 0, y: -12 },
11242      transition: { duration: 0.4, ease: "easeOut" },
11243      className: "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
11244      "data-fg-dbis49": ":0:/src/app/components/ai/AIUseCases.tsx:101:5:4184:2713:e:motion.div:xtetxte:1",
11245      children: [
11246        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis51", _fgB: 1790697590751, className: "py-2", "data-fg-dbis51": ":0:/src/app/components/ai/AIUseCases.tsx:109:7:4473:1428:e:div:etetete", children: [
11247          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis52", _fgB: 1790697590751, className: "text-[#2B7AE8] text-[11px] font-bold tracking-[2px] uppercase mb-3 flex items-center gap-2", "data-fg-dbis52": ":0:/src/app/components/ai/AIUseCases.tsx:110:9:4504:213:e:div:et", children: [
11248            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis53", _fgB: 1790697590751, className: "w-6 h-0.5 bg-[#2B7AE8] rounded-full", "data-fg-dbis53": ":0:/src/app/components/ai/AIUseCases.tsx:111:11:4623:56:e:span" }),
11249            " PARATRANSIT OPERATIONS"
11250          ] }),
11251          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dbis55", _fgB: 1790697590751, className: "font-['DM_Serif_Display'] text-[32px] leading-tight text-[#0B1B2B] mb-7", "data-fg-dbis55": ":0:/src/app/components/ai/AIUseCases.tsx:113:9:4726:171:e:h3:t", children: "Booking Questions. Eligibility Calls. Ride Status at 6 AM." }),
11252          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis57", _fgB: 1790697590751, className: "flex flex-col gap-4 mb-8", "data-fg-dbis57": ":0:/src/app/components/ai/AIUseCases.tsx:117:9:4915:776:e:div:etete", children: [
11253            /* @__PURE__ */ i(
11254              a,
11255              {
11256                _fgT: Ve,
11257                _fgS: "dbis58",
11258                _fgB: 1790697590751,
11259                num: "Zero",
11260                label: "Voicemail dead-ends",
11261                desc: "Riders calling before or after office hours get real answers, not a recording",
11262                colorClass: "text-[#2B7AE8]",
11263                "data-fg-dbis58": ":0:/src/app/components/ai/AIUseCases.tsx:118:11:4968:226:e:ImpactRow::::::DWXC"
11264              }
11265            ),
11266            /* @__PURE__ */ i(
11267              a,
11268              {
11269                _fgT: Ve,
11270                _fgS: "dbis59",
11271                _fgB: 1790697590751,
11272                num: "Auto",
11273                label: "Booking handling",
11274                desc: "Routine trip changes processed by AI without tying up your dispatch staff",
11275                colorClass: "text-[#2B7AE8]",
11276                "data-fg-dbis59": ":0:/src/app/components/ai/AIUseCases.tsx:124:11:5205:219:e:ImpactRow::::::DWXC"
11277              }
11278            ),
11279            /* @__PURE__ */ i(
11280              a,
11281              {
11282                _fgT: Ve,
11283                _fgS: "dbis60",
11284                _fgB: 1790697590751,
11285                num: "Accurate",
11286                label: "Eligibility & policy",
11287                desc: "AI trained on your agency's specific rules so riders get correct information every time",
11288                colorClass: "text-[#2B7AE8]",
11289                "data-fg-dbis60": ":0:/src/app/components/ai/AIUseCases.tsx:130:11:5435:241:e:ImpactRow::::::DWXC"
11290              }
11291            )
11292          ] }),
11293          /* @__PURE__ */ c(a, { _fgT: "a", _fgS: "dbis61", _fgB: 1790697590751, href: "#", className: "inline-flex items-center gap-2 text-[15px] font-bold text-[#2B7AE8] hover:gap-3 transition-all", "data-fg-dbis61": ":0:/src/app/components/ai/AIUseCases.tsx:138:9:5701:187:e:a:te", children: [
11294            "Explore Paratransit ",
11295            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dbis63", _fgB: 1790697590751, size: 16, "data-fg-dbis63": ":0:node_modules/lucide-react:139:31:5851:24:e:ArrowRight::::::s5N" })
11296          ] })
11297        ] }),
11298        /* @__PURE__ */ i(a, { _fgT: z3, _fgS: "dbis65", _fgB: 1790697590751, glowColor: "#2B7AE8", title: "Live Call Feed", titleColor: "#2B7AE8", "data-fg-dbis65": ":0:/src/app/components/ai/AIUseCases.tsx:144:7:5953:926:e:PanelVisual:e:::::VBy", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis66", _fgB: 1790697590751, className: "flex flex-col gap-2.5 relative z-10", "data-fg-dbis66": ":0:/src/app/components/ai/AIUseCases.tsx:145:9:6039:819:e:div:etetetete", children: [
11299          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis67", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis68", _fgB: 1790697590751, "data-fg-dbis68": ":0:/src/app/components/ai/AIUseCases.tsx:146:45:6137:64:e:span:et", children: [
11300            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis69", _fgB: 1790697590751, "data-fg-dbis69": ":0:/src/app/components/ai/AIUseCases.tsx:146:51:6143:36:e:strong:t", children: "Ride status inquiry" }),
11301            " resolved by AI"
11302          ] }), time: "12s ago", color: "bg-[#22C55E]", "data-fg-dbis67": ":0:/src/app/components/ai/AIUseCases.tsx:146:11:6103:138:e:FeedItem::::::Ckgx" }),
11303          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis72", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis73", _fgB: 1790697590751, "data-fg-dbis73": ":0:/src/app/components/ai/AIUseCases.tsx:147:45:6286:71:e:span:et", children: [
11304            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis74", _fgB: 1790697590751, "data-fg-dbis74": ":0:/src/app/components/ai/AIUseCases.tsx:147:51:6292:34:e:strong:t", children: "Trip cancellation" }),
11305            " processed automatically"
11306          ] }), time: "34s ago", color: "bg-[#22C55E]", "data-fg-dbis72": ":0:/src/app/components/ai/AIUseCases.tsx:147:11:6252:145:e:FeedItem::::::Ckgx" }),
11307          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis77", _fgB: 1790697590751, status: "active", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis78", _fgB: 1790697590751, "data-fg-dbis78": ":0:/src/app/components/ai/AIUseCases.tsx:148:43:6440:62:e:span:et", children: [
11308            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis79", _fgB: 1790697590751, "data-fg-dbis79": ":0:/src/app/components/ai/AIUseCases.tsx:148:49:6446:37:e:strong:t", children: "Eligibility question" }),
11309            " in progress"
11310          ] }), time: "now", color: "bg-[#2B7AE8]", "data-fg-dbis77": ":0:/src/app/components/ai/AIUseCases.tsx:148:11:6408:130:e:FeedItem::::::Ckgx" }),
11311          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis82", _fgB: 1790697590751, status: "transferred", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis83", _fgB: 1790697590751, "data-fg-dbis83": ":0:/src/app/components/ai/AIUseCases.tsx:149:48:6586:66:e:span:et", children: [
11312            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis84", _fgB: 1790697590751, "data-fg-dbis84": ":0:/src/app/components/ai/AIUseCases.tsx:149:54:6592:32:e:strong:t", children: "Complaint filed" }),
11313            " transferred to agent"
11314          ] }), time: "1m ago", color: "bg-[#EFBB0F]", "data-fg-dbis82": ":0:/src/app/components/ai/AIUseCases.tsx:149:11:6549:142:e:FeedItem::::::Ckgx" }),
11315          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis87", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis88", _fgB: 1790697590751, "data-fg-dbis88": ":0:/src/app/components/ai/AIUseCases.tsx:150:45:6736:68:e:span:et", children: [
11316            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis89", _fgB: 1790697590751, "data-fg-dbis89": ":0:/src/app/components/ai/AIUseCases.tsx:150:51:6742:34:e:strong:t", children: "Booking confirmed" }),
11317            " for tomorrow 8:45 AM"
11318          ] }), time: "2m ago", color: "bg-[#22C55E]", "data-fg-dbis87": ":0:/src/app/components/ai/AIUseCases.tsx:150:11:6702:141:e:FeedItem::::::Ckgx" })
11319        ] }) })
11320      ]
11321    }
11322  );
11323}
11324function Nf() {
11325  return /* @__PURE__ */ c(
11326    a,
11327    {
11328      _fgT: m.div,
11329      _fgS: "dbis92",
11330      _fgB: 1790697590751,
11331      _fgD: !0,
11332      initial: { opacity: 0, y: 12 },
11333      animate: { opacity: 1, y: 0 },
11334      exit: { opacity: 0, y: -12 },
11335      transition: { duration: 0.4, ease: "easeOut" },
11336      className: "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
11337      "data-fg-dbis92": ":0:/src/app/components/ai/AIUseCases.tsx:161:5:6981:2574:e:motion.div:ete:1",
11338      children: [
11339        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis93", _fgB: 1790697590751, className: "py-2", "data-fg-dbis93": ":0:/src/app/components/ai/AIUseCases.tsx:168:7:7243:1470:e:div:etetete", children: [
11340          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis94", _fgB: 1790697590751, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase mb-3 flex items-center gap-2", "data-fg-dbis94": ":0:/src/app/components/ai/AIUseCases.tsx:169:9:7274:213:e:div:et", children: [
11341            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis95", _fgB: 1790697590751, className: "w-6 h-0.5 bg-[#EFBB0F] rounded-full", "data-fg-dbis95": ":0:/src/app/components/ai/AIUseCases.tsx:170:11:7393:56:e:span" }),
11342            " FIXED ROUTE OPERATIONS"
11343          ] }),
11344          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dbis97", _fgB: 1790697590751, className: "font-['DM_Serif_Display'] text-[32px] leading-tight text-[#0B1B2B] mb-7", "data-fg-dbis97": ":0:/src/app/components/ai/AIUseCases.tsx:172:9:7496:173:e:h3:t", children: "High Volume. Peak Surges. Riders Who Expect Instant Answers." }),
11345          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis99", _fgB: 1790697590751, className: "flex flex-col gap-4 mb-8", "data-fg-dbis99": ":0:/src/app/components/ai/AIUseCases.tsx:176:9:7687:816:e:div:etete", children: [
11346            /* @__PURE__ */ i(
11347              a,
11348              {
11349                _fgT: Ve,
11350                _fgS: "dbis100",
11351                _fgB: 1790697590751,
11352                num: "24/7",
11353                label: "Voice AI coverage",
11354                desc: "Schedule, route, and fare inquiries answered around the clock without staffing after-hours shifts",
11355                colorClass: "text-[#EFBB0F]",
11356                "data-fg-dbis100": ":0:/src/app/components/ai/AIUseCases.tsx:177:11:7740:244:e:ImpactRow::::::DWXC"
11357              }
11358            ),
11359            /* @__PURE__ */ i(
11360              a,
11361              {
11362                _fgT: Ve,
11363                _fgS: "dbis101",
11364                _fgB: 1790697590751,
11365                num: "3–4x",
11366                label: "Surge capacity",
11367                desc: "Detour and disruption call spikes absorbed instantly without pulling agents from other work",
11368                colorClass: "text-[#EFBB0F]",
11369                "data-fg-dbis101": ":0:/src/app/components/ai/AIUseCases.tsx:183:11:7995:235:e:ImpactRow::::::DWXC"
11370              }
11371            ),
11372            /* @__PURE__ */ i(
11373              a,
11374              {
11375                _fgT: Ve,
11376                _fgS: "dbis102",
11377                _fgB: 1790697590751,
11378                num: "Route–level",
11379                label: "Sentiment tracking",
11380                desc: "See which routes generate the most complaints and what riders are actually saying about them",
11381                colorClass: "text-[#EFBB0F]",
11382                "data-fg-dbis102": ":0:/src/app/components/ai/AIUseCases.tsx:189:11:8241:247:e:ImpactRow::::::DWXC"
11383              }
11384            )
11385          ] }),
11386          /* @__PURE__ */ c(a, { _fgT: "a", _fgS: "dbis103", _fgB: 1790697590751, href: "#", className: "inline-flex items-center gap-2 text-[15px] font-bold text-[#EFBB0F] hover:gap-3 transition-all", "data-fg-dbis103": ":0:/src/app/components/ai/AIUseCases.tsx:197:9:8513:187:e:a:te", children: [
11387            "Explore Fixed Route ",
11388            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dbis105", _fgB: 1790697590751, size: 16, "data-fg-dbis105": ":0:node_modules/lucide-react:198:31:8663:24:e:ArrowRight::::::s5N" })
11389          ] })
11390        ] }),
11391        /* @__PURE__ */ c(a, { _fgT: z3, _fgS: "dbis106", _fgB: 1790697590751, glowColor: "#EFBB0F", title: "Live Call Dashboard", titleColor: "#EFBB0F", "data-fg-dbis106": ":0:/src/app/components/ai/AIUseCases.tsx:202:7:8721:816:e:PanelVisual:ete:::::VBy", children: [
11392          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis107", _fgB: 1790697590751, className: "grid grid-cols-2 gap-3 mb-5 relative z-10", "data-fg-dbis107": ":0:/src/app/components/ai/AIUseCases.tsx:203:9:8812:384:e:div:etetete", children: [
11393            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis108", _fgB: 1790697590751, val: "847", label: "Calls Today", color: "text-[#EFBB0F]", "data-fg-dbis108": ":0:/src/app/components/ai/AIUseCases.tsx:204:11:8882:67:e:MetricCard::::::DX92" }),
11394            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis109", _fgB: 1790697590751, val: "86%", label: "AI Resolved", color: "text-[#22C55E]", "data-fg-dbis109": ":0:/src/app/components/ai/AIUseCases.tsx:205:11:8960:67:e:MetricCard::::::DX92" }),
11395            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis110", _fgB: 1790697590751, val: "1.8s", label: "Avg Answer", color: "text-[#EFBB0F]", "data-fg-dbis110": ":0:/src/app/components/ai/AIUseCases.tsx:206:11:9038:67:e:MetricCard::::::DX92" }),
11396            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis111", _fgB: 1790697590751, val: "12", label: "Live Calls", color: "text-[#2B7AE8]", "data-fg-dbis111": ":0:/src/app/components/ai/AIUseCases.tsx:207:11:9116:65:e:MetricCard::::::DX92" })
11397          ] }),
11398          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis112", _fgB: 1790697590751, className: "flex flex-col gap-2.5 relative z-10", "data-fg-dbis112": ":0:/src/app/components/ai/AIUseCases.tsx:209:9:9205:311:e:div:etete", children: [
11399            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis113", _fgB: 1790697590751, label: "Schedules", pct: 72, display: "38%", color: "bg-[#EFBB0F]", "data-fg-dbis113": ":0:/src/app/components/ai/AIUseCases.tsx:210:11:9269:72:e:BarRow::::::Catp" }),
11400            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis114", _fgB: 1790697590751, label: "Detours", pct: 48, display: "24%", color: "bg-[#EFBB0F]", "data-fg-dbis114": ":0:/src/app/components/ai/AIUseCases.tsx:211:11:9352:70:e:BarRow::::::Catp" }),
11401            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis115", _fgB: 1790697590751, label: "Fares", pct: 28, display: "14%", color: "bg-[#22C55E]", "data-fg-dbis115": ":0:/src/app/components/ai/AIUseCases.tsx:212:11:9433:68:e:BarRow::::::Catp" })
11402          ] })
11403        ] })
11404      ]
11405    }
11406  );
11407}
11408function If() {
11409  return /* @__PURE__ */ c(
11410    a,
11411    {
11412      _fgT: m.div,
11413      _fgS: "dbis116",
11414      _fgB: 1790697590751,
11415      _fgD: !0,
11416      initial: { opacity: 0, y: 12 },
11417      animate: { opacity: 1, y: 0 },
11418      exit: { opacity: 0, y: -12 },
11419      transition: { duration: 0.4, ease: "easeOut" },
11420      className: "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
11421      "data-fg-dbis116": ":0:/src/app/components/ai/AIUseCases.tsx:223:5:9626:2670:e:motion.div:ete:1",
11422      children: [
11423        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis117", _fgB: 1790697590751, className: "py-2", "data-fg-dbis117": ":0:/src/app/components/ai/AIUseCases.tsx:230:7:9888:1425:e:div:etetete", children: [
11424          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis118", _fgB: 1790697590751, className: "text-[#22C55E] text-[11px] font-bold tracking-[2px] uppercase mb-3 flex items-center gap-2", "data-fg-dbis118": ":0:/src/app/components/ai/AIUseCases.tsx:231:9:9919:206:e:div:et", children: [
11425            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis119", _fgB: 1790697590751, className: "w-6 h-0.5 bg-[#22C55E] rounded-full", "data-fg-dbis119": ":0:/src/app/components/ai/AIUseCases.tsx:232:11:10038:56:e:span" }),
11426            " NEMT OPERATIONS"
11427          ] }),
11428          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dbis121", _fgB: 1790697590751, className: "font-['DM_Serif_Display'] text-[32px] leading-tight text-[#0B1B2B] mb-7", "data-fg-dbis121": ":0:/src/app/components/ai/AIUseCases.tsx:234:9:10134:170:e:h3:t", children: "Authorization Holds. Late Pickups. Riders Who Can't Wait." }),
11429          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis123", _fgB: 1790697590751, className: "flex flex-col gap-4 mb-8", "data-fg-dbis123": ":0:/src/app/components/ai/AIUseCases.tsx:238:9:10322:788:e:div:etete", children: [
11430            /* @__PURE__ */ i(
11431              a,
11432              {
11433                _fgT: Ve,
11434                _fgS: "dbis124",
11435                _fgB: 1790697590751,
11436                num: "Zero",
11437                label: "Missed authorizations",
11438                desc: "AI tracks authorization windows and alerts dispatch before a trip is at risk",
11439                colorClass: "text-[#22C55E]",
11440                "data-fg-dbis124": ":0:/src/app/components/ai/AIUseCases.tsx:239:11:10375:227:e:ImpactRow::::::DWXC"
11441              }
11442            ),
11443            /* @__PURE__ */ i(
11444              a,
11445              {
11446                _fgT: Ve,
11447                _fgS: "dbis125",
11448                _fgB: 1790697590751,
11449                num: "Auto",
11450                label: "Trip confirmations",
11451                desc: "Confirmation calls and ride reminders sent automatically so riders are ready at pickup",
11452                colorClass: "text-[#22C55E]",
11453                "data-fg-dbis125": ":0:/src/app/components/ai/AIUseCases.tsx:245:11:10613:234:e:ImpactRow::::::DWXC"
11454              }
11455            ),
11456            /* @__PURE__ */ i(
11457              a,
11458              {
11459                _fgT: Ve,
11460                _fgS: "dbis126",
11461                _fgB: 1790697590751,
11462                num: "Accurate",
11463                label: "Broker compliance",
11464                desc: "Every trip logged with timestamps, notes, and outcomes for broker reporting and audits",
11465                colorClass: "text-[#22C55E]",
11466                "data-fg-dbis126": ":0:/src/app/components/ai/AIUseCases.tsx:251:11:10858:237:e:ImpactRow::::::DWXC"
11467              }
11468            )
11469          ] }),
11470          /* @__PURE__ */ c(a, { _fgT: "a", _fgS: "dbis127", _fgB: 1790697590751, href: "#", className: "inline-flex items-center gap-2 text-[15px] font-bold text-[#22C55E] hover:gap-3 transition-all", "data-fg-dbis127": ":0:/src/app/components/ai/AIUseCases.tsx:259:9:11120:180:e:a:te", children: [
11471            "Explore NEMT ",
11472            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dbis129", _fgB: 1790697590751, size: 16, "data-fg-dbis129": ":0:node_modules/lucide-react:260:24:11263:24:e:ArrowRight::::::s5N" })
11473          ] })
11474        ] }),
11475        /* @__PURE__ */ i(a, { _fgT: z3, _fgS: "dbis130", _fgB: 1790697590751, glowColor: "#22C55E", title: "Live Trip Feed", titleColor: "#22C55E", "data-fg-dbis130": ":0:/src/app/components/ai/AIUseCases.tsx:264:7:11321:957:e:PanelVisual:e:::::VBy", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis131", _fgB: 1790697590751, className: "flex flex-col gap-2.5 relative z-10", "data-fg-dbis131": ":0:/src/app/components/ai/AIUseCases.tsx:265:9:11407:850:e:div:etetetete", children: [
11476          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis132", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis133", _fgB: 1790697590751, "data-fg-dbis133": ":0:/src/app/components/ai/AIUseCases.tsx:266:45:11505:68:e:span:et", children: [
11477            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis134", _fgB: 1790697590751, "data-fg-dbis134": ":0:/src/app/components/ai/AIUseCases.tsx:266:51:11511:40:e:strong:t", children: "Authorization confirmed" }),
11478            " for Trip #4821"
11479          ] }), time: "8s ago", color: "bg-[#22C55E]", "data-fg-dbis132": ":0:/src/app/components/ai/AIUseCases.tsx:266:11:11471:141:e:FeedItem::::::Ckgx" }),
11480          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis137", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis138", _fgB: 1790697590751, "data-fg-dbis138": ":0:/src/app/components/ai/AIUseCases.tsx:267:45:11657:71:e:span:et", children: [
11481            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis139", _fgB: 1790697590751, "data-fg-dbis139": ":0:/src/app/components/ai/AIUseCases.tsx:267:51:11663:30:e:strong:t", children: "Reminder sent" }),
11482            " to rider — pickup in 30 min"
11483          ] }), time: "1m ago", color: "bg-[#22C55E]", "data-fg-dbis137": ":0:/src/app/components/ai/AIUseCases.tsx:267:11:11623:144:e:FeedItem::::::Ckgx" }),
11484          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis142", _fgB: 1790697590751, status: "active", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis143", _fgB: 1790697590751, "data-fg-dbis143": ":0:/src/app/components/ai/AIUseCases.tsx:268:43:11810:61:e:span:et", children: [
11485            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis144", _fgB: 1790697590751, "data-fg-dbis144": ":0:/src/app/components/ai/AIUseCases.tsx:268:49:11816:36:e:strong:t", children: "Broker verification" }),
11486            " in progress"
11487          ] }), time: "now", color: "bg-[#2B7AE8]", "data-fg-dbis142": ":0:/src/app/components/ai/AIUseCases.tsx:268:11:11778:129:e:FeedItem::::::Ckgx" }),
11488          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis147", _fgB: 1790697590751, status: "transferred", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis148", _fgB: 1790697590751, "data-fg-dbis148": ":0:/src/app/components/ai/AIUseCases.tsx:269:48:11955:89:e:span:et", children: [
11489            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis149", _fgB: 1790697590751, "data-fg-dbis149": ":0:/src/app/components/ai/AIUseCases.tsx:269:54:11961:36:e:strong:t", children: "Late pickup flagged" }),
11490            " on Trip #4817 — transferred to dispatch"
11491          ] }), time: "3m ago", color: "bg-[#EFBB0F]", "data-fg-dbis147": ":0:/src/app/components/ai/AIUseCases.tsx:269:11:11918:165:e:FeedItem::::::Ckgx" }),
11492          /* @__PURE__ */ i(a, { _fgT: Qe, _fgS: "dbis152", _fgB: 1790697590751, status: "resolved", text: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dbis153", _fgB: 1790697590751, "data-fg-dbis153": ":0:/src/app/components/ai/AIUseCases.tsx:270:45:12128:75:e:span:et", children: [
11493            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "dbis154", _fgB: 1790697590751, "data-fg-dbis154": ":0:/src/app/components/ai/AIUseCases.tsx:270:51:12134:31:e:strong:t", children: "Trip completed" }),
11494            " — outcome logged automatically"
11495          ] }), time: "5m ago", color: "bg-[#22C55E]", "data-fg-dbis152": ":0:/src/app/components/ai/AIUseCases.tsx:270:11:12094:148:e:FeedItem::::::Ckgx" })
11496        ] }) })
11497      ]
11498    }
11499  );
11500}
11501function Pf() {
11502  return /* @__PURE__ */ c(
11503    a,
11504    {
11505      _fgT: m.div,
11506      _fgS: "dbis157",
11507      _fgB: 1790697590751,
11508      _fgD: !0,
11509      initial: { opacity: 0, y: 12 },
11510      animate: { opacity: 1, y: 0 },
11511      exit: { opacity: 0, y: -12 },
11512      transition: { duration: 0.4, ease: "easeOut" },
11513      className: "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
11514      "data-fg-dbis157": ":0:/src/app/components/ai/AIUseCases.tsx:281:5:12383:2412:e:motion.div:ete:1",
11515      children: [
11516        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis158", _fgB: 1790697590751, className: "py-2", "data-fg-dbis158": ":0:/src/app/components/ai/AIUseCases.tsx:288:7:12645:1468:e:div:etetete", children: [
11517          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis159", _fgB: 1790697590751, className: "text-[#8B5CF6] text-[11px] font-bold tracking-[2px] uppercase mb-3 flex items-center gap-2", "data-fg-dbis159": ":0:/src/app/components/ai/AIUseCases.tsx:289:9:12676:214:e:div:et", children: [
11518            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis160", _fgB: 1790697590751, className: "w-6 h-0.5 bg-[#8B5CF6] rounded-full", "data-fg-dbis160": ":0:/src/app/components/ai/AIUseCases.tsx:290:11:12795:56:e:span" }),
11519            " MICROTRANSIT OPERATIONS"
11520          ] }),
11521          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dbis162", _fgB: 1790697590751, className: "font-['DM_Serif_Display'] text-[32px] leading-tight text-[#0B1B2B] mb-7", "data-fg-dbis162": ":0:/src/app/components/ai/AIUseCases.tsx:292:9:12899:165:e:h3:t", children: "On-Demand. Dynamic Routes. Riders Who Expect It Now." }),
11522          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis164", _fgB: 1790697590751, className: "flex flex-col gap-4 mb-8", "data-fg-dbis164": ":0:/src/app/components/ai/AIUseCases.tsx:296:9:13082:820:e:div:etete", children: [
11523            /* @__PURE__ */ i(
11524              a,
11525              {
11526                _fgT: Ve,
11527                _fgS: "dbis165",
11528                _fgB: 1790697590751,
11529                num: "Real–time",
11530                label: "Demand response",
11531                desc: "RiderAssist AI handles booking and trip updates for on-demand trips without dispatcher intervention",
11532                colorClass: "text-[#8B5CF6]",
11533                "data-fg-dbis165": ":0:/src/app/components/ai/AIUseCases.tsx:297:11:13135:249:e:ImpactRow::::::DWXC"
11534              }
11535            ),
11536            /* @__PURE__ */ i(
11537              a,
11538              {
11539                _fgT: Ve,
11540                _fgS: "dbis166",
11541                _fgB: 1790697590751,
11542                num: "Zero",
11543                label: "Dead zones",
11544                desc: "Riders in flex zones and low-coverage areas get the same AI-powered support as any fixed route",
11545                colorClass: "text-[#8B5CF6]",
11546                "data-fg-dbis166": ":0:/src/app/components/ai/AIUseCases.tsx:303:11:13395:234:e:ImpactRow::::::DWXC"
11547              }
11548            ),
11549            /* @__PURE__ */ i(
11550              a,
11551              {
11552                _fgT: Ve,
11553                _fgS: "dbis167",
11554                _fgB: 1790697590751,
11555                num: "Auto",
11556                label: "Zone optimization signals",
11557                desc: "SurveyAI and AnalyticsAI surface demand patterns to inform zone adjustments and fleet sizing",
11558                colorClass: "text-[#8B5CF6]",
11559                "data-fg-dbis167": ":0:/src/app/components/ai/AIUseCases.tsx:309:11:13640:247:e:ImpactRow::::::DWXC"
11560              }
11561            )
11562          ] }),
11563          /* @__PURE__ */ c(a, { _fgT: "a", _fgS: "dbis168", _fgB: 1790697590751, href: "#", className: "inline-flex items-center gap-2 text-[15px] font-bold text-[#8B5CF6] hover:gap-3 transition-all", "data-fg-dbis168": ":0:/src/app/components/ai/AIUseCases.tsx:317:9:13912:188:e:a:te", children: [
11564            "Explore Microtransit ",
11565            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dbis170", _fgB: 1790697590751, size: 16, "data-fg-dbis170": ":0:node_modules/lucide-react:318:32:14063:24:e:ArrowRight::::::s5N" })
11566          ] })
11567        ] }),
11568        /* @__PURE__ */ c(a, { _fgT: z3, _fgS: "dbis171", _fgB: 1790697590751, glowColor: "#8B5CF6", title: "Demand Overview", titleColor: "#8B5CF6", "data-fg-dbis171": ":0:/src/app/components/ai/AIUseCases.tsx:322:7:14121:656:e:PanelVisual:ete:::::VBy", children: [
11569          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis172", _fgB: 1790697590751, className: "grid grid-cols-2 gap-3 mb-5 relative z-10", "data-fg-dbis172": ":0:/src/app/components/ai/AIUseCases.tsx:323:9:14208:231:e:div:ete", children: [
11570            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis173", _fgB: 1790697590751, val: "1,104", label: "Trips Today", color: "text-[#8B5CF6]", "data-fg-dbis173": ":0:/src/app/components/ai/AIUseCases.tsx:324:11:14278:69:e:MetricCard::::::DX92" }),
11571            /* @__PURE__ */ i(a, { _fgT: dt, _fgS: "dbis174", _fgB: 1790697590751, val: "94%", label: "AI Handled", color: "text-[#22C55E]", "data-fg-dbis174": ":0:/src/app/components/ai/AIUseCases.tsx:325:11:14358:66:e:MetricCard::::::DX92" })
11572          ] }),
11573          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis175", _fgB: 1790697590751, className: "flex flex-col gap-2.5 relative z-10", "data-fg-dbis175": ":0:/src/app/components/ai/AIUseCases.tsx:327:9:14448:308:e:div:etete", children: [
11574            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis176", _fgB: 1790697590751, label: "Zone A", pct: 65, display: "48%", color: "bg-[#8B5CF6]", "data-fg-dbis176": ":0:/src/app/components/ai/AIUseCases.tsx:328:11:14512:69:e:BarRow::::::Catp" }),
11575            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis177", _fgB: 1790697590751, label: "Zone B", pct: 42, display: "31%", color: "bg-[#8B5CF6]", "data-fg-dbis177": ":0:/src/app/components/ai/AIUseCases.tsx:329:11:14592:69:e:BarRow::::::Catp" }),
11576            /* @__PURE__ */ i(a, { _fgT: Mt, _fgS: "dbis178", _fgB: 1790697590751, label: "Zone C", pct: 28, display: "21%", color: "bg-[#22C55E]", "data-fg-dbis178": ":0:/src/app/components/ai/AIUseCases.tsx:330:11:14672:69:e:BarRow::::::Catp" })
11577          ] })
11578        ] })
11579      ]
11580    }
11581  );
11582}
11583function dt({ val: t, label: e, color: s }) {
11584  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis179", _fgB: 1790697590751, _fgD: !0, className: "bg-[#122338] border border-white/5 rounded-xl p-4 text-center", "data-fg-dbis179": ":0:/src/app/components/ai/AIUseCases.tsx:341:5:14952:271:e:div:ete:1", children: [
11585    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis180", _fgB: 1790697590751, className: `text-[28px] font-extrabold mb-0.5 leading-none ${s}`, "data-fg-dbis180": ":0:/src/app/components/ai/AIUseCases.tsx:342:7:15038:86:e:div:x", children: t }),
11586    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis182", _fgB: 1790697590751, className: "text-[11px] text-[#8B9BB5] uppercase tracking-wide", "data-fg-dbis182": ":0:/src/app/components/ai/AIUseCases.tsx:343:7:15131:81:e:div:x", children: e })
11587  ] });
11588}
11589function Mt({ label: t, pct: e, display: s, color: r }) {
11590  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis184", _fgB: 1790697590751, _fgD: !0, className: "flex items-center gap-3", "data-fg-dbis184": ":0:/src/app/components/ai/AIUseCases.tsx:350:5:15361:397:e:div:etete:1", children: [
11591    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis185", _fgB: 1790697590751, className: "text-xs text-[#8B9BB5] w-[90px] min-w-[90px]", "data-fg-dbis185": ":0:/src/app/components/ai/AIUseCases.tsx:351:7:15409:77:e:span:x", children: t }),
11592    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis187", _fgB: 1790697590751, className: "flex-1 h-2 bg-white/5 rounded-full overflow-hidden", "data-fg-dbis187": ":0:/src/app/components/ai/AIUseCases.tsx:352:7:15493:169:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis188", _fgB: 1790697590751, className: `h-full rounded-full ${r}`, style: { width: `${e}%` }, "data-fg-dbis188": ":0:/src/app/components/ai/AIUseCases.tsx:353:9:15570:79:e:div" }) }),
11593    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dbis189", _fgB: 1790697590751, className: "text-xs font-bold text-white w-9 text-right", "data-fg-dbis189": ":0:/src/app/components/ai/AIUseCases.tsx:355:7:15669:78:e:span:x", children: s })
11594  ] });
11595}
11596function Qe({ status: t, text: e, time: s, color: r }) {
11597  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dbis191", _fgB: 1790697590751, _fgD: !0, className: "flex items-center gap-3 p-3.5 bg-[#122338] border border-white/5 rounded-lg", "data-fg-dbis191": ":0:/src/app/components/ai/AIUseCases.tsx:362:5:15905:342:e:div:etete:1", children: [
11598    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis192", _fgB: 1790697590751, className: `w-2.5 h-2.5 min-w-[10px] rounded-full ${r}`, "data-fg-dbis192": ":0:/src/app/components/ai/AIUseCases.tsx:363:7:16005:68:e:div" }),
11599    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis193", _fgB: 1790697590751, className: "text-[13px] text-white/70 flex-1 leading-snug", "data-fg-dbis193": ":0:/src/app/components/ai/AIUseCases.tsx:364:7:16080:75:e:div:x", children: e }),
11600    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dbis195", _fgB: 1790697590751, className: "text-[11px] text-[#8B9BB5] whitespace-nowrap", "data-fg-dbis195": ":0:/src/app/components/ai/AIUseCases.tsx:365:7:16162:74:e:div:x", children: s })
11601  ] });
11602}
11603function Cf() {
11604  const { openContactModal: t } = Z();
11605  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cbgq0", _fgB: 1790697590782, _fgD: !0, className: "py-24 px-6 bg-[#0B1B2B] text-center relative overflow-hidden font-['DM_Sans']", "data-fg-cbgq0": ":0:/src/app/components/
11605ai/AICTA.tsx:7:5:193:1180:e:section:ete:1", children: [
11606    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cbgq1", _fgB: 1790697590782, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[400px] bg-[radial-gradient(ellipse,rgba(43,122,232,0.1)_0%,transparent_70%)] pointer-events-none", "data-fg-cbgq1": ":0:/src/app/components/ai/AICTA.tsx:8:7:299:189:e:div" }),
11607    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cbgq2", _fgB: 1790697590782, className: "max-w-[800px] mx-auto relative z-10", "data-fg-cbgq2": ":0:/src/app/components/ai/AICTA.tsx:10:7:502:856:e:div:etete", children: [
11608      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cbgq3", _fgB: 1790697590782, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-white mb-6", "data-fg-cbgq3": ":0:/src/app/components/ai/AICTA.tsx:11:9:564:230:e:h2:te", children: [
11609        "See TransitAI Handle ",
11610        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cbgq5", _fgB: 1790697590782, className: "text-[#EFBB0F] italic", "data-fg-cbgq5": ":0:/src/app/components/ai/AICTA.tsx:12:32:710:70:e:span:t", children: "Your Riders' Questions." })
11611      ] }),
11612      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cbgq7", _fgB: 1790697590782, className: "text-[17px] text-[#8B9BB5] mb-10 max-w-[600px] mx-auto", "data-fg-cbgq7": ":0:/src/app/components/ai/AICTA.tsx:14:9:803:168:e:p:t", children: "We'll run a demo using your actual routes, schedules, and call categories." }),
11613      /* @__PURE__ */ c(a, { _fgT: "button", _fgS: "cbgq9", _fgB: 1790697590782, onClick: t, className: "inline-flex items-center gap-2.5 px-8 py-3.5 bg-[#2B7AE8] text-white rounded-xl text-[15px] font-semibold hover:bg-[#3D8EF7] transition-colors shadow-lg hover:shadow-blue-500/25 transform hover:-translate-y-1 duration-300 cursor-pointer", "data-fg-cbgq9": ":0:/src/app/components/ai/AICTA.tsx:18:9:989:356:e:button:te", children: [
11614        "Schedule a Meeting ",
11615        /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cbgq11", _fgB: 1790697590782, size: 18, "data-fg-cbgq11": ":0:node_modules/lucide-react:19:30:1303:24:e:ArrowRight::::::s5N" })
11616      ] })
11617    ] })
11618  ] });
11619}
11620function Ff() {
11621  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "vvw0", _fgB: 1790697589412, _fgD: !0, className: "min-h-screen bg-white relative", "data-fg-vvw0": ":0:/src/app/pages/AISolutionsPage.tsx:11:5:450:219:e:main:etetetetetxtete:1", children: [
11622    /* @__PURE__ */ i(a, { _fgT: gf, _fgS: "vvw1", _fgB: 1790697589412, "data-fg-vvw1": ":0:/src/app/pages/AISolutionsPage.tsx:12:7:506:10:e:AIHero::::::BE2g" }),
11623    /* @__PURE__ */ i(a, { _fgT: Mf, _fgS: "vvw2", _fgB: 1790697589412, "data-fg-vvw2": ":0:/src/app/pages/AISolutionsPage.tsx:13:7:523:15:e:AIEcosystem::::::TQM" }),
11624    /* @__PURE__ */ i(a, { _fgT: uf, _fgS: "vvw3", _fgB: 1790697589412, "data-fg-vvw3": ":0:/src/app/pages/AISolutionsPage.tsx:14:7:545:13:e:AIProblem::::::DOXE" }),
11625    /* @__PURE__ */ i(a, { _fgT: mf, _fgS: "vvw4", _fgB: 1790697589412, "data-fg-vvw4": ":0:/src/app/pages/AISolutionsPage.tsx:15:7:565:14:e:AIProducts::::::BDkA" }),
11626    /* @__PURE__ */ i(a, { _fgT: kf, _fgS: "vvw5", _fgB: 1790697589412, "data-fg-vvw5": ":0:/src/app/pages/AISolutionsPage.tsx:16:7:586:14:e:AIUseCases::::::Re0" }),
11627    /* @__PURE__ */ i(a, { _fgT: Cf, _fgS: "vvw7", _fgB: 1790697589412, "data-fg-vvw7": ":0:/src/app/pages/AISolutionsPage.tsx:18:7:631:9:e:AICTA::::::DAIA" }),
11628    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "vvw8", _fgB: 1790697589412, "data-fg-vvw8": ":0:/src/app/pages/AISolutionsPage.tsx:19:7:647:10:e:Footer::::::B1Vv" })
11629  ] });
11630}
11631function Ef() {
11632  const { openContactModal: t } = Z();
11633  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "wd00", _fgB: 1790697589901, _fgD: !0, className: "relative min-h-[90vh] flex items-center bg-slate-900 overflow-hidden", "data-fg-wd00": ":0:/src/app/components/drivigo/DrivigoHero.tsx:9:5:239:4602:e:section:xtete:1", children: [
11634    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "wd02", _fgB: 1790697589901, className: "absolute inset-0 z-0", "data-fg-wd02": ":0:/src/app/components/drivigo/DrivigoHero.tsx:11:7:367:599:e:div:ete", children: [
11635      /* @__PURE__ */ i(
11636        a,
11637        {
11638          _fgT: "img",
11639          _fgS: "wd03",
11640          _fgB: 1790697589901,
11641          src: "https://images.unsplash.com/photo-1696334025376-cb8e411ea7ab?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx0cmFuc2l0JTIwYnVzJTIwdHJpdmVyJTIwdGFibGV0JTIwYXBwJTIwZGFzaGJvYXJkfGVufDF8fHx8MTc3MTAwNjc3OXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
11642          alt: "Driver using Drivigo App",
11643          className: "w-full h-full object-cover opacity-30",
11644          "data-fg-wd03": ":0:/src/app/components/drivigo/DrivigoHero.tsx:12:9:414:430:e:img"
11645        }
11646      ),
11647      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd04", _fgB: 1790697589901, className: "absolute inset-0 bg-gradient-to-r from-slate-900 via-slate-900/80 to-transparent", "data-fg-wd04": ":0:/src/app/components/drivigo/DrivigoHero.tsx:17:9:853:100:e:div" })
11648    ] }),
11649    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "wd05", _fgB: 1790697589901, className: "container mx-auto px-6 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-wd05": ":0:/src/app/components/drivigo/DrivigoHero.tsx:20:7:974:3852:e:div:etxte", children: [
11650      /* @__PURE__ */ c(
11651        a,
11652        {
11653          _fgT: m.div,
11654          _fgS: "wd06",
11655          _fgB: 1790697589901,
11656          initial: { opacity: 0, x: -50 },
11657          animate: { opacity: 1, x: 0 },
11658          transition: { duration: 0.8 },
11659          "data-fg-wd06": ":0:/src/app/components/drivigo/DrivigoHero.tsx:21:9:1077:1594:e:motion.div:etetete",
11660          children: [
11661            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd07", _fgB: 1790697589901, className: "inline-block px-3 py-1 rounded-full bg-blue-500/20 border border-blue-400/30 text-blue-300 text-sm font-bold tracking-widest uppercase mb-6 backdrop-blur-sm", "data-fg-wd07": ":0:/src/app/components/drivigo/DrivigoHero.tsx:26:11:1234:214:e:div:t", children: "Driver App" }),
11662            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "wd09", _fgB: 1790697589901, className: "text-5xl md:text-7xl font-light text-white mb-6 font-[Space_Grotesk] leading-tight", "data-fg-wd09": ":0:/src/app/components/drivigo/DrivigoHero.tsx:29:11:1459:201:e:h1:tee", children: [
11663              "Drivego: Transit, ",
11664              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "wd011", _fgB: 1790697589901, "data-fg-wd011": ":0:/src/app/components/drivigo/DrivigoHero.tsx:29:128:1576:6:e:br" }),
11665              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "wd012", _fgB: 1790697589901, className: "font-bold text-[#EFBB0F]", "data-fg-wd012": ":0:/src/app/components/drivigo/DrivigoHero.tsx:29:134:1582:73:e:span:t", children: "From the Driver's Seat." })
11666            ] }),
11667            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "wd014", _fgB: 1790697589901, className: "text-xl text-slate-300 mb-8 leading-relaxed max-w-2xl", "data-fg-wd014": ":0:/src/app/components/drivigo/DrivigoHero.tsx:30:11:1671:486:e:p:t", children: "The dedicated mobile app that serves as the critical link between your transit drivers and the Dispatch 2.0 platform. Engineered for clarity, efficiency, and safety, Drivigo provides every tool a driver needs to execute their route flawlessly, manage their schedule, and communicate instantly with dispatch. It transforms the cab of every vehicle into a connected, intelligent workstation." }),
11668            /* @__PURE__ */ c(
11669              a,
11670              {
11671                _fgT: "button",
11672                _fgS: "wd016",
11673                _fgB: 1790697589901,
11674                onClick: t,
11675                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-[0_0_20px_rgba(0,86,179,0.5)] hover:shadow-[0_0_30px_rgba(0,86,179,0.7)] cursor-pointer",
11676                "data-fg-wd016": ":0:/src/app/components/drivigo/DrivigoHero.tsx:34:11:2179:470:e:button:te",
11677                children: [
11678                  "Request a Demo",
11679                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "wd018", _fgB: 1790697589901, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-wd018": ":0:node_modules/lucide-react:39:13:2546:83:e:ArrowRight::::::s5N" })
11680                ]
11681              }
11682            )
11683          ]
11684        }
11685      ),
11686      /* @__PURE__ */ i(
11687        a,
11688        {
11689          _fgT: m.div,
11690          _fgS: "wd020",
11691          _fgB: 1790697589901,
11692          initial: { opacity: 0, scale: 0.9 },
11693          animate: { opacity: 1, scale: 1 },
11694          transition: { delay: 0.3, duration: 0.8 },
11695          className: "hidden lg:block relative",
11696          "data-fg-wd020": ":0:/src/app/components/drivigo/DrivigoHero.tsx:44:9:2746:2067:e:motion.div:xte",
11697          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "wd022", _fgB: 1790697589901, className: "relative rounded-3xl overflow-hidden border-8 border-slate-800 shadow-2xl bg-slate-800 aspect-[3/4] max-w-md mx-auto rotate-[-2deg] hover:rotate-0 transition-transform duration-700", "data-fg-wd022": ":0:/src/app/components/drivigo/DrivigoHero.tsx:51:11:3045:1746:e:div:etxtetxtete", children: [
11698            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd023", _fgB: 1790697589901, className: "absolute inset-0 bg-gradient-to-br from-slate-700 to-slate-900 flex items-center justify-center", "data-fg-wd023": ":0:/src/app/components/drivigo/DrivigoHero.tsx:52:14:3257:218:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "wd024", _fgB: 1790697589901, className: "text-slate-500 font-mono text-sm", "data-fg-wd024": ":0:/src/app/components/drivigo/DrivigoHero.tsx:53:17:3387:68:e:span:t", children: "UI Preview" }) }),
11699            /* @__PURE__ */ i(
11700              a,
11701              {
11702                _fgT: "img",
11703                _fgS: "wd027",
11704                _fgB: 1790697589901,
11705                src: "https://images.unsplash.com/photo-1696334025376-cb8e411ea7ab?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx0cmFuc2l0JTIwYnVzJTIwdHJpdmVyJTIwdGFibGV0JTIwYXBwJTIwZGFzaGJvYXJkfGVufDF8fHx8MTc3MTAwNjc3OXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
11706                alt: "App Screen",
11707                className: "w-full h-full object-cover opacity-80 hover:opacity-100 transition-opacity duration-500",
11708                "data-fg-wd027": ":0:/src/app/components/drivigo/DrivigoHero.tsx:56:14:3556:486:e:img"
11709              }
11710            ),
11711            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "wd029", _fgB: 1790697589901, className: "absolute top-10 left-6 right-6 p-4 bg-white/10 backdrop-blur-md rounded-xl border border-white/20", "data-fg-wd029": ":0:/src/app/components/drivigo/DrivigoHero.tsx:63:14:4109:278:e:div:ete", children: [
11712              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd030", _fgB: 1790697589901, className: "h-2 w-1/3 bg-white/40 rounded mb-2", "data-fg-wd030": ":0:/src/app/components/drivigo/DrivigoHero.tsx:64:16:4240:58:e:div:_" }),
11713              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd031", _fgB: 1790697589901, className: "h-2 w-1/2 bg-white/20 rounded", "data-fg-wd031": ":0:/src/app/components/drivigo/DrivigoHero.tsx:65:16:4314:53:e:div:_" })
11714            ] }),
11715            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "wd032", _fgB: 1790697589901, className: "absolute bottom-10 left-6 right-6 p-4 bg-[#0056B3]/90 backdrop-blur-md rounded-xl border border-white/20", "data-fg-wd032": ":0:/src/app/components/drivigo/DrivigoHero.tsx:67:14:4401:373:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "wd033", _fgB: 1790697589901, className: "flex justify-between items-center text-white", "data-fg-wd033": ":0:/src/app/components/drivigo/DrivigoHero.tsx:68:16:4539:215:e:div:ete", children: [
11716              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "wd034", _fgB: 1790697589901, className: "font-bold", "data-fg-wd034": ":0:/src/app/components/drivigo/DrivigoHero.tsx:69:19:4620:44:e:span:t", children: "Next Stop" }),
11717              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "wd036", _fgB: 1790697589901, className: "text-sm opacity-80", "data-fg-wd036": ":0:/src/app/components/drivigo/DrivigoHero.tsx:70:19:4683:49:e:span:t", children: "2 min" })
11718            ] }) })
11719          ] })
11720        }
11721      )
11722    ] })
11723  ] });
11724}
11725const Rf = [
11726  {
11727    icon: S1,
11728    title: "Real-Time Route Manifest & Turn-by-Turn Navigation",
11729    desc: "Provides the daily assignment including scheduled stops, passenger pickups and drop-offs, and dynamic turn-by-turn navigation to follow the optimal route.",
11730    benefit: "Reduces route confusion, minimizes missed stops, and ensures adherence to published schedules."
11731  },
11732  {
11733    icon: Y7,
11734    title: "Instant Dispatch Communications",
11735    desc: "Two-way secure messaging and voice capabilities for instant communication with dispatch regarding delays, incidents, or route changes.",
11736    benefit: "Improves safety and incident response, and maintains constant operational awareness."
11737  },
11738  {
11739    icon: Wc,
11740    title: "Pre- and Post-Trip Vehicle Inspections (DVIR)",
11741    desc: "Digital checklists for quick and comprehensive mandated vehicle inspections directly within the app. Submits reports instantly to maintenance.",
11742    benefit: "Ensures compliance, accelerates fault reporting, and reduces vehicle downtime."
11743  },
11744  {
11745    icon: It,
11746    title: "Shift Management & Time Logging",
11747    desc: "Drivers securely log in, clock in and out for shifts and breaks, and view historical work hours.",
11748    benefit: "Simplifies payroll documentation and provides drivers with clear visibility into their schedule."
11749  },
11750  {
11751    icon: Fd,
11752    title: "Real-Time Passenger & Trip Status Updates",
11753    desc: "Drivers mark trips and stops as completed and log no-shows or exceptions, which immediately updates the rider-facing app Transigo.",
11754    benefit: "Provides accurate real-time information to passengers, reducing confusion and support calls."
11755  },
11756  {
11757    icon: H7,
11758    title: "Alerts and Notifications",
11759    desc: "Receives critical system alerts regarding weather, traffic incidents, or service disruptions directly from Dispatch 2.0.",
11760    benefit: "Enables proactive route adjustments and enhances driver safety."
11761  }
11762];
11763function Df() {
11764  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bts10", _fgB: 1790697589906, _fgD: !0, className: "py-24 bg-white", "data-fg-bts10": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:52:5:2172:2126:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bts11", _fgB: 1790697589906, className: "max-w-7xl mx-auto px-6", "data-fg-bts11": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:53:7:2215:2068:e:div:ete", children: [
11765    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bts12", _fgB: 1790697589906, className: "text-center mb-20", "data-fg-bts12": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:55:9:2273:543:e:div:e", children: /* @__PURE__ */ c(
11766      a,
11767      {
11768        _fgT: m.p,
11769        _fgS: "bts13",
11770        _fgB: 1790697589906,
11771        initial: { opacity: 0, y: 20 },
11772        whileInView: { opacity: 1, y: 0 },
11773        viewport: { once: !0 },
11774        className: "text-2xl md:text-3xl text-slate-800 max-w-4xl mx-auto leading-relaxed font-light",
11775        "data-fg-bts13": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:56:11:2319:482:e:motion.p:tet",
11776        children: [
11777          "Drivigo is designed to be the ",
11778          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bts15", _fgB: 1790697589906, className: "font-semibold text-[#0056B3]", "data-fg-bts15": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:62:43:2618:76:e:span:t", children: "single source of truth" }),
11779          " for your drivers, ensuring seamless, real-time coordination with transit operations."
11780        ]
11781      }
11782    ) }),
11783    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bts18", _fgB: 1790697589906, className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", "data-fg-bts18": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:66:9:2826:1443:e:div:x", children: Rf.map((t, e) => /* @__PURE__ */ c(
11784      a,
11785      {
11786        _fgT: m.div,
11787        _fgS: "bts110",
11788        _fgB: 1790697589906,
11789        initial: { opacity: 0, y: 20 },
11790        whileInView: { opacity: 1, y: 0 },
11791        viewport: { once: !0 },
11792        transition: { delay: e * 0.1 },
11793        className: "bg-slate-50 rounded-3xl p-8 border border-slate-100 hover:shadow-xl hover:border-blue-100 transition-all duration-300 group",
11794        "data-fg-bts110": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:68:13:2939:1301:e:motion.div:etetete",
11795        children: [
11796          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bts111", _fgB: 1790697589906, className: "w-14 h-14 rounded-2xl bg-white text-[#0056B3] shadow-sm flex items-center justify-center mb-6 group-hover:bg-[#0056B3] group-hover:text-white transition-colors", "data-fg-bts111": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:76:15:3332:241:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bts112", _fgB: 1790697589906, size: 28, "data-fg-bts112": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:77:17:3526:26:e:feature.icon" }) }),
11797          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bts113", _fgB: 1790697589906, className: "text-xl font-bold text-slate-900 mb-4 min-h-[56px] flex items-center", "data-fg-bts113": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:80:15:3603:137:e:h3:x", children: t.title }),
11798          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bts115", _fgB: 1790697589906, className: "text-slate-600 mb-6 leading-relaxed", "data-fg-bts115": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:84:15:3770:101:e:p:x", children: t.desc }),
11799          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bts117", _fgB: 1790697589906, className: "pt-6 border-t border-slate-200", "data-fg-bts117": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:88:15:3901:313:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "bts118", _fgB: 1790697589906, className: "text-sm font-medium text-slate-500", "data-fg-bts118": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:89:17:3966:227:e:p:etx", children: [
11800            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bts119", _fgB: 1790697589906, className: "text-[#EFBB0F] font-bold uppercase text-xs tracking-wider block mb-1", "data-fg-bts119": ":0:/src/app/components/drivigo/DrivigoFeatures.tsx:90:19:4035:101:e:span:t", children: "Benefit" }),
11801            t.benefit
11802          ] }) })
11803        ]
11804      },
11805      e
11806    )) })
11807  ] }) });
11808}
11809function zf() {
11810  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "bqm00", _fgB: 1790697589910, _fgD: !0, className: "py-24 bg-slate-900 text-white relative overflow-hidden", "data-fg-bqm00": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:6:5:170:5710:e:section:xtete:1", children: [
11811    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm02", _fgB: 1790697589910, className: "absolute top-0 right-0 w-[600px] h-[600px] bg-[#0056B3] rounded-full blur-[120px] opacity-20 pointer-events-none translate-x-1/2 -translate-y-1/2", "data-fg-bqm02": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:9:7:294:165:e:div" }),
11812    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm03", _fgB: 1790697589910, className: "max-w-7xl mx-auto px-6 relative z-10", "data-fg-bqm03": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:11:7:473:5392:e:div:xtetxtetxte", children: [
11813      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm05", _fgB: 1790697589910, className: "grid lg:grid-cols-2 gap-16 items-center mb-24", "data-fg-bqm05": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:14:9:586:3794:e:div:ete", children: [
11814        /* @__PURE__ */ c(
11815          a,
11816          {
11817            _fgT: m.div,
11818            _fgS: "bqm06",
11819            _fgB: 1790697589910,
11820            initial: { opacity: 0, x: -30 },
11821            whileInView: { opacity: 1, x: 0 },
11822            viewport: { once: !0 },
11823            "data-fg-bqm06": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:15:11:660:1353:e:motion.div:etetete",
11824            children: [
11825              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm07", _fgB: 1790697589910, className: "flex items-center gap-3 text-[#EFBB0F] font-bold tracking-widest uppercase mb-4 text-sm", "data-fg-bqm07": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:20:13:829:208:e:div:ete", children: [
11826                /* @__PURE__ */ i(a, { _fgT: X7, _fgS: "bqm08", _fgB: 1790697589910, size: 18, "data-fg-bqm08": ":0:node_modules/lucide-react:21:15:949:21:e:Network::::::D3yW" }),
11827                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bqm09", _fgB: 1790697589910, "data-fg-bqm09": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:22:15:985:33:e:span:t", children: "Full Synchronization" })
11828              ] }),
11829              /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bqm011", _fgB: 1790697589910, className: "text-4xl md:text-5xl font-light mb-8 font-[Space_Grotesk]", "data-fg-bqm011": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:24:13:1050:199:e:h2:tete", children: [
11830                "Seamlessly Connected to ",
11831                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bqm013", _fgB: 1790697589910, "data-fg-bqm013": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:25:39:1163:6:e:br" }),
11832                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bqm014", _fgB: 1790697589910, className: "font-bold", "data-fg-bqm014": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:26:15:1184:47:e:span:t", children: "Dispatch 2.0" })
11833              ] }),
11834              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm016", _fgB: 1790697589910, className: "text-lg text-slate-300 leading-relaxed mb-6", "data-fg-bqm016": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:28:13:1262:324:e:p:t", children: "Drivigo is a fully integrated extension of the Dispatch 2.0 platform. All data collected by the driver — from time logs and inspection reports to real-time location and trip status — is immediately relayed back to the central system." }),
11835              /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "bqm018", _fgB: 1790697589910, className: "text-lg text-slate-300 leading-relaxed", "data-fg-bqm018": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:31:13:1599:390:e:p:tetet", children: [
11836                "This feeds the ",
11837                /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "bqm020", _fgB: 1790697589910, className: "text-white", "data-fg-bqm020": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:32:30:1683:68:e:strong:t", children: "Robust Reporting & Analytics" }),
11838                " dashboards and supports the ",
11839                /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "bqm023", _fgB: 1790697589910, className: "text-white", "data-fg-bqm023": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:32:127:1780:73:e:strong:t", children: "Intelligent Dispatch & Scheduling" }),
11840                " algorithms. This seamless data flow is what makes Drivigo a key component in optimizing your entire transit operation."
11841              ] })
11842            ]
11843          }
11844        ),
11845        /* @__PURE__ */ i(
11846          a,
11847          {
11848            _fgT: m.div,
11849            _fgS: "bqm026",
11850            _fgB: 1790697589910,
11851            initial: { opacity: 0, scale: 0.95 },
11852            whileInView: { opacity: 1, scale: 1 },
11853            viewport: { once: !0 },
11854            className: "bg-white/5 border border-white/10 rounded-3xl p-8 backdrop-blur-sm",
11855            "data-fg-bqm026": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:36:11:2025:2340:e:motion.div:xte",
11856            children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm028", _fgB: 1790697589910, className: "space-y-6", "data-fg-bqm028": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:43:13:2337:2004:e:div:etete", children: [
11857              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm029", _fgB: 1790697589910, className: "flex items-center gap-4 p-4 bg-white/5 rounded-xl border border-white/5", "data-fg-bqm029": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:44:16:2380:701:e:div:etete", children: [
11858                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm030", _fgB: 1790697589910, className: "w-10 h-10 rounded-full bg-[#EFBB0F] flex items-center justify-center text-slate-900 font-bold", "data-fg-bqm030": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:45:18:2487:177:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Cc, _fgS: "bqm031", _fgB: 1790697589910, size: 20, "data-fg-bqm031": ":0:node_modules/lucide-react:46:20:2618:22:e:CarFront::::::Cllz" }) }),
11859                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm032", _fgB: 1790697589910, className: "flex-1", "data-fg-bqm032": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:48:18:2682:188:e:div:ete", children: [
11860                  /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bqm033", _fgB: 1790697589910, className: "font-bold", "data-fg-bqm033": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:49:20:2726:44:e:h4:t", children: "Driver Action" }),
11861                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm035", _fgB: 1790697589910, className: "text-sm text-slate-400", "data-fg-bqm035": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:50:20:2790:56:e:p:t", children: "Completes Stop" })
11862                ] }),
11863                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm037", _fgB: 1790697589910, className: "h-0.5 w-12 bg-white/20 relative", "data-fg-bqm037": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:52:18:2888:171:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm038", _fgB: 1790697589910, className: "absolute right-0 -top-1 w-2 h-2 bg-[#EFBB0F] rounded-full", "data-fg-bqm038": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:53:21:2958:77:e:div" }) })
11864              ] }),
11865              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm039", _fgB: 1790697589910, className: "flex items-center gap-4 p-4 bg-[#0056B3]/20 rounded-xl border border-[#0056B3]/30", "data-fg-bqm039": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:57:16:3098:510:e:div:ete", children: [
11866                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm040", _fgB: 1790697589910, className: "w-10 h-10 rounded-full bg-[#0056B3] flex items-center justify-center text-white", "data-fg-bqm040": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:58:18:3215:164:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "bqm041", _fgB: 1790697589910, size: 20, "data-fg-bqm041": ":0:node_modules/lucide-react:59:20:3332:23:e:Building2::::::DOEu" }) }),
11867                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm042", _fgB: 1790697589910, className: "flex-1", "data-fg-bqm042": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:61:18:3397:189:e:div:ete", children: [
11868                  /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bqm043", _fgB: 1790697589910, className: "font-bold", "data-fg-bqm043": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:62:20:3441:43:e:h4:t", children: "Dispatch 2.0" }),
11869                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm045", _fgB: 1790697589910, className: "text-sm text-blue-200", "data-fg-bqm045": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:63:20:3504:58:e:p:t", children: "Instantly Updated" })
11870                ] })
11871              ] }),
11872              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm047", _fgB: 1790697589910, className: "flex items-center gap-4 p-4 bg-white/5 rounded-xl border border-white/5", "data-fg-bqm047": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:67:16:3625:697:e:div:etete", children: [
11873                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm048", _fgB: 1790697589910, className: "w-10 h-10 rounded-full bg-slate-700 flex items-center justify-center text-white", "data-fg-bqm048": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:68:18:3732:160:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: h1, _fgS: "bqm049", _fgB: 1790697589910, size: 20, "data-fg-bqm049": ":0:node_modules/lucide-react:69:20:3849:19:e:Users::::::DV8M" }) }),
11874                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm050", _fgB: 1790697589910, className: "flex-1", "data-fg-bqm050": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:71:18:3910:202:e:div:ete", children: [
11875                  /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "bqm051", _fgB: 1790697589910, className: "font-bold", "data-fg-bqm051": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:72:20:3954:51:e:h4:t", children: "Rider App (Transigo)" }),
11876                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm053", _fgB: 1790697589910, className: "text-sm text-slate-400", "data-fg-bqm053": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:73:20:4025:63:e:p:t", children: "See Real-Time Arrival" })
11877                ] }),
11878                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm055", _fgB: 1790697589910, className: "h-0.5 w-12 bg-white/20 relative", "data-fg-bqm055": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:75:18:4130:170:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqm056", _fgB: 1790697589910, className: "absolute left-0 -top-1 w-2 h-2 bg-slate-500 rounded-full", "data-fg-bqm056": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:76:21:4200:76:e:div" }) })
11879              ] })
11880            ] })
11881          }
11882        )
11883      ] }),
11884      /* @__PURE__ */ i(
11885        a,
11886        {
11887          _fgT: m.div,
11888          _fgS: "bqm058",
11889          _fgB: 1790697589910,
11890          initial: { opacity: 0, y: 20 },
11891          whileInView: { opacity: 1, y: 0 },
11892          viewport: { once: !0 },
11893          className: "bg-gradient-to-r from-[#0056B3] to-[#004494] rounded-3xl p-10 md:p-14 text-center border border-white/10 shadow-2xl relative overflow-hidden mb-16",
11894          "data-fg-bqm058": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:84:9:4424:842:e:motion.div:e",
11895          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqm059", _fgB: 1790697589910, className: "relative z-10", "data-fg-bqm059": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:90:11:4748:496:e:div:ete", children: [
11896            /* @__PURE__ */ c(a, { _fgT: "h3", _fgS: "bqm060", _fgB: 1790697589910, className: "text-2xl md:text-3xl font-light font-[Space_Grotesk] leading-relaxed", "data-fg-bqm060": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:91:13:4792:316:e:h3:tetetet", children: [
11897              '"Riders use ',
11898              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bqm062", _fgB: 1790697589910, className: "font-bold text-white", "data-fg-bqm062": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:91:110:4889:54:e:span:t", children: "Transigo" }),
11899              ". Drivers use ",
11900              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bqm065", _fgB: 1790697589910, className: "font-bold text-white", "data-fg-bqm065": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:91:178:4957:53:e:span:t", children: "Drivego" }),
11901              ". Agencies manage it all through ",
11902              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bqm068", _fgB: 1790697589910, className: "font-bold text-white", "data-fg-bqm068": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:91:264:5043:58:e:span:t", children: "Dispatch 2.0" }),
11903              '."'
11904            ] }),
11905            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm071", _fgB: 1790697589910, className: "mt-6 text-blue-200 uppercase tracking-widest font-bold text-sm", "data-fg-bqm071": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:92:13:5121:106:e:p:t", children: "Two sides of every ride." })
11906          ] })
11907        }
11908      ),
11909      /* @__PURE__ */ c(
11910        a,
11911        {
11912          _fgT: m.div,
11913          _fgS: "bqm074",
11914          _fgB: 1790697589910,
11915          initial: { opacity: 0 },
11916          whileInView: { opacity: 1 },
11917          viewport: { once: !0 },
11918          className: "flex items-center justify-center gap-4 text-slate-400 max-w-2xl mx-auto bg-slate-800/50 py-4 px-8 rounded-full border border-slate-700",
11919          "data-fg-bqm074": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:97:9:5307:544:e:motion.div:ete",
11920          children: [
11921            /* @__PURE__ */ i(a, { _fgT: e0, _fgS: "bqm075", _fgB: 1790697589910, size: 20, className: "text-[#EFBB0F]", "data-fg-bqm075": ":0:node_modules/lucide-react:103:11:5607:47:e:Tablet::::::BzEi" }),
11922            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqm076", _fgB: 1790697589910, className: "text-sm font-medium", "data-fg-bqm076": ":0:/src/app/components/drivigo/DrivigoIntegration.tsx:104:11:5665:164:e:p:t", children: "Drivigo is compatible with a range of ruggedized Android and iOS tablets for reliable in-vehicle use." })
11923          ]
11924        }
11925      )
11926    ] })
11927  ] });
11928}
11929function jf() {
11930  const { openContactModal: t } = Z();
11931  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "b2xw0", _fgB: 1790697589913, _fgD: !0, id: "contact", className: "py-24 bg-zinc-50 border-t border-slate-200", "data-fg-b2xw0": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:9:5:238:1170:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b2xw1", _fgB: 1790697589913, className: "max-w-4xl mx-auto px-6 text-center", "data-fg-b2xw1": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:10:7:322:1071:e:div:ete", children: [
11932    /* @__PURE__ */ c(
11933      a,
11934      {
11935        _fgT: m.h2,
11936        _fgS: "b2xw2",
11937        _fgB: 1790697589913,
11938        initial: { opacity: 0, y: 20 },
11939        whileInView: { opacity: 1, y: 0 },
11940        viewport: { once: !0 },
11941        className: "text-4xl md:text-5xl font-light text-slate-900 mb-8 font-[Space_Grotesk]",
11942        "data-fg-b2xw2": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:11:9:383:380:e:motion.h2:tete",
11943        children: [
11944          "Ready to put your drivers in the ",
11945          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "b2xw4", _fgB: 1790697589913, "data-fg-b2xw4": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:17:44:665:6:e:br" }),
11946          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b2xw5", _fgB: 1790697589913, className: "font-bold text-[#0056B3]", "data-fg-b2xw5": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:18:11:682:60:e:span:t", children: "fast lane?" })
11947        ]
11948      }
11949    ),
11950    /* @__PURE__ */ i(
11951      a,
11952      {
11953        _fgT: m.div,
11954        _fgS: "b2xw7",
11955        _fgB: 1790697589913,
11956        initial: { opacity: 0, scale: 0.9 },
11957        whileInView: { opacity: 1, scale: 1 },
11958        viewport: { once: !0 },
11959        "data-fg-b2xw7": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:21:9:773:607:e:motion.div:e",
11960        children: /* @__PURE__ */ c(
11961          a,
11962          {
11963            _fgT: "button",
11964            _fgS: "b2xw8",
11965            _fgB: 1790697589913,
11966            onClick: t,
11967            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-2xl cursor-pointer",
11968            "data-fg-b2xw8": ":0:/src/app/components/drivigo/DrivigoCTA.tsx:26:11:937:421:e:button:te",
11969            children: [
11970              "Schedule a Meeting",
11971              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "b2xw10", _fgB: 1790697589913, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-b2xw10": ":0:node_modules/lucide-react:31:13:1255:83:e:ArrowRight::::::s5N" })
11972            ]
11973          }
11974        )
11975      }
11976    )
11977  ] }) });
11978}
11979function Of() {
11980  return /* @__PURE__ */ c(C, { children: [
11981    /* @__PURE__ */ i(a, { _fgT: Ef, _fgS: "kvg1", _fgB: 1790697589414, "data-fg-kvg1": ":0:/src/app/pages/DrivigoPage.tsx:10:7:399:15:e:DrivigoHero::::::BqCo" }),
11982    /* @__PURE__ */ i(a, { _fgT: Df, _fgS: "kvg2", _fgB: 1790697589414, "data-fg-kvg2": ":0:/src/app/pages/DrivigoPage.tsx:11:7:421:19:e:DrivigoFeatures::::::Msy" }),
11983    /* @__PURE__ */ i(a, { _fgT: zf, _fgS: "kvg3", _fgB: 1790697589414, "data-fg-kvg3": ":0:/src/app/pages/DrivigoPage.tsx:12:7:447:22:e:DrivigoIntegration::::::DrEM" }),
11984    /* @__PURE__ */ i(a, { _fgT: jf, _fgS: "kvg4", _fgB: 1790697589414, "data-fg-kvg4": ":0:/src/app/pages/DrivigoPage.tsx:13:7:476:14:e:DrivigoCTA::::::CsXm" }),
11985    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "kvg5", _fgB: 1790697589414, "data-fg-kvg5": ":0:/src/app/pages/DrivigoPage.tsx:14:7:497:10:e:Footer::::::B1Vv" })
11986  ] });
11987}
11988function Vf() {
11989  const { openContactModal: t } = Z();
11990  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "bmek0", _fgB: 1790697590136, _fgD: !0, className: "relative min-h-[90vh] flex items-center bg-slate-900 overflow-hidden", "data-fg-bmek0": ":0:/src/app/components/transigo/TransigoHero.tsx:9:5:240:4817:e:section:xtete:1", children: [
11991    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek2", _fgB: 1790697590136, className: "absolute inset-0 z-0", "data-fg-bmek2": ":0:/src/app/components/transigo/TransigoHero.tsx:11:7:368:614:e:div:ete", children: [
11992      /* @__PURE__ */ i(
11993        a,
11994        {
11995          _fgT: "img",
11996          _fgS: "bmek3",
11997          _fgB: 1790697590136,
11998          src: "https://images.unsplash.com/photo-1694696671898-12a142b3868d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjb21tdXRlciUyMHVzaW5nJTIwc21hcnRwaG9uZSUyMHRyYW5zaXQlMjBhcHAlMjBidXMlMjBzdG9wfGVufDF8fHx8MTc3MTAwNjk3MXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
11999          alt: "Commuter using Transigo App",
12000          className: "w-full h-full object-cover opacity-30",
12001          "data-fg-bmek3": ":0:/src/app/components/transigo/TransigoHero.tsx:12:9:415:445:e:img"
12002        }
12003      ),
12004      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek4", _fgB: 1790697590136, className: "absolute inset-0 bg-gradient-to-r from-slate-900 via-slate-900/80 to-transparent", "data-fg-bmek4": ":0:/src/app/components/transigo/TransigoHero.tsx:17:9:869:100:e:div" })
12005    ] }),
12006    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek5", _fgB: 1790697590136, className: "container mx-auto px-6 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-bmek5": ":0:/src/app/components/transigo/TransigoHero.tsx:20:7:990:4052:e:div:etxte", children: [
12007      /* @__PURE__ */ c(
12008        a,
12009        {
12010          _fgT: m.div,
12011          _fgS: "bmek6",
12012          _fgB: 1790697590136,
12013          initial: { opacity: 0, x: -50 },
12014          animate: { opacity: 1, x: 0 },
12015          transition: { duration: 0.8 },
12016          "data-fg-bmek6": ":0:/src/app/components/transigo/TransigoHero.tsx:21:9:1093:1554:e:motion.div:etetete",
12017          children: [
12018            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek7", _fgB: 1790697590136, className: "inline-block px-3 py-1 rounded-full bg-blue-500/20 border border-blue-400/30 text-blue-300 text-sm font-bold tracking-widest uppercase mb-6 backdrop-blur-sm", "data-fg-bmek7": ":0:/src/app/components/transigo/TransigoHero.tsx:26:11:1250:213:e:div:t", children: "Rider App" }),
12019            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "bmek9", _fgB: 1790697590136, className: "text-5xl md:text-7xl font-light text-white mb-6 font-[Space_Grotesk] leading-tight", "data-fg-bmek9": ":0:/src/app/components/transigo/TransigoHero.tsx:29:11:1474:231:e:h1:tete", children: [
12020              "Transigo: The ",
12021              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bmek11", _fgB: 1790697590136, "data-fg-bmek11": ":0:/src/app/components/transigo/TransigoHero.tsx:30:27:1600:6:e:br" }),
12022              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bmek12", _fgB: 1790697590136, className: "font-bold text-[#EFBB0F]", "data-fg-bmek12": ":0:/src/app/components/transigo/TransigoHero.tsx:31:13:1619:70:e:span:t", children: "All-in-One Rider App" })
12023            ] }),
12024            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bmek14", _fgB: 1790697590136, className: "text-xl text-slate-300 mb-8 leading-relaxed max-w-2xl", "data-fg-bmek14": ":0:/src/app/components/transigo/TransigoHero.tsx:33:11:1716:417:e:p:t", children: "The essential mobile application designed to put your entire transit network into the hands of every rider. As the customer-facing component of Dispatch 2.0, Transigo provides a seamless, intuitive experience for all service types — from Fixed Route bus lines and rail to flexible on-demand paratransit and microtransit." }),
12025            /* @__PURE__ */ c(
12026              a,
12027              {
12028                _fgT: "button",
12029                _fgS: "bmek16",
12030                _fgB: 1790697590136,
12031                onClick: t,
12032                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-[0_0_20px_rgba(0,86,179,0.5)] hover:shadow-[0_0_30px_rgba(0,86,179,0.7)] cursor-pointer",
12033                "data-fg-bmek16": ":0:/src/app/components/transigo/TransigoHero.tsx:37:11:2155:470:e:button:te",
12034                children: [
12035                  "Request a Demo",
12036                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "bmek18", _fgB: 1790697590136, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-bmek18": ":0:node_modules/lucide-react:42:13:2522:83:e:ArrowRight::::::s5N" })
12037                ]
12038              }
12039            )
12040          ]
12041        }
12042      ),
12043      /* @__PURE__ */ i(
12044        a,
12045        {
12046          _fgT: m.div,
12047          _fgS: "bmek20",
12048          _fgB: 1790697590136,
12049          initial: { opacity: 0, scale: 0.9 },
12050          animate: { opacity: 1, scale: 1 },
12051          transition: { delay: 0.3, duration: 0.8 },
12052          className: "hidden lg:block relative",
12053          "data-fg-bmek20": ":0:/src/app/components/transigo/TransigoHero.tsx:47:9:2722:2307:e:motion.div:xte",
12054          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek22", _fgB: 1790697590136, className: "relative rounded-[2.5rem] overflow-hidden border-8 border-slate-800 shadow-2xl bg-slate-800 aspect-[9/16] w-[320px] mx-auto rotate-[5deg] hover:rotate-0 transition-transform duration-700", "data-fg-bmek22": ":0:/src/app/components/transigo/TransigoHero.tsx:54:11:3006:2001:e:div:etxtetxtete", children: [
12055            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek23", _fgB: 1790697590136, className: "absolute inset-0 bg-gradient-to-br from-slate-700 to-slate-900 flex items-center justify-center", "data-fg-bmek23": ":0:/src/app/components/transigo/TransigoHero.tsx:55:14:3224:219:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bmek24", _fgB: 1790697590136, className: "text-slate-500 font-mono text-sm", "data-fg-bmek24": ":0:/src/app/components/transigo/TransigoHero.tsx:56:17:3354:69:e:span:t", children: "Transigo UI" }) }),
12056            /* @__PURE__ */ i(
12057              a,
12058              {
12059                _fgT: "img",
12060                _fgS: "bmek27",
12061                _fgB: 1790697590136,
12062                src: "https://images.unsplash.com/photo-1694696671898-12a142b3868d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjb21tdXRlciUyMHVzaW5nJTIwc21hcnRwaG9uZSUyMHRyYW5zaXQlMjBhcHAlMjBidXMlMjBzdG9wfGVufDF8fHx8MTc3MTAwNjk3MXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
12063                alt: "App Screen",
12064                className: "w-full h-full object-cover opacity-80 hover:opacity-100 transition-opacity duration-500",
12065                "data-fg-bmek27": ":0:/src/app/components/transigo/TransigoHero.tsx:59:14:3524:498:e:img"
12066              }
12067            ),
12068            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek29", _fgB: 1790697590136, className: "absolute top-12 left-4 right-4 p-4 bg-white/90 backdrop-blur-md rounded-xl shadow-lg", "data-fg-bmek29": ":0:/src/app/components/transigo/TransigoHero.tsx:66:14:4092:494:e:div:ete", children: [
12069              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek30", _fgB: 1790697590136, className: "flex justify-between items-center mb-2", "data-fg-bmek30": ":0:/src/app/components/transigo/TransigoHero.tsx:67:16:4210:225:e:div:ete", children: [
12070                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek31", _fgB: 1790697590136, className: "h-2 w-1/3 bg-slate-300 rounded", "data-fg-bmek31": ":0:/src/app/components/transigo/TransigoHero.tsx:68:18:4284:54:e:div:_" }),
12071                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek32", _fgB: 1790697590136, className: "h-2 w-4 bg-slate-300 rounded-full", "data-fg-bmek32": ":0:/src/app/components/transigo/TransigoHero.tsx:69:18:4356:57:e:div:_" })
12072              ] }),
12073              /* @__P
12073URE__ */ i(a, { _fgT: "div", _fgS: "bmek33", _fgB: 1790697590136, className: "h-8 w-full bg-slate-100 rounded mb-2 flex items-center px-2 text-xs text-slate-400", "data-fg-bmek33": ":0:/src/app/components/transigo/TransigoHero.tsx:71:16:4451:115:e:div:t", children: "Where to?" })
12074            ] }),
12075            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bmek35", _fgB: 1790697590136, className: "absolute bottom-8 left-4 right-4 p-4 bg-[#0056B3] backdrop-blur-md rounded-xl shadow-lg text-white", "data-fg-bmek35": ":0:/src/app/components/transigo/TransigoHero.tsx:74:14:4601:389:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bmek36", _fgB: 1790697590136, className: "flex justify-between items-center", "data-fg-bmek36": ":0:/src/app/components/transigo/TransigoHero.tsx:75:16:4733:237:e:div:ete", children: [
12076              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bmek37", _fgB: 1790697590136, className: "font-bold text-sm", "data-fg-bmek37": ":0:/src/app/components/transigo/TransigoHero.tsx:76:19:4803:58:e:span:t", children: "Bus 42 arriving" }),
12077              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bmek39", _fgB: 1790697590136, className: "text-xs bg-white/20 px-2 py-1 rounded", "data-fg-bmek39": ":0:/src/app/components/transigo/TransigoHero.tsx:77:19:4880:68:e:span:t", children: "2 min" })
12078            ] }) })
12079          ] })
12080        }
12081      )
12082    ] })
12083  ] });
12084}
12085const Hf = [
12086  {
12087    icon: El,
12088    title: "Real-Time Vehicle Tracking",
12089    desc: "Allows riders to see the exact, live location of their bus, van, or shuttle on a map with predicted arrival times.",
12090    benefit: "Eliminates guesswork and reduces waiting time at stops."
12091  },
12092  {
12093    icon: I3,
12094    title: "Multi-Service Trip Planning",
12095    desc: "Offers comprehensive trip planning across all service types: fixed route, paratransit, and microtransit.",
12096    benefit: "Provides an integrated, flexible travel solution regardless of service needed."
12097  },
12098  {
12099    icon: $7,
12100    title: "On-Demand Ride Booking",
12101    desc: "Integrated tools for booking, modifying, and canceling rides for paratransit and microtransit services directly in the app.",
12102    benefit: "Enables quick and convenient access to flexible transportation options."
12103  },
12104  {
12105    icon: U7,
12106    title: "In-App Payment & Fare Management",
12107    desc: "Securely store payment information and purchase fares, passes, or tickets for any transit service.",
12108    benefit: "Simplifies the boarding process and reduces cash handling."
12109  },
12110  {
12111    icon: H7,
12112    title: "Service Alerts & Notifications",
12113    desc: "Provides instant alerts for service delays, route changes, or other critical operational updates.",
12114    benefit: "Keeps riders informed so they can make proactive travel adjustments."
12115  },
12116  {
12117    icon: _2,
12118    title: "Customizable Accessibility",
12119    desc: "Features built-in accessibility options, including screen reader compatibility and high-contrast views.",
12120    benefit: "Ensures a positive experience for all members of the community."
12121  }
12122];
12123function Zf() {
12124  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dlyl0", _fgB: 1790697590153, _fgD: !0, className: "relative py-24 bg-white", "data-fg-dlyl0": ":0:/src/app/components/transigo/TransigoFeatures.tsx:52:5:1879:2176:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dlyl1", _fgB: 1790697590153, className: "max-w-7xl mx-auto px-6", "data-fg-dlyl1": ":0:/src/app/components/transigo/TransigoFeatures.tsx:53:7:1931:2109:e:div:ete", children: [
12125    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dlyl2", _fgB: 1790697590153, className: "text-center mb-20", "data-fg-dlyl2": ":0:/src/app/components/transigo/TransigoFeatures.tsx:55:9:1989:584:e:div:e", children: /* @__PURE__ */ c(
12126      a,
12127      {
12128        _fgT: m.p,
12129        _fgS: "dlyl3",
12130        _fgB: 1790697590153,
12131        initial: { opacity: 0, y: 20 },
12132        whileInView: { opacity: 1, y: 0 },
12133        viewport: { once: !0 },
12134        className: "text-2xl md:text-3xl text-slate-800 max-w-4xl mx-auto leading-relaxed font-light",
12135        "data-fg-dlyl3": ":0:/src/app/components/transigo/TransigoFeatures.tsx:56:11:2035:523:e:motion.p:te",
12136        children: [
12137          "Transigo is a powerful multitool, ensuring riders have everything they need to plan, book, track, and pay for their journey — ",
12138          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dlyl5", _fgB: 1790697590153, className: "font-semibold text-[#0056B3]", "data-fg-dlyl5": ":0:/src/app/components/transigo/TransigoFeatures.tsx:62:139:2430:106:e:span:t", children: "optimizing their experience from point A to point B." })
12139        ]
12140      }
12141    ) }),
12142    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dlyl7", _fgB: 1790697590153, className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", "data-fg-dlyl7": ":0:/src/app/components/transigo/TransigoFeatures.tsx:66:9:2583:1443:e:div:x", children: Hf.map((t, e) => /* @__PURE__ */ c(
12143      a,
12144      {
12145        _fgT: m.div,
12146        _fgS: "dlyl9",
12147        _fgB: 1790697590153,
12148        initial: { opacity: 0, y: 20 },
12149        whileInView: { opacity: 1, y: 0 },
12150        viewport: { once: !0 },
12151        transition: { delay: e * 0.1 },
12152        className: "bg-slate-50 rounded-3xl p-8 border border-slate-100 hover:shadow-xl hover:border-blue-100 transition-all duration-300 group",
12153        "data-fg-dlyl9": ":0:/src/app/components/transigo/TransigoFeatures.tsx:68:13:2696:1301:e:motion.div:etetete",
12154        children: [
12155          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dlyl10", _fgB: 1790697590153, className: "w-14 h-14 rounded-2xl bg-white text-[#0056B3] shadow-sm flex items-center justify-center mb-6 group-hover:bg-[#0056B3] group-hover:text-white transition-colors", "data-fg-dlyl10": ":0:/src/app/components/transigo/TransigoFeatures.tsx:76:15:3089:241:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "dlyl11", _fgB: 1790697590153, size: 28, "data-fg-dlyl11": ":0:/src/app/components/transigo/TransigoFeatures.tsx:77:17:3283:26:e:feature.icon" }) }),
12156          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dlyl12", _fgB: 1790697590153, className: "text-xl font-bold text-slate-900 mb-4 min-h-[56px] flex items-center", "data-fg-dlyl12": ":0:/src/app/components/transigo/TransigoFeatures.tsx:80:15:3360:137:e:h3:x", children: t.title }),
12157          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dlyl14", _fgB: 1790697590153, className: "text-slate-600 mb-6 leading-relaxed", "data-fg-dlyl14": ":0:/src/app/components/transigo/TransigoFeatures.tsx:84:15:3527:101:e:p:x", children: t.desc }),
12158          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dlyl16", _fgB: 1790697590153, className: "pt-6 border-t border-slate-200", "data-fg-dlyl16": ":0:/src/app/components/transigo/TransigoFeatures.tsx:88:15:3658:313:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "dlyl17", _fgB: 1790697590153, className: "text-sm font-medium text-slate-500", "data-fg-dlyl17": ":0:/src/app/components/transigo/TransigoFeatures.tsx:89:17:3723:227:e:p:etx", children: [
12159            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dlyl18", _fgB: 1790697590153, className: "text-[#EFBB0F] font-bold uppercase text-xs tracking-wider block mb-1", "data-fg-dlyl18": ":0:/src/app/components/transigo/TransigoFeatures.tsx:90:19:3792:101:e:span:t", children: "Benefit" }),
12160            t.benefit
12161          ] }) })
12162        ]
12163      },
12164      e
12165    )) })
12166  ] }) });
12167}
12168function Wf() {
12169  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "ddre0", _fgB: 1790697590143, _fgD: !0, className: "py-24 bg-slate-50 relative overflow-hidden", "data-fg-ddre0": ":0:/src/app/components/transigo/TransigoIntegration.tsx:6:5:161:5589:e:section:xtete:1", children: [
12170    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre2", _fgB: 1790697590143, className: "absolute bottom-0 left-0 w-[600px] h-[600px] bg-[#EFBB0F] rounded-full blur-[120px] opacity-10 pointer-events-none -translate-x-1/2 translate-y-1/2", "data-fg-ddre2": ":0:/src/app/components/transigo/TransigoIntegration.tsx:9:7:273:167:e:div" }),
12171    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre3", _fgB: 1790697590143, className: "max-w-7xl mx-auto px-6 relative z-10", "data-fg-ddre3": ":0:/src/app/components/transigo/TransigoIntegration.tsx:11:7:454:5281:e:div:xtetxtetxte", children: [
12172      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre5", _fgB: 1790697590143, className: "grid lg:grid-cols-2 gap-16 items-center mb-24", "data-fg-ddre5": ":0:/src/app/components/transigo/TransigoIntegration.tsx:14:9:567:3765:e:div:ete", children: [
12173        /* @__PURE__ */ c(
12174          a,
12175          {
12176            _fgT: m.div,
12177            _fgS: "ddre6",
12178            _fgB: 1790697590143,
12179            initial: { opacity: 0, x: -30 },
12180            whileInView: { opacity: 1, x: 0 },
12181            viewport: { once: !0 },
12182            "data-fg-ddre6": ":0:/src/app/components/transigo/TransigoIntegration.tsx:15:11:641:1630:e:motion.div:etetete",
12183            children: [
12184              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre7", _fgB: 1790697590143, className: "flex items-center gap-3 text-[#0056B3] font-bold tracking-widest uppercase mb-4 text-sm", "data-fg-ddre7": ":0:/src/app/components/transigo/TransigoIntegration.tsx:20:13:810:208:e:div:ete", children: [
12185                /* @__PURE__ */ i(a, { _fgT: X7, _fgS: "ddre8", _fgB: 1790697590143, size: 18, "data-fg-ddre8": ":0:node_modules/lucide-react:21:15:930:21:e:Network::::::D3yW" }),
12186                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre9", _fgB: 1790697590143, "data-fg-ddre9": ":0:/src/app/components/transigo/TransigoIntegration.tsx:22:15:966:33:e:span:t", children: "Full Synchronization" })
12187              ] }),
12188              /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "ddre11", _fgB: 1790697590143, className: "text-4xl md:text-5xl font-light text-slate-900 mb-8 font-[Space_Grotesk]", "data-fg-ddre11": ":0:/src/app/components/transigo/TransigoIntegration.tsx:24:13:1031:204:e:h2:tete", children: [
12189                "Connected to the ",
12190                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "ddre13", _fgB: 1790697590143, "data-fg-ddre13": ":0:/src/app/components/transigo/TransigoIntegration.tsx:25:32:1152:6:e:br" }),
12191                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre14", _fgB: 1790697590143, className: "font-bold", "data-fg-ddre14": ":0:/src/app/components/transigo/TransigoIntegration.tsx:26:15:1173:44:e:span:t", children: "Ecosystem" })
12192              ] }),
12193              /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "ddre16", _fgB: 1790697590143, className: "text-lg text-slate-600 leading-relaxed mb-6", "data-fg-ddre16": ":0:/src/app/components/transigo/TransigoIntegration.tsx:28:13:1248:380:e:p:tet", children: [
12194                "All ride requests, status updates, and vehicle location data are relayed instantly between Transigo and the core ",
12195                /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "ddre18", _fgB: 1790697590143, className: "text-slate-800", "data-fg-ddre18": ":0:/src/app/components/transigo/TransigoIntegration.tsx:29:128:1435:56:e:strong:t", children: "Dispatch 2.0" }),
12196                " system, ensuring that Intelligent Dispatch & Scheduling algorithms are always running on the most accurate information."
12197              ] }),
12198              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre21", _fgB: 1790697590143, className: "flex items-center gap-4 mt-8", "data-fg-ddre21": ":0:/src/app/components/transigo/TransigoIntegration.tsx:32:13:1654:593:e:div:etete", children: [
12199                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre22", _fgB: 1790697590143, className: "flex items-center gap-2 px-4 py-2 bg-slate-200 rounded-lg text-slate-700 font-semibold text-sm", "data-fg-ddre22": ":0:/src/app/components/transigo/TransigoIntegration.tsx:33:15:1715:195:e:div:et", children: [
12200                  /* @__PURE__ */ i(a, { _fgT: cc, _fgS: "ddre23", _fgB: 1790697590143, size: 16, "data-fg-ddre23": ":0:node_modules/lucide-react:34:17:1844:19:e:Apple::::::BDCi" }),
12201                  "App Store"
12202                ] }),
12203                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre25", _fgB: 1790697590143, className: "flex items-center gap-2 px-4 py-2 bg-slate-200 rounded-lg text-slate-700 font-semibold text-sm", "data-fg-ddre25": ":0:/src/app/components/transigo/TransigoIntegration.tsx:37:15:1925:197:e:div:et", children: [
12204                  /* @__PURE__ */ i(a, { _fgT: Md, _fgS: "ddre26", _fgB: 1790697590143, size: 16, "data-fg-ddre26": ":0:node_modules/lucide-react:38:17:2054:19:e:Store::::::EKAh" }),
12205                  "Google Play"
12206                ] }),
12207                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre28", _fgB: 1790697590143, className: "text-sm text-slate-500 italic ml-2", "data-fg-ddre28": ":0:/src/app/components/transigo/TransigoIntegration.tsx:41:15:2137:91:e:span:t", children: "Transigo is natively available." })
12208              ] })
12209            ]
12210          }
12211        ),
12212        /* @__PURE__ */ i(
12213          a,
12214          {
12215            _fgT: m.div,
12216            _fgS: "ddre30",
12217            _fgB: 1790697590143,
12218            initial: { opacity: 0, scale: 0.95 },
12219            whileInView: { opacity: 1, scale: 1 },
12220            viewport: { once: !0 },
12221            className: "bg-white border border-slate-200 rounded-3xl p-8 shadow-xl",
12222            "data-fg-ddre30": ":0:/src/app/components/transigo/TransigoIntegration.tsx:45:11:2283:2034:e:motion.div:xte",
12223            children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre32", _fgB: 1790697590143, className: "relative flex flex-col items-center justify-center py-8", "data-fg-ddre32": ":0:/src/app/components/transigo/TransigoIntegration.tsx:52:14:2600:1693:e:div:xtetxtetxtetxtetxte", children: [
12224              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre34", _fgB: 1790697590143, className: "bg-[#0056B3] text-white p-4 rounded-2xl shadow-lg w-48 text-center relative z-10", "data-fg-ddre34": ":0:/src/app/components/transigo/TransigoIntegration.tsx:54:17:2725:316:e:div:etete", children: [
12225                /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "ddre35", _fgB: 1790697590143, className: "mx-auto mb-2", "data-fg-ddre35": ":0:node_modules/lucide-react:55:19:2842:39:e:Smartphone::::::DHxb" }),
12226                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre36", _fgB: 1790697590143, className: "font-bold", "data-fg-ddre36": ":0:/src/app/components/transigo/TransigoIntegration.tsx:56:19:2900:41:e:div:t", children: "Transigo" }),
12227                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre38", _fgB: 1790697590143, className: "text-xs text-blue-200", "data-fg-ddre38": ":0:/src/app/components/transigo/TransigoIntegration.tsx:57:19:2960:58:e:div:t", children: "Rider Request" })
12228              ] }),
12229              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre41", _fgB: 1790697590143, className: "h-16 w-0.5 bg-slate-200 my-2 relative overflow-hidden", "data-fg-ddre41": ":0:/src/app/components/transigo/TransigoIntegration.tsx:61:17:3104:195:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre42", _fgB: 1790697590143, className: "absolute top-0 left-0 w-full h-1/2 bg-[#EFBB0F] animate-pulse", "data-fg-ddre42": ":0:/src/app/components/transigo/TransigoIntegration.tsx:62:20:3195:81:e:div" }) }),
12230              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre44", _fgB: 1790697590143, className: "bg-slate-800 text-white p-6 rounded-2xl shadow-lg w-64 text-center relative z-10", "data-fg-ddre44": ":0:/src/app/components/transigo/TransigoIntegration.tsx:66:17:3355:290:e:div:ete", children: [
12231                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre45", _fgB: 1790697590143, className: "font-bold text-lg mb-1", "data-fg-ddre45": ":0:/src/app/components/transigo/TransigoIntegration.tsx:67:19:3472:58:e:div:t", children: "Dispatch 2.0" }),
12232                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre47", _fgB: 1790697590143, className: "text-xs text-slate-400", "data-fg-ddre47": ":0:/src/app/components/transigo/TransigoIntegration.tsx:68:19:3549:73:e:div:t", children: "Intelligent Scheduling Core" })
12233              ] }),
12234              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre50", _fgB: 1790697590143, className: "h-16 w-0.5 bg-slate-200 my-2 relative overflow-hidden", "data-fg-ddre50": ":0:/src/app/components/transigo/TransigoIntegration.tsx:72:18:3710:198:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre51", _fgB: 1790697590143, className: "absolute bottom-0 left-0 w-full h-1/2 bg-[#EFBB0F] animate-pulse", "data-fg-ddre51": ":0:/src/app/components/transigo/TransigoIntegration.tsx:73:20:3801:84:e:div" }) }),
12235              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddre53", _fgB: 1790697590143, className: "bg-white border-2 border-[#EFBB0F] text-slate-800 p-4 rounded-2xl shadow-sm w-48 text-center relative z-10", "data-fg-ddre53": ":0:/src/app/components/transigo/TransigoIntegration.tsx:77:17:3963:310:e:div:ete", children: [
12236                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre54", _fgB: 1790697590143, className: "font-bold text-[#EFBB0F]", "data-fg-ddre54": ":0:/src/app/components/transigo/TransigoIntegration.tsx:78:20:4107:63:e:div:t", children: "Optimized Route" }),
12237                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre56", _fgB: 1790697590143, className: "text-xs text-slate-500", "data-fg-ddre56": ":0:/src/app/components/transigo/TransigoIntegration.tsx:79:20:4190:60:e:div:t", children: "Instant Update" })
12238              ] })
12239            ] })
12240          }
12241        )
12242      ] }),
12243      /* @__PURE__ */ i(
12244        a,
12245        {
12246          _fgT: m.div,
12247          _fgS: "ddre59",
12248          _fgB: 1790697590143,
12249          initial: { opacity: 0, y: 20 },
12250          whileInView: { opacity: 1, y: 0 },
12251          viewport: { once: !0 },
12252          className: "bg-gradient-to-r from-[#0056B3] to-[#004494] rounded-3xl p-10 md:p-14 text-center border border-white/10 shadow-2xl relative overflow-hidden mb-16",
12253          "data-fg-ddre59": ":0:/src/app/components/transigo/TransigoIntegration.tsx:86:9:4376:786:e:motion.div:e",
12254          children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddre60", _fgB: 1790697590143, className: "relative z-10", "data-fg-ddre60": ":0:/src/app/components/transigo/TransigoIntegration.tsx:92:11:4700:440:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "h3", _fgS: "ddre61", _fgB: 1790697590143, className: "text-2xl md:text-3xl font-light font-[Space_Grotesk] leading-relaxed text-white", "data-fg-ddre61": ":0:/src/app/components/transigo/TransigoIntegration.tsx:93:13:4744:379:e:h3:tetete", children: [
12255            '"Riders use ',
12256            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre63", _fgB: 1790697590143, className: "font-bold", "data-fg-ddre63": ":0:/src/app/components/transigo/TransigoIntegration.tsx:94:27:4867:43:e:span:t", children: "Transigo" }),
12257            ". Drivers use ",
12258            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre66", _fgB: 1790697590143, className: "font-bold", "data-fg-ddre66": ":0:/src/app/components/transigo/TransigoIntegration.tsx:95:27:4939:42:e:span:t", children: "Drivigo" }),
12259            ".",
12260            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddre69", _fgB: 1790697590143, className: "block mt-2 text-xl md:text-2xl text-blue-200 font-normal", "data-fg-ddre69": ":0:/src/app/components/transigo/TransigoIntegration.tsx:96:15:4998:107:e:span:t", children: 'Two sides of every ride."' })
12261          ] }) })
12262        }
12263      ),
12264      /* @__PURE__ */ i(
12265        a,
12266        {
12267          _fgT: m.div,
12268          _fgS: "ddre72",
12269          _fgB: 1790697590143,
12270          initial: { opacity: 0 },
12271          whileInView: { opacity: 1 },
12272          viewport: { once: !0 },
12273          className: "text-center max-w-3xl mx-auto",
12274          "data-fg-ddre72": ":0:/src/app/components/transigo/TransigoIntegration.tsx:102:9:5201:520:e:motion.div:e",
12275          children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddre73", _fgB: 1790697590143, className: "text-xl md:text-2xl font-light text-slate-700 leading-relaxed", "data-fg-ddre73": ":0:/src/app/components/transigo/TransigoIntegration.tsx:108:11:5396:303:e:p:t", children: "With Transigo, your transit agency gains the ability to fully customize the rider experience to meet any operational need, creating a flexible, all-in-one app that drives ridership and satisfaction." })
12276        }
12277      )
12278    ] })
12279  ] });
12280}
12281function $f() {
12282  const { openContactModal: t } = Z();
12283  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "daci0", _fgB: 1790697590155, _fgD: !0, id: "contact", className: "relative py-24 bg-zinc-50 border-t border-slate-200", "data-fg-daci0": ":0:/src/app/components/transigo/TransigoCTA.tsx:9:5:239:1178:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "daci1", _fgB: 1790697590155, className: "max-w-4xl mx-auto px-6 text-center", "data-fg-daci1": ":0:/src/app/components/transigo/TransigoCTA.tsx:10:7:332:1070:e:div:ete", children: [
12284    /* @__PURE__ */ c(
12285      a,
12286      {
12287        _fgT: m.h2,
12288        _fgS: "daci2",
12289        _fgB: 1790697590155,
12290        initial: { opacity: 0, y: 20 },
12291        whileInView: { opacity: 1, y: 0 },
12292        viewport: { once: !0 },
12293        className: "text-4xl md:text-5xl font-light text-slate-900 mb-8 font-[Space_Grotesk]",
12294        "data-fg-daci2": ":0:/src/app/components/transigo/TransigoCTA.tsx:11:9:393:382:e:motion.h2:tete",
12295        children: [
12296          "Give Your Riders the ",
12297          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "daci4", _fgB: 1790697590155, "data-fg-daci4": ":0:/src/app/components/transigo/TransigoCTA.tsx:17:32:663:6:e:br" }),
12298          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "daci5", _fgB: 1790697590155, className: "font-bold text-[#EFBB0F]", "data-fg-daci5": ":0:/src/app/components/transigo/TransigoCTA.tsx:18:11:680:74:e:span:t", children: "Experience They Deserve." })
12299        ]
12300      }
12301    ),
12302    /* @__PURE__ */ i(
12303      a,
12304      {
12305        _fgT: m.div,
12306        _fgS: "daci7",
12307        _fgB: 1790697590155,
12308        initial: { opacity: 0, scale: 0.9 },
12309        whileInView: { opacity: 1, scale: 1 },
12310        viewport: { once: !0 },
12311        "data-fg-daci7": ":0:/src/app/components/transigo/TransigoCTA.tsx:21:9:785:604:e:motion.div:e",
12312        children: /* @__PURE__ */ c(
12313          a,
12314          {
12315            _fgT: "button",
12316            _fgS: "daci8",
12317            _fgB: 1790697590155,
12318            onClick: t,
12319            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-2xl cursor-pointer",
12320            "data-fg-daci8": ":0:/src/app/components/transigo/TransigoCTA.tsx:26:11:949:418:e:button:te",
12321            children: [
12322              "Schedule a Demo",
12323              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "daci10", _fgB: 1790697590155, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-daci10": ":0:node_modules/lucide-react:31:13:1264:83:e:ArrowRight::::::s5N" })
12324            ]
12325          }
12326        )
12327      }
12328    )
12329  ] }) });
12330}
12331function qf() {
12332  return /* @__PURE__ */ c(C, { children: [
12333    /* @__PURE__ */ i(a, { _fgT: Vf, _fgS: "chnn1", _fgB: 1790697589416, "data-fg-chnn1": ":0:/src/app/pages/TransigoPage.tsx:10:7:412:16:e:TransigoHero::::::DASZ" }),
12334    /* @__PURE__ */ i(a, { _fgT: Zf, _fgS: "chnn2", _fgB: 1790697589416, "data-fg-chnn2": ":0:/src/app/pages/TransigoPage.tsx:11:7:435:20:e:TransigoFeatures::::::BFG9" }),
12335    /* @__PURE__ */ i(a, { _fgT: Wf, _fgS: "chnn3", _fgB: 1790697589416, "data-fg-chnn3": ":0:/src/app/pages/TransigoPage.tsx:12:7:462:23:e:TransigoIntegration::::::ph9" }),
12336    /* @__PURE__ */ i(a, { _fgT: $f, _fgS: "chnn4", _fgB: 1790697589416, "data-fg-chnn4": ":0:/src/app/pages/TransigoPage.tsx:13:7:492:15:e:TransigoCTA::::::Bbbp" }),
12337    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "chnn5", _fgB: 1790697589416, "data-fg-chnn5": ":0:/src/app/pages/TransigoPage.tsx:14:7:514:10:e:Footer::::::B1Vv" })
12338  ] });
12339}
12340const Uf = [
12341  { icon: S1, title: "Route Planning", subtitle: "Visual map-based design", color: "text-[#EFBB0F]", bg: "bg-[#EFBB0F]/10" },
12342  { icon: P3, title: "Blocking & Scheduling", subtitle: "One-click timetables", color: "text-[#0056B3]", bg: "bg-[#0056B3]/10" },
12343  { icon: Q5, title: "Runcutting", subtitle: "Split routes into runs", color: "text-emerald-400", bg: "bg-emerald-400/10" },
12344  { icon: h1, title: "Driver Scheduling", subtitle: "Assign & balance hours", color: "text-purple-400", bg: "bg-purple-400/10" },
12345  { icon: N3, title: "Live Dashboard", subtitle: "Real-time fleet tracking", color: "text-[#0056B3]", bg: "bg-[#0056B3]/10" },
12346  { icon: e0, title: "Driver MDT", subtitle: "Tablet-based nav & ID", color: "text-[#EFBB0F]", bg: "bg-[#EFBB0F]/10" },
12347  { icon: X5, title: "GTFS Integration", subtitle: "Publish to Google Maps", color: "text-emerald-400", bg: "bg-emerald-400/10" },
12348  { icon: ai, title: "Microtransit Flex", subtitle: "Deviated fixed route", color: "text-purple-400", bg: "bg-purple-400/10" }
12349];
12350function Gf() {
12351  const { openContactModal: t } = Z();
12352  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "c9yf0", _fgB: 1790697590629, _fgD: !0, className: "relative min-h-[90vh] flex items-center bg-[#0B1B2B] overflow-hidden", "data-fg-c9yf0": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:21:5:1426:3845:e:section:xtetete:1", children: [
12353    /* @__PURE__ */ i(
12354      a,
12355      {
12356        _fgT: "div",
12357        _fgS: "c9yf2",
12358        _fgB: 1790697590629,
12359        className: "absolute top-0 right-0 w-[600px] h-[600px] rounded-full opacity-20 blur-[120px]",
12360        style: { background: "radial-gradient(circle, #EFBB0F 0%, transparent 70%)" },
12361        "data-fg-c9yf2": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:23:7:1554:200:e:div"
12362      }
12363    ),
12364    /* @__PURE__ */ i(
12365      a,
12366      {
12367        _fgT: "div",
12368        _fgS: "c9yf3",
12369        _fgB: 1790697590629,
12370        className: "absolute bottom-0 left-0 w-[500px] h-[500px] rounded-full opacity-15 blur-[120px]",
12371        style: { background: "radial-gradient(circle, #0056B3 0%, transparent 70%)" },
12372        "data-fg-c9yf3": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:27:7:1761:202:e:div"
12373      }
12374    ),
12375    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf4", _fgB: 1790697590629, className: "container mx-auto px-6 relative z-10 py-28 md:py-32", "data-fg-c9yf4": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:32:7:1971:3285:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c9yf5", _fgB: 1790697590629, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-c9yf5": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:33:9:2049:3194:e:div:xtetxte", children: [
12376      /* @__PURE__ */ c(
12377        a,
12378        {
12379          _fgT: m.div,
12380          _fgS: "c9yf7",
12381          _fgB: 1790697590629,
12382          initial: { opacity: 0, y: 30 },
12383          animate: { opacity: 1, y: 0 },
12384          transition: { duration: 0.7 },
12385          "data-fg-c9yf7": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:35:11:2148:1852:e:motion.div:etetetete",
12386          children: [
12387            /* @__PURE__ */ i(a, { _fgT: E, _fgS: "c9yf8", _fgB: 1790697590629, href: "/all-in-one-platform", "data-fg-c9yf8": ":0:node_modules/wouter:40:13:2314:300:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "c9yf9", _fgB: 1790697590629, className: "inline-flex items-center gap-2 text-slate-400 text-sm mb-8 cursor-pointer hover:text-white transition-colors", "data-fg-c9yf9": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:41:15:2363:231:e:span:et", children: [
12388              /* @__PURE__ */ i(a, { _fgT: O1, _fgS: "c9yf10", _fgB: 1790697590629, size: 14, "data-fg-c9yf10": ":0:node_modules/lucide-react:42:17:2507:23:e:ArrowLeft::::::EIC8" }),
12389              "Back to Platform Overview"
12390            ] }) }),
12391            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf12", _fgB: 1790697590629, className: "inline-block px-4 py-1.5 rounded-full border border-[#EFBB0F]/60 text-[#EFBB0F] text-xs tracking-widest uppercase mb-6", "data-fg-c9yf12": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:47:13:2628:181:e:div:t", children: "FIXED ROUTE" }),
12392            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "c9yf14", _fgB: 1790697590629, className: "text-4xl md:text-5xl lg:text-6xl text-white mb-6 leading-[1.15] font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-c9yf14": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:51:13:2823:308:e:h1:tete", children: [
12393              "Plan It. Run It.",
12394              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c9yf16", _fgB: 1790697590629, "data-fg-c9yf16": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:53:15:2998:6:e:br" }),
12395              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c9yf17", _fgB: 1790697590629, className: "text-[#EFBB0F] italic font-[Playfair_Display]", "data-fg-c9yf17": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:54:15:3019:94:e:span:t", children: "Track Every Mile of It." })
12396            ] }),
12397            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c9yf19", _fgB: 1790697590629, className: "text-lg text-slate-300 mb-10 leading-relaxed max-w-xl", "data-fg-c9yf19": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:57:13:3145:345:e:p:t", children: "A complete toolset for scheduled transit service. Build routes graphically, generate blocks and timetables, assign drivers, monitor your fleet live, and publish GTFS feeds. All inside the same platform that runs your demand-response operations." }),
12398            /* @__PURE__ */ c(
12399              a,
12400              {
12401                _fgT: "button",
12402                _fgS: "c9yf21",
12403                _fgB: 1790697590629,
12404                onClick: t,
12405                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
12406                style: { fontWeight: 600 },
12407                "data-fg-c9yf21": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:61:13:3504:472:e:button:te",
12408                children: [
12409                  "Schedule a Meeting",
12410                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "c9yf23", _fgB: 1790697590629, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-c9yf23": ":0:node_modules/lucide-react:67:15:3871:83:e:ArrowRight::::::s5N" })
12411                ]
12412              }
12413            )
12414          ]
12415        }
12416      ),
12417      /* @__PURE__ */ i(
12418        a,
12419        {
12420          _fgT: m.div,
12421          _fgS: "c9yf25",
12422          _fgB: 1790697590629,
12423          initial: { opacity: 0, y: 30 },
12424          animate: { opacity: 1, y: 0 },
12425          transition: { duration: 0.7, delay: 0.2 },
12426          className: "hidden lg:block",
12427          "data-fg-c9yf25": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:72:11:4061:1167:e:motion.div:e",
12428          children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf26", _fgB: 1790697590629, className: "grid grid-cols-2 gap-3", "data-fg-c9yf26": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:78:13:4279:925:e:div:x", children: Uf.map((e, s) => /* @__PURE__ */ c(
12429            a,
12430            {
12431              _fgT: m.div,
12432              _fgS: "c9yf28",
12433              _fgB: 1790697590629,
12434              initial: { opacity: 0, scale: 0.95 },
12435              animate: { opacity: 1, scale: 1 },
12436              transition: { delay: 0.3 + s * 0.06 },
12437              className: "bg-[#0F2A3F] border border-slate-700/50 rounded-xl p-4 hover:border-slate-600 transition-all duration-300 group",
12438              "data-fg-c9yf28": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:80:17:4381:786:e:motion.div:etete",
12439              children: [
12440                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf29", _fgB: 1790697590629, className: `w-9 h-9 rounded-lg ${e.bg} ${e.color} flex items-center justify-center mb-3`, "data-fg-c9yf29": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:87:19:4763:186:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: e.icon, _fgS: "c9yf30", _fgB: 1790697590629, size: 18, strokeWidth: 2, "data-fg-c9yf30": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:88:21:4885:39:e:card.icon" }) }),
12441                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf31", _fgB: 1790697590629, className: "text-white text-sm", style: { fontWeight: 600 }, "data-fg-c9yf31": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:90:19:4968:82:e:div:x", children: e.title }),
12442                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c9yf33", _fgB: 1790697590629, className: "text-slate-400 text-xs mt-0.5", "data-fg-c9yf33": ":0:/src/app/components/fixed-route/FixedRouteHero.tsx:91:19:5069:68:e:div:x", children: e.subtitle })
12443              ]
12444            },
12445            s
12446          )) })
12447        }
12448      )
12449    ] }) })
12450  ] });
12451}
12452const Li = globalThis.__GLOBALS__.getAssetURL("8b97f5656b20b72fe7680318eda1bb4253ea3624.png"), ci = globalThis.__GLOBALS__.getAssetURL("09e49eb03334eed195e52f0d0619b6cc67b32faa.png"), t0 = globalThis.__GLOBALS__.getAssetURL("7634769170bbfb0241d21bd2db527d2a4fcbbe86.png");
12453function a0({ src: t, alt: e, onClose: s }) {
12454  return /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "cvv80", _fgB: 1790697590647, _fgD: !0, "data-fg-cvv80": ":0:node_modules/motion:13:5:698:984:e:AnimatePresence:e:1::::DAs4", children: /* @__PURE__ */ c(
12455    a,
12456    {
12457      _fgT: m.div,
12458      _fgS: "cvv81",
12459      _fgB: 1790697590647,
12460      initial: { opacity: 0 },
12461      animate: { opacity: 1 },
12462      exit: { opacity: 0 },
12463      className: "fixed inset-0 z-[100] flex items-center justify-center bg-black/90 backdrop-blur-sm p-4 md:p-8 cursor-zoom-out",
12464      onClick: s,
12465      "data-fg-cvv81": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:14:7:722:937:e:motion.div:ete",
12466      children: [
12467        /* @__PURE__ */ i(
12468          a,
12469          {
12470            _fgT: "button",
12471            _fgS: "cvv82",
12472            _fgB: 1790697590647,
12473            className: "absolute top-6 right-6 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white transition-colors z-10",
12474            onClick: s,
12475            "data-fg-cvv82": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:21:9:1003:215:e:button:e",
12476            children: /* @__PURE__ */ i(a, { _fgT: D3, _fgS: "cvv83", _fgB: 1790697590647, size: 24, "data-fg-cvv83": ":0:node_modules/lucide-react:25:11:1185:15:e:X::::::TvS" })
12477          }
12478        ),
12479        /* @__PURE__ */ i(
12480          a,
12481          {
12482            _fgT: m.img,
12483            _fgS: "cvv84",
12484            _fgB: 1790697590647,
12485            initial: { scale: 0.9, opacity: 0 },
12486            animate: { scale: 1, opacity: 1 },
12487            exit: { scale: 0.9, opacity: 0 },
12488            transition: { type: "spring", stiffness: 300, damping: 30 },
12489            src: t,
12490            alt: e,
12491            className: "max-w-full max-h-full rounded-lg shadow-2xl object-contain cursor-default",
12492            onClick: (r) => r.stopPropagation(),
12493            "data-fg-cvv84": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:27:9:1227:412:e:motion.img"
12494          }
12495        )
12496      ]
12497    }
12498  ) });
12499}
12500function Jf({ onOpenFullscreen: t }) {
12501  const e = H(null), s = Nt(e, { once: !0, margin: "-80px" });
12502  return /* @__PURE__ */ c(
12503    a,
12504    {
12505      _fgT: m.div,
12506      _fgS: "cvv85",
12507      _fgB: 1790697590647,
12508      _fgD: !0,
12509      ref: e,
12510      className: "relative group cursor-pointer rounded-2xl overflow-hidden border border-slate-700/50 bg-[#0B1B2B] shadow-2xl",
12511      initial: { opacity: 0, y: 20 },
12512      animate: s ? { opacity: 1, y: 0 } : {},
12513      transition: { duration: 0.6, delay: 0.15 },
12514      onClick: t,
12515      "data-fg-cvv85": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:50:5:2073:1227:e:motion.div:xtetxtetxte:1",
12516      children: [
12517        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv87", _fgB: 1790697590647, className: "absolute top-4 right-4 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200", "data-fg-cvv87": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:59:7:2440:389:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv88", _fgB: 1790697590647, className: "bg-black/60 backdrop-blur-sm text-white p-2.5 rounded-xl border border-white/10 flex items-center gap-2", "data-fg-cvv88": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:60:9:2560:256:e:div:ete", children: [
12518          /* @__PURE__ */ i(a, { _fgT: C3, _fgS: "cvv89", _fgB: 1790697590647, size: 16, "data-fg-cvv89": ":0:node_modules/lucide-react:61:11:2692:23:e:Maximize2::::::DtbI" }),
12519          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv810", _fgB: 1790697590647, className: "text-xs", style: { fontWeight: 500 }, "data-fg-cvv810": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:62:11:2726:75:e:span:t", children: "View Full Size" })
12520        ] }) }),
12521        /* @__PURE__ */ i(
12522          a,
12523          {
12524            _fgT: "img",
12525            _fgS: "cvv813",
12526            _fgB: 1790697590647,
12527            src: Li,
12528            alt: "IT Curves Route Planning — map-based route builder with stations and waypoints",
12529            className: "w-full h-auto object-cover transition-transform duration-500 group-hover:scale-[1.02]",
12530            "data-fg-cvv813": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:67:7:2862:243:e:img"
12531          }
12532        ),
12533        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv815", _fgB: 1790697590647, className: "absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-[#0B1B2B]/60 to-transparent pointer-events-none", "data-fg-cvv815": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:74:7:3160:122:e:div" })
12534      ]
12535    }
12536  );
12537}
12538function Kf() {
12539  const [t, e] = j(!1);
12540  return /* @__PURE__ */ c(C, { children: [
12541    t && /* @__PURE__ */ i(
12542      a,
12543      {
12544        _fgT: a0,
12545        _fgS: "cvv818",
12546        _fgB: 1790697590647,
12547        src: Li,
12548        alt: "IT Curves Route Planning — Full Size",
12549        onClose: () => e(!1),
12550        "data-fg-cvv818": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:85:9:3461:155:e:Lightbox::::::DOX7"
12551      }
12552    ),
12553    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv819", _fgB: 1790697590647, id: "feat-route-planning", className: "bg-white py-24", "data-fg-cvv819": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:91:7:3632:2294:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv820", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv820": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:92:9:3702:2207:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv821", _fgB: 1790697590647, className: "grid lg:grid-cols-[3fr_5fr] gap-12 lg:gap-16 items-center", "data-fg-cvv821": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:93:11:3763:2131:e:div:xtetxte", children: [
12554      /* @__PURE__ */ c(
12555        a,
12556        {
12557          _fgT: m.div,
12558          _fgS: "cvv823",
12559          _fgB: 1790697590647,
12560          initial: { opacity: 0, y: 20 },
12561          whileInView: { opacity: 1, y: 0 },
12562          viewport: { once: !0 },
12563          transition: { duration: 0.5 },
12564          "data-fg-cvv823": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:95:13:3876:1612:e:motion.div:etetete",
12565          children: [
12566            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv824", _fgB: 1790697590647, className: "text-[#EFBB0F] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv824": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:101:15:4096:127:e:span:t", children: "ROUTE PLANNING" }),
12567            /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv826", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv826": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:102:15:4238:199:e:h2:t", children: "Build Routes Visually, Not in Spreadsheets" }),
12568            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv828", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv828": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:105:15:4452:243:e:p:t", children: "Map stations and waypoints graphically, create reusable route segments, and merge them into full blocks with configurable headways and time windows." }),
12569            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv830", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv830": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:108:15:4710:752:e:ul:x", children: [
12570              "Establish stations and intermediate waypoints directly on the map",
12571              "Develop templates for route segments that can be reused across multiple routes",
12572              "Set varied headways by time of day so peak and off-peak frequencies are handled automatically",
12573              "Create custom blocks for holidays and weekends with one-click generation"
12574            ].map((s, r) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv832", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv832": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:115:19:5204:218:e:li:ete", children: [
12575              /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv833", _fgB: 1790697590647, size: 18, className: "text-[#EFBB0F] mt-0.5 flex-shrink-0", "data-fg-cvv833": ":0:node_modules/lucide-react:116:21:5287:74:e:CheckCircle2::::::CELI" }),
12576              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv834", _fgB: 1790697590647, "data-fg-cvv834": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:117:21:5382:16:e:span:x", children: s })
12577            ] }, r)) })
12578          ]
12579        }
12580      ),
12581      /* @__PURE__ */ i(
12582        a,
12583        {
12584          _fgT: m.div,
12585          _fgS: "cvv837",
12586          _fgB: 1790697590647,
12587          initial: { opacity: 0, y: 20 },
12588          whileInView: { opacity: 1, y: 0 },
12589          viewport: { once: !0 },
12590          transition: { duration: 0.5, delay: 0.15 },
12591          "data-fg-cvv837": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:124:13:5548:329:e:motion.div:e",
12592          children: /* @__PURE__ */ i(a, { _fgT: Jf, _fgS: "cvv838", _fgB: 1790697590647, onOpenFullscreen: () => e(!0), "data-fg-cvv838": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:130:15:5781:70:e:RoutePlanningVisual::::::jEq" })
12593        }
12594      )
12595    ] }) }) })
12596  ] });
12597}
12598function Yf({ onOpenFullscreen: t }) {
12599  const e = H(null), s = Nt(e, { once: !0, margin: "-80px" });
12600  return /* @__PURE__ */ c(
12601    a,
12602    {
12603      _fgT: m.div,
12604      _fgS: "cvv839",
12605      _fgB: 1790697590647,
12606      _fgD: !0,
12607      ref: e,
12608      className: "relative group cursor-pointer rounded-2xl overflow-hidden border border-slate-700/50 bg-[#0B1B2B] shadow-2xl",
12609      initial: { opacity: 0, y: 20 },
12610      animate: s ? { opacity: 1, y: 0 } : {},
12611      transition: { duration: 0.6, delay: 0.15 },
12612      onClick: t,
12613      "data-fg-cvv839": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:147:5:6314:1223:e:motion.div:xtetxtetxte:1",
12614      children: [
12615        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv841", _fgB: 1790697590647, className: "absolute top-4 right-4 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200", "data-fg-cvv841": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:156:7:6681:389:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv842", _fgB: 1790697590647, className: "bg-black/60 backdrop-blur-sm text-white p-2.5 rounded-xl border border-white/10 flex items-center gap-2", "data-fg-cvv842": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:157:9:6801:256:e:div:ete", children: [
12616          /* @__PURE__ */ i(a, { _fgT: C3, _fgS: "cvv843", _fgB: 1790697590647, size: 16, "data-fg-cvv843": ":0:node_modules/lucide-react:158:11:6933:23:e:Maximize2::::::DtbI" }),
12617          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv844", _fgB: 1790697590647, className: "text-xs", style: { fontWeight: 500 }, "data-fg-cvv844": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:159:11:6967:75:e:span:t", children: "View Full Size" })
12618        ] }) }),
12619        /* @__PURE__ */ i(
12620          a,
12621          {
12622            _fgT: "img",
12623            _fgS: "cvv847",
12624            _fgB: 1790697590647,
12625            src: ci,
12626            alt: "IT Curves Blocking — Gantt-style block manager with route scheduling timeline",
12627            className: "w-full h-auto object-contain transition-transform duration-500 group-hover:scale-[1.02]",
12628            "data-fg-cvv847": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:164:7:7103:239:e:img"
12629          }
12630        ),
12631        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv849", _fgB: 1790697590647, className: "absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-[#0B1B2B]/60 to-transparent pointer-events-none", "data-fg-cvv849": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:171:7:7397:122:e:div" })
12632      ]
12633    }
12634  );
12635}
12636function Xf() {
12637  const [t, e] = j(!1);
12638  return /* @__PURE__ */ c(C, { children: [
12639    t && /* @__PURE__ */ i(
12640      a,
12641      {
12642        _fgT: a0,
12643        _fgS: "cvv852",
12644        _fgB: 1790697590647,
12645        src: ci,
12646        alt: "IT Curves Blocking — Full Size",
12647        onClose: () => e(!1),
12648        "data-fg-cvv852": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:182:9:7693:144:e:Lightbox::::::DOX7"
12649      }
12650    ),
12651    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv853", _fgB: 1790697590647, id: "feat-blocking", className: "bg-[#F8FAFC] py-24", "data-fg-cvv853": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:188:7:7853:2383:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv854", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv854": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:189:9:7921:2298:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv855", _fgB: 1790697590647, className: "grid lg:grid-cols-[5fr_3fr] gap-12 lg:gap-16 items-center", "data-fg-cvv855": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:190:11:7982:2222:e:div:xtetxte", children: [
12652      /* @__PURE__ */ i(
12653        a,
12654        {
12655          _fgT: m.div,
12656          _fgS: "cvv857",
12657          _fgB: 1790697590647,
12658          initial: { opacity: 0, y: 20 },
12659          whileInView: { opacity: 1, y: 0 },
12660          viewport: { once: !0 },
12661          transition: { duration: 0.5 },
12662          className: "order-2 lg:order-1",
12663          "data-fg-cvv857": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:192:13:8134:356:e:motion.div:e",
12664          children: /* @__PURE__ */ i(a, { _fgT: Yf, _fgS: "cvv858", _fgB: 1790697590647, onOpenFullscreen: () => e(!0), "data-fg-cvv858": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:199:15:8399:65:e:BlockingVisual::::::DFHf" })
12665        }
12666      ),
12667      /* @__PURE__ */ c(
12668        a,
12669        {
12670          _fgT: m.div,
12671          _fgS: "cvv860",
12672          _fgB: 1790697590647,
12673          initial: { opacity: 0, y: 20 },
12674          whileInView: { opacity: 1, y: 0 },
12675          viewport: { once: !0 },
12676          transition: { duration: 0.5, delay: 0.15 },
12677          className: "order-1 lg:order-2",
12678          "data-fg-cvv860": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:203:13:8548:1639:e:motion.div:etetete",
12679          children: [
12680            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv861", _fgB: 1790697590647, className: "text-[#0056B3] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv861": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:210:15:8826:121:e:span:t", children: "BLOCKING" }),
12681            /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv863", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv863": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:211:15:8962:189:e:h2:t", children: "Generate Timetables in One Click" }),
12682            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv865", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv865": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:214:15:9166:262:e:p:t", children: "Review blocks in a tabular view, see schedule time at each station, and generate or edit blocks with minimal effort. Mark stations as on-request or excluded as needed." }),
12683            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv867", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv867": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:217:15:9443:718:e:ul:x", children: [
12684              "Tabular block view shows schedule time at every station across all rows",
12685              "One-click block generation from your route segments and headway settings",
12686              "Mark stations as on-request or exclude them from specific blocks",
12687              "Edit blocks with drag-and-drop ease without rebuilding from scratch"
12688            ].map((s, r) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv869", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv869": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:224:19:9903:218:e:li:ete", children: [
12689              /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv870", _fgB: 1790697590647, size: 18, className: "text-[#0056B3] mt-0.5 flex-shrink-0", "data-fg-cvv870": ":0:node_modules/lucide-react:225:21:9986:74:e:CheckCircle2::::::CELI" }),
12690              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv871", _fgB: 1790697590647, "data-fg-cvv871": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:226:21:10081:16:e:span:x", children: s })
12691            ] }, r)) })
12692          ]
12693        }
12694      )
12695    ] }) }) })
12696  ] });
12697}
12698function Qf() {
12699  const t = H(null), e = Nt(t, { once: !0, margin: "-80px" }), s = [
12700    { run: "R-01", route: "Route 42 Block #1+#3", days: "M–F", hours: "7.5h", status: "green" },
12701    { run: "R-02", route: "Route 15 Block #2+#5", days: "M–F", hours: "8.0h", status: "green" },
12702    { run: "R-03", route: "Route 7 Block #4", days: "M–Sat", hours: "9.2h", status: "orange" },
12703    { run: "R-04", route: "Route 42 Weekend", days: "Sat–Sun", hours: "6.0h", status: "green" }
12704  ];
12705  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv873", _fgB: 1790697590647, _fgD: !0, ref: t, className: "bg-[#0B1B2B] rounded-2xl p-6 md:p-8 border border-slate-700/50", "data-fg-cvv873": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:253:5:10984:2149:e:div:etxtetxte:1", children: [
12706    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv874", _fgB: 1790697590647, className: "flex items-center gap-2 mb-6", "data-fg-cvv874": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:254:7:11081:351:e:div:etetete", children: [
12707      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv875", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-red-500/80", "data-fg-cvv875": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:255:9:11136:54:e:div" }),
12708      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv876", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-yellow-500/80", "data-fg-cvv876": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:256:9:11199:57:e:div" }),
12709      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv877", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-green-500/80", "data-fg-cvv877": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:257:9:11265:56:e:div" }),
12710      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv878", _fgB: 1790697590647, className: "text-slate-500 text-xs ml-2", "data-fg-cvv878": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:258:9:11330:89:e:span:t", children: "Runcutting — Driver Assignment Table" })
12711    ] }),
12712    /* @__PURE__ */ i(
12713      a,
12714      {
12715        _fgT: m.div,
12716        _fgS: "cvv881",
12717        _fgB: 1790697590647,
12718        className: "grid grid-cols-[60px_1fr_80px_70px] gap-2 mb-2 px-2",
12719        initial: { opacity: 0 },
12720        animate: e ? { opacity: 1 } : {},
12721        transition: { delay: 0.2 },
12722        "data-fg-cvv881": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:262:7:11467:430:e:motion.div:x",
12723        children: ["Run", "Route / Block", "Days", "Hours"].map((r) => /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv883", _fgB: 1790697590647, className: "text-[10px] text-slate-500 uppercase tracking-wider", style: { fontWeight: 600 }, "data-fg-cvv883": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:269:11:11749:116:e:span:x", children: r }, r))
12724      }
12725    ),
12726    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv886", _fgB: 1790697590647, className: "space-y-1.5", "data-fg-cvv886": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:274:7:11952:1170:e:div:x", children: s.map((r, n) => /* @__PURE__ */ c(
12727      a,
12728      {
12729        _fgT: m.div,
12730        _fgS: "cvv888",
12731        _fgB: 1790697590647,
12732        className: "grid grid-cols-[60px_1fr_80px_70px] gap-2 items-center bg-slate-800/40 rounded-lg px-2 py-2.5 border border-slate-700/30",
12733        initial: { opacity: 0, x: 30 },
12734        animate: e ? { opacity: 1, x: 0 } : {},
12735        transition: {
12736          duration: 0.45,
12737          delay: 0.3 + n * 0.12,
12738          ease: [0.25, 0.46, 0.45, 0.94]
12739        },
12740        "data-fg-cvv888": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:276:11:12022:1075:e:motion.div:etetete",
12741        children: [
12742          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv889", _fgB: 1790697590647, className: "text-xs text-white", style: { fontWeight: 600 }, "data-fg-cvv889": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:287:13:12482:79:e:span:x", children: r.run }),
12743          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv891", _fgB: 1790697590647, className: "text-xs text-slate-300 truncate", "data-fg-cvv891": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:288:13:12574:66:e:span:x", children: r.route }),
12744          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv893", _fgB: 1790697590647, className: "text-xs text-slate-400", "data-fg-cvv893": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:289:13:12653:56:e:span:x", children: r.days }),
12745          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv895", _fgB: 1790697590647, className: `text-xs px-2 py-0.5 rounded-full text-center ${r.status === "green" ? "bg-emerald-500/15 text-emerald-400 border border-emerald-500/30" : "bg-[#EFBB0F]/15 text-[#EFBB0F] border border-[#EFBB0F]/30"}`, style: { fontWeight: 600 }, "data-fg-cvv895": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:290:13:12722:351:e:span:x", children: r.hours })
12746        ]
12747      },
12748      r.run
12749    )) })
12750  ] });
12751}
12752function ep() {
12753  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv897", _fgB: 1790697590647, _fgD: !0, id: "feat-runcutting", className: "bg-white py-24", "data-fg-cvv897": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:306:5:13195:2043:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv898", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv898": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:307:7:13259:1964:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv899", _fgB: 1790697590647, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-cvv899": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:308:9:13318:1892:e:div:xtetxte", children: [
12754    /* @__PURE__ */ c(
12755      a,
12756      {
12757        _fgT: m.div,
12758        _fgS: "cvv8101",
12759        _fgB: 1790697590647,
12760        initial: { opacity: 0, y: 20 },
12761        whileInView: { opacity: 1, y: 0 },
12762        viewport: { once: !0 },
12763        transition: { duration: 0.5 },
12764        "data-fg-cvv8101": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:310:11:13409:1484:e:motion.div:etetete",
12765        children: [
12766          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8102", _fgB: 1790697590647, className: "text-[#EFBB0F] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv8102": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:316:13:13617:123:e:span:t", children: "RUNCUTTING" }),
12767          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv8104", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv8104": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:317:13:13753:184:e:h2:t", children: "Segment Routes Into Driver Runs" }),
12768          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv8106", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv8106": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:320:13:13950:254:e:p:t", children: "View all trips in a comprehensive table, split them into manageable runs, and see total hours per driver at a glance. Select route availability by day of the week." }),
12769          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv8108", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv8108": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:323:13:14217:652:e:ul:x", children: [
12770            "View all route trips in one comprehensive table",
12771            "Segment routes into runs with user-friendly drag tools",
12772            "Instantly see which routes have assigned runs and which are unassigned",
12773            "Run summaries show total hours per weekday for labor planning"
12774          ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv8110", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv8110": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:330:17:14621:212:e:li:ete", children: [
12775            /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv8111", _fgB: 1790697590647, size: 18, className: "text-[#EFBB0F] mt-0.5 flex-shrink-0", "data-fg-cvv8111": ":0:node_modules/lucide-react:331:19:14702:74:e:CheckCircle2::::::CELI" }),
12776            /* @__P
12776URE__ */ i(a, { _fgT: "span", _fgS: "cvv8112", _fgB: 1790697590647, "data-fg-cvv8112": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:332:19:14795:16:e:span:x", children: t })
12777          ] }, e)) })
12778        ]
12779      }
12780    ),
12781    /* @__PURE__ */ i(
12782      a,
12783      {
12784        _fgT: m.div,
12785        _fgS: "cvv8115",
12786        _fgB: 1790697590647,
12787        initial: { opacity: 0, y: 20 },
12788        whileInView: { opacity: 1, y: 0 },
12789        viewport: { once: !0 },
12790        transition: { duration: 0.5, delay: 0.15 },
12791        "data-fg-cvv8115": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:339:11:14930:265:e:motion.div:e",
12792        children: /* @__PURE__ */ i(a, { _fgT: Qf, _fgS: "cvv8116", _fgB: 1790697590647, "data-fg-cvv8116": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:345:13:15151:20:e:RuncuttingVisual::::::CWux" })
12793      }
12794    )
12795  ] }) }) });
12796}
12797function tp({ onOpenFullscreen: t }) {
12798  const e = H(null), s = Nt(e, { once: !0, margin: "-80px" });
12799  return /* @__PURE__ */ c(
12800    a,
12801    {
12802      _fgT: m.div,
12803      _fgS: "cvv8117",
12804      _fgB: 1790697590647,
12805      _fgD: !0,
12806      ref: e,
12807      className: "relative group cursor-pointer rounded-2xl overflow-hidden border border-slate-700/50 bg-[#0B1B2B] shadow-2xl",
12808      initial: { opacity: 0, y: 20 },
12809      animate: s ? { opacity: 1, y: 0 } : {},
12810      transition: { duration: 0.6, delay: 0.15 },
12811      onClick: t,
12812      "data-fg-cvv8117": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:362:5:15630:1223:e:motion.div:xtetxtetxte:1",
12813      children: [
12814        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8119", _fgB: 1790697590647, className: "absolute top-4 right-4 z-10 opacity-0 group-hover:opacity-100 transition-opacity duration-200", "data-fg-cvv8119": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:371:7:15997:389:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8120", _fgB: 1790697590647, className: "bg-black/60 backdrop-blur-sm text-white p-2.5 rounded-xl border border-white/10 flex items-center gap-2", "data-fg-cvv8120": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:372:9:16117:256:e:div:ete", children: [
12815          /* @__PURE__ */ i(a, { _fgT: C3, _fgS: "cvv8121", _fgB: 1790697590647, size: 16, "data-fg-cvv8121": ":0:node_modules/lucide-react:373:11:16249:23:e:Maximize2::::::DtbI" }),
12816          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8122", _fgB: 1790697590647, className: "text-xs", style: { fontWeight: 500 }, "data-fg-cvv8122": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:374:11:16283:75:e:span:t", children: "View Full Size" })
12817        ] }) }),
12818        /* @__PURE__ */ i(
12819          a,
12820          {
12821            _fgT: "img",
12822            _fgS: "cvv8125",
12823            _fgB: 1790697590647,
12824            src: t0,
12825            alt: "IT Curves Live Dashboard — real-time fleet map with multi-route tracking",
12826            className: "w-full h-auto object-contain transition-transform duration-500 group-hover:scale-[1.02]",
12827            "data-fg-cvv8125": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:379:7:16419:239:e:img"
12828          }
12829        ),
12830        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8127", _fgB: 1790697590647, className: "absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-[#0B1B2B]/60 to-transparent pointer-events-none", "data-fg-cvv8127": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:386:7:16713:122:e:div" })
12831      ]
12832    }
12833  );
12834}
12835function ap() {
12836  const [t, e] = j(!1);
12837  return /* @__PURE__ */ c(C, { children: [
12838    t && /* @__PURE__ */ i(
12839      a,
12840      {
12841        _fgT: a0,
12842        _fgS: "cvv8130",
12843        _fgB: 1790697590647,
12844        src: t0,
12845        alt: "IT Curves Live Dashboard — Full Size",
12846        onClose: () => e(!1),
12847        "data-fg-cvv8130": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:397:9:17014:155:e:Lightbox::::::DOX7"
12848      }
12849    ),
12850    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv8131", _fgB: 1790697590647, id: "feat-live-dashboard", className: "bg-[#F8FAFC] py-24", "data-fg-cvv8131": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:403:7:17185:2341:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8132", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv8132": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:404:9:17259:2250:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8133", _fgB: 1790697590647, className: "grid lg:grid-cols-[5fr_3fr] gap-12 lg:gap-16 items-center", "data-fg-cvv8133": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:405:11:17320:2174:e:div:xtetxte", children: [
12851      /* @__PURE__ */ i(
12852        a,
12853        {
12854          _fgT: m.div,
12855          _fgS: "cvv8135",
12856          _fgB: 1790697590647,
12857          initial: { opacity: 0, y: 20 },
12858          whileInView: { opacity: 1, y: 0 },
12859          viewport: { once: !0 },
12860          transition: { duration: 0.5 },
12861          className: "order-2 lg:order-1",
12862          "data-fg-cvv8135": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:407:13:17461:361:e:motion.div:e",
12863          children: /* @__PURE__ */ i(a, { _fgT: tp, _fgS: "cvv8136", _fgB: 1790697590647, onOpenFullscreen: () => e(!0), "data-fg-cvv8136": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:414:15:17726:70:e:LiveDashboardVisual::::::DNrq" })
12864        }
12865      ),
12866      /* @__PURE__ */ c(
12867        a,
12868        {
12869          _fgT: m.div,
12870          _fgS: "cvv8138",
12871          _fgB: 1790697590647,
12872          initial: { opacity: 0, y: 20 },
12873          whileInView: { opacity: 1, y: 0 },
12874          viewport: { once: !0 },
12875          transition: { duration: 0.5, delay: 0.15 },
12876          className: "order-1 lg:order-2",
12877          "data-fg-cvv8138": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:418:13:17869:1608:e:motion.div:etetete",
12878          children: [
12879            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8139", _fgB: 1790697590647, className: "text-[#0056B3] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv8139": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:425:15:18147:127:e:span:t", children: "LIVE DASHBOARD" }),
12880            /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv8141", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv8141": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:426:15:18289:193:e:h2:t", children: "See Your Entire Network in Real Time" }),
12881            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv8143", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv8143": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:429:15:18497:251:e:p:t", children: "Track every vehicle, monitor passenger loads, check dwell times, and communicate with drivers. Schedule microtransit deviations directly from the dashboard." }),
12882            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv8145", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv8145": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:432:15:18763:688:e:ul:x", children: [
12883              "Real-time vehicle tracking with location, speed, and schedule adherence",
12884              "Live passenger count per vehicle from automatic passenger counters",
12885              "Dwell time monitoring and arrival times at every stop",
12886              "Direct driver communication from the dispatcher screen"
12887            ].map((s, r) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv8147", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv8147": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:439:19:19193:218:e:li:ete", children: [
12888              /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv8148", _fgB: 1790697590647, size: 18, className: "text-[#0056B3] mt-0.5 flex-shrink-0", "data-fg-cvv8148": ":0:node_modules/lucide-react:440:21:19276:74:e:CheckCircle2::::::CELI" }),
12889              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8149", _fgB: 1790697590647, "data-fg-cvv8149": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:441:21:19371:16:e:span:x", children: s })
12890            ] }, r)) })
12891          ]
12892        }
12893      )
12894    ] }) }) })
12895  ] });
12896}
12897function sp() {
12898  const t = H(null), e = Nt(t, { once: !0, margin: "-80px" }), s = [
12899    { name: "Depot", time: "6:00 AM", boarding: "+2 / −0", status: "completed", statusLabel: "Departed" },
12900    { name: "MLK & 5th", time: "6:12 AM", boarding: "+5 / −1", status: "completed", statusLabel: "Departed" },
12901    { name: "City Hall", time: "—", boarding: "+3 / −2", status: "current", statusLabel: "Arriving" },
12902    { name: "University", time: "—", boarding: "—", status: "upcoming", statusLabel: "Scheduled" }
12903  ];
12904  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8151", _fgB: 1790697590647, _fgD: !0, ref: t, className: "bg-[#0B1B2B] rounded-2xl p-6 md:p-8 border border-slate-700/50 max-w-sm mx-auto lg:mx-0 lg:ml-auto", "data-fg-cvv8151": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:468:5:20308:4257:e:
12904div:xte:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8153", _fgB: 1790697590647, className: "bg-[#0F2A3F] rounded-xl border border-slate-600/50 overflow-hidden", "data-fg-cvv8153": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:470:7:20468:4086:e:div:xtetxte", children: [
12905    /* @__PURE__ */ c(
12906      a,
12907      {
12908        _fgT: m.div,
12909        _fgS: "cvv8155",
12910        _fgB: 1790697590647,
12911        className: "flex items-center justify-between px-4 py-2.5 border-b border-slate-700/50",
12912        initial: { opacity: 0 },
12913        animate: e ? { opacity: 1 } : {},
12914        transition: { delay: 0.2 },
12915        "data-fg-cvv8155": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:472:9:20588:541:e:motion.div:ete",
12916        children: [
12917          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8156", _fgB: 1790697590647, className: "text-xs text-white", style: { fontWeight: 600 }, "data-fg-cvv8156": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:478:11:20839:96:e:span:t", children: "Route 42 · Downtown Loop" }),
12918          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8158", _fgB: 1790697590647, className: "text-[10px] px-2 py-0.5 rounded-full bg-emerald-400/10 text-emerald-400 border border-emerald-400/30", style: { fontWeight: 600 }, "data-fg-cvv8158": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:479:11:20946:161:e:span:t", children: "On Time" })
12919        ]
12920      }
12921    ),
12922    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8161", _fgB: 1790697590647, className: "px-4 py-3 space-y-0", "data-fg-cvv8161": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:483:9:21185:3356:e:div:x", children: s.map((r, n) => /* @__PURE__ */ c(
12923      a,
12924      {
12925        _fgT: m.div,
12926        _fgS: "cvv8163",
12927        _fgB: 1790697590647,
12928        className: "flex items-start gap-3 relative",
12929        initial: { opacity: 0, y: 12 },
12930        animate: e ? { opacity: 1, y: 0 } : {},
12931        transition: {
12932          duration: 0.4,
12933          delay: 0.4 + n * 0.2,
12934          ease: [0.25, 0.46, 0.45, 0.94]
12935        },
12936        "data-fg-cvv8163": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:485:13:21271:3241:e:motion.div:xtxtxtetxte",
12937        children: [
12938          n < s.length - 1 && /* @__PURE__ */ i(
12939            a,
12940            {
12941              _fgT: m.div,
12942              _fgS: "cvv8166",
12943              _fgB: 1790697590647,
12944              className: `absolute left-[7px] top-[18px] w-[2px] ${r.status === "completed" ? "bg-emerald-500/40" : r.status === "current" ? "bg-[#0056B3]/40" : "bg-slate-700/40"}`,
12945              initial: { height: 0 },
12946              animate: e ? { height: "100%" } : { height: 0 },
12947              transition: { duration: 0.4, delay: 0.6 + n * 0.2 },
12948              "data-fg-cvv8166": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:498:17:21737:447:e:motion.div"
12949            }
12950          ),
12951          /* @__PURE__ */ c(
12952            a,
12953            {
12954              _fgT: m.div,
12955              _fgS: "cvv8168",
12956              _fgB: 1790697590647,
12957              className: `relative z-10 w-4 h-4 rounded-full mt-0.5 flex-shrink-0 flex items-center justify-center ${r.status === "completed" ? "bg-emerald-500" : r.status === "current" ? "bg-[#0056B3]" : "bg-slate-600"}`,
12958              initial: { scale: 0 },
12959              animate: e ? { scale: 1 } : { scale: 0 },
12960              transition: { type: "spring", stiffness: 500, damping: 25, delay: 0.35 + n * 0.2 },
12961              "data-fg-cvv8168": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:509:15:22243:1206:e:motion.div:xtx",
12962              children: [
12963                r.status === "completed" && /* @__PURE__ */ i(a, { _fgT: "svg", _fgS: "cvv8170", _fgB: 1790697590647, width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", "data-fg-cvv8170": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:520:19:22844:174:e:svg:e", children: /* @__PURE__ */ i("path", { d: "M1.5 4L3.2 5.7L6.5 2.3", stroke: "white", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round", "data-fg-cvv8171": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:520:75:22900:112:e:path" }) }),
12964                r.status === "current" && /* @__PURE__ */ i(
12965                  a,
12966                  {
12967                    _fgT: m.div,
12968                    _fgS: "cvv8173",
12969                    _fgB: 1790697590647,
12970                    className: "absolute inset-[-4px] rounded-full border-2 border-[#0056B3]/30",
12971                    animate: e ? { scale: [1, 1.5, 1], opacity: [0.6, 0, 0.6] } : {},
12972                    transition: { repeat: 1 / 0, duration: 2, delay: 1.2 },
12973                    "data-fg-cvv8173": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:523:19:23104:298:e:motion.div"
12974                  }
12975                )
12976              ]
12977            }
12978          ),
12979          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8175", _fgB: 1790697590647, className: `flex-1 pb-4 ${r.status === "upcoming" ? "opacity-40" : ""}`, "data-fg-cvv8175": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:532:15:23495:991:e:div:ete", children: [
12980            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8176", _fgB: 1790697590647, className: "flex items-center justify-between", "data-fg-cvv8176": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:533:17:23593:556:e:div:ete", children: [
12981              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8177", _fgB: 1790697590647, className: "text-xs text-white", style: { fontWeight: 600 }, "data-fg-cvv8177": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:534:19:23663:83:e:span:x", children: r.name }),
12982              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8179", _fgB: 1790697590647, className: `text-[10px] px-1.5 py-0.5 rounded ${r.status === "completed" ? "text-emerald-400" : r.status === "current" ? "text-[#0056B3] bg-[#0056B3]/10" : "text-slate-500"}`, style: { fontWeight: 500 }, "data-fg-cvv8179": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:535:19:23765:361:e:span:x", children: r.statusLabel })
12983            ] }),
12984            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8181", _fgB: 1790697590647, className: "flex items-center gap-3 mt-0.5", "data-fg-cvv8181": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:543:17:24166:299:e:div:xtx", children: [
12985              r.time !== "—" && /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8183", _fgB: 1790697590647, className: "text-[10px] text-slate-400", "data-fg-cvv8183": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:544:41:24255:63:e:span:x", children: r.time }),
12986              r.boarding !== "—" && /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "cvv8186", _fgB: 1790697590647, className: "text-[10px] text-slate-500", "data-fg-cvv8186": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:545:45:24364:77:e:span:tx", children: [
12987                "Boarding: ",
12988                r.boarding
12989              ] })
12990            ] })
12991          ] })
12992        ]
12993      },
12994      n
12995    )) })
12996  ] }) });
12997}
12998function ip() {
12999  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv8189", _fgB: 1790697590647, _fgD: !0, id: "feat-driver-mdt", className: "bg-white py-24", "data-fg-cvv8189": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:558:5:24626:2187:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8190", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv8190": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:559:7:24690:2108:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8191", _fgB: 1790697590647, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-cvv8191": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:560:9:24749:2036:e:div:xtetxte", children: [
13000    /* @__PURE__ */ c(
13001      a,
13002      {
13003        _fgT: m.div,
13004        _fgS: "cvv8193",
13005        _fgB: 1790697590647,
13006        initial: { opacity: 0, y: 20 },
13007        whileInView: { opacity: 1, y: 0 },
13008        viewport: { once: !0 },
13009        transition: { duration: 0.5 },
13010        "data-fg-cvv8193": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:562:11:24840:1629:e:motion.div:etetete",
13011        children: [
13012          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8194", _fgB: 1790697590647, className: "text-[#EFBB0F] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv8194": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:568:13:25048:123:e:span:t", children: "DRIVER MDT" }),
13013          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv8196", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv8196": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:569:13:25184:199:e:h2:t", children: "Off-the-Shelf Tablets. Purpose-Built Software." }),
13014          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv8198", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv8198": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:572:13:25396:252:e:p:t", children: "Drivers get stop-by-stop navigation, real-time route updates, and automatic rider identification on standard consumer tablets using standard cellular data plans." }),
13015          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv8200", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv8200": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:575:13:25661:784:e:ul:x", children: [
13016            "Standard consumer tablets running on LTE, 5G, or any cellular data plan",
13017            "Stop-by-stop navigation with real-time route updates pushed from dispatch",
13018            "Automatic rider onboarding via facial recognition, QR codes, or Bluetooth",
13019            "Restricted driver actions to reduce distracted driving while in motion",
13020            "Verbal communication options for hands-free driver safety"
13021          ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv8202", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv8202": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:583:17:26197:212:e:li:ete", children: [
13022            /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv8203", _fgB: 1790697590647, size: 18, className: "text-[#EFBB0F] mt-0.5 flex-shrink-0", "data-fg-cvv8203": ":0:node_modules/lucide-react:584:19:26278:74:e:CheckCircle2::::::CELI" }),
13023            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8204", _fgB: 1790697590647, "data-fg-cvv8204": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:585:19:26371:16:e:span:x", children: t })
13024          ] }, e)) })
13025        ]
13026      }
13027    ),
13028    /* @__PURE__ */ i(
13029      a,
13030      {
13031        _fgT: m.div,
13032        _fgS: "cvv8207",
13033        _fgB: 1790697590647,
13034        initial: { opacity: 0, y: 20 },
13035        whileInView: { opacity: 1, y: 0 },
13036        viewport: { once: !0 },
13037        transition: { duration: 0.5, delay: 0.15 },
13038        "data-fg-cvv8207": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:592:11:26506:264:e:motion.div:e",
13039        children: /* @__PURE__ */ i(a, { _fgT: sp, _fgS: "cvv8208", _fgB: 1790697590647, "data-fg-cvv8208": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:598:13:26727:19:e:DriverMDTVisual::::::CvZj" })
13040      }
13041    )
13042  ] }) }) });
13043}
13044function rp() {
13045  const t = H(null), e = Nt(t, { once: !0, margin: "-80px" }), s = [
13046    { title: "GTFS Static Feed", desc: "Routes, stops, timetables", status: "Published", color: "#3B82F6" },
13047    { title: "GTFS-RT Live Feed", desc: "Real-time vehicle positions", status: "Active", color: "#EFBB0F" },
13048    { title: "Google Maps & Transit App", desc: "Live schedules visible to riders", status: "Connected", color: "#22C55E" },
13049    { title: "NTD Reports & Statistics", desc: "Export ridership & performance data", status: "Ready", color: "#A855F7" }
13050  ];
13051  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8209", _fgB: 1790697590647, _fgD: !0, ref: t, className: "bg-[#0B1B2B] rounded-2xl p-6 md:p-8 border border-slate-700/50", "data-fg-cvv8209": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:621:5:27633:2983:e:div:ete:1", children: [
13052    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8210", _fgB: 1790697590647, className: "flex items-center gap-2 mb-6", "data-fg-cvv8210": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:622:7:27730:343:e:div:etetete", children: [
13053      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8211", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-red-500/80", "data-fg-cvv8211": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:623:9:27785:54:e:div" }),
13054      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8212", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-yellow-500/80", "data-fg-cvv8212": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:624:9:27848:57:e:div" }),
13055      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8213", _fgB: 1790697590647, className: "w-3 h-3 rounded-full bg-green-500/80", "data-fg-cvv8213": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:625:9:27914:56:e:div" }),
13056      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8214", _fgB: 1790697590647, className: "text-slate-500 text-xs ml-2", "data-fg-cvv8214": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:626:9:27979:81:e:span:t", children: "GTFS Publisher — Feed Status" })
13057    ] }),
13058    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8216", _fgB: 1790697590647, className: "space-y-0", "data-fg-cvv8216": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:629:7:28081:2524:e:div:x", children: s.map((r, n) => /* @__PURE__ */ i(
13059      a,
13060      {
13061        _fgT: m.div,
13062        _fgS: "cvv8218",
13063        _fgB: 1790697590647,
13064        initial: { opacity: 0, y: 15 },
13065        animate: e ? { opacity: 1, y: 0 } : {},
13066        transition: {
13067          duration: 0.45,
13068          delay: 0.25 + n * 0.18,
13069          ease: [0.25, 0.46, 0.45, 0.94]
13070        },
13071        "data-fg-cvv8218": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:631:11:28153:2427:e:motion.div:e",
13072        children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8219", _fgB: 1790697590647, className: "flex items-start gap-3 relative", "data-fg-cvv8219": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:641:13:28465:2091:e:div:xtxtxtetxte", children: [
13073          n < s.length - 1 && /* @__PURE__ */ i(
13074            a,
13075            {
13076              _fgT: m.div,
13077              _fgS: "cvv8222",
13078              _fgB: 1790697590647,
13079              className: "absolute left-[13px] top-[28px] w-[2px]",
13080              style: { backgroundColor: r.color + "33" },
13081              initial: { height: 0 },
13082              animate: e ? { height: "calc(100% + 4px)" } : { height: 0 },
13083              transition: { duration: 0.5, delay: 0.5 + n * 0.18 },
13084              "data-fg-cvv8222": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:644:17:28618:363:e:motion.div"
13085            }
13086          ),
13087          /* @__PURE__ */ i(
13088            a,
13089            {
13090              _fgT: m.div,
13091              _fgS: "cvv8224",
13092              _fgB: 1790697590647,
13093              className: "relative z-10 w-7 h-7 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5",
13094              style: { backgroundColor: r.color + "22", border: `2px solid ${r.color}` },
13095              initial: { scale: 0 },
13096              animate: e ? { scale: 1 } : { scale: 0 },
13097              transition: { type: "spring", stiffness: 500, damping: 25, delay: 0.2 + n * 0.18 },
13098              "data-fg-cvv8224": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:654:15:29048:572:e:motion.div:e",
13099              children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8225", _fgB: 1790697590647, className: "text-[10px] text-white", style: { fontWeight: 700 }, "data-fg-cvv8225": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:661:17:29509:83:e:span:x", children: n + 1 })
13100            }
13101          ),
13102          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8228", _fgB: 1790697590647, className: "flex-1 bg-slate-800/40 rounded-xl p-3 border border-slate-700/30 mb-3", "data-fg-cvv8228": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:665:15:29666:871:e:div:ete", children: [
13103            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8229", _fgB: 1790697590647, className: "flex items-center justify-between mb-1", "data-fg-cvv8229": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:666:17:29770:666:e:div:ete", children: [
13104              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8230", _fgB: 1790697590647, className: "text-xs text-white", style: { fontWeight: 600 }, "data-fg-cvv8230": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:667:19:29845:84:e:span:x", children: r.title }),
13105              /* @__PURE__ */ i(
13106                a,
13107                {
13108                  _fgT: m.span,
13109                  _fgS: "cvv8232",
13110                  _fgB: 1790697590647,
13111                  className: "text-[10px] px-2 py-0.5 rounded-full border bg-emerald-400/10 text-emerald-400 border-emerald-400/30",
13112                  style: { fontWeight: 600 },
13113                  initial: { opacity: 0, scale: 0.8 },
13114                  animate: e ? { opacity: 1, scale: 1 } : {},
13115                  transition: { delay: 0.6 + n * 0.18 },
13116                  "data-fg-cvv8232": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:668:19:29948:465:e:motion.span:x",
13117                  children: r.status
13118                }
13119              )
13120            ] }),
13121            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8234", _fgB: 1790697590647, className: "text-[11px] text-slate-400", "data-fg-cvv8234": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:678:17:30453:63:e:span:x", children: r.desc })
13122          ] })
13123        ] })
13124      },
13125      n
13126    )) })
13127  ] });
13128}
13129function np() {
13130  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cvv8236", _fgB: 1790697590647, _fgD: !0, id: "feat-gtfs", className: "bg-[#F8FAFC] py-24", "data-fg-cvv8236": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:690:5:30672:2174:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cvv8237", _fgB: 1790697590647, className: "container mx-auto px-6 max-w-7xl", "data-fg-cvv8237": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:691:7:30734:2097:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cvv8238", _fgB: 1790697590647, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-cvv8238": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:692:9:30793:2025:e:div:xtetxte", children: [
13131    /* @__PURE__ */ i(
13132      a,
13133      {
13134        _fgT: m.div,
13135        _fgS: "cvv8240",
13136        _fgB: 1790697590647,
13137        initial: { opacity: 0, y: 20 },
13138        whileInView: { opacity: 1, y: 0 },
13139        viewport: { once: !0 },
13140        transition: { duration: 0.5 },
13141        className: "order-2 lg:order-1",
13142        "data-fg-cvv8240": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:694:11:30893:289:e:motion.div:e",
13143        children: /* @__PURE__ */ i(a, { _fgT: rp, _fgS: "cvv8241", _fgB: 1790697590647, "data-fg-cvv8241": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:701:13:31144:14:e:GTFSVisual::::::CLeS" })
13144      }
13145    ),
13146    /* @__PURE__ */ c(
13147      a,
13148      {
13149        _fgT: m.div,
13150        _fgS: "cvv8243",
13151        _fgB: 1790697590647,
13152        initial: { opacity: 0, y: 20 },
13153        whileInView: { opacity: 1, y: 0 },
13154        viewport: { once: !0 },
13155        transition: { duration: 0.5, delay: 0.15 },
13156        className: "order-1 lg:order-2",
13157        "data-fg-cvv8243": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:705:11:31225:1578:e:motion.div:etetete",
13158        children: [
13159          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8244", _fgB: 1790697590647, className: "text-[#0056B3] text-xs tracking-widest uppercase mb-4 block", style: { fontWeight: 700 }, "data-fg-cvv8244": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:712:13:31489:129:e:span:t", children: "GTFS INTEGRATION" }),
13160          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cvv8246", _fgB: 1790697590647, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-cvv8246": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:713:13:31631:195:e:h2:t", children: "Publish to Google Maps and Every Rider App" }),
13161          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cvv8248", _fgB: 1790697590647, className: "text-lg text-slate-500 mb-8 leading-relaxed", "data-fg-cvv8248": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:716:13:31839:256:e:p:t", children: "Upload GTFS manually or connect for automatic scheduled publishing. Enable real-time vehicle locations through GTFS-RT feeds and export statistics for NTD reporting." }),
13162          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cvv8250", _fgB: 1790697590647, className: "space-y-4", "data-fg-cvv8250": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:719:13:32108:671:e:ul:x", children: [
13163            "Manual or automatic GTFS uploads on your schedule",
13164            "GTFS-RT live location tracking so riders see real vehicle positions",
13165            "Statistics and NTD report exporting built into the same workflow",
13166            "Powers Google Maps, Transit App, and your own rider tools from one feed"
13167          ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cvv8252", _fgB: 1790697590647, className: "flex items-start gap-3 text-slate-600", "data-fg-cvv8252": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:726:17:32531:212:e:li:ete", children: [
13168            /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cvv8253", _fgB: 1790697590647, size: 18, className: "text-[#0056B3] mt-0.5 flex-shrink-0", "data-fg-cvv8253": ":0:node_modules/lucide-react:727:19:32612:74:e:CheckCircle2::::::CELI" }),
13169            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cvv8254", _fgB: 1790697590647, "data-fg-cvv8254": ":0:/src/app/components/fixed-route/FixedRouteFeatures.tsx:728:19:32705:16:e:span:x", children: t })
13170          ] }, e)) })
13171        ]
13172      }
13173    )
13174  ] }) }) });
13175}
13176function op() {
13177  const { openContactModal: t } = Z();
13178  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bshz0", _fgB: 1790697590657, _fgD: !0, id: "fixed-route-cta", className: "bg-[#F8FAFC] py-24", "data-fg-bshz0": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:9:5:241:1325:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bshz1", _fgB: 1790697590657, className: "max-w-3xl mx-auto px-6 text-center", "data-fg-bshz1": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:10:7:309:1242:e:div:e", children: /* @__PURE__ */ c(
13179    a,
13180    {
13181      _fgT: m.div,
13182      _fgS: "bshz2",
13183      _fgB: 1790697590657,
13184      initial: { opacity: 0, y: 20 },
13185      whileInView: { opacity: 1, y: 0 },
13186      viewport: { once: !0 },
13187      transition: { duration: 0.5 },
13188      "data-fg-bshz2": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:11:9:370:1168:e:motion.div:etete",
13189      children: [
13190        /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bshz3", _fgB: 1790697590657, className: "text-3xl md:text-4xl text-slate-900 mb-4 leading-tight font-[Space_Grotesk]", style: { fontWeight: 700 }, "data-fg-bshz3": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:17:11:566:269:e:h2:tste", children: [
13191          "See Fixed Route Tools",
13192          " ",
13193          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bshz6", _fgB: 1790697590657, className: "text-[#EFBB0F] italic font-[Playfair_Display]", "data-fg-bshz6": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:19:13:738:81:e:span:t", children: "In Action." })
13194        ] }),
13195        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bshz8", _fgB: 1790697590657, className: "text-lg text-slate-500 mb-10 max-w-2xl mx-auto leading-relaxed", "data-fg-bshz8": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:21:11:846:215:e:p:t", children: "We'll walk you through route planning, blocking, live tracking, and GTFS publishing using your actual routes." }),
13196        /* @__PURE__ */ c(
13197          a,
13198          {
13199            _fgT: "button",
13200            _fgS: "bshz10",
13201            _fgB: 1790697590657,
13202            onClick: t,
13203            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/30",
13204            style: { fontWeight: 600 },
13205            "data-fg-bshz10": ":0:/src/app/components/fixed-route/FixedRouteCTA.tsx:25:11:1073:443:e:button:te",
13206            children: [
13207              "Schedule a Meeting",
13208              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "bshz12", _fgB: 1790697590657, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-bshz12": ":0:node_modules/lucide-react:31:13:1413:83:e:ArrowRight::::::s5N" })
13209            ]
13210          }
13211        )
13212      ]
13213    }
13214  ) }) });
13215}
13216const f4 = [
13217  { id: "feat-route-planning", label: "Route Planning", icon: S1, color: "#EFBB0F" },
13218  { id: "feat-blocking", label: "Blocking", icon: P3, color: "#0056B3" },
13219  { id: "feat-runcutting", label: "Runcutting", icon: Q5, color: "#EFBB0F" },
13220  { id: "feat-live-dashboard", label: "Live Dashboard", icon: N3, color: "#0056B3" },
13221  { id: "feat-driver-mdt", label: "Driver MDT", icon: S1, color: "#EFBB0F" },
13222  { id: "feat-gtfs", label: "GTFS", icon: X5, color: "#0056B3" }
13223];
13224function Lp() {
13225  const [t, e] = j(-1), [s, r] = j(!1);
13226  q(() => {
13227    const o = f4.map((l) => document.getElementById(l.id)), L = new IntersectionObserver(
13228      (l) => {
13229        const g = l.filter((f) => f.isIntersecting);
13230        if (g.length > 0) {
13231          let f = -1, p = 1 / 0;
13232          g.forEach((M) => {
13233            const u = o.findIndex((x) => x === M.target), h = M.boundingClientRect.top;
13234            h < p && u !== -1 && (p = h, f = u);
13235          }), f !== -1 && e(f);
13236        }
13237      },
13238      { threshold: 0.15, rootMargin: "-10% 0px -60% 0px" }
13239    );
13240    o.forEach((l) => {
13241      l && L.observe(l);
13242    });
13243    const d = () => {
13244      const l = o[0], g = o[o.length - 1];
13245      if (!l || !g) return;
13246      const f = l.getBoundingClientRect(), p = g.getBoundingClientRect(), M = f.top < window.innerHeight * 0.7 && p.bottom > window.innerHeight * 0.3;
13247      r(M);
13248    };
13249    return window.addEventListener("scroll", d, { passive: !0 }), d(), () => {
13250      L.disconnect(), window.removeEventListener("scroll", d);
13251    };
13252  }, []);
13253  const n = (o) => {
13254    const L = document.getElementById(o);
13255    L && L.scrollIntoView({ behavior: "smooth", block: "center" });
13256  };
13257  return /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "bf1p0", _fgB: 1790697590661, _fgD: !0, "data-fg-bf1p0": ":0:node_modules/motion:74:5:2666:3073:e:AnimatePresence:x:1::::DAs4", children: s && /* @__PURE__ */ c(
13258    a,
13259    {
13260      _fgT: m.div,
13261      _fgS: "bf1p2",
13262      _fgB: 1790697590661,
13263      initial: { opacity: 0, x: -20 },
13264      animate: { opacity: 1, x: 0 },
13265      exit: { opacity: 0, x: -20 },
13266      transition: { duration: 0.3 },
13267      className: "fixed left-5 top-1/2 -translate-y-1/2 z-40 hidden xl:flex flex-col items-center gap-1",
13268      "data-fg-bf1p2": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:76:9:2712:2995:e:motion.div:etxte",
13269      children: [
13270        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bf1p3", _fgB: 1790697590661, className: "bg-white/90 backdrop-blur-lg rounded-2xl shadow-xl border border-slate-200/80 py-3 px-2 flex flex-col items-center gap-0.5", "data-fg-bf1p3": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:83:11:3017:2128:e:div:x", children: f4.map((o, L) => {
13271          const d = L === t;
13272          return /* @__PURE__ */ c(
13273            a,
13274            {
13275              _fgT: "button",
13276              _fgS: "bf1p5",
13277              _fgB: 1790697590661,
13278              onClick: () => n(o.id),
13279              className: "relative group flex items-center gap-0 py-1.5 px-1.5 rounded-xl transition-all duration-300 hover:bg-slate-100",
13280              "aria-label": o.label,
13281              "data-fg-bf1p5": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:87:17:3291:1804:e:button:xtetxte",
13282              children: [
13283                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bf1p7", _fgB: 1790697590661, className: "relative w-6 h-6 flex items-center justify-center", "data-fg-bf1p7": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:94:19:3660:909:e:div:etx", children: [
13284                  /* @__PURE__ */ i(
13285                    a,
13286                    {
13287                      _fgT: m.div,
13288                      _fgS: "bf1p8",
13289                      _fgB: 1790697590661,
13290                      className: "rounded-full",
13291                      animate: {
13292                        width: d ? 10 : 6,
13293                        height: d ? 10 : 6,
13294                        backgroundColor: d ? o.color : "#CBD5E1"
13295                      },
13296                      transition: { type: "spring", stiffness: 500, damping: 30 },
13297                      "data-fg-bf1p8": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:95:21:3748:402:e:motion.div"
13298                    }
13299                  ),
13300                  d && /* @__PURE__ */ i(
13301                    a,
13302                    {
13303                      _fgT: m.div,
13304                      _fgS: "bf1p10",
13305                      _fgB: 1790697590661,
13306                      layoutId: "active-ring",
13307                      className: "absolute inset-0 rounded-full border-2",
13308                      style: { borderColor: o.color + "40" },
13309                      transition: { type: "spring", stiffness: 500, damping: 30 },
13310                      "data-fg-bf1p10": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:105:23:4208:313:e:motion.div"
13311                    }
13312                  )
13313                ] }),
13314                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bf1p12", _fgB: 1790697590661, className: "absolute left-full ml-3 pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity duration-200 whitespace-nowrap", "data-fg-bf1p12": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:115:19:4638:431:e:div:e", children: /* @__PURE__ */ i(
13315                  a,
13316                  {
13317                    _fgT: "div",
13318                    _fgS: "bf1p13",
13319                    _fgB: 1790697590661,
13320                    className: "bg-[#0B1B2B] text-white text-xs px-3 py-1.5 rounded-lg shadow-lg",
13321                    style: { fontWeight: 500 },
13322                    "data-fg-bf1p13": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:116:21:4804:240:e:div:x",
13323                    children: o.label
13324                  }
13325                ) })
13326              ]
13327            },
13328            o.id
13329          );
13330        }) }),
13331        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bf1p16", _fgB: 1790697590661, className: "absolute right-1/2 translate-x-1/2 top-3 bottom-3 w-[2px] bg-slate-200 rounded-full -z-10 pointer-events-none", "data-fg-bf1p16": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:129:11:5189:496:e:div:e", children: /* @__PURE__ */ i(
13332          a,
13333          {
13334            _fgT: m.div,
13335            _fgS: "bf1p17",
13336            _fgB: 1790697590661,
13337            className: "w-full bg-gradient-to-b from-[#EFBB0F] to-[#0056B3] rounded-full origin-top",
13338            animate: { scaleY: t >= 0 ? (t + 1) / f4.length : 0 },
13339            transition: { type: "spring", stiffness: 300, damping: 30 },
13340            style: { height: "100%" },
13341            "data-fg-bf1p17": ":0:/src/app/components/fixed-route/FixedRouteProgressNav.tsx:130:13:5329:339:e:motion.div"
13342          }
13343        ) })
13344      ]
13345    }
13346  ) });
13347}
13348function cp() {
13349  return /* @__PURE__ */ c(C, { children: [
13350    /* @__PURE__ */ i(a, { _fgT: Lp, _fgS: "cl5t1", _fgB: 1790697589417, "data-fg-cl5t1": ":0:/src/app/pages/FixedRoutePage.tsx:17:7:546:25:e:FixedRouteProgressNav::::::iKs" }),
13351    /* @__PURE__ */ i(a, { _fgT: Gf, _fgS: "cl5t2", _fgB: 1790697589417, "data-fg-cl5t2": ":0:/src/app/pages/FixedRoutePage.tsx:18:7:578:18:e:FixedRouteHero::::::DbTE" }),
13352    /* @__PURE__ */ i(a, { _fgT: Kf, _fgS: "cl5t3", _fgB: 1790697589417, "data-fg-cl5t3": ":0:/src/app/pages/FixedRoutePage.tsx:19:7:603:24:e:FeatureRoutePlanning::::::C5u4" }),
13353    /* @__PURE__ */ i(a, { _fgT: Xf, _fgS: "cl5t4", _fgB: 1790697589417, "data-fg-cl5t4": ":0:/src/app/pages/FixedRoutePage.tsx:20:7:634:19:e:FeatureBlocking::::::C8tF" }),
13354    /* @__PURE__ */ i(a, { _fgT: ep, _fgS: "cl5t5", _fgB: 1790697589417, "data-fg-cl5t5": ":0:/src/app/pages/FixedRoutePage.tsx:21:7:660:21:e:FeatureRuncutting::::::BWpd" }),
13355    /* @__PURE__ */ i(a, { _fgT: ap, _fgS: "cl5t6", _fgB: 1790697589417, "data-fg-cl5t6": ":0:/src/app/pages/FixedRoutePage.tsx:22:7:688:24:e:FeatureLiveDashboard::::::CkPQ" }),
13356    /* @__PURE__ */ i(a, { _fgT: ip, _fgS: "cl5t7", _fgB: 1790697589417, "data-fg-cl5t7": ":0:/src/app/pages/FixedRoutePage.tsx:23:7:719:20:e:FeatureDriverMDT::::::BpoT" }),
13357    /* @__PURE__ */ i(a, { _fgT: np, _fgS: "cl5t8", _fgB: 1790697589417, "data-fg-cl5t8": ":0:/src/app/pages/FixedRoutePage.tsx:24:7:746:15:e:FeatureGTFS::::::QNK" }),
13358    /* @__PURE__ */ i(a, { _fgT: op, _fgS: "cl5t9", _fgB: 1790697589417, "data-fg-cl5t9": ":0:/src/app/pages/FixedRoutePage.tsx:25:7:768:17:e:FixedRouteCTA::::::pNK" }),
13359    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "cl5t10", _fgB: 1790697589417, "data-fg-cl5t10": ":0:/src/app/pages/FixedRoutePage.tsx:26:7:792:10:e:Footer::::::B1Vv" })
13360  ] });
13361}
13362const lp = "https://images.unsplash.com/photo-1770596842159-8e487821c32b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjaXR5JTIwcHVibGljJTIwdHJhbnNpdCUyMGJ1cyUyMG5pZ2h0JTIwZG93bnRvd258ZW58MXx8fHwxNzcxNTM5MTMzfDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral", dp = "https://images.unsplash.com/photo-1771408662082-c75d32b98a0d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxwdWJsaWMlMjB0cmFuc2l0JTIwYnVzJTIwcm91dGUlMjBjaXR5JTIwZGF5dGltZXxlbnwxfHx8fDE3NzE1MzkxMzh8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral";
13363function gp() {
13364  const { openContactModal: t } = Z();
13365  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "byi80", _fgB: 1790697589949, _fgD: !0, className: "relative min-h-[90vh] flex items-center bg-[#0B1B2B] overflow-hidden", "data-fg-byi80": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:16:5:956:3579:e:section:xtetxtetete:1", children: [
13366    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "byi82", _fgB: 1790697589949, className: "absolute inset-0 z-0", "data-fg-byi82": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:18:7:1089:312:e:div:ete", children: [
13367      /* @__PURE__ */ i(
13368        a,
13369        {
13370          _fgT: Le,
13371          _fgS: "byi83",
13372          _fgB: 1790697589949,
13373          src: lp,
13374          alt: "City transit",
13375          className: "w-full h-full object-cover opacity-30",
13376          "data-fg-byi83": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:19:9:1136:142:e:ImageWithFallback::::::CBW2"
13377        }
13378      ),
13379      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "byi84", _fgB: 1790697589949, className: "absolute inset-0 bg-gradient-to-r from-[#0B1B2B] via-[#0B1B2B]/80 to-[#0B1B2B]/40", "data-fg-byi84": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:24:9:1287:101:e:div" })
13380    ] }),
13381    /* @__PURE__ */ i(
13382      a,
13383      {
13384        _fgT: "div",
13385        _fgS: "byi86",
13386        _fgB: 1790697589949,
13387        className: "absolute top-20 right-10 w-[500px] h-[500px] rounded-full opacity-15 blur-[120px] pointer-events-none",
13388        style: {
13389          background: "radial-gradient(circle, #EFBB0F 0%, transparent 70%)"
13390        },
13391        "data-fg-byi86": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:28:7:1436:241:e:div"
13392      }
13393    ),
13394    /* @__PURE__ */ i(
13395      a,
13396      {
13397        _fgT: "div",
13398        _fgS: "byi87",
13399        _fgB: 1790697589949,
13400        className: "absolute bottom-10 left-10 w-[400px] h-[400px] rounded-full opacity-10 blur-[120px] pointer-events-none",
13401        style: {
13402          background: "radial-gradient(circle, #0056B3 0%, transparent 70%)"
13403        },
13404        "data-fg-byi87": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:34:7:1684:243:e:div"
13405      }
13406    ),
13407    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "byi88", _fgB: 1790697589949, className: "container mx-auto px-6 relative z-10 py-28 md:py-36", "data-fg-byi88": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:41:7:1935:2585:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "byi89", _fgB: 1790697589949, className: "grid lg:grid-cols-2 gap-12 lg:gap-16 items-center", "data-fg-byi89": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:42:9:2013:2494:e:div:xtetxte", children: [
13408      /* @__PURE__ */ c(
13409        a,
13410        {
13411          _fgT: m.div,
13412          _fgS: "byi811",
13413          _fgB: 1790697589949,
13414          initial: { opacity: 0, y: 30 },
13415          animate: { opacity: 1, y: 0 },
13416          transition: { duration: 0.7 },
13417          "data-fg-byi811": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:44:11:2122:1657:e:motion.div:etetete",
13418          children: [
13419            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "byi812", _fgB: 1790697589949, className: "inline-block px-4 py-1.5 rounded-full border border-[#EFBB0F]/60 text-[#EFBB0F] text-xs tracking-widest uppercase mb-6", "data-fg-byi812": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:49:13:2288:181:e:div:t", children: "FIXED ROUTE" }),
13420            /* @__PURE__ */ c(
13421              a,
13422              {
13423                _fgT: "h1",
13424                _fgS: "byi814",
13425                _fgB: 1790697589949,
13426                className: "text-4xl md:text-5xl lg:text-6xl text-white mb-6 leading-[1.1] font-[Space_Grotesk]",
13427                style: { fontWeight: 700 },
13428                "data-fg-byi814": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:53:13:2483:280:e:h1:tste",
13429                children: [
13430                  "Fixed Route",
13431                  " ",
13432                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "byi817", _fgB: 1790697589949, className: "text-[#EFBB0F]", "data-fg-byi817": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:58:15:2698:47:e:span:t", children: "Transit" })
13433                ]
13434              }
13435            ),
13436            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "byi819", _fgB: 1790697589949, className: "text-lg text-slate-300 mb-10 leading-relaxed max-w-xl", "data-fg-byi819": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:61:13:2777:446:e:p:t", children: "Transit agencies are under pressure to deliver reliable service, meet growing rider expectations, and prove performance to funding bodies. Our platform gives fixed route operators the tools to run smarter networks, keep riders informed, and stay compliant — without adding headcount." }),
13437            /* @__PURE__ */ c(
13438              a,
13439              {
13440                _fgT: "button",
13441                _fgS: "byi821",
13442                _fgB: 1790697589949,
13443                onClick: t,
13444                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
13445                style: { fontWeight: 600 },
13446                "data-fg-byi821": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:69:13:3237:518:e:button:te",
13447                children: [
13448                  "Schedule a Meeting",
13449                  /* @__PURE__ */ i(
13450                    a,
13451                    {
13452                      _fgT: D,
13453                      _fgS: "byi823",
13454                      _fgB: 1790697589949,
13455                      size: 20,
13456                      className: "group-hover:translate-x-1 transition-transform",
13457                      "data-fg-byi823": ":0:node_modules/lucide-react:75:15:3604:129:e:ArrowRight::::::s5N"
13458                    }
13459                  )
13460                ]
13461              }
13462            )
13463          ]
13464        }
13465      ),
13466      /* @__PURE__ */ i(
13467        a,
13468        {
13469          _fgT: m.div,
13470          _fgS: "byi825",
13471          _fgB: 1790697589949,
13472          initial: { opacity: 0, scale: 0.95 },
13473          animate: { opacity: 1, scale: 1 },
13474          transition: { duration: 0.8, delay: 0.2 },
13475          className: "hidden lg:block",
13476          "data-fg-byi825": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:83:11:3827:665:e:motion.div:e",
13477          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "byi826", _fgB: 1790697589949, className: "relative rounded-2xl overflow-hidden shadow-2xl border border-white/10", "data-fg-byi826": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:89:13:4055:413:e:div:ete", children: [
13478            /* @__PURE__ */ i(
13479              a,
13480              {
13481                _fgT: Le,
13482                _fgS: "byi827",
13483                _fgB: 1790697589949,
13484                src: dp,
13485                alt: "Public transit bus in service",
13486                className: "w-full h-[420px] object-cover",
13487                "data-fg-byi827": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:90:15:4158:174:e:ImageWithFallback::::::CBW2"
13488              }
13489            ),
13490            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "byi828", _fgB: 1790697589949, className: "absolute inset-0 bg-gradient-to-t from-[#0B1B2B]/60 via-transparent to-transparent", "data-fg-byi828": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHero.tsx:95:15:4347:102:e:div" })
13491          ] })
13492        }
13493      )
13494    ] }) })
13495  ] });
13496}
13497const fp = [
13498  {
13499    icon: It,
13500    title: "Rider Expectations Have Changed",
13501    text: "Riders expect real-time bus locations, accurate arrival predictions, and mobile access. Agencies without these tools lose ridership to other transportation options.",
13502    color: "#EFBB0F"
13503  },
13504  {
13505    icon: Ad,
13506    title: "Tighter Budgets, Same Demands",
13507    text: "Federal and local funding requires proof of performance. Agencies need to show ridership numbers, on-time stats, and NTD data without burning hours on manual reporting.",
13508    color: "#0056B3"
13509  },
13510  {
13511    icon: h1,
13512    title: "Doing More With Less",
13513    text: "Dispatcher and driver shortages mean agencies need systems that reduce manual work, automate communication, and flag problems before they become service failures.",
13514    color: "#EFBB0F"
13515  }
13516];
13517function pp() {
13518  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "buz30", _fgB: 1790697589951, _fgD: !0, className: "py-24 md:py-32 bg-white", "data-fg-buz30": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:27:5:992:2170:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "buz31", _fgB: 1790697589951, className: "container mx-auto px-6", "data-fg-buz31": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:28:7:1044:2103:e:div:xtetxte", children: [
13519    /* @__PURE__ */ c(
13520      a,
13521      {
13522        _fgT: m.div,
13523        _fgS: "buz33",
13524        _fgB: 1790697589951,
13525        initial: { opacity: 0, y: 20 },
13526        whileInView: { opacity: 1, y: 0 },
13527        viewport: { once: !0 },
13528        transition: { duration: 0.5 },
13529        className: "text-center mb-16",
13530        "data-fg-buz33": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:30:9:1123:691:e:motion.div:ete",
13531        children: [
13532          /* @__PURE__ */ i(
13533            a,
13534            {
13535              _fgT: "span",
13536              _fgS: "buz34",
13537              _fgB: 1790697589951,
13538              className: "text-[#EFBB0F] text-xs tracking-[0.2em] uppercase block mb-4",
13539              style: { fontWeight: 700 },
13540              "data-fg-buz34": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:37:11:1359:186:e:span:t",
13541              children: "THE CHALLENGE"
13542            }
13543          ),
13544          /* @__PURE__ */ i(
13545            a,
13546            {
13547              _fgT: "h2",
13548              _fgS: "buz36",
13549              _fgB: 1790697589951,
13550              className: "text-3xl md:text-4xl lg:text-5xl text-[#0B1B2B] font-[Space_Grotesk] max-w-3xl mx-auto",
13551              style: { fontWeight: 700 },
13552              "data-fg-buz36": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:43:11:1556:236:e:h2:t",
13553              children: "What Fixed Route Operators Are Up Against"
13554            }
13555          )
13556        ]
13557      }
13558    ),
13559    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "buz39", _fgB: 1790697589951, className: "grid md:grid-cols-3 gap-8 max-w-5xl mx-auto", "data-fg-buz39": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:52:9:1846:1288:e:div:x", children: fp.map((t, e) => /* @__PURE__ */ c(
13560      a,
13561      {
13562        _fgT: m.div,
13563        _fgS: "buz311",
13564        _fgB: 1790697589951,
13565        initial: { opacity: 0, y: 30 },
13566        whileInView: { opacity: 1, y: 0 },
13567        viewport: { once: !0 },
13568        transition: { duration: 0.5, delay: e * 0.15 },
13569        className: "bg-[#f8f9fb] rounded-2xl p-8 text-center group hover:shadow-lg transition-shadow duration-300 border border-slate-100",
13570        "data-fg-buz311": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:54:13:1956:1149:e:motion.div:xtetete",
13571        children: [
13572          /* @__PURE__ */ i(
13573            a,
13574            {
13575              _fgT: "div",
13576              _fgS: "buz313",
13577              _fgB: 1790697589951,
13578              className: "w-16 h-16 rounded-2xl mx-auto mb-6 flex items-center justify-center",
13579              style: { backgroundColor: t.color + "12" },
13580              "data-fg-buz313": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:63:15:2395:358:e:div:e",
13581              children: /* @__PURE__ */ i(
13582                a,
13583                {
13584                  _fgT: t.icon,
13585                  _fgS: "buz314",
13586                  _fgB: 1790697589951,
13587                  size: 30,
13588                  strokeWidth: 1.8,
13589                  style: { color: t.color },
13590                  "data-fg-buz314": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:67:17:2591:141:e:card.icon"
13591                }
13592              )
13593            }
13594          ),
13595          /* @__PURE__ */ i(
13596            a,
13597            {
13598              _fgT: "h3",
13599              _fgS: "buz315",
13600              _fgB: 1790697589951,
13601              className: "text-lg text-[#0B1B2B] mb-3 font-[Space_Grotesk]",
13602              style: { fontWeight: 700 },
13603              "data-fg-buz315": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:74:15:2769:189:e:h3:x",
13604              children: t.title
13605            }
13606          ),
13607          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "buz317", _fgB: 1790697589951, className: "text-slate-500 leading-relaxed text-[15px]", "data-fg-buz317": ":0:/src/app/components/fixed-route-market/FixedRouteMarketChallenge.tsx:81:15:2974:105:e:p:x", children: t.text })
13608        ]
13609      },
13610      t.title
13611    )) })
13612  ] }) });
13613}
13614const Mp = "https://images.unsplash.com/photo-1575095504575-d957c11ea5dd?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxwZXJzb24lMjBjaGVja2luZyUyMHNtYXJ0cGhvbmUlMjBidXMlMjBzdG9wJTIwdHJhbnNpdHxlbnwxfHx8fDE3NzE1MzkxMzN8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral", up = "https://images.unsplash.com/photo-1729184648234-7650c1484905?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxmbGVldCUyMGRpc3BhdGNoJTIwY29udHJvbCUyMGNlbnRlciUyMHNjcmVlbnN8ZW58MXx8fHwxNzcxNTM5MTM0fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral", hp = "https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxkYXRhJTIwYW5hbHl0aWNzJTIwZGFzaGJvYXJkJTIwcmVwb3J0JTIwbGFwdG9wfGVufDF8fHx8MTc3MTUzOTEzNHww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral";
13615function mp({
13616  headline: t,
13617  bullets: e,
13618  image: s,
13619  imageAlt: r,
13620  reverse: n,
13621  index: o
13622}) {
13623  return /* @__PURE__ */ c(
13624    a,
13625    {
13626      _fgT: "div",
13627      _fgS: "bzbv0",
13628      _fgB: 1790697589954,
13629      _fgD: !0,
13630      className: `grid md:grid-cols-2 gap-12 lg:gap-16 items-center ${n ? "md:[&>*:first-child]:order-2" : ""}`,
13631      "data-fg-bzbv0": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:32:5:1364:1629:e:div:xtetxte:1",
13632      children: [
13633        /* @__PURE__ */ c(
13634          a,
13635          {
13636            _fgT: m.div,
13637            _fgS: "bzbv2",
13638            _fgB: 1790697589954,
13639            initial: { opacity: 0, x: n ? 30 : -30 },
13640            whileInView: { opacity: 1, x: 0 },
13641            viewport: { once: !0 },
13642            transition: { duration: 0.6, delay: 0.1 },
13643            "data-fg-bzbv2": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:38:7:1535:930:e:motion.div:ete",
13644            children: [
13645              /* @__PURE__ */ i(
13646                a,
13647                {
13648                  _fgT: "h3",
13649                  _fgS: "bzbv3",
13650                  _fgB: 1790697589954,
13651                  className: "text-2xl md:text-3xl text-[#0B1B2B] mb-6 font-[Space_Grotesk]",
13652                  style: { fontWeight: 700 },
13653                  "data-fg-bzbv3": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:44:9:1747:170:e:h3:x",
13654                  children: t
13655                }
13656              ),
13657              /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bzbv5", _fgB: 1790697589954, className: "space-y-4", "data-fg-bzbv5": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:51:9:1927:518:e:ul:x", children: e.map((L, d) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bzbv7", _fgB: 1790697589954, className: "flex items-start gap-3", "data-fg-bzbv7": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:53:13:2006:411:e:li:ete", children: [
13658                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bzbv8", _fgB: 1790697589954, className: "mt-1 flex-shrink-0 w-5 h-5 rounded-full bg-[#0056B3]/10 flex items-center justify-center", "data-fg-bzbv8": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:54:15:2068:208:e:span:e", children: /* @__PURE__ */ i(a, { _fgT: Dc, _fgS: "bzbv9", _fgB: 1790697589954, size: 12, className: "text-[#0056B3]", strokeWidth: 3, "data-fg-bzbv9": ":0:node_modules/lucide-react:55:17:2192:62:e:Check::::::Dijm" }) }),
13659                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bzbv10", _fgB: 1790697589954, className: "text-slate-600 leading-relaxed text-[15px]", "data-fg-bzbv10": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:57:15:2291:108:e:span:x", children: L })
13660              ] }, d)) })
13661            ]
13662          }
13663        ),
13664        /* @__PURE__ */ i(
13665          a,
13666          {
13667            _fgT: m.div,
13668            _fgS: "bzbv13",
13669            _fgB: 1790697589954,
13670            initial: { opacity: 0, x: n ? -30 : 30 },
13671            whileInView: { opacity: 1, x: 0 },
13672            viewport: { once: !0 },
13673            transition: { duration: 0.6, delay: 0.2 },
13674            "data-fg-bzbv13": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:66:7:2493:489:e:motion.div:e",
13675            children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bzbv14", _fgB: 1790697589954, className: "rounded-2xl overflow-hidden shadow-xl border border-slate-200/60", "data-fg-bzbv14": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:72:9:2705:257:e:div:e", children: /* @__PURE__ */ i(
13676              a,
13677              {
13678                _fgT: Le,
13679                _fgS: "bzbv15",
13680                _fgB: 1790697589954,
13681                src: s,
13682                alt: r,
13683                className: "w-full h-[320px] md:h-[380px] object-cover",
13684                "data-fg-bzbv15": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:73:11:2798:149:e:ImageWithFallback::::::CBW2"
13685              }
13686            ) })
13687          }
13688        )
13689      ]
13690    }
13691  );
13692}
13693const xp = [
13694  {
13695    headline: "Give Riders a Reason to Choose the Bus",
13696    bullets: [
13697      "Where's My Bus rider tools let passengers see live vehicle locations on their phone or at the stop",
13698      "Accurate arrival predictions powered by the same AVL system your dispatchers use",
13699      "No app download required — riders can access everything through a web browser"
13700    ],
13701    image: Mp,
13702    imageAlt: "Person checking phone at a bus stop",
13703    reverse: !1
13704  },
13705  {
13706    headline: "Run Your Entire Network From One Screen",
13707    bullets: [
13708      "Route building, scheduling, and dispatch all managed through a single platform",
13709      "Real-time schedule adherence monitoring flags early and late arrivals at every timepoint",
13710      "Hybrid route support for agencies blending fixed stops with flex or deviated service"
13711    ],
13712    image: up,
13713    imageAlt: "Dispatch control center with multiple screens",
13714    reverse: !0
13715  },
13716  {
13717    headline: "Reporting That’s Ready When You Are",
13718    bullets: [
13719      "NTD-ready exports generated with one click instead of weeks of manual compilation",
13720      "Ridership, on-time performance, and route-level stats tracked automatically",
13721      "Trip-level audit trail available for federal reviews, complaints, and service planning"
13722    ],
13723    image: hp,
13724    imageAlt: "Data analytics dashboard with charts and reports",
13725    reverse: !1
13726  }
13727];
13728function _p() {
13729  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bzbv16", _fgB: 1790697589954, _fgD: !0, className: "py-24 md:py-32 bg-[#f8f9fb]", "data-fg-bzbv16": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:122:5:4523:1092:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bzbv17", _fgB: 1790697589954, className: "container mx-auto px-6", "data-fg-bzbv17": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:123:7:4579:1021:e:div:xtetxte", children: [
13730    /* @__PURE__ */ c(
13731      a,
13732      {
13733        _fgT: m.div,
13734        _fgS: "bzbv19",
13735        _fgB: 1790697589954,
13736        initial: { opacity: 0, y: 20 },
13737        whileInView: { opacity: 1, y: 0 },
13738        viewport: { once: !0 },
13739        transition: { duration: 0.5 },
13740        className: "text-center mb-20",
13741        "data-fg-bzbv19": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:125:9:4659:697:e:motion.div:ete",
13742        children: [
13743          /* @__PURE__ */ i(
13744            a,
13745            {
13746              _fgT: "span",
13747              _fgS: "bzbv20",
13748              _fgB: 1790697589954,
13749              className: "text-[#0056B3] text-xs tracking-[0.2em] uppercase block mb-4",
13750              style: { fontWeight: 700 },
13751              "data-fg-bzbv20": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:132:11:4895:184:e:span:t",
13752              children: "HOW WE HELP"
13753            }
13754          ),
13755          /* @__PURE__ */ i(
13756            a,
13757            {
13758              _fgT: "h2",
13759              _fgS: "bzbv22",
13760              _fgB: 1790697589954,
13761              className: "text-3xl md:text-4xl lg:text-5xl text-[#0B1B2B] font-[Space_Grotesk] max-w-3xl mx-auto",
13762              style: { fontWeight: 700 },
13763              "data-fg-bzbv22": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:138:11:5090:244:e:h2:t",
13764              children: "Built for the Realities of Fixed Route Operations"
13765            }
13766          )
13767        ]
13768      }
13769    ),
13770    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bzbv25", _fgB: 1790697589954, className: "space-y-20 md:space-y-28 max-w-6xl mx-auto", "data-fg-bzbv25": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:147:9:5399:188:e:div:x", children: xp.map((t, e) => /* @__PURE__ */ i(a, { _fgT: mp, _fgS: "bzbv27", _fgB: 1790697589954, ...t, index: e, "data-fg-bzbv27": ":0:/src/app/components/fixed-route-market/FixedRouteMarketHowWeHelp.tsx:149:13:5506:52:e:FeatureRow::::::DhHX" }, t.headline)) })
13771  ] }) });
13772}
13773const bp = [
13774  {
13775    icon: k1,
13776    label: "Municipal Transit Agencies"
13777  },
13778  {
13779    icon: Pt,
13780    label: "Regional Authorities"
13781  },
13782  {
13783    icon: Ll,
13784    label: "University Shuttle Systems"
13785  },
13786  {
13787    icon: W7,
13788    label: "Private Contract Operators"
13789  }
13790];
13791function vp() {
13792  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bqii0", _fgB: 1790697589956, _fgD: !0, className: "py-24 md:py-32 bg-[#0B1B2B]", "data-fg-bqii0": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:25:5:476:1747:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bqii1", _fgB: 1790697589956, className: "container mx-auto px-6", "data-fg-bqii1": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:26:7:532:1676:e:div:etxte", children: [
13793    /* @__PURE__ */ c(
13794      a,
13795      {
13796        _fgT: m.div,
13797        _fgS: "bqii2",
13798        _fgB: 1790697589956,
13799        initial: { opacity: 0, y: 20 },
13800        whileInView: { opacity: 1, y: 0 },
13801        viewport: { once: !0 },
13802        transition: { duration: 0.5 },
13803        className: "text-center mb-16",
13804        "data-fg-bqii2": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:27:9:581:635:e:motion.div:ete",
13805        children: [
13806          /* @__PURE__ */ i(
13807            a,
13808            {
13809              _fgT: "h2",
13810              _fgS: "bqii3",
13811              _fgB: 1790697589956,
13812              className: "text-3xl md:text-4xl lg:text-5xl text-white font-[Space_Grotesk] mb-4",
13813              style: { fontWeight: 700 },
13814              "data-fg-bqii3": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:34:11:817:194:e:h2:t",
13815              children: "Who We Work With"
13816            }
13817          ),
13818          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bqii5", _fgB: 1790697589956, className: "text-slate-400 text-lg max-w-2xl mx-auto", "data-fg-bqii5": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:40:11:1022:172:e:p:t", children: "Our fixed route platform serves transit agencies and operators of all sizes." })
13819        ]
13820      }
13821    ),
13822    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqii8", _fgB: 1790697589956, className: "grid grid-cols-2 md:grid-cols-4 gap-8 max-w-4xl mx-auto", "data-fg-bqii8": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:47:9:1257:938:e:div:x", children: bp.map((t, e) => /* @__PURE__ */ c(
13823      a,
13824      {
13825        _fgT: m.div,
13826        _fgS: "bqii10",
13827        _fgB: 1790697589956,
13828        initial: { opacity: 0, y: 20 },
13829        whileInView: { opacity: 1, y: 0 },
13830        viewport: { once: !0 },
13831        transition: { duration: 0.4, delay: e * 0.1 },
13832        className: "flex flex-col items-center text-center gap-4",
13833        "data-fg-bqii10": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:49:13:1383:783:e:motion.div:ete",
13834        children: [
13835          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bqii11", _fgB: 1790697589956, className: "w-14 h-14 rounded-xl bg-white/5 border border-white/10 flex items-center justify-center", "data-fg-bqii11": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:57:15:1723:209:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bqii12", _fgB: 1790697589956, size: 26, className: "text-white", strokeWidth: 1.5, "data-fg-bqii12": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:58:17:1845:66:e:client.icon" }) }),
13836          /* @__PURE__ */ i(
13837            a,
13838            {
13839              _fgT: "span",
13840              _fgS: "bqii13",
13841              _fgB: 1790697589956,
13842              className: "text-white text-sm md:text-[15px] leading-snug",
13843              style: { fontWeight: 500 },
13844              "data-fg-bqii13": ":0:/src/app/components/fixed-route-market/FixedRouteMarketClients.tsx:60:15:1947:193:e:span:x",
13845              children: t.label
13846            }
13847          )
13848        ]
13849      },
13850      t.label
13851    )) })
13852  ] }) });
13853}
13854function yp() {
13855  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cosr0", _fgB: 1790697589957, _fgD: !0, className: "py-24 md:py-32 bg-[#f8f9fb]", "data-fg-cosr0": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:7:5:173:1450:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cosr1", _fgB: 1790697589957, className: "container mx-auto px-6 text-center", "data-fg-cosr1": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:8:7:229:1379:e:div:e", children: /* @__PURE__ */ c(
13856    a,
13857    {
13858      _fgT: m.div,
13859      _fgS: "cosr2",
13860      _fgB: 1790697589957,
13861      initial: { opacity: 0, y: 20 },
13862      whileInView: { opacity: 1, y: 0 },
13863      viewport: { once: !0 },
13864      transition: { duration: 0.5 },
13865      className: "max-w-2xl mx-auto",
13866      "data-fg-cosr2": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:9:9:290:1305:e:motion.div:etete",
13867      children: [
13868        /* @__PURE__ */ i(
13869          a,
13870          {
13871            _fgT: "h2",
13872            _fgS: "cosr3",
13873            _fgB: 1790697589957,
13874            className: "text-3xl md:text-4xl lg:text-5xl text-[#0B1B2B] font-[Space_Grotesk] mb-5",
13875            style: { fontWeight: 700 },
13876            "data-fg-cosr3": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:16:11:526:222:e:h2:t",
13877            children: "Want to See What’s Under the Hood?"
13878          }
13879        ),
13880        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cosr5", _fgB: 1790697589957, className: "text-slate-500 text-lg leading-relaxed mb-10", "data-fg-cosr5": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:23:11:760:264:e:p:t", children: "Our Fixed Route tools page breaks down every module: route planning, blocking, runcutting, driver scheduling, live dashboard, MDT, and GTFS integration." }),
13881        /* @__PURE__ */ i(a, { _fgT: E, _fgS: "cosr7", _fgB: 1790697589957, href: "/fixed-route", "data-fg-cosr7": ":0:node_modules/wouter:29:11:1036:537:e:Link:e:::::C4yE", children: /* @__PURE__ */ c(
13882          a,
13883          {
13884            _fgT: "span",
13885            _fgS: "cosr8",
13886            _fgB: 1790697589957,
13887            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
13888            style: { fontWeight: 600 },
13889            "data-fg-cosr8": ":0:/src/app/components/fixed-route-market/FixedRouteMarketExplore.tsx:30:13:1075:480:e:span:te",
13890            children: [
13891              "Explore Fixed Route Tools",
13892              /* @__PURE__ */ i(
13893                a,
13894                {
13895                  _fgT: D,
13896                  _fgS: "cosr10",
13897                  _fgB: 1790697589957,
13898                  size: 20,
13899                  className: "group-hover:translate-x-1 transition-transform",
13900                  "data-fg-cosr10": ":0:node_modules/lucide-react:35:15:1406:129:e:ArrowRight::::::s5N"
13901                }
13902              )
13903            ]
13904          }
13905        ) })
13906      ]
13907    }
13908  ) }) });
13909}
13910function wp() {
13911  const { openContactModal: t } = Z();
13912  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bxtm0", _fgB: 1790697589959, _fgD: !0, id: "fr-market-cta", className: "py-24 md:py-32 bg-white", "data-fg-bxtm0": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:9:5:247:1559:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bxtm1", _fgB: 1790697589959, className: "container mx-auto px-6 text-center", "data-fg-bxtm1": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:10:7:318:1473:e:div:e", children: /* @__PURE__ */ c(
13913    a,
13914    {
13915      _fgT: m.div,
13916      _fgS: "bxtm2",
13917      _fgB: 1790697589959,
13918      initial: { opacity: 0, y: 20 },
13919      whileInView: { opacity: 1, y: 0 },
13920      viewport: { once: !0 },
13921      transition: { duration: 0.5 },
13922      className: "max-w-2xl mx-auto",
13923      "data-fg-bxtm2": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:11:9:379:1399:e:motion.div:etete",
13924      children: [
13925        /* @__PURE__ */ i(
13926          a,
13927          {
13928            _fgT: "h2",
13929            _fgS: "bxtm3",
13930            _fgB: 1790697589959,
13931            className: "text-3xl md:text-4xl lg:text-5xl text-[#0B1B2B] font-[Space_Grotesk] mb-5",
13932            style: { fontWeight: 700 },
13933            "data-fg-bxtm3": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:18:11:615:228:e:h2:t",
13934            children: "Ready to Modernize Your Fixed Route Operation?"
13935          }
13936        ),
13937        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bxtm5", _fgB: 1790697589959, className: "text-slate-500 text-lg leading-relaxed mb-10", "data-fg-bxtm5": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:25:11:855:182:e:p:t", children: "See how our platform can help your agency run better service with fewer headaches." }),
13938        /* @__PURE__ */ i(
13939          a,
13940          {
13941            _fgT: m.div,
13942            _fgS: "bxtm7",
13943            _fgB: 1790697589959,
13944            initial: { opacity: 0, y: 10 },
13945            whileInView: { opacity: 1, y: 0 },
13946            viewport: { once: !0 },
13947            "data-fg-bxtm7": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:30:11:1049:707:e:motion.div:e",
13948            children: /* @__PURE__ */ c(
13949              a,
13950              {
13951                _fgT: "button",
13952                _fgS: "bxtm8",
13953                _fgB: 1790697589959,
13954                onClick: t,
13955                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
13956                style: { fontWeight: 600 },
13957                "data-fg-bxtm8": ":0:/src/app/components/fixed-route-market/FixedRouteMarketCTA.tsx:35:13:1214:518:e:button:te",
13958                children: [
13959                  "Schedule a Meeting",
13960                  /* @__PURE__ */ i(
13961                    a,
13962                    {
13963                      _fgT: D,
13964                      _fgS: "bxtm10",
13965                      _fgB: 1790697589959,
13966                      size: 20,
13967                      className: "group-hover:translate-x-1 transition-transform",
13968                      "data-fg-bxtm10": ":0:node_modules/lucide-react:41:15:1581:129:e:ArrowRight::::::s5N"
13969                    }
13970                  )
13971                ]
13972              }
13973            )
13974          }
13975        )
13976      ]
13977    }
13978  ) }) });
13979}
13980function Tp() {
13981  return /* @__PURE__ */ c(C, { children: [
13982    /* @__PURE__ */ i(a, { _fgT: gp, _fgS: "bafr1", _fgB: 1790697589419, "data-fg-bafr1": ":0:/src/app/pages/FixedRouteMarketPage.tsx:12:7:728:24:e:FixedRouteMarketHero::::::CZjf" }),
13983    /* @__PURE__ */ i(a, { _fgT: pp, _fgS: "bafr2", _fgB: 1790697589419, "data-fg-bafr2": ":0:/src/app/pages/FixedRouteMarketPage.tsx:13:7:759:29:e:FixedRouteMarketChallenge::::::B4vD" }),
13984    /* @__PURE__ */ i(a, { _fgT: _p, _fgS: "bafr3", _fgB: 1790697589419, "data-fg-bafr3": ":0:/src/app/pages/FixedRouteMarketPage.tsx:14:7:795:29:e:FixedRouteMarketHowWeHelp::::::Bmkt" }),
13985    /* @__PURE__ */ i(a, { _fgT: vp, _fgS: "bafr4", _fgB: 1790697589419, "data-fg-bafr4": ":0:/src/app/pages/FixedRouteMarketPage.tsx:15:7:831:27:e:FixedRouteMarketClients::::::y3t" }),
13986    /* @__PURE__ */ i(a, { _fgT: yp, _fgS: "bafr5", _fgB: 1790697589419, "data-fg-bafr5": ":0:/src/app/pages/FixedRouteMarketPage.tsx:16:7:865:27:e:FixedRouteMarketExplore::::::CVO1" }),
13987    /* @__PURE__ */ i(a, { _fgT: wp, _fgS: "bafr6", _fgB: 1790697589419, "data-fg-bafr6": ":0:/src/app/pages/FixedRouteMarketPage.tsx:17:7:899:23:e:FixedRouteMarketCTA::::::4RZ" }),
13988    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "bafr7", _fgB: 1790697589419, "data-fg-bafr7": ":0:/src/app/pages/FixedRouteMarketPage.tsx:18:7:929:10:e:Footer::::::B1Vv" })
13989  ] });
13990}
13991const Sp = globalThis.__GLOBALS__.getAssetURL("07ee40f8d505573301206f713f5e50e28e386462.png");
13992function Bp() {
13993  const { openContactModal: t } = Z();
13994  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "dcwu0", _fgB: 1790697589982, _fgD: !0, className: "relative min-h-[90vh] flex items-center bg-slate-900 overflow-hidden", "data-fg-dcwu0": ":0:/src/app/components/paratransit/ParatransitHero.tsx:10:5:325:3120:e:section:xtete:1", children: [
13995    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dcwu2", _fgB: 1790697589982, className: "absolute inset-0 z-0 bg-slate-900", "data-fg-dcwu2": ":0:/src/app/components/paratransit/ParatransitHero.tsx:12:7:453:443:e:div:etxte", children: [
13996      /* @__PURE__ */ i(
13997        a,
13998        {
13999          _fgT: "img",
14000          _fgS: "dcwu3",
14001          _fgB: 1790697589982,
14002          src: Sp,
14003          alt: "Paratransit Vehicle",
14004          className: "w-full h-full object-contain object-right opacity-90",
14005          "data-fg-dcwu3": ":0:/src/app/components/paratransit/ParatransitHero.tsx:13:9:513:154:e:img"
14006        }
14007      ),
14008      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu5", _fgB: 1790697589982, className: "absolute inset-0 bg-gradient-to-r from-slate-900 via-slate-900/60 to-transparent", "data-fg-dcwu5": ":0:/src/app/components/paratransit/ParatransitHero.tsx:19:9:783:100:e:div" })
14009    ] }),
14010    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dcwu6", _fgB: 1790697589982, className: "container mx-auto px-6 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-dcwu6": ":0:/src/app/components/paratransit/ParatransitHero.tsx:22:7:904:2526:e:div:xtetxte", children: [
14011      /* @__PURE__ */ c(
14012        a,
14013        {
14014          _fgT: m.div,
14015          _fgS: "dcwu8",
14016          _fgB: 1790697589982,
14017          initial: { opacity: 0, x: -50 },
14018          animate: { opacity: 1, x: 0 },
14019          transition: { duration: 0.8 },
14020          "data-fg-dcwu8": ":0:/src/app/components/paratransit/ParatransitHero.tsx:24:9:1041:1392:e:motion.div:etetete",
14021          children: [
14022            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu9", _fgB: 1790697589982, className: "inline-block px-4 py-1.5 rounded-full border border-white/30 text-white text-sm font-bold tracking-widest uppercase mb-6 backdrop-blur-sm", "data-fg-dcwu9": ":0:/src/app/components/paratransit/ParatransitHero.tsx:29:11:1198:196:e:div:t", children: "PARATRANSIT" }),
14023            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "dcwu11", _fgB: 1790697589982, className: "text-5xl md:text-7xl font-bold text-white mb-6 leading-tight font-[Space_Grotesk]", "data-fg-dcwu11": ":0:/src/app/components/paratransit/ParatransitHero.tsx:32:11:1405:190:e:h1:te", children: [
14024              "Paratransit ",
14025              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dcwu13", _fgB: 1790697589982, className: "text-[#EFBB0F]", "data-fg-dcwu13": ":0:/src/app/components/paratransit/ParatransitHero.tsx:33:25:1528:51:e:span:t", children: "Reimagined." })
14026            ] }),
14027            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dcwu15", _fgB: 1790697589982, className: "text-lg md:text-xl text-slate-300 mb-8 leading-relaxed max-w-xl text-shadow-sm", "data-fg-dcwu15": ":0:/src/app/components/paratransit/ParatransitHero.tsx:35:11:1606:358:e:p:t", children: "Paratransit agencies juggle ADA compliance, rising trip volumes, rider expectations, and constant pressure to control costs. Our platform helps operators deliver reliable, dignified service while keeping operations lean and audit-ready." }),
14028            /* @__PURE__ */ c(
14029              a,
14030              {
14031                _fgT: "button",
14032                _fgS: "dcwu17",
14033                _fgB: 1790697589982,
14034                onClick: t,
14035                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
14036                "data-fg-dcwu17": ":0:/src/app/components/paratransit/ParatransitHero.tsx:39:11:1986:425:e:button:te",
14037                children: [
14038                  "Request a Demo",
14039                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dcwu19", _fgB: 1790697589982, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-dcwu19": ":0:node_modules/lucide-react:44:13:2308:83:e:ArrowRight::::::s5N" })
14040                ]
14041              }
14042            )
14043          ]
14044        }
14045      ),
14046      /* @__PURE__ */ i(
14047        a,
14048        {
14049          _fgT: m.div,
14050          _fgS: "dcwu21",
14051          _fgB: 1790697589982,
14052          initial: { opacity: 0, y: 50 },
14053          animate: { opacity: 1, y: 0 },
14054          transition: { delay: 0.3, duration: 0.8 },
14055          className: "hidden lg:flex justify-end items-end h-full",
14056          "data-fg-dcwu21": ":0:/src/app/components/paratransit/ParatransitHero.tsx:49:9:2482:935:e:motion.div:e",
14057          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dcwu22", _fgB: 1790697589982, className: "bg-white rounded-3xl p-8 shadow-2xl flex items-center gap-8 max-w-md", "data-fg-dcwu22": ":0:/src/app/components/paratransit/ParatransitHero.tsx:55:11:2716:679:e:div:etete", children: [
14058            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dcwu23", _fgB: 1790697589982, className: "flex-1 text-center", "data-fg-dcwu23": ":0:/src/app/components/paratransit/ParatransitHero.tsx:56:13:2815:246:e:div:ete", children: [
14059              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu24", _fgB: 1790697589982, className: "text-4xl font-bold text-slate-900 mb-1", "data-fg-dcwu24": ":0:/src/app/components/paratransit/ParatransitHero.tsx:57:15:2866:67:e:div:t", children: "3.4M+" }),
14060              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu26", _fgB: 1790697589982, className: "text-xs font-bold text-slate-400 tracking-widest uppercase", "data-fg-dcwu26": ":0:/src/app/components/paratransit/ParatransitHero.tsx:58:15:2948:94:e:div:t", children: "Annual Trips" })
14061            ] }),
14062            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu28", _fgB: 1790697589982, className: "w-px h-16 bg-slate-200", "data-fg-dcwu28": ":0:/src/app/components/paratransit/ParatransitHero.tsx:60:13:3074:46:e:div:_" }),
14063            /* @__P
14063URE__ */ c(a, { _fgT: "div", _fgS: "dcwu29", _fgB: 1790697589982, className: "flex-1 text-center", "data-fg-dcwu29": ":0:/src/app/components/paratransit/ParatransitHero.tsx:61:13:3133:245:e:div:ete", children: [
14064              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu30", _fgB: 1790697589982, className: "text-4xl font-bold text-slate-900 mb-1", "data-fg-dcwu30": ":0:/src/app/components/paratransit/ParatransitHero.tsx:62:15:3184:65:e:div:t", children: "98%" }),
14065              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcwu32", _fgB: 1790697589982, className: "text-xs font-bold text-slate-400 tracking-widest uppercase", "data-fg-dcwu32": ":0:/src/app/components/paratransit/ParatransitHero.tsx:63:15:3264:95:e:div:t", children: "On-Time Perf." })
14066            ] })
14067          ] })
14068        }
14069      )
14070    ] })
14071  ] });
14072}
14073const kp = [
14074  {
14075    icon: _2,
14076    title: "ADA Compliance Is Non-Negotiable",
14077    text: "Every trip has to meet strict eligibility, pickup window, and ride time requirements. One missed rule can mean a federal complaint or funding risk."
14078  },
14079  {
14080    icon: Y,
14081    title: "Call Centers Are Overwhelmed",
14082    text: "Riders calling to book, confirm, cancel, and ask where their ride is. Agencies without self-service tools burn staff hours on repetitive calls."
14083  },
14084  {
14085    icon: R3,
14086    title: "Too Many Trips, Not Enough Vehicles",
14087    text: "Trip volumes keep growing but fleets and budgets don't. Operators need to move more people with fewer vehicles without sacrificing on-time performance."
14088  }
14089];
14090function Ap() {
14091  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bw20", _fgB: 1790697589989, _fgD: !0, className: "bg-white py-24 border-b border-gray-100", "data-fg-bw20": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:24:5:903:1795:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bw21", _fgB: 1790697589989, className: "container mx-auto px-6 max-w-7xl text-center", "data-fg-bw21": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:25:7:971:1712:e:div:etete", children: [
14092    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bw22", _fgB: 1790697589989, className: "inline-block text-[#EFBB0F] font-bold text-xs tracking-widest uppercase mb-4", "data-fg-bw22": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:27:9:1051:135:e:span:t", children: "THE CHALLENGE" }),
14093    /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bw24", _fgB: 1790697589989, className: "text-3xl md:text-4xl font-bold text-slate-900 mb-16 max-w-2xl mx-auto leading-tight", "data-fg-bw24": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:31:9:1204:171:e:h2:t", children: "What Paratransit Operators Deal With Every Day" }),
14094    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bw26", _fgB: 1790697589989, className: "grid md:grid-cols-3 gap-12 text-left", "data-fg-bw26": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:35:9:1385:1276:e:div:x", children: kp.map((t, e) => /* @__PURE__ */ c(
14095      a,
14096      {
14097        _fgT: m.div,
14098        _fgS: "bw28",
14099        _fgB: 1790697589989,
14100        initial: { opacity: 0, y: 20 },
14101        whileInView: { opacity: 1, y: 0 },
14102        viewport: { once: !0 },
14103        transition: { delay: e * 0.1 },
14104        className: "group",
14105        "data-fg-bw28": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:37:13:1502:1130:e:motion.div:etete",
14106        children: [
14107          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bw29", _fgB: 1790697589989, className: "w-16 h-16 rounded-2xl bg-slate-50 text-slate-900 flex items-center justify-center mb-6 shadow-sm border border-slate-100 group-hover:scale-105 transition-transform duration-300", "data-fg-bw29": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:45:15:1785:498:e:div:xtxtxtx", children: [
14108            e === 0 && /* @__PURE__ */ i(a, { _fgT: _2, _fgS: "bw212", _fgB: 1790697589989, size: 32, strokeWidth: 1.5, "data-fg-bw212": ":0:node_modules/lucide-react:47:33:2066:45:e:Accessibility::::::DNxc" }),
14109            e === 1 && /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "bw214", _fgB: 1790697589989, size: 32, strokeWidth: 1.5, "data-fg-bw214": ":0:node_modules/lucide-react:48:33:2145:37:e:Phone::::::DmpI" }),
14110            e === 2 && /* @__PURE__ */ i(a, { _fgT: R3, _fgS: "bw216", _fgB: 1790697589989, size: 32, strokeWidth: 1.5, "data-fg-bw216": ":0:node_modules/lucide-react:49:33:2216:45:e:AlertTriangle::::::Ruk" })
14111          ] }),
14112          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bw217", _fgB: 1790697589989, className: "text-xl font-bold text-slate-900 mb-4 group-hover:text-[#0056B3] transition-colors", "data-fg-bw217": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:52:15:2313:153:e:h3:x", children: t.title }),
14113          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bw219", _fgB: 1790697589989, className: "text-slate-600 leading-relaxed text-[16px]", "data-fg-bw219": ":0:/src/app/components/paratransit/ParatransitChallenges.tsx:56:15:2496:110:e:p:x", children: t.text })
14114        ]
14115      },
14116      e
14117    )) })
14118  ] }) });
14119}
14120const Np = [
14121  {
14122    id: "efficiency",
14123    headline: "Move More Riders With Fewer Vehicles",
14124    bullets: [
14125      "Patented ERSA algorithm builds shared-ride manifests from thousands of daily trip requests",
14126      "Honors all SLA constraints including pickup windows, max ride times, and driver hour limits",
14127      "Same-day will-call trips inserted dynamically into active routes without rebuilding the manifest"
14128    ],
14129    image: "https://images.unsplash.com/photo-1769967210422-39106a789671?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxVU0ElMjBjaXR5JTIwc3RyZWV0JTIwbWFwJTIwR1BTJTIwbmF2aWdhdGlvbnxlbnwxfHx8fDE3NzMxOTUzMDV8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
14130    imageAlt: "Route optimization map",
14131    layout: "text-left"
14132  },
14133  {
14134    id: "rider-self-service",
14135    headline: "Let Riders Help Themselves",
14136    bullets: [
14137      "Where's My Ride app, web portal, and IVR phone system let riders book, confirm, and cancel without calling in",
14138      "Real-time vehicle tracking and ETA notifications so riders know exactly when their ride is arriving",
14139      "Contactless boarding with facial recognition, QR codes, or Bluetooth speeds up pickup and logs trips automatically"
14140    ],
14141    image: "https://images.unsplash.com/photo-1729949607063-34590384b26b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx3b21hbiUyMHNtYXJ0cGhvbmUlMjB0cmFuc2l0JTIwYm9va2luZyUyMG1vYmlsZSUyMGFwcCUyMG91dGRvb3JzfGVufDF8fHx8MTc3MzE5NTQ2MXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
14142    imageAlt: "Rider using app",
14143    layout: "image-left"
14144  },
14145  {
14146    id: "compliance",
14147    headline: "Stay Audit-Ready Without the Busywork",
14148    bullets: [
14149      "NTD and FTA reports generated with one click instead of weeks of pulling data manually",
14150      "On-time performance, no-shows, trip denials, and cancellations all tracked automatically",
14151      "Funding source billing and Medicaid ID tracking built into the trip record from dispatch through payment"
14152    ],
14153    image: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxkYXRhJTIwYW5hbHl0aWNzJTIwZGFzaGJvYXJkJTIwY2hhcnRzJTIwZ3JhcGhzfGVufDF8fHx8MTc3MTM1OTc1OXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
14154    imageAlt: "Compliance dashboard",
14155    layout: "text-left"
14156  }
14157];
14158function Ip() {
14159  const [t, e] = j(null);
14160  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "kas0", _fgB: 1790697589986, _fgD: !0, className: "bg-slate-50 py-24 overflow-hidden", "data-fg-kas0": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:52:5:2730:4204:e:section:xtete:1", children: [
14161    /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "kas2", _fgB: 1790697589986, "data-fg-kas2": ":0:node_modules/motion:55:7:2830:1211:e:AnimatePresence:x:::::DAs4", children: t && /* @__PURE__ */ i(
14162      a,
14163      {
14164        _fgT: m.div,
14165        _fgS: "kas4",
14166        _fgB: 1790697589986,
14167        initial: { opacity: 0 },
14168        animate: { opacity: 1 },
14169        exit: { opacity: 0 },
14170        className: "fixed inset-0 z-50 flex items-center justify-center bg-slate-900/90 backdrop-blur-sm p-4 md:p-8",
14171        onClick: () => e(null),
14172        "data-fg-kas4": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:57:11:2886:1119:e:motion.div:e",
14173        children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "kas5", _fgB: 1790697589986, className: "relative max-w-7xl w-full h-full flex items-center justify-center", "data-fg-kas5": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:64:13:3201:780:e:div:ete", children: [
14174          /* @__PURE__ */ i(
14175            a,
14176            {
14177              _fgT: "button",
14178              _fgS: "kas6",
14179              _fgB: 1790697589986,
14180              className: "absolute top-0 right-0 p-2 text-white/70 hover:text-white transition-colors",
14181              onClick: () => e(null),
14182              "data-fg-kas6": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:65:15:3299:239:e:button:e",
14183              children: /* @__PURE__ */ i(a, { _fgT: D3, _fgS: "kas7", _fgB: 1790697589986, size: 32, "data-fg-kas7": ":0:node_modules/lucide-react:69:17:3499:15:e:X::::::TvS" })
14184            }
14185          ),
14186          /* @__PURE__ */ i(
14187            a,
14188            {
14189              _fgT: m.img,
14190              _fgS: "kas8",
14191              _fgB: 1790697589986,
14192              initial: { scale: 0.9, opacity: 0 },
14193              animate: { scale: 1, opacity: 1 },
14194              exit: { scale: 0.9, opacity: 0 },
14195              src: t,
14196              alt: "Enlarged view",
14197              className: "max-w-full max-h-full rounded-lg shadow-2xl object-contain",
14198              onClick: (s) => s.stopPropagation(),
14199              "data-fg-kas8": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:72:15:3568:394:e:motion.img"
14200            }
14201          )
14202        ] })
14203      }
14204    ) }),
14205    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "kas9", _fgB: 1790697589986, className: "container mx-auto px-6 max-w-7xl", "data-fg-kas9": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:86:7:4049:2870:e:div:xtetxte", children: [
14206      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "kas11", _fgB: 1790697589986, className: "text-center mb-20", "data-fg-kas11": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:89:9:4148:352:e:div:ete", children: [
14207        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "kas12", _fgB: 1790697589986, className: "inline-block text-[#0056B3] font-bold text-xs tracking-widest uppercase mb-4", "data-fg-kas12": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:90:11:4194:137:e:span:t", children: "HOW WE HELP" }),
14208        /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "kas14", _fgB: 1790697589986, className: "text-3xl md:text-5xl font-bold text-slate-900 leading-tight", "data-fg-kas14": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:93:11:4342:143:e:h2:t", children: "Built for the Realities of Paratransit" })
14209      ] }),
14210      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "kas17", _fgB: 1790697589986, className: "space-y-24 md:space-y-32", "data-fg-kas17": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:99:9:4539:2367:e:div:x", children: Np.map((s, r) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "kas19", _fgB: 1790697589986, className: `flex flex-col lg:flex-row items-center gap-12 lg:gap-20 ${s.layout === "image-left" ? "lg:flex-row-reverse" : ""}`, "data-fg-kas19": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:101:13:4640:2237:e:div:xtetxte", children: [
14211        /* @__PURE__ */ c(
14212          a,
14213          {
14214            _fgT: m.div,
14215            _fgS: "kas21",
14216            _fgB: 1790697589986,
14217            initial: { opacity: 0, y: 20 },
14218            whileInView: { opacity: 1, y: 0 },
14219            viewport: { once: !0 },
14220            transition: { duration: 0.5 },
14221            className: "w-full lg:w-[35%]",
14222            "data-fg-kas21": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:104:15:4853:862:e:motion.div:ete",
14223            children: [
14224              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "kas22", _fgB: 1790697589986, className: "text-2xl md:text-3xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-kas22": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:111:17:5132:136:e:h3:x", children: s.headline }),
14225              /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "kas24", _fgB: 1790697589986, className: "space-y-4", "data-fg-kas24": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:114:17:5285:402:e:ul:x", children: s.bullets.map((n, o) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "kas26", _fgB: 1790697589986, className: "flex items-start gap-3 text-lg text-slate-600 leading-relaxed", "data-fg-kas26": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:116:21:5386:257:e:li:ete", children: [
14226                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "kas27", _fgB: 1790697589986, className: "mt-2 w-1.5 h-1.5 rounded-full bg-[#EFBB0F] flex-shrink-0", "data-fg-kas27": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:117:23:5497:76:e:div" }),
14227                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "kas28", _fgB: 1790697589986, "data-fg-kas28": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:118:23:5596:21:e:span:x", children: n })
14228              ] }, o)) })
14229            ]
14230          }
14231        ),
14232        /* @__PURE__ */ i(
14233          a,
14234          {
14235            _fgT: m.div,
14236            _fgS: "kas31",
14237            _fgB: 1790697589986,
14238            initial: { opacity: 0, scale: 0.95 },
14239            whileInView: { opacity: 1, scale: 1 },
14240            viewport: { once: !0 },
14241            transition: { duration: 0.5, delay: 0.1 },
14242            className: "w-full lg:w-[65%] relative group cursor-pointer",
14243            onClick: () => e(s.image),
14244            "data-fg-kas31": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:125:15:5767:1090:e:motion.div:e",
14245            children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "kas32", _fgB: 1790697589986, className: "relative rounded-2xl overflow-hidden shadow-2xl border border-slate-200/50 bg-white transition-transform duration-300 group-hover:scale-[1.01] group-hover:shadow-[0_20px_50px_rgba(0,0,0,0.1)]", "data-fg-kas32": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:133:17:6158:671:e:div:ete", children: [
14246              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "kas33", _fgB: 1790697589986, className: "absolute top-4 right-4 z-10 opacity-0 group-hover:opacity-100 transition-opacity bg-black/50 text-white p-2 rounded-full backdrop-blur-md", "data-fg-kas33": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:134:19:6386:224:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: C3, _fgS: "kas34", _fgB: 1790697589986, size: 20, "data-fg-kas34": ":0:node_modules/lucide-react:135:21:6562:23:e:Maximize2::::::DtbI" }) }),
14247              /* @__PURE__ */ i(
14248                a,
14249                {
14250                  _fgT: "img",
14251                  _fgS: "kas35",
14252                  _fgB: 1790697589986,
14253                  src: s.image,
14254                  alt: s.imageAlt,
14255                  className: "w-full h-auto object-cover aspect-[16/10]",
14256                  "data-fg-kas35": ":0:/src/app/components/paratransit/ParatransitCapabilities.tsx:137:19:6629:177:e:img"
14257                }
14258              )
14259            ] })
14260          }
14261        )
14262      ] }, s.id)) })
14263    ] })
14264  ] });
14265}
14266const Pp = [
14267  {
14268    icon: k1,
14269    label: "Transit Authorities"
14270  },
14271  {
14272    icon: _2,
14273    label: "ADA Paratransit Providers"
14274  },
14275  {
14276    icon: fd,
14277    label: "Medicaid Service Providers"
14278  },
14279  {
14280    icon: si,
14281    label: "Demand-Response Contractors"
14282  }
14283];
14284function Cp() {
14285  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "sfc0", _fgB: 1790697589984, _fgD: !0, className: "bg-slate-900 py-24 border-t border-slate-800", "data-fg-sfc0": ":0:/src/app/components/paratransit/ParatransitClients.tsx:25:5:472:1629:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sfc1", _fgB: 1790697589984, className: "container mx-auto px-6 max-w-7xl text-center", "data-fg-sfc1": ":0:/src/app/components/paratransit/ParatransitClients.tsx:26:7:545:1541:e:div:ete", children: [
14286    /* @__PURE__ */ c(
14287      a,
14288      {
14289        _fgT: m.div,
14290        _fgS: "sfc2",
14291        _fgB: 1790697589984,
14292        initial: { opacity: 0, y: 20 },
14293        whileInView: { opacity: 1, y: 0 },
14294        viewport: { once: !0 },
14295        className: "mb-16",
14296        "data-fg-sfc2": ":0:/src/app/components/paratransit/ParatransitClients.tsx:28:9:625:482:e:motion.div:ete",
14297        children: [
14298          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "sfc3", _fgB: 1790697589984, className: "text-3xl md:text-4xl font-bold text-white mb-6", "data-fg-sfc3": ":0:/src/app/components/paratransit/ParatransitClients.tsx:34:11:808:108:e:h2:t", children: "Who We Work With" }),
14299          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sfc5", _fgB: 1790697589984, className: "text-xl text-slate-400 max-w-2xl mx-auto", "data-fg-sfc5": ":0:/src/app/components/paratransit/ParatransitClients.tsx:37:11:927:158:e:p:t", children: "Our paratransit platform serves agencies and providers across the country." })
14300        ]
14301      }
14302    ),
14303    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sfc7", _fgB: 1790697589984, className: "grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12", "data-fg-sfc7": ":0:/src/app/components/paratransit/ParatransitClients.tsx:42:9:1117:955:e:div:x", children: Pp.map((t, e) => /* @__PURE__ */ c(
14304      a,
14305      {
14306        _fgT: m.div,
14307        _fgS: "sfc9",
14308        _fgB: 1790697589984,
14309        initial: { opacity: 0, y: 20 },
14310        whileInView: { opacity: 1, y: 0 },
14311        viewport: { once: !0 },
14312        transition: { delay: e * 0.1 },
14313        className: "flex flex-col items-center group",
14314        "data-fg-sfc9": ":0:/src/app/components/paratransit/ParatransitClients.tsx:44:13:1244:799:e:motion.div:ete",
14315        children: [
14316          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sfc10", _fgB: 1790697589984, className: "w-16 h-16 rounded-2xl bg-slate-800 text-blue-400 flex items-center justify-center mb-6 border border-slate-700 group-hover:bg-[#0056B3] group-hover:text-white group-hover:border-[#0056B3] transition-all duration-300 shadow-lg", "data-fg-sfc10": ":0:/src/app/components/paratransit/ParatransitClients.tsx:52:15:1554:324:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "sfc11", _fgB: 1790697589984, size: 32, strokeWidth: 1.5, "data-fg-sfc11": ":0:/src/app/components/paratransit/ParatransitClients.tsx:53:17:1814:43:e:client.icon" }) }),
14317          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "sfc12", _fgB: 1790697589984, className: "text-lg font-bold text-white max-w-[160px] leading-tight", "data-fg-sfc12": ":0:/src/app/components/paratransit/ParatransitClients.tsx:55:15:1893:124:e:h3:x", children: t.label })
14318        ]
14319      },
14320      e
14321    )) })
14322  ] }) });
14323}
14324function Fp() {
14325  const { openContactModal: t } = Z();
14326  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "ejqm0", _fgB: 1790697589997, _fgD: !0, id: "contact", className: "relative py-24 bg-white border-t border-slate-200", "data-fg-ejqm0": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:9:5:242:1379:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ejqm1", _fgB: 1790697589997, className: "max-w-4xl mx-auto px-6 text-center", "data-fg-ejqm1": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:10:7:333:1273:e:div:ete", children: [
14327    /* @__PURE__ */ c(
14328      a,
14329      {
14330        _fgT: m.div,
14331        _fgS: "ejqm2",
14332        _fgB: 1790697589997,
14333        initial: { opacity: 0, y: 20 },
14334        whileInView: { opacity: 1, y: 0 },
14335        viewport: { once: !0 },
14336        "data-fg-ejqm2": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:11:9:394:561:e:motion.div:ete",
14337        children: [
14338          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "ejqm3", _fgB: 1790697589997, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 font-[Space_Grotesk]", "data-fg-ejqm3": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:16:11:549:189:e:h2:te", children: [
14339            "Ready to Run Better ",
14340            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ejqm5", _fgB: 1790697589997, className: "text-[#0056B3]", "data-fg-ejqm5": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:17:33:670:52:e:span:t", children: "Paratransit?" })
14341          ] }),
14342          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ejqm7", _fgB: 1790697589997, className: "text-xl text-slate-600 mb-10 max-w-2xl mx-auto", "data-fg-ejqm7": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:19:11:749:184:e:p:t", children: "See how our platform helps agencies move more riders, hit on-time targets, and stay compliant." })
14343        ]
14344      }
14345    ),
14346    /* @__PURE__ */ i(
14347      a,
14348      {
14349        _fgT: m.div,
14350        _fgS: "ejqm9",
14351        _fgB: 1790697589997,
14352        initial: { opacity: 0, scale: 0.9 },
14353        whileInView: { opacity: 1, scale: 1 },
14354        viewport: { once: !0 },
14355        "data-fg-ejqm9": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:24:9:965:628:e:motion.div:e",
14356        children: /* @__PURE__ */ c(
14357          a,
14358          {
14359            _fgT: "button",
14360            _fgS: "ejqm10",
14361            _fgB: 1790697589997,
14362            onClick: t,
14363            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-2xl hover:shadow-blue-900/20 cursor-pointer",
14364            "data-fg-ejqm10": ":0:/src/app/components/paratransit/ParatransitCTA.tsx:29:11:1129:442:e:button:te",
14365            children: [
14366              "Request a Demo",
14367              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "ejqm12", _fgB: 1790697589997, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-ejqm12": ":0:node_modules/lucide-react:34:13:1468:83:e:ArrowRight::::::s5N" })
14368            ]
14369          }
14370        )
14371      }
14372    )
14373  ] }) });
14374}
14375function Ep() {
14376  return /* @__PURE__ */ c(C, { children: [
14377    /* @__PURE__ */ i(a, { _fgT: Bp, _fgS: "dwir1", _fgB: 1790697589421, "data-fg-dwir1": ":0:/src/app/pages/ParatransitPage.tsx:11:7:543:19:e:ParatransitHero::::::BZN5" }),
14378    /* @__PURE__ */ i(a, { _fgT: Ap, _fgS: "dwir2", _fgB: 1790697589421, "data-fg-dwir2": ":0:/src/app/pages/ParatransitPage.tsx:12:7:569:25:e:ParatransitChallenges::::::CWxB" }),
14379    /* @__PURE__ */ i(a, { _fgT: Ip, _fgS: "dwir3", _fgB: 1790697589421, "data-fg-dwir3": ":0:/src/app/pages/ParatransitPage.tsx:13:7:601:27:e:ParatransitCapabilities::::::DkVl" }),
14380    /* @__PURE__ */ i(a, { _fgT: Cp, _fgS: "dwir4", _fgB: 1790697589421, "data-fg-dwir4": ":0:/src/app/pages/ParatransitPage.tsx:14:7:635:22:e:ParatransitClients::::::C6N3" }),
14381    /* @__PURE__ */ i(a, { _fgT: Fp, _fgS: "dwir5", _fgB: 1790697589421, "data-fg-dwir5": ":0:/src/app/pages/ParatransitPage.tsx:15:7:664:18:e:ParatransitCTA::::::BZBb" }),
14382    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "dwir6", _fgB: 1790697589421, "data-fg-dwir6": ":0:/src/app/pages/ParatransitPage.tsx:16:7:689:10:e:Footer::::::B1Vv" })
14383  ] });
14384}
14385const Rp = globalThis.__GLOBALS__.getAssetURL("ee012999e56a6528c6c3fb454b8d457d8eba2cde.png");
14386function Dp() {
14387  const { openContactModal: t } = Z();
14388  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y0", _fgB: 1790697590174, _fgD: !0, className: "relative bg-slate-900 overflow-hidden", "data-fg-c09y0": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:10:5:350:5631:e:div:xtetxte:1", children: [
14389    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "c09y2", _fgB: 1790697590174, className: "relative min-h-[85vh] flex items-center pt-20 pb-20 lg:pt-0 lg:pb-0", "data-fg-c09y2": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:12:7:444:4289:e:section:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y3", _fgB: 1790697590174, className: "container mx-auto px-6 pt-16 lg:pt-24 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-c09y3": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:13:9:542:4174:e:div:xtetxte", children: [
14390      /* @__PURE__ */ c(
14391        a,
14392        {
14393          _fgT: m.div,
14394          _fgS: "c09y5",
14395          _fgB: 1790697590174,
14396          initial: { opacity: 0, y: 30 },
14397          animate: { opacity: 1, y: 0 },
14398          transition: { duration: 0.8 },
14399          className: "flex flex-col items-start",
14400          "data-fg-c09y5": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:15:11:698:1642:e:motion.div:etetete",
14401          children: [
14402            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y6", _fgB: 1790697590174, className: "inline-block px-4 py-1.5 rounded-full border border-amber-500/50 bg-amber-500/10 text-amber-400 text-xs font-bold tracking-widest uppercase mb-8 shadow-[0_0_15px_rgba(239,187,15,0.3)] backdrop-blur-sm", "data-fg-c09y6": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:21:13:914:264:e:div:t", children: "MICROTRANSIT" }),
14403            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "c09y8", _fgB: 1790697590174, className: "text-5xl md:text-7xl font-bold text-white mb-6 leading-tight font-[Space_Grotesk]", "data-fg-c09y8": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:25:13:1204:242:e:h1:tete", children: [
14404              "Stop Running Three Networks",
14405              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c09y10", _fgB: 1790697590174, "data-fg-c09y10": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:26:42:1344:6:e:br" }),
14406              "When You Only Need ",
14407              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y12", _fgB: 1790697590174, className: "text-[#EFBB0F]", "data-fg-c09y12": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:27:34:1384:44:e:span:t", children: "One." })
14408            ] }),
14409            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c09y14", _fgB: 1790697590174, className: "text-lg md:text-xl text-slate-300 mb-10 leading-relaxed max-w-xl", "data-fg-c09y14": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:30:13:1472:379:e:p:t", children: "Paratransit. Fixed route. On-demand. Most agencies run them as separate operations with separate fleets and separate budgets. IT Curves ties them together into a single commingled network where every vehicle, every route, and every rider is managed from one platform." }),
14410            /* @__P
14410URE__ */ c(
14411              a,
14412              {
14413                _fgT: "button",
14414                _fgS: "c09y16",
14415                _fgB: 1790697590174,
14416                onClick: t,
14417                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
14418                "data-fg-c09y16": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:34:13:1877:439:e:button:te",
14419                children: [
14420                  "See How It Works",
14421                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "c09y18", _fgB: 1790697590174, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-c09y18": ":0:node_modules/lucide-react:39:15:2211:83:e:ArrowRight::::::s5N" })
14422                ]
14423              }
14424            )
14425          ]
14426        }
14427      ),
14428      /* @__PURE__ */ i(
14429        a,
14430        {
14431          _fgT: m.div,
14432          _fgS: "c09y20",
14433          _fgB: 1790697590174,
14434          initial: { opacity: 0, scale: 0.95 },
14435          animate: { opacity: 1, scale: 1 },
14436          transition: { delay: 0.2, duration: 0.8 },
14437          className: "relative h-full min-h-[400px] lg:min-h-[600px] flex items-center justify-center",
14438          "data-fg-c09y20": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:44:11:2387:2314:e:motion.div:e",
14439          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y21", _fgB: 1790697590174, className: "relative w-full h-full rounded-2xl overflow-hidden shadow-2xl border border-slate-700/50 group", "data-fg-c09y21": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:50:13:2679:1998:e:div:etetxte", children: [
14440            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y22", _fgB: 1790697590174, className: "absolute inset-0 bg-gradient-to-t from-slate-900/80 via-transparent to-transparent z-10", "data-fg-c09y22": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:51:15:2806:107:e:div" }),
14441            /* @__PURE__ */ i(
14442              a,
14443              {
14444                _fgT: "img",
14445                _fgS: "c09y23",
14446                _fgB: 1790697590174,
14447                src: Rp,
14448                alt: "Microtransit Commingled Network",
14449                className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",
14450                "data-fg-c09y23": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:52:15:2928:230:e:img"
14451              }
14452            ),
14453            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y25", _fgB: 1790697590174, className: "absolute bottom-6 left-6 right-6 z-20", "data-fg-c09y25": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:59:15:3242:1416:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y26", _fgB: 1790697590174, className: "bg-slate-900/90 backdrop-blur-md p-4 rounded-xl border border-slate-700 shadow-xl", "data-fg-c09y26": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:60:17:3314:1323:e:div:ete", children: [
14454              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y27", _fgB: 1790697590174, className: "flex items-center gap-4 mb-3", "data-fg-c09y27": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:61:19:3432:255:e:div:ete", children: [
14455                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y28", _fgB: 1790697590174, className: "w-3 h-3 rounded-full bg-green-500 animate-pulse", "data-fg-c09y28": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:62:21:3499:67:e:div" }),
14456                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y29", _fgB: 1790697590174, className: "text-white font-medium text-sm", "data-fg-c09y29": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:63:21:3587:75:e:span:t", children: "Live Network Status" })
14457              ] }),
14458              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y31", _fgB: 1790697590174, className: "flex justify-between items-center text-xs text-slate-400 border-t border-slate-700 pt-3", "data-fg-c09y31": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:65:19:3706:908:e:div:etetetete", children: [
14459                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y32", _fgB: 1790697590174, className: "flex flex-col items-center", "data-fg-c09y32": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:66:21:3832:202:e:div:ete", children: [
14460                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y33", _fgB: 1790697590174, className: "text-white font-bold text-lg", "data-fg-c09y33": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:67:23:3899:57:e:span:t", children: "142" }),
14461                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y35", _fgB: 1790697590174, "data-fg-c09y35": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:68:23:3979:28:e:span:t", children: "Active Vehicles" })
14462                ] }),
14463                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y37", _fgB: 1790697590174, className: "h-8 w-px bg-slate-700", "data-fg-c09y37": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:70:21:4055:41:e:div" }),
14464                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y38", _fgB: 1790697590174, className: "flex flex-col items-center", "data-fg-c09y38": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:71:21:4117:194:e:div:ete", children: [
14465                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y39", _fgB: 1790697590174, className: "text-white font-bold text-lg", "data-fg-c09y39": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:72:23:4184:57:e:span:t", children: "98%" }),
14466                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y41", _fgB: 1790697590174, "data-fg-c09y41": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:73:23:4264:20:e:span:t", children: "On-Time" })
14467                ] }),
14468                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y43", _fgB: 1790697590174, className: "h-8 w-px bg-slate-700", "data-fg-c09y43": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:75:21:4332:41:e:div" }),
14469                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y44", _fgB: 1790697590174, className: "flex flex-col items-center", "data-fg-c09y44": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:76:21:4394:195:e:div:ete", children: [
14470                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y45", _fgB: 1790697590174, className: "text-white font-bold text-lg", "data-fg-c09y45": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:77:23:4461:57:e:span:t", children: "12m" }),
14471                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y47", _fgB: 1790697590174, "data-fg-c09y47": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:78:23:4541:21:e:span:t", children: "Avg Wait" })
14472                ] })
14473              ] })
14474            ] }) })
14475          ] })
14476        }
14477      )
14478    ] }) }),
14479    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y50", _fgB: 1790697590174, className: "w-full bg-slate-800/50 border-t border-slate-800 py-6", "data-fg-c09y50": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:89:7:4774:1196:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y51", _fgB: 1790697590174, className: "container mx-auto px-6", "data-fg-c09y51": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:90:9:4854:1103:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y52", _fgB: 1790697590174, className: "flex flex-col md:flex-row justify-center items-center gap-4 md:gap-12 text-center", "data-fg-c09y52": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:91:11:4905:1037:e:div:etetetete", children: [
14480      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y53", _fgB: 1790697590174, className: "flex items-center gap-3", "data-fg-c09y53": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:92:13:5017:222:e:div:ete", children: [
14481        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "c09y54", _fgB: 1790697590174, size: 18, className: "text-[#EFBB0F]", "data-fg-c09y54": ":0:node_modules/lucide-react:93:15:5073:53:e:CheckCircle2::::::CELI" }),
14482        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y55", _fgB: 1790697590174, className: "text-white font-medium tracking-wide", "data-fg-c09y55": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:94:15:5141:79:e:span:t", children: "Commingled Fleets" })
14483      ] }),
14484      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y57", _fgB: 1790697590174, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-c09y57": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:97:13:5265:57:e:div" }),
14485      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y58", _fgB: 1790697590174, className: "flex items-center gap-3", "data-fg-c09y58": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:99:13:5348:234:e:div:ete", children: [
14486        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "c09y59", _fgB: 1790697590174, size: 18, className: "text-[#EFBB0F]", "data-fg-c09y59": ":0:node_modules/lucide-react:100:15:5404:53:e:CheckCircle2::::::CELI" }),
14487        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y60", _fgB: 1790697590174, className: "text-white font-medium tracking-wide", "data-fg-c09y60": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:101:15:5472:91:e:span:t", children: "First-Mile Last-Mile Coverage" })
14488      ] }),
14489      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c09y62", _fgB: 1790697590174, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-c09y62": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:104:13:5608:57:e:div" }),
14490      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c09y63", _fgB: 1790697590174, className: "flex items-center gap-3", "data-fg-c09y63": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:106:13:5691:234:e:div:ete", children: [
14491        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "c09y64", _fgB: 1790697590174, size: 18, className: "text-[#EFBB0F]", "data-fg-c09y64": ":0:node_modules/lucide-react:107:15:5747:53:e:CheckCircle2::::::CELI" }),
14492        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c09y65", _fgB: 1790697590174, className: "text-white font-medium tracking-wide", "data-fg-c09y65": ":0:/src/app/components/microtransit/MicrotransitHero.tsx:108:15:5815:91:e:span:t", children: "Full Simulation Before Launch" })
14493      ] })
14494    ] }) }) })
14495  ] });
14496}
14497function zp() {
14498  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bak90", _fgB: 1790697590176, _fgD: !0, className: "py-24 bg-white", "data-fg-bak90": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:6:5:154:2268:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bak91", _fgB: 1790697590176, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-start", "data-fg-bak91": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:7:7:197:2210:e:div:xtetxte", children: [
14499    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bak93", _fgB: 1790697590176, className: "lg:w-3/4", "data-fg-bak93": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:9:9:315:825:e:div:e", children: /* @__PURE__ */ c(
14500      a,
14501      {
14502        _fgT: m.div,
14503        _fgS: "bak94",
14504        _fgB: 1790697590176,
14505        initial: { opacity: 0, x: -30 },
14506        whileInView: { opacity: 1, x: 0 },
14507        viewport: { once: !0 },
14508        transition: { duration: 0.6 },
14509        "data-fg-bak94": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:10:11:352:773:e:motion.div:etete",
14510        children: [
14511          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bak95", _fgB: 1790697590176, className: "inline-block px-4 py-1.5 rounded-full border border-red-500/20 bg-red-50 text-red-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-bak95": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:16:13:561:197:e:div:t", children: "THE PROBLEM" }),
14512          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bak97", _fgB: 1790697590176, className: "text-4xl md:text-5xl font-bold text-slate-900 leading-tight mb-8", "data-fg-bak97": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:20:13:784:237:e:h2:tete", children: [
14513            "Transit agencies keep adding services.",
14514            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bak99", _fgB: 1790697590176, "data-fg-bak99": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:21:53:918:6:e:br" }),
14515            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bak910", _fgB: 1790697590176, className: "text-[#EFBB0F]", "data-fg-bak910": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:22:15:939:64:e:span:t", children: "But not connecting them." })
14516          ] }),
14517          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bak912", _fgB: 1790697590176, className: "h-1 w-24 bg-slate-200 rounded-full", "data-fg-bak912": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:25:13:1047:54:e:div" })
14518        ]
14519      }
14520    ) }),
14521    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bak914", _fgB: 1790697590176, className: "space-y-8", "data-fg-bak914": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:30:9:1178:1216:e:div:etete", children: [
14522      /* @__PURE__ */ i(
14523        a,
14524        {
14525          _fgT: p4,
14526          _fgS: "bak915",
14527          _fgB: 1790697590176,
14528          icon: /* @__PURE__ */ i(a, { _fgT: Y5, _fgS: "bak916", _fgB: 1790697590176, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-bak916": ":0:node_modules/lucide-react:32:19:1248:50:e:AlertCircle::::::fAY" }),
14529          title: "Siloed Fleets Burn Money",
14530          description: "Your paratransit vans sit idle when they could be serving your fixed route riders. Three separate fleets serving the same community means vehicles, drivers, and dispatchers that can't help each other.",
14531          delay: 0.1,
14532          "data-fg-bak915": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:31:11:1216:392:e:ProblemCard::::::geS"
14533        }
14534      ),
14535      /* @__PURE__ */ i(
14536        a,
14537        {
14538          _fgT: p4,
14539          _fgS: "bak917",
14540          _fgB: 1790697590176,
14541          icon: /* @__PURE__ */ i(a, { _fgT: Pt, _fgS: "bak918", _fgB: 1790697590176, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-bak918": ":0:node_modules/lucide-react:39:19:1662:45:e:MapPin::::::BveZ" }),
14542          title: "Low-Density Areas Get Left Behind",
14543          description: "Fixed routes can't justify frequency in suburban and rural zones. Residents outside the core network end up with no service or service so infrequent it's unusable.",
14544          delay: 0.2,
14545          "data-fg-bak917": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:38:11:1630:359:e:ProblemCard::::::geS"
14546        }
14547      ),
14548      /* @__PURE__ */ i(
14549        a,
14550        {
14551          _fgT: p4,
14552          _fgS: "bak919",
14553          _fgB: 1790697590176,
14554          icon: /* @__PURE__ */ i(a, { _fgT: It, _fgS: "bak920", _fgB: 1790697590176, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-bak920": ":0:node_modules/lucide-react:46:19:2043:44:e:Clock::::::EGEm" }),
14555          title: "Pilots Launch Without a Plan",
14556          description: "Agencies start microtransit without knowing how many vehicles they need, what zones to cover, or what cost per trip to expect. When the pilot underperforms, the program gets cut.",
14557          delay: 0.3,
14558          "data-fg-bak919": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:45:11:2011:368:e:ProblemCard::::::geS"
14559        }
14560      )
14561    ] })
14562  ] }) });
14563}
14564function p4({ icon: t, title: e, description: s, delay: r }) {
14565  return /* @__PURE__ */ c(
14566    a,
14567    {
14568      _fgT: m.div,
14569      _fgS: "bak921",
14570      _fgB: 1790697590176,
14571      _fgD: !0,
14572      initial: { opacity: 0, y: 20 },
14573      whileInView: { opacity: 1, y: 0 },
14574      viewport: { once: !0 },
14575      transition: { delay: r, duration: 0.5 },
14576      className: "bg-slate-50 border-l-4 border-[#EFBB0F] p-8 rounded-r-xl shadow-sm hover:shadow-md transition-shadow group",
14577      "data-fg-bak921": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:59:5:2584:717:e:motion.div:ete:1",
14578      children: [
14579        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bak922", _fgB: 1790697590176, className: "flex items-start gap-4 mb-3", "data-fg-bak922": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:66:7:2888:296:e:div:ete", children: [
14580          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bak923", _fgB: 1790697590176, className: "p-2 bg-white rounded-lg shadow-sm text-slate-900 group-hover:scale-110 transition-transform duration-300", "data-fg-bak923": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:67:9:2942:154:e:div:x", children: t }),
14581          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bak925", _fgB: 1790697590176, className: "text-xl font-bold text-slate-900 pt-1", "data-fg-bak925": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:70:9:3105:66:e:h3:x", children: e })
14582        ] }),
14583        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bak927", _fgB: 1790697590176, className: "text-slate-600 leading-relaxed pl-[3.25rem]", "data-fg-bak927": ":0:/src/app/components/microtransit/MicrotransitProblem.tsx:72:7:3191:92:e:p:x", children: s })
14584      ]
14585    }
14586  );
14587}
14588const jp = globalThis.__GLOBALS__.getAssetURL("242f9b5555d2ad77539572a8cb909155eddb2d2f.png"), Op = globalThis.__GLOBALS__.getAssetURL("ca842a5873918bd417c1686b839d2ad214e20c26.png"), Vp = globalThis.__GLOBALS__.getAssetURL("32d7bc9b1579eb7e8f41130d7bf2892668ccd7a3.png");
14589function Hp() {
14590  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "c1k20", _fgB: 1790697590179, _fgD: !0, className: "py-24 bg-white relative", "data-fg-c1k20": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:9:5:423:4335:e:section:ete:1", children: [
14591    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c1k21", _fgB: 1790697590179, className: "container mx-auto px-6 mb-24 text-center", "data-fg-c1k21": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:10:7:475:716:e:div:etete", children: [
14592      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c1k22", _fgB: 1790697590179, className: "inline-block px-4 py-1.5 rounded-full border border-blue-100 bg-blue-50 text-blue-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-c1k22": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:11:9:542:200:e:div:t", children: "THE IT CURVES APPROACH" }),
14593      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "c1k24", _fgB: 1790697590179, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-c1k24": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:15:9:760:171:e:h2:tet", children: [
14594        "Commingled Microtransit.",
14595        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c1k26", _fgB: 1790697590179, "data-fg-c1k26": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:16:35:876:6:e:br" }),
14596        "One Network. Every Mode."
14597      ] }),
14598      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c1k28", _fgB: 1790697590179, className: "text-lg md:text-xl text-slate-600 max-w-2xl mx-auto leading-relaxed", "data-fg-c1k28": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:20:9:949:229:e:p:t", children: "Instead of bolting on another standalone service, we integrate microtransit directly into your existing transit operation." })
14599    ] }),
14600    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c1k210", _fgB: 1790697590179, className: "space-y-0", "data-fg-c1k210": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:25:7:1199:3544:e:div:xtetxtetxtetxte", children: [
14601      /* @__PURE__ */ i(
14602        a,
14603        {
14604          _fgT: I2,
14605          _fgS: "c1k212",
14606          _fgB: 1790697590179,
14607          label: "COMMINGLING",
14608          title: "One Fleet. Every Service Type.",
14609          points: [
14610            "Paratransit, fixed route, and on-demand trips dispatched through one system so vehicles are never sitting idle when another service needs capacity",
14611            "Dynamic routing picks the best available vehicle for each trip regardless of what service type that vehicle was originally assigned to",
14612            "Rider eligibility is enforced automatically so each passenger gets the right service level even when sharing a vehicle"
14613          ],
14614          image: "https://images.unsplash.com/photo-1601247173792-b282c350cabc?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxtaXhlZCUyMHRyYW5zaXQlMjBmbGVldCUyMGJ1c2VzJTIwdmFucyUyMHB1YmxpYyUyMHRyYW5zcG9ydGF0aW9ufGVufDF8fHx8MTc3MzE5NDkzMnww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
14615          bgColor: "bg-slate-50",
14616          isImageRight: !0,
14617          icon: /* @__PURE__ */ i(a, { _fgT: I3, _fgS: "c1k213", _fgB: 1790697590179, className: "w-5 h-5 text-white", "data-fg-c1k213": ":0:node_modules/lucide-react:38:17:2290:41:e:Layers::::::U3Y" }),
14618          "data-fg-c1k212": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:27:9:1308:1035:e:ApproachRow::::::BQUO"
14619        }
14620      ),
14621      /* @__PURE__ */ i(
14622        a,
14623        {
14624          _fgT: I2,
14625          _fgS: "c1k215",
14626          _fgB: 1790697590179,
14627          label: "COVERAGE",
14628          title: "Reach Every Corner of Your Service Area",
14629          points: [
14630            "On-demand microtransit fills the gaps between fixed route corridors, connecting riders in low-density neighborhoods to the broader network",
14631            "Flexible stops at key locations like medical centers, grocery stores, and transit hubs so vehicles serve real community needs",
14632            "Riders book through the Where's My Ride app, web portal, or IVR phone system and the platform finds the best connection across all available modes"
14633          ],
14634          image: jp,
14635          bgColor: "bg-white",
14636          isImageRight: !1,
14637          icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "c1k216", _fgB: 1790697590179, className: "w-5 h-5 text-white", "data-fg-c1k216": ":0:node_modules/lucide-react:53:17:3112:38:e:Zap::::::Cp7" }),
14638          "data-fg-c1k215": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:42:9:2418:744:e:ApproachRow::::::BQUO"
14639        }
14640      ),
14641      /* @__PURE__ */ i(
14642        a,
14643        {
14644          _fgT: I2,
14645          _fgS: "c1k218",
14646          _fgB: 1790697590179,
14647          label: "SIMULATION",
14648          title: "Test It Before You Fund It",
14649          points: [
14650            "Run a full day's operation as a simulation before committing vehicles or drivers to a new zone",
14651            "Adjust vehicle counts, shift lengths, zone boundaries, and service windows then rerun to compare results side by side",
14652            "Dashboard shows load factor, idle time, cost per trip, and service quality per vehicle so you can present real numbers to your board or funding body"
14653          ],
14654          image: Op,
14655          bgColor: "bg-slate-50",
14656          isImageRight: !0,
14657          icon: /* @__PURE__ */ i(a, { _fgT: F3, _fgS: "c1k219", _fgB: 1790697590179, className: "w-5 h-5 text-white", "data-fg-c1k219": ":0:node_modules/lucide-react:68:17:3881:46:e:ShieldCheck::::::CqaD" }),
14658          "data-fg-c1k218": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:57:9:3244:695:e:ApproachRow::::::BQUO"
14659        }
14660      ),
14661      /* @__PURE__ */ i(
14662        a,
14663        {
14664          _fgT: I2,
14665          _fgS: "c1k221",
14666          _fgB: 1790697590179,
14667          label: "AUTOMATION",
14668          title: "From Request to Drop-Off. No Manual Steps.",
14669          points: [
14670            "Ride requests flow straight from the rider into routing and vehicle assignment with no dispatcher intervention needed",
14671            "Contactless rider identification through facial recognition, QR code, or Bluetooth handles boarding and logs trip data automatically",
14672            "Dispatch and driver tablets stay in sync in real time so there's no paperwork, no radio calls, and no billing discrepancies"
14673          ],
14674          image: Vp,
14675          bgColor: "bg-white",
14676          isImageRight: !1,
14677          icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "c1k222", _fgB: 1790697590179, className: "w-5 h-5 text-white", "data-fg-c1k222": ":0:node_modules/lucide-react:83:17:4680:38:e:Zap::::::Cp7" }),
14678          "data-fg-c1k221": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:72:9:4016:714:e:ApproachRow::::::BQUO"
14679        }
14680      )
14681    ] })
14682  ] });
14683}
14684function I2({ label: t, title: e, points: s, image: r, bgColor: n, isImageRight: o, icon: L }) {
14685  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c1k223", _fgB: 1790697590179, _fgD: !0, className: `py-20 ${n}`, "data-fg-c1k223": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:102:5:5057:2253:e:div:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c1k224", _fgB: 1790697590179, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-center", "data-fg-c1k224": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:103:7:5100:2199:e:div:xtetxte", children: [
14686    /* @__PURE__ */ c(
14687      a,
14688      {
14689        _fgT: m.div,
14690        _fgS: "c1k226",
14691        _fgB: 1790697590179,
14692        initial: { opacity: 0, x: o ? -30 : 30 },
14693        whileInView: { opacity: 1, x: 0 },
14694        viewport: { once: !0, margin: "-100px" },
14695        transition: { duration: 0.6 },
14696        className: `${o ? "lg:order-1" : "lg:order-2"}`,
14697        "data-fg-c1k226": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:105:9:5218:1335:e:motion.div:etete",
14698        children: [
14699          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c1k227", _fgB: 1790697590179, className: "flex items-center gap-3 mb-6", "data-fg-c1k227": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:112:11:5524:342:e:div:ete", children: [
14700            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c1k228", _fgB: 1790697590179, className: "flex items-center justify-center w-8 h-8 rounded-full bg-[#EFBB0F] shadow-md", "data-fg-c1k228": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:113:13:5583:134:e:div:x", children: L }),
14701            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c1k230", _fgB: 1790697590179, className: "text-[#EFBB0F] font-bold tracking-widest text-sm uppercase", "data-fg-c1k230": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:116:13:5730:119:e:span:x", children: t })
14702          ] }),
14703          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "c1k232", _fgB: 1790697590179, className: "text-3xl md:text-4xl font-bold text-slate-900 mb-8 leading-tight", "data-fg-c1k232": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:121:11:5888:117:e:h3:x", children: e }),
14704          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "c1k234", _fgB: 1790697590179, className: "space-y-6", "data-fg-c1k234": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:125:11:6027:504:e:ul:x", children: s.map((d, l) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "c1k236", _fgB: 1790697590179, className: "flex items-start gap-4 group", "data-fg-c1k236": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:127:15:6112:387:e:li:ete", children: [
14705            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c1k237", _fgB: 1790697590179, className: "mt-1.5 min-w-[20px] text-[#EFBB0F]", "data-fg-c1k237": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:128:17:6186:175:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: G, _fgS: "c1k238", _fgB: 1790697590179, size: 20, className: "group-hover:scale-110 transition-transform", "data-fg-c1k238": ":0:node_modules/lucide-react:129:19:6257:81:e:CheckCircle2::::::CELI" }) }),
14706            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c1k239", _fgB: 1790697590179, className: "text-slate-600 leading-relaxed text-lg", "data-fg-c1k239": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:131:17:6378:101:e:p:x", children: d })
14707          ] }, l)) })
14708        ]
14709      }
14710    ),
14711    /* @__PURE__ */ c(
14712      a,
14713      {
14714        _fgT: m.div,
14715        _fgS: "c1k242",
14716        _fgB: 1790697590179,
14717        initial: { opacity: 0, scale: 0.95 },
14718        whileInView: { opacity: 1, scale: 1 },
14719        viewport: { once: !0, margin: "-100px" },
14720        transition: { duration: 0.6, delay: 0.2 },
14721        className: `relative h-[400px] md:h-[500px] rounded-2xl overflow-hidden shadow-2xl ${o ? "lg:order-2" : "lg:order-1"}`,
14722        "data-fg-c1k242": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:140:9:6585:701:e:motion.div:ete",
14723        children: [
14724          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c1k243", _fgB: 1790697590179, className: "absolute inset-0 bg-gradient-to-tr from-slate-900/40 to-transparent z-10 mix-blend-multiply", "data-fg-c1k243": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:147:11:6963:111:e:div" }),
14725          /* @__PURE__ */ i(
14726            a,
14727            {
14728              _fgT: "img",
14729              _fgS: "c1k244",
14730              _fgB: 1790697590179,
14731              src: r,
14732              alt: e,
14733              className: "w-full h-full object-cover transform hover:scale-105 transition-transform duration-700",
14734              "data-fg-c1k244": ":0:/src/app/components/microtransit/MicrotransitApproach.tsx:148:11:7085:179:e:img"
14735            }
14736          )
14737        ]
14738      }
14739    )
14740  ] }) });
14741}
14742function Zp() {
14743  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "d2wv0", _fgB: 1790697590181, _fgD: !0, className: "py-24 bg-slate-900 text-white", "data-fg-d2wv0": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:6:5:160:1834:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2wv1", _fgB: 1790697590181, className: "container mx-auto px-6", "data-fg-d2wv1": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:7:7:218:1761:e:div:ete", children: [
14744    /* @__PURE__ */ i(
14745      a,
14746      {
14747        _fgT: m.div,
14748        _fgS: "d2wv2",
14749        _fgB: 1790697590181,
14750        initial: { opacity: 0, y: 20 },
14751        whileInView: { opacity: 1, y: 0 },
14752        viewport: { once: !0 },
14753        transition: { duration: 0.6 },
14754        className: "text-center mb-16",
14755        "data-fg-d2wv2": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:8:9:267:478:e:motion.div:e",
14756        children: /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "d2wv3", _fgB: 1790697590181, className: "text-3xl md:text-5xl font-bold mb-6 font-[Space_Grotesk]", "data-fg-d2wv3": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:15:11:504:219:e:h2:tete", children: [
14757          "Built For Agencies That Want to",
14758          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "d2wv5", _fgB: 1790697590181, "data-fg-d2wv5": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:16:44:621:6:e:br" }),
14759          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d2wv6", _fgB: 1790697590181, className: "text-[#EFBB0F]", "data-fg-d2wv6": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:17:13:640:67:e:span:t", children: "Do More With What They Have" })
14760        ] })
14761      }
14762    ),
14763    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2wv8", _fgB: 1790697590181, className: "grid md:grid-cols-2 gap-8 max-w-4xl mx-auto", "data-fg-d2wv8": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:21:9:755:1211:e:div:etetete", children: [
14764      /* @__PURE__ */ i(
14765        a,
14766        {
14767          _fgT: P2,
14768          _fgS: "d2wv9",
14769          _fgB: 1790697590181,
14770          icon: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "d2wv10", _fgB: 1790697590181, className: "w-6 h-6 text-slate-900", "data-fg-d2wv10": ":0:node_modules/lucide-react:23:19:858:48:e:Building2::::::DOEu" }),
14771          title: "Transit Agencies Adding Flex Zones",
14772          description: "Adding on-demand service to complement existing fixed routes.",
14773          delay: 0.1,
14774          "data-fg-d2wv9": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:22:11:827:260:e:WhoForItem::::::rlN"
14775        }
14776      ),
14777      /* @__PURE__ */ i(
14778        a,
14779        {
14780          _fgT: P2,
14781          _fgS: "d2wv11",
14782          _fgB: 1790697590181,
14783          icon: /* @__PURE__ */ i(a, { _fgT: fl, _fgS: "d2wv12", _fgB: 1790697590181, className: "w-6 h-6 text-slate-900", "data-fg-d2wv12": ":0:node_modules/lucide-react:30:19:1140:43:e:Home::::::DVHp" }),
14784          title: "Rural and Suburban Operators",
14785          description: "Serving low-density areas where fixed routes aren't cost effective.",
14786          delay: 0.2,
14787          "data-fg-d2wv11": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:29:11:1109:255:e:WhoForItem::::::rlN"
14788        }
14789      ),
14790      /* @__PURE__ */ i(
14791        a,
14792        {
14793          _fgT: P2,
14794          _fgS: "d2wv13",
14795          _fgB: 1790697590181,
14796          icon: /* @__PURE__ */ i(a, { _fgT: ql, _fgS: "d2wv14", _fgB: 1790697590181, className: "w-6 h-6 text-slate-900", "data-fg-d2wv14": ":0:node_modules/lucide-react:37:19:1417:48:e:RefreshCw::::::FaX" }),
14797          title: "Agencies Replacing Low-Ridership Routes",
14798          description: "Converting underperforming fixed routes into on-demand zones.",
14799          delay: 0.3,
14800          "data-fg-d2wv13": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:36:11:1386:265:e:WhoForItem::::::rlN"
14801        }
14802      ),
14803      /* @__PURE__ */ i(
14804        a,
14805        {
14806          _fgT: P2,
14807          _fgS: "d2wv15",
14808          _fgB: 1790697590181,
14809          icon: /* @__PURE__ */ i(a, { _fgT: bl, _fgS: "d2wv16", _fgB: 1790697590181, className: "w-6 h-6 text-slate-900", "data-fg-d2wv16": ":0:node_modules/lucide-react:44:19:1704:44:e:Link2::::::zi4" }),
14810          title: "First-Mile Last-Mile Programs",
14811          description: "Connecting neighborhoods to transit hubs, rail stations, or bus rapid transit corridors.",
14812          delay: 0.4,
14813          "data-fg-d2wv15": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:43:11:1673:278:e:WhoForItem::::::rlN"
14814        }
14815      )
14816    ] })
14817  ] }) });
14818}
14819function P2({ icon: t, title: e, description: s, delay: r }) {
14820  return /* @__PURE__ */ c(
14821    a,
14822    {
14823      _fgT: m.div,
14824      _fgS: "d2wv17",
14825      _fgB: 1790697590181,
14826      _fgD: !0,
14827      initial: { opacity: 0, scale: 0.95 },
14828      whileInView: { opacity: 1, scale: 1 },
14829      viewport: { once: !0 },
14830      transition: { delay: r, duration: 0.5 },
14831      className: "bg-slate-800/50 border border-slate-700 p-8 rounded-2xl hover:bg-slate-800 transition-colors group flex items-start gap-6",
14832      "data-fg-d2wv17": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:57:5:2155:671:e:motion.div:ete:1",
14833      children: [
14834        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2wv18", _fgB: 1790697590181, className: "p-3 bg-white rounded-xl shadow-lg group-hover:scale-110 transition-transform duration-300", "data-fg-d2wv18": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:64:7:2485:135:e:div:x", children: t }),
14835        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2wv20", _fgB: 1790697590181, "data-fg-d2wv20": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:67:7:2627:181:e:div:ete", children: [
14836          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "d2wv21", _fgB: 1790697590181, className: "text-xl font-bold text-white mb-2", "data-fg-d2wv21": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:68:9:2641:62:e:h3:x", children: e }),
14837          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "d2wv23", _fgB: 1790697590181, className: "text-slate-400 leading-relaxed", "data-fg-d2wv23": ":0:/src/app/components/microtransit/MicrotransitWhoFor.tsx:69:9:2712:83:e:p:x", children: s })
14838        ] })
14839      ]
14840    }
14841  );
14842}
14843function Wp() {
14844  const { openContactModal: t } = Z();
14845  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cglg0", _fgB: 1790697590182, _fgD: !0, className: "py-24 bg-white", "data-fg-cglg0": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:9:5:243:1179:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cglg1", _fgB: 1790697590182, className: "container mx-auto px-6 max-w-4xl text-center", "data-fg-cglg1": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:10:7:286:1121:e:div:e", children: /* @__PURE__ */ c(
14846    a,
14847    {
14848      _fgT: m.div,
14849      _fgS: "cglg2",
14850      _fgB: 1790697590182,
14851      initial: { opacity: 0, y: 30 },
14852      whileInView: { opacity: 1, y: 0 },
14853      viewport: { once: !0 },
14854      transition: { duration: 0.8 },
14855      "data-fg-cglg2": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:11:9:357:1037:e:motion.div:etete",
14856      children: [
14857        /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cglg3", _fgB: 1790697590182, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-cglg3": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:17:11:553:158:e:h2:tet", children: [
14858          "See What Commingled",
14859          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cglg5", _fgB: 1790697590182, "data-fg-cglg5": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:18:32:666:6:e:br" }),
14860          "Microtransit Looks Like"
14861        ] }),
14862        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cglg7", _fgB: 1790697590182, className: "text-xl md:text-2xl text-slate-600 mb-12 max-w-2xl mx-auto leading-relaxed", "data-fg-cglg7": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:21:11:733:190:e:p:t", children: "We'll walk you through a simulation using your actual service area data." }),
14863        /* @__PURE__ */ c(
14864          a,
14865          {
14866            _fgT: "button",
14867            _fgS: "cglg9",
14868            _fgB: 1790697590182,
14869            onClick: t,
14870            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-xl hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-blue-900/50 cursor-pointer",
14871            "data-fg-cglg9": ":0:/src/app/components/microtransit/MicrotransitCTA.tsx:25:11:945:427:e:button:te",
14872            children: [
14873              "Schedule a Demo",
14874              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cglg11", _fgB: 1790697590182, size: 24, className: "group-hover:translate-x-1 transition-transform", "data-fg-cglg11": ":0:node_modules/lucide-react:30:13:1269:83:e:ArrowRight::::::s5N" })
14875            ]
14876          }
14877        )
14878      ]
14879    }
14880  ) }) });
14881}
14882function $p() {
14883  return /* @__PURE__ */ c(C, { children: [
14884    /* @__PURE__ */ i(a, { _fgT: Dp, _fgS: "bos91", _fgB: 1790697589422, "data-fg-bos91": ":0:/src/app/pages/MicrotransitPage.tsx:12:7:614:20:e:MicrotransitHero::::::47" }),
14885    /* @__PURE__ */ i(a, { _fgT: zp, _fgS: "bos92", _fgB: 1790697589422, "data-fg-bos92": ":0:/src/app/pages/MicrotransitPage.tsx:13:7:641:23:e:MicrotransitProblem::::::CLh9" }),
14886    /* @__PURE__ */ i(a, { _fgT: ni, _fgS: "bos93", _fgB: 1790697589422, "data-fg-bos93": ":0:/src/app/pages/MicrotransitPage.tsx:14:7:671:23:e:MicrotransitCallout::::::rNL" }),
14887    /* @__PURE__ */ i(a, { _fgT: Hp, _fgS: "bos94", _fgB: 1790697589422, "data-fg-bos94": ":0:/src/app/pages/MicrotransitPage.tsx:15:7:701:24:e:MicrotransitApproach::::::DK0j" }),
14888    /* @__PURE__ */ i(a, { _fgT: Zp, _fgS: "bos95", _fgB: 1790697589422, "data-fg-bos95": ":0:/src/app/pages/MicrotransitPage.tsx:16:7:732:22:e:MicrotransitWhoFor::::::DYq3" }),
14889    /* @__PURE__ */ i(a, { _fgT: Wp, _fgS: "bos96", _fgB: 1790697589422, "data-fg-bos96": ":0:/src/app/pages/MicrotransitPage.tsx:17:7:761:19:e:MicrotransitCTA::::::BRax" }),
14890    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "bos97", _fgB: 1790697589422, "data-fg-bos97": ":0:/src/app/pages/MicrotransitPage.tsx:18:7:787:10:e:Footer::::::B1Vv" })
14891  ] });
14892}
14893function qp() {
14894  const { openContactModal: t } = Z();
14895  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i0", _fgB: 1790697590836, _fgD: !0, className: "relative bg-slate-900 overflow-hidden", "data-fg-ct6i0": ":0:/src/app/components/nemt/NEMTHero.tsx:9:5:250:5257:e:div:xtetxte:1", children: [
14896    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "ct6i2", _fgB: 1790697590836, className: "relative min-h-[85vh] flex items-center pt-20 pb-20 lg:pt-0 lg:pb-0", "data-fg-ct6i2": ":0:/src/app/components/nemt/NEMTHero.tsx:11:7:344:3913:e:section:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i3", _fgB: 1790697590836, className: "container mx-auto px-6 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-ct6i3": ":0:/src/app/components/nemt/NEMTHero.tsx:12:9:442:3798:e:div:xtetxte", children: [
14897      /* @__PURE__ */ c(
14898        a,
14899        {
14900          _fgT: m.div,
14901          _fgS: "ct6i5",
14902          _fgB: 1790697590836,
14903          initial: { opacity: 0, y: 30 },
14904          animate: { opacity: 1, y: 0 },
14905          transition: { duration: 0.8 },
14906          className: "flex flex-col items-start",
14907          "data-fg-ct6i5": ":0:/src/app/components/nemt/NEMTHero.tsx:14:11:583:1608:e:motion.div:etetete",
14908          children: [
14909            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i6", _fgB: 1790697590836, className: "inline-block px-4 py-1.5 rounded-full border border-amber-500/50 bg-amber-500/10 text-amber-400 text-xs font-bold tracking-widest uppercase mb-8 shadow-[0_0_15px_rgba(239,187,15,0.3)] backdrop-blur-sm", "data-fg-ct6i6": ":0:/src/app/components/nemt/NEMTHero.tsx:20:13:799:256:e:div:t", children: "NEMT" }),
14910            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "ct6i8", _fgB: 1790697590836, className: "text-5xl md:text-7xl font-bold text-white mb-6 leading-tight font-[Space_Grotesk]", "data-fg-ct6i8": ":0:/src/app/components/nemt/NEMTHero.tsx:24:13:1081:252:e:h1:tete", children: [
14911              "Non-Emergency Medical Transportation",
14912              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "ct6i10", _fgB: 1790697590836, "data-fg-ct6i10": ":0:/src/app/components/nemt/NEMTHero.tsx:25:51:1230:6:e:br" }),
14913              "That Actually ",
14914              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct6i12", _fgB: 1790697590836, className: "text-[#EFBB0F]", "data-fg-ct6i12": ":0:/src/app/components/nemt/NEMTHero.tsx:26:29:1265:50:e:span:t", children: "Gets Paid." })
14915            ] }),
14916            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ct6i14", _fgB: 1790697590836, className: "text-lg md:text-xl text-slate-300 mb-10 leading-relaxed max-w-xl", "data-fg-ct6i14": ":0:/src/app/components/nemt/NEMTHero.tsx:29:13:1359:345:e:p:t", children: "NEMT providers lose revenue every month to denied claims, unverifiable trips, and billing errors. Our platform captures the data Medicaid requires at every step of the trip so your claims hold up and your cash flow stays predictable." }),
14917            /* @__PURE__ */ c(
14918              a,
14919              {
14920                _fgT: "button",
14921                _fgS: "ct6i16",
14922                _fgB: 1790697590836,
14923                onClick: t,
14924                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
14925                "data-fg-ct6i16": ":0:/src/app/components/nemt/NEMTHero.tsx:33:13:1730:437:e:button:te",
14926                children: [
14927                  "Request a Demo",
14928                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "ct6i18", _fgB: 1790697590836, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-ct6i18": ":0:node_modules/lucide-react:38:15:2062:83:e:ArrowRight::::::s5N" })
14929                ]
14930              }
14931            )
14932          ]
14933        }
14934      ),
14935      /* @__PURE__ */ i(
14936        a,
14937        {
14938          _fgT: m.div,
14939          _fgS: "ct6i20",
14940          _fgB: 1790697590836,
14941          initial: { opacity: 0, scale: 0.95 },
14942          animate: { opacity: 1, scale: 1 },
14943          transition: { delay: 0.2, duration: 0.8 },
14944          className: "relative h-full min-h-[400px] lg:min-h-[600px] flex items-center justify-center",
14945          "data-fg-ct6i20": ":0:/src/app/components/nemt/NEMTHero.tsx:43:11:2238:1987:e:motion.div:e",
14946          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i21", _fgB: 1790697590836, className: "relative w-full h-full rounded-2xl overflow-hidden shadow-2xl border border-slate-700/50 group", "data-fg-ct6i21": ":0:/src/app/components/nemt/NEMTHero.tsx:49:13:2530:1671:e:div:etetxte", children: [
14947            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i22", _fgB: 1790697590836, className: "absolute inset-0 bg-gradient-to-t from-slate-900/80 via-transparent to-transparent z-10", "data-fg-ct6i22": ":0:/src/app/components/nemt/NEMTHero.tsx:50:15:2657:107:e:div" }),
14948            /* @__PURE__ */ i(
14949              a,
14950              {
14951                _fgT: "img",
14952                _fgS: "ct6i23",
14953                _fgB: 1790697590836,
14954                src: "https://images.unsplash.com/photo-1732194439331-08ec61c4df4f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx3aGVlbGNoYWlyJTIwYWNjZXNzaWJsZSUyMHZhbiUyMG1lZGljYWwlMjB0cmFuc3BvcnRhdGlvbiUyMGRyaXZlciUyMGFzc2lzdGluZyUyMHBhdGllbnR8ZW58MXx8fHwxNzcxMzYxNzk1fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
14955                alt: "NEMT Driver Assisting Patient",
14956                className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",
14957                "data-fg-ct6i23": ":0:/src/app/components/nemt/NEMTHero.tsx:51:15:2779:555:e:img"
14958              }
14959            ),
14960            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i25", _fgB: 1790697590836, className: "absolute bottom-6 left-6 right-6 z-20", "data-fg-ct6i25": ":0:/src/app/components/nemt/NEMTHero.tsx:58:15:3425:757:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i26", _fgB: 1790697590836, className: "bg-slate-900/90 backdrop-blur-md p-4 rounded-xl border border-slate-700 shadow-xl flex items-center justify-between", "data-fg-ct6i26": ":0:/src/app/components/nemt/NEMTHero.tsx:59:17:3497:664:e:div:ete", children: [
14961              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i27", _fgB: 1790697590836, "data-fg-ct6i27": ":0:/src/app/components/nemt/NEMTHero.tsx:60:19:3649:419:e:div:ete", children: [
14962                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i28", _fgB: 1790697590836, className: "flex items-center gap-2 mb-1", "data-fg-ct6i28": ":0:/src/app/components/nemt/NEMTHero.tsx:61:21:3675:277:e:div:ete", children: [
14963                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i29", _fgB: 1790697590836, className: "w-2 h-2 rounded-full bg-green-500 animate-pulse", "data-fg-ct6i29": ":0:/src/app/components/nemt/NEMTHero.tsx:62:23:3744:67:e:div" }),
14964                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct6i30", _fgB: 1790697590836, className: "text-white font-bold text-sm uppercase tracking-wide", "data-fg-ct6i30": ":0:/src/app/components/nemt/NEMTHero.tsx:63:23:3834:91:e:span:t", children: "Trip Verified" })
14965                ] }),
14966                /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i32", _fgB: 1790697590836, className: "text-slate-400 text-xs", "data-fg-ct6i32": ":0:/src/app/components/nemt/NEMTHero.tsx:65:21:3973:70:e:div:t", children: "Medicaid ID: #XA-9284-11" })
14967              ] }),
14968              /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ct6i34", _fgB: 1790697590836, className: "text-green-500 w-8 h-8", "data-fg-ct6i34": ":0:node_modules/lucide-react:67:19:4087:51:e:CheckCircle2::::::CELI" })
14969            ] }) })
14970          ] })
14971        }
14972      )
14973    ] }) }),
14974    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i36", _fgB: 1790697590836, className: "w-full bg-slate-800/50 border-t border-slate-800 py-6", "data-fg-ct6i36": ":0:/src/app/components/nemt/NEMTHero.tsx:76:7:4298:1198:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i37", _fgB: 1790697590836, className: "container mx-auto px-6", "data-fg-ct6i37": ":0:/src/app/components/nemt/NEMTHero.tsx:77:9:4378:1105:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i38", _fgB: 1790697590836, className: "flex flex-col md:flex-row justify-center items-center gap-4 md:gap-12 text-center", "data-fg-ct6i38": ":0:/src/app/components/nemt/NEMTHero.tsx:78:11:4429:1039:e:div:etetetete", children: [
14975      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i39", _fgB: 1790697590836, className: "flex items-center gap-3", "data-fg-ct6i39": ":0:/src/app/components/nemt/NEMTHero.tsx:79:13:4541:227:e:div:ete", children: [
14976        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ct6i40", _fgB: 1790697590836, size: 18, className: "text-[#EFBB0F]", "data-fg-ct6i40": ":0:node_modules/lucide-react:80:15:4597:53:e:CheckCircle2::::::CELI" }),
14977        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct6i41", _fgB: 1790697590836, className: "text-white font-medium tracking-wide", "data-fg-ct6i41": ":0:/src/app/components/nemt/NEMTHero.tsx:81:15:4665:84:e:span:t", children: "GPS-Verified Trip Logs" })
14978      ] }),
14979      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i43", _fgB: 1790697590836, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-ct6i43": ":0:/src/app/components/nemt/NEMTHero.tsx:84:13:4794:57:e:div" }),
14980      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i44", _fgB: 1790697590836, className: "flex items-center gap-3", "data-fg-ct6i44": ":0:/src/app/components/nemt/NEMTHero.tsx:86:13:4877:231:e:div:ete", children: [
14981        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ct6i45", _fgB: 1790697590836, size: 18, className: "text-[#EFBB0F]", "data-fg-ct6i45": ":0:node_modules/lucide-react:87:15:4933:53:e:CheckCircle2::::::CELI" }),
14982        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct6i46", _fgB: 1790697590836, className: "text-white font-medium tracking-wide", "data-fg-ct6i46": ":0:/src/app/components/nemt/NEMTHero.tsx:88:15:5001:88:e:span:t", children: "Automated Medicaid Billing" })
14983      ] }),
14984      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct6i48", _fgB: 1790697590836, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-ct6i48": ":0:/src/app/components/nemt/NEMTHero.tsx:91:13:5134:57:e:div" }),
14985      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct6i49", _fgB: 1790697590836, className: "flex items-center gap-3", "data-fg-ct6i49": ":0:/src/app/components/nemt/NEMTHero.tsx:93:13:5217:234:e:div:ete", children: [
14986        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ct6i50", _fgB: 1790697590836, size: 18, className: "text-[#EFBB0F]", "data-fg-ct6i50": ":0:node_modules/lucide-react:94:15:5273:53:e:CheckCircle2::::::CELI" }),
14987        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct6i51", _fgB: 1790697590836, className: "text-white font-medium tracking-wide", "data-fg-ct6i51": ":0:/src/app/components/nemt/NEMTHero.tsx:95:15:5341:91:e:span:t", children: "Cross-Provider Trip Brokering" })
14988      ] })
14989    ] }) }) })
14990  ] });
14991}
14992function Up() {
14993  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cwvf0", _fgB: 1790697590822, _fgD: !0, className: "py-24 bg-white", "data-fg-cwvf0": ":0:/src/app/components/nemt/NEMTChallenge.tsx:6:5:153:2291:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cwvf1", _fgB: 1790697590822, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-start", "data-fg-cwvf1": ":0:/src/app/components/nemt/NEMTChallenge.tsx:7:7:196:2233:e:div:xtetxte", children: [
14994    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cwvf3", _fgB: 1790697590822, className: "lg:w-3/4", "data-fg-cwvf3": ":0:/src/app/components/nemt/NEMTChallenge.tsx:9:9:314:811:e:div:e", children: /* @__PURE__ */ c(
14995      a,
14996      {
14997        _fgT: m.div,
14998        _fgS: "cwvf4",
14999        _fgB: 1790697590822,
15000        initial: { opacity: 0, x: -30 },
15001        whileInView: { opacity: 1, x: 0 },
15002        viewport: { once: !0 },
15003        transition: { duration: 0.6 },
15004        "data-fg-cwvf4": ":0:/src/app/components/nemt/NEMTChallenge.tsx:10:11:351:759:e:motion.div:etete",
15005        children: [
15006          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cwvf5", _fgB: 1790697590822, className: "inline-block px-4 py-1.5 rounded-full border border-red-500/20 bg-red-50 text-red-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-cwvf5": ":0:/src/app/components/nemt/NEMTChallenge.tsx:16:13:560:199:e:div:t", children: "THE CHALLENGE" }),
15007          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cwvf7", _fgB: 1790697590822, className: "text-4xl md:text-5xl font-bold text-slate-900 leading-tight mb-8", "data-fg-cwvf7": ":0:/src/app/components/nemt/NEMTChallenge.tsx:20:13:785:221:e:h2:tete", children: [
15008            "Medicaid doesn't pay",
15009            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cwvf9", _fgB: 1790697590822, "data-fg-cwvf9": ":0:/src/app/components/nemt/NEMTChallenge.tsx:21:35:901:6:e:br" }),
15010            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cwvf10", _fgB: 1790697590822, className: "text-[#EFBB0F]", "data-fg-cwvf10": ":0:/src/app/components/nemt/NEMTChallenge.tsx:22:15:922:66:e:span:t", children: "for trips you can't prove." })
15011          ] }),
15012          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cwvf12", _fgB: 1790697590822, className: "h-1 w-24 bg-slate-200 rounded-full", "data-fg-cwvf12": ":0:/src/app/components/nemt/NEMTChallenge.tsx:25:13:1032:54:e:div" })
15013        ]
15014      }
15015    ) }),
15016    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cwvf14", _fgB: 1790697590822, className: "space-y-8", "data-fg-cwvf14": ":0:/src/app/components/nemt/NEMTChallenge.tsx:30:9:1163:1253:e:div:etete", children: [
15017      /* @__PURE__ */ i(
15018        a,
15019        {
15020          _fgT: M4,
15021          _fgS: "cwvf15",
15022          _fgB: 1790697590822,
15023          icon: /* @__PURE__ */ i(a, { _fgT: sl, _fgS: "cwvf16", _fgB: 1790697590822, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-cwvf16": ":0:node_modules/lucide-react:32:19:1233:44:e:FileX::::::CuYs" }),
15024          title: "Denied Claims Kill Your Margins",
15025          description: "State Medicaid programs require precise pickup and drop-off times, verified rider identity, mileage logs, and driver signatures. Missing even one data point can mean a denied claim on a trip you already completed.",
15026          delay: 0.1,
15027          "data-fg-cwvf15": ":0:/src/app/components/nemt/NEMTChallenge.tsx:31:11:1201:406:e:ProblemCard::::::CIum"
15028        }
15029      ),
15030      /* @__PURE__ */ i(
15031        a,
15032        {
15033          _fgT: M4,
15034          _fgS: "cwvf17",
15035          _fgB: 1790697590822,
15036          icon: /* @__PURE__ */ i(a, { _fgT: Y5, _fgS: "cwvf18", _fgB: 1790697590822, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-cwvf18": ":0:node_modules/lucide-react:39:19:1661:50:e:AlertCircle::::::fAY" }),
15037          title: "Manual Processes Create Gaps",
15038          description: "Paper manifests, hand-written times, and after-the-fact data entry introduce errors at every step. By the time a claim is submitted, the data rarely matches what actually happened.",
15039          delay: 0.2,
15040          "data-fg-cwvf17": ":0:/src/app/components/nemt/NEMTChallenge.tsx:38:11:1629:376:e:ProblemCard::::::CIum"
15041        }
15042      ),
15043      /* @__PURE__ */ i(
15044        a,
15045        {
15046          _fgT: M4,
15047          _fgS: "cwvf19",
15048          _fgB: 1790697590822,
15049          icon: /* @__PURE__ */ i(a, { _fgT: ad, _fgS: "cwvf20", _fgB: 1790697590822, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-cwvf20": ":0:node_modules/lucide-react:46:19:2059:50:e:ShieldAlert::::::DzUv" }),
15050          title: "Fraud Scrutiny Is Increasing",
15051          description: "States are auditing NEMT providers more aggressively. Providers without automated trip verification and GPS-backed records are exposed to clawbacks, penalties, and contract loss.",
15052          delay: 0.3,
15053          "data-fg-cwvf19": ":0:/src/app/components/nemt/NEMTChallenge.tsx:45:11:2027:374:e:ProblemCard::::::CIum"
15054        }
15055      )
15056    ] })
15057  ] }) });
15058}
15059function M4({ icon: t, title: e, description: s, delay: r }) {
15060  return /* @__PURE__ */ c(
15061    a,
15062    {
15063      _fgT: m.div,
15064      _fgS: "cwvf21",
15065      _fgB: 1790697590822,
15066      _fgD: !0,
15067      initial: { opacity: 0, y: 20 },
15068      whileInView: { opacity: 1, y: 0 },
15069      viewport: { once: !0 },
15070      transition: { delay: r, duration: 0.5 },
15071      className: "bg-slate-50 border-l-4 border-[#EFBB0F] p-8 rounded-r-xl shadow-sm hover:shadow-md transition-shadow group",
15072      "data-fg-cwvf21": ":0:/src/app/components/nemt/NEMTChallenge.tsx:59:5:2606:717:e:motion.div:ete:1",
15073      children: [
15074        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cwvf22", _fgB: 1790697590822, className: "flex items-start gap-4 mb-3", "data-fg-cwvf22": ":0:/src/app/components/nemt/NEMTChallenge.tsx:66:7:2910:296:e:div:ete", children: [
15075          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cwvf23", _fgB: 1790697590822, className: "p-2 bg-white rounded-lg shadow-sm text-slate-900 group-hover:scale-110 transition-transform duration-300", "data-fg-cwvf23": ":0:/src/app/components/nemt/NEMTChallenge.tsx:67:9:2964:154:e:div:x", children: t }),
15076          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cwvf25", _fgB: 1790697590822, className: "text-xl font-bold text-slate-900 pt-1", "data-fg-cwvf25": ":0:/src/app/components/nemt/NEMTChallenge.tsx:70:9:3127:66:e:h3:x", children: e })
15077        ] }),
15078        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cwvf27", _fgB: 1790697590822, className: "text-slate-600 leading-relaxed pl-[3.25rem]", "data-fg-cwvf27": ":0:/src/app/components/nemt/NEMTChallenge.tsx:72:7:3213:92:e:p:x", children: s })
15079      ]
15080    }
15081  );
15082}
15083const li = globalThis.__GLOBALS__.getAssetURL("83dd1d4de7647d79182a7021d696ae5e95daf730.png"), Gp = globalThis.__GLOBALS__.getAssetURL("d6a1733fc415e2266a48882283b693e5ca8528ce.png"), Jp = globalThis.__GLOBALS__.getAssetURL("e830beeaed508fe29c7ac39aa477629dc557e936.png");
15084function Kp() {
15085  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "ct3j0", _fgB: 1790697590826, _fgD: !0, className: "py-24 bg-white relative", "data-fg-ct3j0": ":0:/src/app/components/nemt/NEMTHelp.tsx:9:5:434:4488:e:section:ete:1", children: [
15086    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct3j1", _fgB: 1790697590826, className: "container mx-auto px-6 mb-24 text-center", "data-fg-ct3j1": ":0:/src/app/components/nemt/NEMTHelp.tsx:10:7:486:694:e:div:etete", children: [
15087      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct3j2", _fgB: 1790697590826, className: "inline-block px-4 py-1.5 rounded-full border border-blue-100 bg-blue-50 text-blue-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-ct3j2": ":0:/src/app/components/nemt/NEMTHelp.tsx:11:9:553:189:e:div:t", children: "HOW WE HELP" }),
15088      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "ct3j4", _fgB: 1790697590826, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-ct3j4": ":0:/src/app/components/nemt/NEMTHelp.tsx:15:9:760:168:e:h2:tet", children: [
15089        "Every Trip Documented.",
15090        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "ct3j6", _fgB: 1790697590826, "data-fg-ct3j6": ":0:/src/app/components/nemt/NEMTHelp.tsx:16:33:874:6:e:br" }),
15091        "Every Claim Defensible."
15092      ] }),
15093      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ct3j8", _fgB: 1790697590826, className: "text-lg md:text-xl text-slate-600 max-w-2xl mx-auto leading-relaxed", "data-fg-ct3j8": ":0:/src/app/components/nemt/NEMTHelp.tsx:20:9:946:221:e:p:t", children: "Our platform captures Medicaid-required data automatically from the moment a trip is booked through final billing." })
15094    ] }),
15095    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct3j10", _fgB: 1790697590826, className: "space-y-0", "data-fg-ct3j10": ":0:/src/app/components/nemt/NEMTHelp.tsx:25:7:1188:3719:e:div:xtetxtetxtetxte", children: [
15096      /* @__PURE__ */ i(
15097        a,
15098        {
15099          _fgT: C2,
15100          _fgS: "ct3j12",
15101          _fgB: 1790697590826,
15102          label: "TRIP VERIFICATION",
15103          title: "Capture Every Data Point Without Extra Work",
15104          points: [
15105            "GPS-stamped pickup and drop-off times recorded automatically as the driver completes each stop",
15106            "Rider identity confirmed at the door through facial recognition, QR code, or Bluetooth on our in-vehicle IVO tablet",
15107            "Digital signature capture on the driver's device for states that require signed proof of service",
15108            "Mileage logged from actual GPS tracks not estimated or entered manually after the fact"
15109          ],
15110          image: li,
15111          bgColor: "bg-slate-50",
15112          isImageRight: !0,
15113          icon: /* @__PURE__ */ i(a, { _fgT: F3, _fgS: "ct3j13", _fgB: 1790697590826, className: "w-5 h-5 text-white", "data-fg-ct3j13": ":0:node_modules/lucide-react:39:17:2016:46:e:ShieldCheck::::::CqaD" }),
15114          "data-fg-ct3j12": ":0:/src/app/components/nemt/NEMTHelp.tsx:27:9:1303:771:e:HelpRow::::::ClFE"
15115        }
15116      ),
15117      /* @__PURE__ */ i(
15118        a,
15119        {
15120          _fgT: C2,
15121          _fgS: "ct3j15",
15122          _fgB: 1790697590826,
15123          label: "BILLING",
15124          title: "From Trip Record to Clean Claim",
15125          points: [
15126            "Each trip record carries the rider's Medicaid ID, funding source, and authorization data from booking through billing",
15127            "Automated rate calculation based on your contract terms including base fare, mileage, wait time, and vehicle type",
15128            "Batch invoicing across multiple funding sources with each claim formatted to that state's submission requirements",
15129            "Denied or short-paid claims flagged for review before resubmission so nothing falls through the cracks"
15130          ],
15131          image: Jp,
15132          bgColor: "bg-white",
15133          isImageRight: !1,
15134          icon: /* @__PURE__ */ i(a, { _fgT: Mc, _fgS: "ct3j16", _fgB: 1790697590826, className: "w-5 h-5 text-white", "data-fg-ct3j16": ":0:node_modules/lucide-react:55:17:2882:43:e:Banknote::::::CQ6q" }),
15135          "data-fg-ct3j15": ":0:/src/app/components/nemt/NEMTHelp.tsx:43:9:2148:789:e:HelpRow::::::ClFE"
15136        }
15137      ),
15138      /* @__PURE__ */ i(
15139        a,
15140        {
15141          _fgT: C2,
15142          _fgS: "ct3j18",
15143          _fgB: 1790697590826,
15144          label: "DISPATCH & ROUTING",
15145          title: "Get the Right Vehicle to the Right Appointment on Time",
15146          points: [
15147            "Automated scheduling from broker trip files imported directly into the system with field mapping and duplicate detection",
15148            "ERSA algorithm builds shared-ride routes that group trips headed in the same direction while keeping each rider on time for their appointment",
15149            "Same-day and will-call trips inserted into active routes without rebuilding the entire manifest",
15150            "Dispatchers see every vehicle on a live map with real-time status and alerts for late pickups"
15151          ],
15152          image: Gp,
15153          bgColor: "bg-slate-50",
15154          isImageRight: !0,
15155          icon: /* @__PURE__ */ i(a, { _fgT: S1, _fgS: "ct3j19", _fgB: 1790697590826, className: "w-5 h-5 text-white", "data-fg-ct3j19": ":0:node_modules/lucide-react:71:17:3802:38:e:Map::::::ELje" }),
15156          "data-fg-ct3j18": ":0:/src/app/components/nemt/NEMTHelp.tsx:59:9:3027:825:e:HelpRow::::::ClFE"
15157        }
15158      ),
15159      /* @__PURE__ */ i(
15160        a,
15161        {
15162          _fgT: C2,
15163          _fgS: "ct3j21",
15164          _fgB: 1790697590826,
15165          label: "RIDER EXPERIENCE",
15166          title: "Keep Riders Informed and Reduce No-Shows",
15167          points: [
15168            "Automated call-out messages notify riders when their vehicle is arriving so they're ready at the door",
15169            "Where's My Ride app and IVR phone access let riders check trip status, confirm appointments, and cancel without calling dispatch",
15170            "Real-time ETA notifications reduce missed pickups and wasted vehicle time at the curb"
15171          ],
15172          image: "https://images.unsplash.com/photo-1677236097903-4b7565f26602?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxlbGRlcmx5JTIwcGVyc29uJTIwbG9va2luZyUyMGF0JTIwc21hcnRwaG9uZSUyMG1lZGljYWwlMjBhcHB8ZW58MXx8fHwxNzcxMzYxNzk1fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
15173          bgColor: "bg-white",
15174          isImageRight: !1,
15175          icon: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "ct3j22", _fgB: 1790697590826, className: "w-5 h-5 text-white", "data-fg-ct3j22": ":0:node_modules/lucide-react:86:17:4837:45:e:Smartphone::::::DHxb" }),
15176          "data-fg-ct3j21": ":0:/src/app/components/nemt/NEMTHelp.tsx:75:9:3935:959:e:HelpRow::::::ClFE"
15177        }
15178      )
15179    ] })
15180  ] });
15181}
15182function C2({ label: t, title: e, points: s, image: r, bgColor: n, isImageRight: o, icon: L }) {
15183  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct3j23", _fgB: 1790697590826, _fgD: !0, className: `py-20 ${n}`, "data-fg-ct3j23": ":0:/src/app/components/nemt/NEMTHelp.tsx:105:5:5209:2253:e:div:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct3j24", _fgB: 1790697590826, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-center", "data-fg-ct3j24": ":0:/src/app/components/nemt/NEMTHelp.tsx:106:7:5252:2199:e:div:xtetxte", children: [
15184    /* @__PURE__ */ c(
15185      a,
15186      {
15187        _fgT: m.div,
15188        _fgS: "ct3j26",
15189        _fgB: 1790697590826,
15190        initial: { opacity: 0, x: o ? -30 : 30 },
15191        whileInView: { opacity: 1, x: 0 },
15192        viewport: { once: !0, margin: "-100px" },
15193        transition: { duration: 0.6 },
15194        className: `${o ? "lg:order-1" : "lg:order-2"}`,
15195        "data-fg-ct3j26": ":0:/src/app/components/nemt/NEMTHelp.tsx:108:9:5370:1335:e:motion.div:etete",
15196        children: [
15197          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ct3j27", _fgB: 1790697590826, className: "flex items-center gap-3 mb-6", "data-fg-ct3j27": ":0:/src/app/components/nemt/NEMTHelp.tsx:115:11:5676:342:e:div:ete", children: [
15198            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct3j28", _fgB: 1790697590826, className: "flex items-center justify-center w-8 h-8 rounded-full bg-[#EFBB0F] shadow-md", "data-fg-ct3j28": ":0:/src/app/components/nemt/NEMTHelp.tsx:116:13:5735:134:e:div:x", children: L }),
15199            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ct3j30", _fgB: 1790697590826, className: "text-[#EFBB0F] font-bold tracking-widest text-sm uppercase", "data-fg-ct3j30": ":0:/src/app/components/nemt/NEMTHelp.tsx:119:13:5882:119:e:span:x", children: t })
15200          ] }),
15201          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "ct3j32", _fgB: 1790697590826, className: "text-3xl md:text-4xl font-bold text-slate-900 mb-8 leading-tight", "data-fg-ct3j32": ":0:/src/app/components/nemt/NEMTHelp.tsx:124:11:6040:117:e:h3:x", children: e }),
15202          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "ct3j34", _fgB: 1790697590826, className: "space-y-6", "data-fg-ct3j34": ":0:/src/app/components/nemt/NEMTHelp.tsx:128:11:6179:504:e:ul:x", children: s.map((d, l) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "ct3j36", _fgB: 1790697590826, className: "flex items-start gap-4 group", "data-fg-ct3j36": ":0:/src/app/components/nemt/NEMTHelp.tsx:130:15:6264:387:e:li:ete", children: [
15203            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct3j37", _fgB: 1790697590826, className: "mt-1.5 min-w-[20px] text-[#EFBB0F]", "data-fg-ct3j37": ":0:/src/app/components/nemt/NEMTHelp.tsx:131:17:6338:175:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: G, _fgS: "ct3j38", _fgB: 1790697590826, size: 20, className: "group-hover:scale-110 transition-transform", "data-fg-ct3j38": ":0:node_modules/lucide-react:132:19:6409:81:e:CheckCircle2::::::CELI" }) }),
15204            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ct3j39", _fgB: 1790697590826, className: "text-slate-600 leading-relaxed text-lg", "data-fg-ct3j39": ":0:/src/app/components/nemt/NEMTHelp.tsx:134:17:6530:101:e:p:x", children: d })
15205          ] }, l)) })
15206        ]
15207      }
15208    ),
15209    /* @__PURE__ */ c(
15210      a,
15211      {
15212        _fgT: m.div,
15213        _fgS: "ct3j42",
15214        _fgB: 1790697590826,
15215        initial: { opacity: 0, scale: 0.95 },
15216        whileInView: { opacity: 1, scale: 1 },
15217        viewport: { once: !0, margin: "-100px" },
15218        transition: { duration: 0.6, delay: 0.2 },
15219        className: `relative h-[400px] md:h-[500px] rounded-2xl overflow-hidden shadow-2xl ${o ? "lg:order-2" : "lg:order-1"}`,
15220        "data-fg-ct3j42": ":0:/src/app/components/nemt/NEMTHelp.tsx:143:9:6737:701:e:motion.div:ete",
15221        children: [
15222          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ct3j43", _fgB: 1790697590826, className: "absolute inset-0 bg-gradient-to-tr from-slate-900/40 to-transparent z-10 mix-blend-multiply", "data-fg-ct3j43": ":0:/src/app/components/nemt/NEMTHelp.tsx:150:11:7115:111:e:div" }),
15223          /* @__PURE__ */ i(
15224            a,
15225            {
15226              _fgT: "img",
15227              _fgS: "ct3j44",
15228              _fgB: 1790697590826,
15229              src: r,
15230              alt: e,
15231              className: "w-full h-full object-cover transform hover:scale-105 transition-transform duration-700",
15232              "data-fg-ct3j44": ":0:/src/app/components/nemt/NEMTHelp.tsx:151:11:7237:179:e:img"
15233            }
15234          )
15235        ]
15236      }
15237    )
15238  ] }) });
15239}
15240function Yp() {
15241  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dijl0", _fgB: 1790697590830, _fgD: !0, className: "py-24 bg-slate-900 text-white", "data-fg-dijl0": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:6:5:158:1899:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dijl1", _fgB: 1790697590830, className: "container mx-auto px-6", "data-fg-dijl1": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:7:7:216:1826:e:div:ete", children: [
15242    /* @__PURE__ */ i(
15243      a,
15244      {
15245        _fgT: m.div,
15246        _fgS: "dijl2",
15247        _fgB: 1790697590830,
15248        initial: { opacity: 0, y: 20 },
15249        whileInView: { opacity: 1, y: 0 },
15250        viewport: { once: !0 },
15251        transition: { duration: 0.6 },
15252        className: "text-center mb-16",
15253        "data-fg-dijl2": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:8:9:265:474:e:motion.div:e",
15254        children: /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "dijl3", _fgB: 1790697590830, className: "text-3xl md:text-5xl font-bold mb-6 font-[Space_Grotesk]", "data-fg-dijl3": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:15:11:502:215:e:h2:tete", children: [
15255          "Built for NEMT Providers Who Can't",
15256          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "dijl5", _fgB: 1790697590830, "data-fg-dijl5": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:16:47:622:6:e:br" }),
15257          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dijl6", _fgB: 1790697590830, className: "text-[#EFBB0F]", "data-fg-dijl6": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:17:13:641:60:e:span:t", children: "Afford Denied Claims" })
15258        ] })
15259      }
15260    ),
15261    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dijl8", _fgB: 1790697590830, className: "grid md:grid-cols-2 gap-8 max-w-4xl mx-auto", "data-fg-dijl8": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:21:9:749:1280:e:div:etetete", children: [
15262      /* @__PURE__ */ i(
15263        a,
15264        {
15265          _fgT: F2,
15266          _fgS: "dijl9",
15267          _fgB: 1790697590830,
15268          icon: /* @__PURE__ */ i(a, { _fgT: dd, _fgS: "dijl10", _fgB: 1790697590830, className: "w-6 h-6 text-slate-900", "data-fg-dijl10": ":0:node_modules/lucide-react:23:19:852:49:e:PlusSquare::::::CSQ3" }),
15269          title: "Medicaid Transportation Providers",
15270          description: "Running trips under state Medicaid contracts with strict documentation requirements.",
15271          delay: 0.1,
15272          "data-fg-dijl9": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:22:11:821:283:e:WhoForItem::::::Buxh"
15273        }
15274      ),
15275      /* @__PURE__ */ i(
15276        a,
15277        {
15278          _fgT: F2,
15279          _fgS: "dijl11",
15280          _fgB: 1790697590830,
15281          icon: /* @__PURE__ */ i(a, { _fgT: si, _fgS: "dijl12", _fgB: 1790697590830, className: "w-6 h-6 text-slate-900", "data-fg-dijl12": ":0:node_modules/lucide-react:30:19:1157:44:e:Truck::::::Dl9l" }),
15282          title: "Multi-Vehicle NEMT Fleets",
15283          description: "Managing 10 to 500+ vehicles across multiple counties or service areas.",
15284          delay: 0.2,
15285          "data-fg-dijl11": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:29:11:1126:257:e:WhoForItem::::::Buxh"
15286        }
15287      ),
15288      /* @__PURE__ */ i(
15289        a,
15290        {
15291          _fgT: F2,
15292          _fgS: "dijl13",
15293          _fgB: 1790697590830,
15294          icon: /* @__PURE__ */ i(a, { _fgT: J7, _fgS: "dijl14", _fgB: 1790697590830, className: "w-6 h-6 text-slate-900", "data-fg-dijl14": ":0:node_modules/lucide-react:37:19:1436:48:e:Handshake::::::B5t" }),
15295          title: "Broker Subcontractors",
15296          description: "Receiving trip assignments from transportation brokers and needing clean data for reimbursement.",
15297          delay: 0.3,
15298          "data-fg-dijl13": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:36:11:1405:282:e:WhoForItem::::::Buxh"
15299        }
15300      ),
15301      /* @__PURE__ */ i(
15302        a,
15303        {
15304          _fgT: F2,
15305          _fgS: "dijl15",
15306          _fgB: 1790697590830,
15307          icon: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "dijl16", _fgB: 1790697590830, className: "w-6 h-6 text-slate-900", "data-fg-dijl16": ":0:node_modules/lucide-react:44:19:1740:48:e:Building2::::::DOEu" }),
15308          title: "Health System Transportation Programs",
15309          description: "Hospitals and health networks operating their own patient transportation to reduce missed appointments.",
15310          delay: 0.4,
15311          "data-fg-dijl15": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:43:11:1709:305:e:WhoForItem::::::Buxh"
15312        }
15313      )
15314    ] })
15315  ] }) });
15316}
15317function F2({ icon: t, title: e, description: s, delay: r }) {
15318  return /* @__PURE__ */ c(
15319    a,
15320    {
15321      _fgT: m.div,
15322      _fgS: "dijl17",
15323      _fgB: 1790697590830,
15324      _fgD: !0,
15325      initial: { opacity: 0, scale: 0.95 },
15326      whileInView: { opacity: 1, scale: 1 },
15327      viewport: { once: !0 },
15328      transition: { delay: r, duration: 0.5 },
15329      className: "bg-slate-800/50 border border-slate-700 p-8 rounded-2xl hover:bg-slate-800 transition-colors group flex items-start gap-6",
15330      "data-fg-dijl17": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:57:5:2218:671:e:motion.div:ete:1",
15331      children: [
15332        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dijl18", _fgB: 1790697590830, className: "p-3 bg-white rounded-xl shadow-lg group-hover:scale-110 transition-transform duration-300", "data-fg-dijl18": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:64:7:2548:135:e:div:x", children: t }),
15333        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dijl20", _fgB: 1790697590830, "data-fg-dijl20": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:67:7:2690:181:e:div:ete", children: [
15334          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dijl21", _fgB: 1790697590830, className: "text-xl font-bold text-white mb-2", "data-fg-dijl21": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:68:9:2704:62:e:h3:x", children: e }),
15335          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dijl23", _fgB: 1790697590830, className: "text-slate-400 leading-relaxed", "data-fg-dijl23": ":0:/src/app/components/nemt/NEMTWhoFor.tsx:69:9:2775:83:e:p:x", children: s })
15336        ] })
15337      ]
15338    }
15339  );
15340}
15341function Xp() {
15342  const { openContactModal: t } = Z();
15343  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "uce0", _fgB: 1790697590832, _fgD: !0, className: "py-24 bg-white", "data-fg-uce0": ":0:/src/app/components/nemt/NEMTCTA.tsx:9:5:235:1185:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "uce1", _fgB: 1790697590832, className: "container mx-auto px-6 max-w-4xl text-center", "data-fg-uce1": ":0:/src/app/components/nemt/NEMTCTA.tsx:10:7:278:1127:e:div:e", children: /* @__PURE__ */ c(
15344    a,
15345    {
15346      _fgT: m.div,
15347      _fgS: "uce2",
15348      _fgB: 1790697590832,
15349      initial: { opacity: 0, y: 30 },
15350      whileInView: { opacity: 1, y: 0 },
15351      viewport: { once: !0 },
15352      transition: { duration: 0.8 },
15353      "data-fg-uce2": ":0:/src/app/components/nemt/NEMTCTA.tsx:11:9:349:1043:e:motion.div:etete",
15354      children: [
15355        /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "uce3", _fgB: 1790697590832, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-uce3": ":0:/src/app/components/nemt/NEMTCTA.tsx:17:11:545:146:e:h2:tet", children: [
15356          "Stop Losing Revenue",
15357          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "uce5", _fgB: 1790697590832, "data-fg-uce5": ":0:/src/app/components/nemt/NEMTCTA.tsx:18:32:658:6:e:br" }),
15358          "to Bad Data"
15359        ] }),
15360        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "uce7", _fgB: 1790697590832, className: "text-xl md:text-2xl text-slate-600 mb-12 max-w-2xl mx-auto leading-relaxed", "data-fg-uce7": ":0:/src/app/components/nemt/NEMTCTA.tsx:21:11:713:209:e:p:t", children: "We'll show you how our platform captures every data point Medicaid requires, automatically." }),
15361        /* @__PURE__ */ c(
15362          a,
15363          {
15364            _fgT: "button",
15365            _fgS: "uce9",
15366            _fgB: 1790697590832,
15367            onClick: t,
15368            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-xl hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-blue-900/50 cursor-pointer",
15369            "data-fg-uce9": ":0:/src/app/components/nemt/NEMTCTA.tsx:25:11:944:426:e:button:te",
15370            children: [
15371              "Request a Demo",
15372              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "uce11", _fgB: 1790697590832, size: 24, className: "group-hover:translate-x-1 transition-transform", "data-fg-uce11": ":0:node_modules/lucide-react:30:13:1267:83:e:ArrowRight::::::s5N" })
15373            ]
15374          }
15375        )
15376      ]
15377    }
15378  ) }) });
15379}
15380function Qp() {
15381  return /* @__PURE__ */ c(C, { children: [
15382    /* @__PURE__ */ i(a, { _fgT: qp, _fgS: "dmvy1", _fgB: 1790697589423, "data-fg-dmvy1": ":0:/src/app/pages/NEMTPage.tsx:11:7:396:12:e:NEMTHero::::::DaWW" }),
15383    /* @__PURE__ */ i(a, { _fgT: Up, _fgS: "dmvy2", _fgB: 1790697589423, "data-fg-dmvy2": ":0:/src/app/pages/NEMTPage.tsx:12:7:415:17:e:NEMTChallenge::::::BWpS" }),
15384    /* @__PURE__ */ i(a, { _fgT: Kp, _fgS: "dmvy3", _fgB: 1790697589423, "data-fg-dmvy3": ":0:/src/app/pages/NEMTPage.tsx:13:7:439:12:e:NEMTHelp::::::X5w" }),
15385    /* @__PURE__ */ i(a, { _fgT: Yp, _fgS: "dmvy4", _fgB: 1790697589423, "data-fg-dmvy4": ":0:/src/app/pages/NEMTPage.tsx:14:7:458:14:e:NEMTWhoFor::::::CcpM" }),
15386    /* @__PURE__ */ i(a, { _fgT: Xp, _fgS: "dmvy5", _fgB: 1790697589423, "data-fg-dmvy5": ":0:/src/app/pages/NEMTPage.tsx:15:7:479:11:e:NEMTCTA::::::8EC" }),
15387    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "dmvy6", _fgB: 1790697589423, "data-fg-dmvy6": ":0:/src/app/pages/NEMTPage.tsx:16:7:497:10:e:Footer::::::B1Vv" })
15388  ] });
15389}
15390function eM() {
15391  const { openContactModal: t } = Z();
15392  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx0", _fgB: 1790697590793, _fgD: !0, className: "relative bg-slate-900 overflow-hidden", "data-fg-cagx0": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:9:5:256:4434:e:div:xtetxte:1", children: [
15393    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cagx2", _fgB: 1790697590793, className: "relative min-h-[85vh] flex items-center pt-20 pb-20 lg:pt-0 lg:pb-0", "data-fg-cagx2": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:11:7:350:3095:e:section:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx3", _fgB: 1790697590793, className: "container mx-auto px-6 relative z-10 grid lg:grid-cols-2 gap-12 items-center", "data-fg-cagx3": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:12:9:448:2980:e:div:xtetxte", children: [
15394      /* @__PURE__ */ c(
15395        a,
15396        {
15397          _fgT: m.div,
15398          _fgS: "cagx5",
15399          _fgB: 1790697590793,
15400          initial: { opacity: 0, y: 30 },
15401          animate: { opacity: 1, y: 0 },
15402          transition: { duration: 0.8 },
15403          className: "flex flex-col items-start",
15404          "data-fg-cagx5": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:14:11:589:1683:e:motion.div:etetete",
15405          children: [
15406            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx6", _fgB: 1790697590793, className: "inline-block px-4 py-1.5 rounded-full border border-amber-500/50 bg-amber-500/10 text-amber-400 text-xs font-bold tracking-widest uppercase mb-8 shadow-[0_0_15px_rgba(239,187,15,0.3)] backdrop-blur-sm", "data-fg-cagx6": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:20:13:805:272:e:div:t", children: "PRIVATE TNC'S & TAXI" }),
15407            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "cagx8", _fgB: 1790697590793, className: "text-5xl md:text-7xl font-bold text-white mb-6 leading-tight font-[Space_Grotesk]", "data-fg-cagx8": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:24:13:1103:232:e:h1:tete", children: [
15408              "Run Multiple Fleets.",
15409              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cagx10", _fgB: 1790697590793, "data-fg-cagx10": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:25:35:1236:6:e:br" }),
15410              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cagx11", _fgB: 1790697590793, className: "text-[#EFBB0F]", "data-fg-cagx11": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:26:15:1257:60:e:span:t", children: "One Dispatch Center." })
15411            ] }),
15412            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cagx13", _fgB: 1790697590793, className: "text-lg md:text-xl text-slate-300 mb-10 leading-relaxed max-w-xl", "data-fg-cagx13": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:29:13:1361:424:e:p:t", children: "Private TNCs (Transportation Network Companies) and taxi dispatch operations manage trips across companies they don't always own, with drivers they don't always control, for accounts that demand accuracy. Our platform lets you dispatch, settle, and bill across every fleet and every company from a single system." }),
15413            /* @__PURE__ */ c(
15414              a,
15415              {
15416                _fgT: "button",
15417                _fgS: "cagx15",
15418                _fgB: 1790697590793,
15419                onClick: t,
15420                className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-lg hover:shadow-blue-900/50 cursor-pointer",
15421                "data-fg-cagx15": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:33:13:1811:437:e:button:te",
15422                children: [
15423                  "Request a Demo",
15424                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cagx17", _fgB: 1790697590793, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-cagx17": ":0:node_modules/lucide-react:38:15:2143:83:e:ArrowRight::::::s5N" })
15425                ]
15426              }
15427            )
15428          ]
15429        }
15430      ),
15431      /* @__PURE__ */ i(
15432        a,
15433        {
15434          _fgT: m.div,
15435          _fgS: "cagx19",
15436          _fgB: 1790697590793,
15437          initial: { opacity: 0, scale: 0.95 },
15438          animate: { opacity: 1, scale: 1 },
15439          transition: { delay: 0.2, duration: 0.8 },
15440          className: "relative h-full min-h-[400px] lg:min-h-[600px] flex items-center justify-center",
15441          "data-fg-cagx19": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:43:11:2319:1094:e:motion.div:e",
15442          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx20", _fgB: 1790697590793, className: "relative w-full h-full rounded-2xl overflow-hidden shadow-2xl border border-slate-700/50 group", "data-fg-cagx20": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:49:13:2611:778:e:div:ete", children: [
15443            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx21", _fgB: 1790697590793, className: "absolute inset-0 bg-gradient-to-t from-slate-900/80 via-transparent to-transparent z-10", "data-fg-cagx21": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:50:15:2738:107:e:div" }),
15444            /* @__PURE__ */ i(
15445              a,
15446              {
15447                _fgT: "img",
15448                _fgS: "cagx22",
15449                _fgB: 1790697590793,
15450                src: "https://images.unsplash.com/photo-1762216453994-e0f457d840d5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx5ZWxsb3clMjB0YXhpJTIwY2FiJTIwdXJiYW4lMjBjaXR5JTIwc3RyZWV0JTIwYnVzeXxlbnwxfHx8fDE3NzEzNjI2NTl8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
15451                alt: "Yellow Taxi Cab Urban City Street",
15452                className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",
15453                "data-fg-cagx22": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:51:15:2860:510:e:img"
15454              }
15455            )
15456          ] })
15457        }
15458      )
15459    ] }) }),
15460    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx24", _fgB: 1790697590793, className: "w-full bg-slate-800/50 border-t border-slate-800 py-6", "data-fg-cagx24": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:62:7:3486:1193:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx25", _fgB: 1790697590793, className: "container mx-auto px-6", "data-fg-cagx25": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:63:9:3566:1100:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx26", _fgB: 1790697590793, className: "flex flex-col md:flex-row justify-center items-center gap-4 md:gap-12 text-center", "data-fg-cagx26": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:64:11:3617:1034:e:div:etetetete", children: [
15461      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx27", _fgB: 1790697590793, className: "flex items-center gap-3", "data-fg-cagx27": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:65:13:3729:227:e:div:ete", children: [
15462        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cagx28", _fgB: 1790697590793, size: 18, className: "text-[#EFBB0F]", "data-fg-cagx28": ":0:node_modules/lucide-react:66:15:3785:53:e:CheckCircle2::::::CELI" }),
15463        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cagx29", _fgB: 1790697590793, className: "text-white font-medium tracking-wide", "data-fg-cagx29": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:67:15:3853:84:e:span:t", children: "Multi-Company Dispatch" })
15464      ] }),
15465      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx31", _fgB: 1790697590793, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-cagx31": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:70:13:3982:57:e:div" }),
15466      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx32", _fgB: 1790697590793, className: "flex items-center gap-3", "data-fg-cagx32": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:72:13:4065:232:e:div:ete", children: [
15467        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cagx33", _fgB: 1790697590793, size: 18, className: "text-[#EFBB0F]", "data-fg-cagx33": ":0:node_modules/lucide-react:73:15:4121:53:e:CheckCircle2::::::CELI" }),
15468        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cagx34", _fgB: 1790697590793, className: "text-white font-medium tracking-wide", "data-fg-cagx34": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:74:15:4189:89:e:span:t", children: "Driver Lease and Settlement" })
15469      ] }),
15470      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cagx36", _fgB: 1790697590793, className: "hidden md:block w-px h-6 bg-slate-700", "data-fg-cagx36": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:77:13:4323:57:e:div" }),
15471      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cagx37", _fgB: 1790697590793, className: "flex items-center gap-3", "data-fg-cagx37": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:79:13:4406:228:e:div:ete", children: [
15472        /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cagx38", _fgB: 1790697590793, size: 18, className: "text-[#EFBB0F]", "data-fg-cagx38": ":0:node_modules/lucide-react:80:15:4462:53:e:CheckCircle2::::::CELI" }),
15473        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cagx39", _fgB: 1790697590793, className: "text-white font-medium tracking-wide", "data-fg-cagx39": ":0:/src/app/components/taxi-broker/TaxiBrokerHero.tsx:81:15:4530:85:e:span:t", children: "Centralized Call Center" })
15474      ] })
15475    ] }) }) })
15476  ] });
15477}
15478function tM() {
15479  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "ceei0", _fgB: 1790697590809, _fgD: !0, className: "py-24 bg-white", "data-fg-ceei0": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:6:5:153:2297:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ceei1", _fgB: 1790697590809, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-start", "data-fg-ceei1": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:7:7:196:2239:e:div:xtetxte", children: [
15480    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ceei3", _fgB: 1790697590809, className: "lg:w-3/4", "data-fg-ceei3": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:9:9:314:818:e:div:e", children: /* @__PURE__ */ c(
15481      a,
15482      {
15483        _fgT: m.div,
15484        _fgS: "ceei4",
15485        _fgB: 1790697590809,
15486        initial: { opacity: 0, x: -30 },
15487        whileInView: { opacity: 1, x: 0 },
15488        viewport: { once: !0 },
15489        transition: { duration: 0.6 },
15490        "data-fg-ceei4": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:10:11:351:766:e:motion.div:etete",
15491        children: [
15492          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ceei5", _fgB: 1790697590809, className: "inline-block px-4 py-1.5 rounded-full border border-red-500/20 bg-red-50 text-red-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-ceei5": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:16:13:560:199:e:div:t", children: "THE CHALLENGE" }),
15493          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "ceei7", _fgB: 1790697590809, className: "text-4xl md:text-5xl font-bold text-slate-900 leading-tight mb-8", "data-fg-ceei7": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:20:13:785:228:e:h2:tete", children: [
15494            "More companies, more drivers,",
15495            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "ceei9", _fgB: 1790697590809, "data-fg-ceei9": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:21:44:910:6:e:br" }),
15496            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ceei10", _fgB: 1790697590809, className: "text-[#EFBB0F]", "data-fg-ceei10": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:22:15:931:64:e:span:t", children: "more ways to lose money." })
15497          ] }),
15498          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ceei12", _fgB: 1790697590809, className: "h-1 w-24 bg-slate-200 rounded-full", "data-fg-ceei12": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:25:13:1039:54:e:div" })
15499        ]
15500      }
15501    ) }),
15502    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ceei14", _fgB: 1790697590809, className: "space-y-8", "data-fg-ceei14": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:30:9:1170:1252:e:div:etete", children: [
15503      /* @__PURE__ */ i(
15504        a,
15505        {
15506          _fgT: u4,
15507          _fgS: "ceei15",
15508          _fgB: 1790697590809,
15509          icon: /* @__PURE__ */ i(a, { _fgT: Kl, _fgS: "ceei16", _fgB: 1790697590809, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-ceei16": ":0:node_modules/lucide-react:32:19:1240:44:e:Scale::::::B8sC" }),
15510          title: "Every Company Has Its Own Rules",
15511          description: "Different dispatch policies, different rate structures, different branding. Running multiple companies means your call center, dispatch, and billing all have to switch contexts constantly.",
15512          delay: 0.1,
15513          "data-fg-ceei15": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:31:11:1208:381:e:ProblemCard::::::CYGl"
15514        }
15515      ),
15516      /* @__PURE__ */ i(
15517        a,
15518        {
15519          _fgT: u4,
15520          _fgS: "ceei17",
15521          _fgB: 1790697590809,
15522          icon: /* @__PURE__ */ i(a, { _fgT: h1, _fgS: "ceei18", _fgB: 1790697590809, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-ceei18": ":0:node_modules/lucide-react:39:19:1643:44:e:Users::::::DV8M" }),
15523          title: "Driver Settlements Are a Mess",
15524          description: "Lease calculations, credit card reconciliation, voucher tracking, cash handling, special charges, and deposits. One mistake per driver per day adds up to thousands in lost revenue per month.",
15525          delay: 0.2,
15526          "data-fg-ceei17": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:38:11:1611:381:e:ProblemCard::::::CYGl"
15527        }
15528      ),
15529      /* @__PURE__ */ i(
15530        a,
15531        {
15532          _fgT: u4,
15533          _fgS: "ceei19",
15534          _fgB: 1790697590809,
15535          icon: /* @__PURE__ */ i(a, { _fgT: tl, _fgS: "ceei20", _fgB: 1790697590809, className: "w-6 h-6 text-[#EFBB0F]", "data-fg-ceei20": ":0:node_modules/lucide-react:46:19:2046:50:e:FileWarning::::::BMYQ" }),
15536          title: "Account Billing Gets Complicated Fast",
15537          description: "Corporate accounts, hotel contracts, government vouchers, and Medicaid trips all have different rates, different terms, and different reporting requirements. Manual tracking doesn't scale.",
15538          delay: 0.3,
15539          "data-fg-ceei19": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:45:11:2014:393:e:ProblemCard::::::CYGl"
15540        }
15541      )
15542    ] })
15543  ] }) });
15544}
15545function u4({ icon: t, title: e, description: s, delay: r }) {
15546  return /* @__PURE__ */ c(
15547    a,
15548    {
15549      _fgT: m.div,
15550      _fgS: "ceei21",
15551      _fgB: 1790697590809,
15552      _fgD: !0,
15553      initial: { opacity: 0, y: 20 },
15554      whileInView: { opacity: 1, y: 0 },
15555      viewport: { once: !0 },
15556      transition: { delay: r, duration: 0.5 },
15557      className: "bg-slate-50 border-l-4 border-[#EFBB0F] p-8 rounded-r-xl shadow-sm hover:shadow-md transition-shadow group",
15558      "data-fg-ceei21": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:59:5:2612:717:e:motion.div:ete:1",
15559      children: [
15560        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ceei22", _fgB: 1790697590809, className: "flex items-start gap-4 mb-3", "data-fg-ceei22": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:66:7:2916:296:e:div:ete", children: [
15561          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ceei23", _fgB: 1790697590809, className: "p-2 bg-white rounded-lg shadow-sm text-slate-900 group-hover:scale-110 transition-transform duration-300", "data-fg-ceei23": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:67:9:2970:154:e:div:x", children: t }),
15562          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "ceei25", _fgB: 1790697590809, className: "text-xl font-bold text-slate-900 pt-1", "data-fg-ceei25": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:70:9:3133:66:e:h3:x", children: e })
15563        ] }),
15564        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ceei27", _fgB: 1790697590809, className: "text-slate-600 leading-relaxed pl-[3.25rem]", "data-fg-ceei27": ":0:/src/app/components/taxi-broker/TaxiBrokerChallenge.tsx:72:7:3219:92:e:p:x", children: s })
15565      ]
15566    }
15567  );
15568}
15569const aM = globalThis.__GLOBALS__.getAssetURL("101a0188f57513631c229bd7482fde50c37b2580.png"), sM = globalThis.__GLOBALS__.getAssetURL("6b14aaef27dcdd5316b89a7e02b901162b6f3bb4.png"), iM = globalThis.__GLOBALS__.getAssetURL("48a59ea45704bf68f457ac3e3be44bb5d6be448c.png");
15570function rM() {
15571  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cady0", _fgB: 1790697590798, _fgD: !0, className: "py-24 bg-white relative", "data-fg-cady0": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:9:5:425:4562:e:section:ete:1", children: [
15572    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cady1", _fgB: 1790697590798, className: "container mx-auto px-6 mb-24 text-center", "data-fg-cady1": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:10:7:477:671:e:div:etete", children: [
15573      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cady2", _fgB: 1790697590798, className: "inline-block px-4 py-1.5 rounded-full border border-blue-100 bg-blue-50 text-blue-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-cady2": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:11:9:544:189:e:div:t", children: "HOW WE HELP" }),
15574      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cady4", _fgB: 1790697590798, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-cady4": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:15:9:751:150:e:h2:tet", children: [
15575        "One System for Every",
15576        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cady6", _fgB: 1790697590798, "data-fg-cady6": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:16:31:863:6:e:br" }),
15577        "Company You Manage"
15578      ] }),
15579      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cady8", _fgB: 1790697590798, className: "text-lg md:text-xl text-slate-600 max-w-2xl mx-auto leading-relaxed", "data-fg-cady8": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:19:9:919:216:e:p:t", children: "Our platform was built from day one for multi-company taxi dispatch operations. Not bolted on after the fact." })
15580    ] }),
15581    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cady10", _fgB: 1790697590798, className: "space-y-0", "data-fg-cady10": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:24:7:1156:3816:e:div:xtetxtetxtetxte", children: [
15582      /* @__PURE__ */ i(
15583        a,
15584        {
15585          _fgT: E2,
15586          _fgS: "cady12",
15587          _fgB: 1790697590798,
15588          label: "MULTI-COMPANY DISPATCH",
15589          title: "Dispatch Across Fleets Without Switching Systems",
15590          points: [
15591            "One call center handles calls for every company with branded screens that auto-switch based on the number the customer dialed",
15592            "Each company keeps its own dispatch policies including zone rules, stand rank, bidding, and direct dispatch preferences",
15593            "Trips can be brokered between affiliated companies so if one fleet is at capacity, another can pick up the work automatically"
15594          ],
15595          image: "https://images.unsplash.com/photo-1766066014237-00645c74e9c6?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjYWxsJTIwY2VudGVyJTIwYWdlbnQlMjB3aXRoJTIwaGVhZHNldCUyMG11bHRpcGxlJTIwc2NyZWVuc3xlbnwxfHx8fDE3NzEzNjI2NTl8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
15596          bgColor: "bg-slate-50",
15597          isImageRight: !0,
15598          icon: /* @__PURE__ */ i(a, { _fgT: P3, _fgS: "cady13", _fgB: 1790697590798, className: "w-5 h-5 text-white", "data-fg-cady13": ":0:node_modules/lucide-react:37:17:2248:45:e:LayoutGrid::::::DG20" }),
15599          "data-fg-cady12": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:26:9:1276:1029:e:HelpRow::::::BFPh"
15600        }
15601      ),
15602      /* @__PURE__ */ i(
15603        a,
15604        {
15605          _fgT: E2,
15606          _fgS: "cady15",
15607          _fgB: 1790697590798,
15608          label: "DRIVER MANAGEMENT",
15609          title: "Leases, Shifts, and Settlements Done Right",
15610          points: [
15611            "Flexible lease structures including daily, weekly, team driver, commission-based, and premium rates by day of week",
15612            "Cashier reconciles every trip against credit card receipts, vouchers, and cash before driver settlement",
15613            "Special charges, deposits, and installment payments all tracked and applied to driver balances automatically",
15614            "1099 reporting configurable by credit card income, voucher income, or total driver income"
15615          ],
15616          image: sM,
15617          bgColor: "bg-white",
15618          isImageRight: !1,
15619          icon: /* @__PURE__ */ i(a, { _fgT: h1, _fgS: "cady16", _fgB: 1790697590798, className: "w-5 h-5 text-white", "data-fg-cady16": ":0:node_modules/lucide-react:53:17:3114:40:e:Users::::::DV8M" }),
15620          "data-fg-cady15": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:41:9:2389:777:e:HelpRow::::::BFPh"
15621        }
15622      ),
15623      /* @__PURE__ */ i(
15624        a,
15625        {
15626          _fgT: E2,
15627          _fgS: "cady18",
15628          _fgB: 1790697590798,
15629          label: "CALL CENTER & TELEPHONY",
15630          title: "One Phone System. Every Company Brand.",
15631          points: [
15632            "Integrated telephony recognizes which company the customer called and switches the agent's screen to that company's branding and data",
15633            "Caller ID pulls up the customer's last trips so agents can rebook in seconds without asking for an address",
15634            "IVR self-booking lets repeat customers select their pickup address and book a trip without ever speaking to an agent",
15635            "All calls recorded for training, quality control, and dispute resolution"
15636          ],
15637          image: aM,
15638          bgColor: "bg-slate-50",
15639          isImageRight: !0,
15640          icon: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cady19", _fgB: 1790697590798, className: "w-5 h-5 text-white", "data-fg-cady19": ":0:node_modules/lucide-react:69:17:4003:40:e:Phone::::::DmpI" }),
15641          "data-fg-cady18": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:57:9:3261:794:e:HelpRow::::::BFPh"
15642        }
15643      ),
15644      /* @__PURE__ */ i(
15645        a,
15646        {
15647          _fgT: E2,
15648          _fgS: "cady21",
15649          _fgB: 1790697590798,
15650          label: "BILLING & ACCOUNTS",
15651          title: "Bill Every Account on Its Own Terms",
15652          points: [
15653            "Custom rate structures per account including fixed pickup rates, mileage rates, hourly rates, and cancellation fees",
15654            "Batch invoicing across multiple funding sources with each invoice formatted to that account's contractual terms",
15655            "Post receipts against invoices with support for partial payments, overpayments applied forward, and aging reports",
15656            "Government and Medicaid accounts handled with case worker tracking, eligibility rules, and driver qualification restrictions"
15657          ],
15658          image: iM,
15659          bgColor: "bg-white",
15660          isImageRight: !1,
15661          icon: /* @__PURE__ */ i(a, { _fgT: Wl, _fgS: "cady22", _fgB: 1790697590798, className: "w-5 h-5 text-white", "data-fg-cady22": ":0:node_modules/lucide-react:85:17:4905:42:e:Receipt::::::C6sA" }),
15662          "data-fg-cady21": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:73:9:4140:819:e:HelpRow::::::BFPh"
15663        }
15664      )
15665    ] })
15666  ] });
15667}
15668function E2({ label: t, title: e, points: s, image: r, bgColor: n, isImageRight: o, icon: L }) {
15669  return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cady23", _fgB: 1790697590798, _fgD: !0, className: `py-20 ${n}`, "data-fg-cady23": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:104:5:5274:2253:e:div:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cady24", _fgB: 1790697590798, className: "container mx-auto px-6 grid lg:grid-cols-2 gap-16 items-center", "data-fg-cady24": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:105:7:5317:2199:e:div:xtetxte", children: [
15670    /* @__PURE__ */ c(
15671      a,
15672      {
15673        _fgT: m.div,
15674        _fgS: "cady26",
15675        _fgB: 1790697590798,
15676        initial: { opacity: 0, x: o ? -30 : 30 },
15677        whileInView: { opacity: 1, x: 0 },
15678        viewport: { once: !0, margin: "-100px" },
15679        transition: { duration: 0.6 },
15680        className: `${o ? "lg:order-1" : "lg:order-2"}`,
15681        "data-fg-cady26": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:107:9:5435:1335:e:motion.div:etete",
15682        children: [
15683          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cady27", _fgB: 1790697590798, className: "flex items-center gap-3 mb-6", "data-fg-cady27": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:114:11:5741:342:e:div:ete", children: [
15684            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cady28", _fgB: 1790697590798, className: "flex items-center justify-center w-8 h-8 rounded-full bg-[#EFBB0F] shadow-md", "data-fg-cady28": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:115:13:5800:134:e:div:x", children: L }),
15685            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cady30", _fgB: 1790697590798, className: "text-[#EFBB0F] font-bold tracking-widest text-sm uppercase", "data-fg-cady30": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:118:13:5947:119:e:span:x", children: t })
15686          ] }),
15687          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cady32", _fgB: 1790697590798, className: "text-3xl md:text-4xl font-bold text-slate-900 mb-8 leading-tight", "data-fg-cady32": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:123:11:6105:117:e:h3:x", children: e }),
15688          /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cady34", _fgB: 1790697590798, className: "space-y-6", "data-fg-cady34": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:127:11:6244:504:e:ul:x", children: s.map((d, l) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cady36", _fgB: 1790697590798, className: "flex items-start gap-4 group", "data-fg-cady36": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:129:15:6329:387:e:li:ete", children: [
15689            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cady37", _fgB: 1790697590798, className: "mt-1.5 min-w-[20px] text-[#EFBB0F]", "data-fg-cady37": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:130:17:6403:175:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: G, _fgS: "cady38", _fgB: 1790697590798, size: 20, className: "group-hover:scale-110 transition-transform", "data-fg-cady38": ":0:node_modules/lucide-react:131:19:6474:81:e:CheckCircle2::::::CELI" }) }),
15690            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cady39", _fgB: 1790697590798, className: "text-slate-600 leading-relaxed text-lg", "data-fg-cady39": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:133:17:6595:101:e:p:x", children: d })
15691          ] }, l)) })
15692        ]
15693      }
15694    ),
15695    /* @__PURE__ */ c(
15696      a,
15697      {
15698        _fgT: m.div,
15699        _fgS: "cady42",
15700        _fgB: 1790697590798,
15701        initial: { opacity: 0, scale: 0.95 },
15702        whileInView: { opacity: 1, scale: 1 },
15703        viewport: { once: !0, margin: "-100px" },
15704        transition: { duration: 0.6, delay: 0.2 },
15705        className: `relative h-[400px] md:h-[500px] rounded-2xl overflow-hidden shadow-2xl ${o ? "lg:order-2" : "lg:order-1"}`,
15706        "data-fg-cady42": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:142:9:6802:701:e:motion.div:ete",
15707        children: [
15708          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cady43", _fgB: 1790697590798, className: "absolute inset-0 bg-gradient-to-tr from-slate-900/40 to-transparent z-10 mix-blend-multiply", "data-fg-cady43": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:149:11:7180:111:e:div" }),
15709          /* @__PURE__ */ i(
15710            a,
15711            {
15712              _fgT: "img",
15713              _fgS: "cady44",
15714              _fgB: 1790697590798,
15715              src: r,
15716              alt: e,
15717              className: "w-full h-full object-cover transform hover:scale-105 transition-transform duration-700",
15718              "data-fg-cady44": ":0:/src/app/components/taxi-broker/TaxiBrokerHelp.tsx:150:11:7302:179:e:img"
15719            }
15720          )
15721        ]
15722      }
15723    )
15724  ] }) });
15725}
15726function nM() {
15727  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bt5a0", _fgB: 1790697590796, _fgD: !0, className: "py-24 bg-slate-50", "data-fg-bt5a0": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:6:5:153:2527:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bt5a1", _fgB: 1790697590796, className: "container mx-auto px-6", "data-fg-bt5a1": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:7:7:199:2466:e:div:ete", children: [
15728    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bt5a2", _fgB: 1790697590796, className: "text-center mb-16", "data-fg-bt5a2": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:8:9:248:889:e:div:e", children: /* @__PURE__ */ c(
15729      a,
15730      {
15731        _fgT: m.div,
15732        _fgS: "bt5a3",
15733        _fgB: 1790697590796,
15734        initial: { opacity: 0, y: 20 },
15735        whileInView: { opacity: 1, y: 0 },
15736        viewport: { once: !0 },
15737        transition: { duration: 0.6 },
15738        "data-fg-bt5a3": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:9:11:294:828:e:motion.div:etete",
15739        children: [
15740          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bt5a4", _fgB: 1790697590796, className: "inline-block px-4 py-1.5 rounded-full border border-blue-100 bg-blue-50 text-blue-600 text-xs font-bold tracking-widest uppercase mb-6", "data-fg-bt5a4": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:15:13:502:202:e:div:t", children: "IN-VEHICLE TOOLS" }),
15741          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bt5a6", _fgB: 1790697590796, className: "text-3xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-bt5a6": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:19:13:730:158:e:h2:tet", children: [
15742            "From the Driver's Seat",
15743            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bt5a8", _fgB: 1790697590796, "data-fg-bt5a8": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:20:37:848:6:e:br" }),
15744            "to the Back Seat"
15745          ] }),
15746          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bt5a10", _fgB: 1790697590796, className: "text-lg md:text-xl text-slate-600 max-w-2xl mx-auto leading-relaxed", "data-fg-bt5a10": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:23:13:914:184:e:p:t", children: "Our in-vehicle equipment completes the loop from dispatch to payment." })
15747        ]
15748      }
15749    ) }),
15750    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bt5a12", _fgB: 1790697590796, className: "grid md:grid-cols-3 gap-8 max-w-6xl mx-auto", "data-fg-bt5a12": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:29:9:1147:1505:e:div:xtetxtetxte", children: [
15751      /* @__PURE__ */ i(
15752        a,
15753        {
15754          _fgT: h4,
15755          _fgS: "bt5a14",
15756          _fgB: 1790697590796,
15757          icon: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "bt5a15", _fgB: 1790697590796, className: "w-8 h-8 text-[#EFBB0F]", "data-fg-bt5a15": ":0:node_modules/lucide-react:32:19:1285:49:e:Smartphone::::::DHxb" }),
15758          title: "Driver App",
15759          points: [
15760            "Trip list, navigation, and dispatch all on the driver's phone or tablet",
15761            "Direct dispatch or bidding depending on company policy",
15762            "Digital signature capture for account and voucher trips"
15763          ],
15764          delay: 0.1,
15765          "data-fg-bt5a14": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:31:11:1256:417:e:ToolCard::::::CDDA"
15766        }
15767      ),
15768      /* @__PURE__ */ i(
15769        a,
15770        {
15771          _fgT: h4,
15772          _fgS: "bt5a17",
15773          _fgB: 1790697590796,
15774          icon: /* @__PURE__ */ i(a, { _fgT: rl, _fgS: "bt5a18", _fgB: 1790697590796, className: "w-8 h-8 text-[#EFBB0F]", "data-fg-bt5a18": ":0:node_modules/lucide-react:44:19:1765:44:e:Gauge::::::Bcv3" }),
15775          title: "Soft Taximeter",
15776          points: [
15777            "Regulator-approved fare calculation on the driver's device",
15778            "Multiple rate structures per corporate account",
15779            "Fare, distance, time, surcharge, and tip all displayed and recorded"
15780          ],
15781          delay: 0.2,
15782          "data-fg-bt5a17": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:43:11:1736:407:e:ToolCard::::::CDDA"
15783        }
15784      ),
15785      /* @__PURE__ */ i(
15786        a,
15787        {
15788          _fgT: h4,
15789          _fgS: "bt5a20",
15790          _fgB: 1790697590796,
15791          icon: /* @__PURE__ */ i(a, { _fgT: U7, _fgS: "bt5a21", _fgB: 1790697590796, className: "w-8 h-8 text-[#EFBB0F]", "data-fg-bt5a21": ":0:node_modules/lucide-react:56:19:2239:49:e:CreditCard::::::BwVT" }),
15792          title: "Backseat Passenger Interface",
15793          points: [
15794            "Tap-to-pay, EMV chip, swipe, and app payments all accepted",
15795            "Riders view route, ETA, and fare on the backseat screen",
15796            "Digital receipt by email or text and optional driver rating"
15797          ],
15798          delay: 0.3,
15799          "data-fg-bt5a20": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:55:11:2210:427:e:ToolCard::::::CDDA"
15800        }
15801      )
15802    ] })
15803  ] }) });
15804}
15805function h4({ icon: t, title: e, points: s, delay: r }) {
15806  return /* @__PURE__ */ c(
15807    a,
15808    {
15809      _fgT: m.div,
15810      _fgS: "bt5a22",
15811      _fgB: 1790697590796,
15812      _fgD: !0,
15813      initial: { opacity: 0, y: 30 },
15814      whileInView: { opacity: 1, y: 0 },
15815      viewport: { once: !0 },
15816      transition: { delay: r, duration: 0.5 },
15817      className: "bg-white p-8 rounded-2xl shadow-lg border border-slate-100 hover:shadow-xl transition-shadow group flex flex-col h-full",
15818      "data-fg-bt5a22": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:73:5:2831:945:e:motion.div:etete:1",
15819      children: [
15820        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bt5a23", _fgB: 1790697590796, className: "mb-6 p-4 bg-slate-50 rounded-xl w-fit group-hover:scale-110 transition-transform duration-300", "data-fg-bt5a23": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:80:7:3149:139:e:div:x", children: t }),
15821        /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bt5a25", _fgB: 1790697590796, className: "text-2xl font-bold text-slate-900 mb-6", "data-fg-bt5a25": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:84:7:3302:67:e:h3:x", children: e }),
15822        /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bt5a27", _fgB: 1790697590796, className: "space-y-4 flex-grow", "data-fg-bt5a27": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:86:7:3383:375:e:ul:x", children: s.map((n, o) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bt5a29", _fgB: 1790697590796, className: "flex items-start gap-3", "data-fg-bt5a29": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:88:11:3470:264:e:li:ete", children: [
15823          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bt5a30", _fgB: 1790697590796, className: "w-1.5 h-1.5 rounded-full bg-[#EFBB0F] mt-2.5 flex-shrink-0", "data-fg-bt5a30": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:89:13:3534:78:e:div" }),
15824          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bt5a31", _fgB: 1790697590796, className: "text-slate-600 leading-relaxed text-sm", "data-fg-bt5a31": ":0:/src/app/components/taxi-broker/TaxiBrokerTools.tsx:90:13:3625:93:e:p:x", children: n })
15825        ] }, o)) })
15826      ]
15827    }
15828  );
15829}
15830function oM() {
15831  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "mt80", _fgB: 1790697590801, _fgD: !0, className: "py-24 bg-slate-900 text-white", "data-fg-mt80": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:6:5:160:1883:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "mt81", _fgB: 1790697590801, className: "container mx-auto px-6", "data-fg-mt81": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:7:7:218:1810:e:div:ete", children: [
15832    /* @__PURE__ */ i(
15833      a,
15834      {
15835        _fgT: m.div,
15836        _fgS: "mt82",
15837        _fgB: 1790697590801,
15838        initial: { opacity: 0, y: 20 },
15839        whileInView: { opacity: 1, y: 0 },
15840        viewport: { once: !0 },
15841        transition: { duration: 0.6 },
15842        className: "text-center mb-16",
15843        "data-fg-mt82": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:8:9:267:466:e:motion.div:e",
15844        children: /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "mt83", _fgB: 1790697590801, className: "text-3xl md:text-5xl font-bold mb-6 font-[Space_Grotesk]", "data-fg-mt83": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:15:11:504:207:e:h2:tete", children: [
15845          "Built for Operators Running",
15846          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "mt85", _fgB: 1790697590801, "data-fg-mt85": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:16:40:617:6:e:br" }),
15847          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "mt86", _fgB: 1790697590801, className: "text-[#EFBB0F]", "data-fg-mt86": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:17:13:636:59:e:span:t", children: "More Than One Fleet" })
15848        ] })
15849      }
15850    ),
15851    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "mt88", _fgB: 1790697590801, className: "grid md:grid-cols-2 gap-8 max-w-4xl mx-auto", "data-fg-mt88": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:21:9:743:1272:e:div:etetete", children: [
15852      /* @__PURE__ */ i(
15853        a,
15854        {
15855          _fgT: R2,
15856          _fgS: "mt89",
15857          _fgB: 1790697590801,
15858          icon: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "mt810", _fgB: 1790697590801, className: "w-6 h-6 text-slate-900", "data-fg-mt810": ":0:node_modules/lucide-react:23:19:846:48:e:Building2::::::DOEu" }),
15859          title: "Multi-Company Taxi Operators",
15860          description: "Managing dispatch, billing, and driver settlements across two or more cab companies.",
15861          delay: 0.1,
15862          "data-fg-mt89": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:22:11:815:277:e:WhoForItem::::::DeTE"
15863        }
15864      ),
15865      /* @__PURE__ */ i(
15866        a,
15867        {
15868          _fgT: R2,
15869          _fgS: "mt811",
15870          _fgB: 1790697590801,
15871          icon: /* @__PURE__ */ i(a, { _fgT: J7, _fgS: "mt812", _fgB: 1790697590801, className: "w-6 h-6 text-slate-900", "data-fg-mt812": ":0:node_modules/lucide-react:30:19:1145:48:e:Handshake::::::B5t" }),
15872          title: "Trip Brokers",
15873          description: "Receiving trip requests and distributing them across a network of affiliated transportation providers.",
15874          delay: 0.2,
15875          "data-fg-mt811": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:29:11:1114:279:e:WhoForItem::::::DeTE"
15876        }
15877      ),
15878      /* @__PURE__ */ i(
15879        a,
15880        {
15881          _fgT: R2,
15882          _fgS: "mt813",
15883          _fgB: 1790697590801,
15884          icon: /* @__PURE__ */ i(a, { _fgT: q7, _fgS: "mt814", _fgB: 1790697590801, className: "w-6 h-6 text-slate-900", "data-fg-mt814": ":0:node_modules/lucide-react:37:19:1446:42:e:Car::::::EJEg" }),
15885          title: "Limousine and Black Car Operators",
15886          description: "Running scheduled and on-demand luxury transportation with account-based billing.",
15887          delay: 0.3,
15888          "data-fg-mt813": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:36:11:1415:273:e:WhoForItem::::::DeTE"
15889        }
15890      ),
15891      /* @__PURE__ */ i(
15892        a,
15893        {
15894          _fgT: R2,
15895          _fgS: "mt815",
15896          _fgB: 1790697590801,
15897          icon: /* @__PURE__ */ i(a, { _fgT: Sc, _fgS: "mt816", _fgB: 1790697590801, className: "w-6 h-6 text-slate-900", "data-fg-mt816": ":0:node_modules/lucide-react:44:19:1741:47:e:Building::::::XOs" }),
15898          title: "Hotel and Corporate Account Managers",
15899          description: "Providing dedicated taxi service for hotels, corporate campuses, and government contracts.",
15900          delay: 0.4,
15901          "data-fg-mt815": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:43:11:1710:290:e:WhoForItem::::::DeTE"
15902        }
15903      )
15904    ] })
15905  ] }) });
15906}
15907function R2({ icon: t, title: e, description: s, delay: r }) {
15908  return /* @__PURE__ */ c(
15909    a,
15910    {
15911      _fgT: m.div,
15912      _fgS: "mt817",
15913      _fgB: 1790697590801,
15914      _fgD: !0,
15915      initial: { opacity: 0, scale: 0.95 },
15916      whileInView: { opacity: 1, scale: 1 },
15917      viewport: { once: !0 },
15918      transition: { delay: r, duration: 0.5 },
15919      className: "bg-slate-800/50 border border-slate-700 p-8 rounded-2xl hover:bg-slate-800 transition-colors group flex items-start gap-6",
15920      "data-fg-mt817": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:57:5:2204:671:e:motion.div:ete:1",
15921      children: [
15922        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "mt818", _fgB: 1790697590801, className: "p-3 bg-white rounded-xl shadow-lg group-hover:scale-110 transition-transform duration-300", "data-fg-mt818": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:64:7:2534:135:e:div:x", children: t }),
15923        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "mt820", _fgB: 1790697590801, "data-fg-mt820": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:67:7:2676:181:e:div:ete", children: [
15924          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "mt821", _fgB: 1790697590801, className: "text-xl font-bold text-white mb-2", "data-fg-mt821": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:68:9:2690:62:e:h3:x", children: e }),
15925          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "mt823", _fgB: 1790697590801, className: "text-slate-400 leading-relaxed", "data-fg-mt823": ":0:/src/app/components/taxi-broker/TaxiBrokerWhoFor.tsx:69:9:2761:83:e:p:x", children: s })
15926        ] })
15927      ]
15928    }
15929  );
15930}
15931function LM() {
15932  const { openContactModal: t } = Z();
15933  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dcn0", _fgB: 1790697590802, _fgD: !0, className: "py-24 bg-white", "data-fg-dcn0": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:9:5:241:1293:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dcn1", _fgB: 1790697590802, className: "container mx-auto px-6 max-w-4xl text-center", "data-fg-dcn1": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:10:7:284:1235:e:div:e", children: /* @__PURE__ */ c(
15934    a,
15935    {
15936      _fgT: m.div,
15937      _fgS: "dcn2",
15938      _fgB: 1790697590802,
15939      initial: { opacity: 0, y: 30 },
15940      whileInView: { opacity: 1, y: 0 },
15941      viewport: { once: !0 },
15942      transition: { duration: 0.8 },
15943      "data-fg-dcn2": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:11:9:355:1151:e:motion.div:etete",
15944      children: [
15945        /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "dcn3", _fgB: 1790697590802, className: "text-4xl md:text-5xl font-bold text-slate-900 mb-6 leading-tight", "data-fg-dcn3": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:17:11:551:224:e:h2:tete", children: [
15946          "Managing Multiple Fleets Shouldn't",
15947          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "dcn5", _fgB: 1790697590802, "data-fg-dcn5": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:18:47:679:6:e:br" }),
15948          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dcn6", _fgB: 1790697590802, className: "text-[#EFBB0F]", "data-fg-dcn6": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:19:13:698:61:e:span:t", children: "Mean Multiple Systems" })
15949        ] }),
15950        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dcn8", _fgB: 1790697590802, className: "text-xl md:text-2xl text-slate-600 mb-12 max-w-2xl mx-auto leading-relaxed", "data-fg-dcn8": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:22:11:797:239:e:p:t", children: "See how one platform handles dispatch, billing, driver settlements, and call center operations for every company you run." }),
15951        /* @__PURE__ */ c(
15952          a,
15953          {
15954            _fgT: "button",
15955            _fgS: "dcn10",
15956            _fgB: 1790697590802,
15957            onClick: t,
15958            className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-10 py-5 rounded-full font-bold text-xl hover:bg-[#004494] transition-all duration-300 shadow-xl hover:shadow-blue-900/50 cursor-pointer",
15959            "data-fg-dcn10": ":0:/src/app/components/taxi-broker/TaxiBrokerCTA.tsx:26:11:1058:426:e:button:te",
15960            children: [
15961              "Request a Demo",
15962              /* @__PURE__ */ i(a, { _fgT: D, _fgS: "dcn12", _fgB: 1790697590802, size: 24, className: "group-hover:translate-x-1 transition-transform", "data-fg-dcn12": ":0:node_modules/lucide-react:31:13:1381:83:e:ArrowRight::::::s5N" })
15963            ]
15964          }
15965        )
15966      ]
15967    }
15968  ) }) });
15969}
15970function cM() {
15971  return /* @__PURE__ */ c(C, { children: [
15972    /* @__PURE__ */ i(a, { _fgT: eM, _fgS: "dy8b1", _fgB: 1790697589425, "data-fg-dy8b1": ":0:/src/app/pages/TaxiBrokerPage.tsx:12:7:574:18:e:TaxiBrokerHero::::::Bm5E" }),
15973    /* @__PURE__ */ i(a, { _fgT: tM, _fgS: "dy8b2", _fgB: 1790697589425, "data-fg-dy8b2": ":0:/src/app/pages/TaxiBrokerPage.tsx:13:7:599:23:e:TaxiBrokerChallenge::::::CfOW" }),
15974    /* @__PURE__ */ i(a, { _fgT: rM, _fgS: "dy8b3", _fgB: 1790697589425, "data-fg-dy8b3": ":0:/src/app/pages/TaxiBrokerPage.tsx:14:7:629:18:e:TaxiBrokerHelp::::::BcN0" }),
15975    /* @__PURE__ */ i(a, { _fgT: nM, _fgS: "dy8b4", _fgB: 1790697589425, "data-fg-dy8b4": ":0:/src/app/pages/TaxiBrokerPage.tsx:15:7:654:19:e:TaxiBrokerTools::::::CH9E" }),
15976    /* @__PURE__ */ i(a, { _fgT: oM, _fgS: "dy8b5", _fgB: 1790697589425, "data-fg-dy8b5": ":0:/src/app/pages/TaxiBrokerPage.tsx:16:7:680:20:e:TaxiBrokerWhoFor::::::CL2S" }),
15977    /* @__PURE__ */ i(a, { _fgT: LM, _fgS: "dy8b6", _fgB: 1790697589425, "data-fg-dy8b6": ":0:/src/app/pages/TaxiBrokerPage.tsx:17:7:707:17:e:TaxiBrokerCTA::::::d36" }),
15978    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "dy8b7", _fgB: 1790697589425, "data-fg-dy8b7": ":0:/src/app/pages/TaxiBrokerPage.tsx:18:7:731:10:e:Footer::::::B1Vv" })
15979  ] });
15980}
15981const lM = globalThis.__GLOBALS__.getAssetURL("c9fb2e457402b1744196d8c464ee4f45e88635ae.png");
15982function dM() {
15983  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "d2ve0", _fgB: 1790697590157, _fgD: !0, className: "relative min-h-[90vh] bg-slate-900 overflow-hidden flex flex-col justify-center py-20", "data-fg-d2ve0": ":0:/src/app/components/about/AboutHero.tsx:7:5:246:2739:e:section:xtete:1", children: [
15984    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2ve2", _fgB: 1790697590157, className: "absolute inset-0 z-0 flex flex-col md:flex-row", "data-fg-d2ve2": ":0:/src/app/components/about/AboutHero.tsx:10:7:412:1961:e:div:xtetxtetxte", children: [
15985      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2ve4", _fgB: 1790697590157, className: "relative w-full md:w-1/2 h-1/2 md:h-full overflow-hidden", "data-fg-d2ve4": ":0:/src/app/components/about/AboutHero.tsx:12:9:528:870:e:div:etete", children: [
15986        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve5", _fgB: 1790697590157, className: "absolute inset-0 bg-slate-900/60 z-10", "data-fg-d2ve5": ":0:/src/app/components/about/AboutHero.tsx:13:12:614:57:e:div" }),
15987        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve6", _fgB: 1790697590157, className: "absolute inset-0 grayscale contrast-125", "data-fg-d2ve6": ":0:/src/app/components/about/AboutHero.tsx:14:12:683:526:e:div:e", children: /* @__PURE__ */ i(
15988          a,
15989          {
15990            _fgT: Le,
15991            _fgS: "d2ve7",
15992            _fgB: 1790697590157,
15993            src: "https://images.unsplash.com/photo-1722702012229-10548fd57f4c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx2aW50YWdlJTIwb2ZmaWNlJTIwY29tcHV0ZXIlMjAyMDAwc3xlbnwxfHx8fDE3NzEwMTgxNjJ8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
15994            alt: "Vintage transit bus 1990s",
15995            className: "w-full h-full object-cover",
15996            "data-fg-d2ve7": ":0:/src/app/components/about/AboutHero.tsx:15:14:754:437:e:ImageWithFallback::::::CLus"
15997          }
15998        ) }),
15999        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve8", _fgB: 1790697590157, className: "absolute bottom-6 left-6 z-20", "data-fg-d2ve8": ":0:/src/app/components/about/AboutHero.tsx:21:12:1221:162:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d2ve9", _fgB: 1790697590157, className: "text-white/50 text-6xl font-bold font-[Space_Grotesk]", "data-fg-d2ve9": ":0:/src/app/components/about/AboutHero.tsx:22:14:1282:83:e:span:t", children: "2000" }) })
16000      ] }),
16001      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "d2ve12", _fgB: 1790697590157, className: "relative w-full md:w-1/2 h-1/2 md:h-full overflow-hidden", "data-fg-d2ve12": ":0:/src/app/components/about/AboutHero.tsx:27:9:1456:541:e:div:etete", children: [
16002        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve13", _fgB: 1790697590157, className: "absolute inset-0 bg-blue-900/60 z-10 mix-blend-multiply", "data-fg-d2ve13": ":0:/src/app/components/about/AboutHero.tsx:28:12:1542:75:e:div" }),
16003        /* @__PURE__ */ i(
16004          a,
16005          {
16006            _fgT: Le,
16007            _fgS: "d2ve14",
16008            _fgB: 1790697590157,
16009            src: lM,
16010            alt: "Modern high tech transit control center",
16011            className: "w-full h-full object-cover",
16012            "data-fg-d2ve14": ":0:/src/app/components/about/AboutHero.tsx:29:12:1629:177:e:ImageWithFallback::::::CLus"
16013          }
16014        ),
16015        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve15", _fgB: 1790697590157, className: "absolute bottom-6 right-6 z-20", "data-fg-d2ve15": ":0:/src/app/components/about/AboutHero.tsx:34:12:1818:164:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d2ve16", _fgB: 1790697590157, className: "text-white/50 text-6xl font-bold font-[Space_Grotesk]", "data-fg-d2ve16": ":0:/src/app/components/about/AboutHero.tsx:35:14:1880:84:e:span:t", children: "Today" }) })
16016      ] }),
16017      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve19", _fgB: 1790697590157, className: "absolute inset-0 hidden md:block pointer-events-none z-10", "data-fg-d2ve19": ":0:/src/app/components/about/AboutHero.tsx:40:9:2047:313:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "svg", _fgS: "d2ve20", _fgB: 1790697590157, className: "h-full w-full", preserveAspectRatio: "none", "data-fg-d2ve20": ":0:/src/app/components/about/AboutHero.tsx:41:12:2134:211:e:svg:e", children: /* @__PURE__ */ i("line", { x1: "50%", y1: "0", x2: "50%", y2: "100%", stroke: "white", strokeWidth: "2", strokeDasharray: "10,10", className: "opacity-30", "data-fg-d2ve21": ":0:/src/app/components/about/AboutHero.tsx:42:14:2206:121:e:line" }) }) })
16018    ] }),
16019    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d2ve22", _fgB: 1790697590157, className: "container mx-auto px-6 relative z-20 flex items-center justify-center text-center", "data-fg-d2ve22": ":0:/src/app/components/about/AboutHero.tsx:47:7:2381:589:e:div:e", children: /* @__PURE__ */ i(
16020      a,
16021      {
16022        _fgT: m.div,
16023        _fgS: "d2ve23",
16024        _fgB: 1790697590157,
16025        initial: { opacity: 0, y: 30 },
16026        animate: { opacity: 1, y: 0 },
16027        transition: { duration: 0.8 },
16028        className: "max-w-4xl mx-auto",
16029        "data-fg-d2ve23": ":0:/src/app/components/about/AboutHero.tsx:48:9:2489:468:e:motion.div:e",
16030        children: /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "d2ve24", _fgB: 1790697590157, className: "text-5xl md:text-8xl font-light text-white font-[Space_Grotesk] leading-tight relative z-30", "data-fg-d2ve24": ":0:/src/app/components/about/AboutHero.tsx:54:11:2686:249:e:h1:tete", children: [
16031          "25 Years of Moving ",
16032          /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "d2ve26", _fgB: 1790697590157, "data-fg-d2ve26": ":0:/src/app/components/about/AboutHero.tsx:55:32:2826:6:e:br" }),
16033          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "d2ve27", _fgB: 1790697590157, className: "text-[#EFBB0F] italic font-serif", "data-fg-d2ve27": ":0:/src/app/components/about/AboutHero.tsx:56:13:2845:74:e:span:t", children: "Transit Forward." })
16034        ] })
16035      }
16036    ) })
16037  ] });
16038}
16039const gM = [
16040  {
16041    year: "2000",
16042    title: "Founded",
16043    desc: "IT Curves is established with a mission to bring intelligent software to public transit operations.",
16044    image: "https://images.unsplash.com/photo-1722702012229-10548fd57f4c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHx2aW50YWdlJTIwb2ZmaWNlJTIwY29tcHV0ZXIlMjAyMDAwc3xlbnwxfHx8fDE3NzEwMTgxNjJ8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16045  },
16046  {
16047    year: "2008",
16048    title: "Early Growth",
16049    desc: "IT Curves expands its footprint, securing key partnerships and developing its first comprehensive dispatch solutions.",
16050    image: "https://images.unsplash.com/photo-1758691736493-aa6d22c0f8a6?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMG1lZXRpbmclMjBncm93dGglMjBjaGFydHxlbnwxfHx8fDE3NzEwMTgxNjN8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16051  },
16052  {
16053    year: "2016",
16054    title: "Cloud Deployment & Paratransit",
16055    desc: "IT Curves moves to a fully cloud-based, web-accessible platform. Same year, the company enters the paratransit market with demand-response scheduling and dispatch tools.",
16056    image: "https://images.unsplash.com/photo-1744868562210-fffb7fa882d9?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjbG91ZCUyMHNlcnZlciUyMHRlY2hub2xvZ3l8ZW58MXx8fHwxNzcwOTkwMjYyfDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16057  },
16058  {
16059    year: "2020–2022",
16060    title: "Fixed Route Expansion",
16061    desc: "IT Curves expands into the fixed route transit space, building comprehensive route management, scheduling, and real-time tracking tools.",
16062    image: "https://images.unsplash.com/photo-1753064342379-01177adb9f3c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjaXR5JTIwYnVzJTIwZml4ZWQlMjByb3V0ZXxlbnwxfHx8fDE3NzEwMTgxNjN8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16063  },
16064  {
16065    year: "2024",
16066    title: "Microtransit Launch",
16067    desc: "IT Curves launches microtransit capabilities with Annapolis Go Time, proving white-label, zone-based on-demand transit at scale.",
16068    image: "https://images.unsplash.com/photo-1758640266061-c9ad88491fec?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxtaWNyb3RyYW5zaXQlMjB2YW4lMjBhcHB8ZW58MXx8fHwxNzcxMDE4MTYzfDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16069  },
16070  {
16071    year: "2025",
16072    title: "AI Dev Labs Acquisition",
16073    desc: "IT Curves acquires AI Dev Labs, repositioning as leading innovators in AI and the transit sector. New capabilities include AI Call Agent, AI Chatbot, and Custom AI Workflows.",
16074    image: "https://images.unsplash.com/photo-1655393001768-d946c97d6fd1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxhcnRpZmljaWFsJTIwaW50ZWxsaWdlbmNlJTIwZnV0dXJlJTIwdGVjaHxlbnwxfHx8fDE3NzA5NjE3MDN8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
16075  }
16076];
16077function fM() {
16078  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cnsq0", _fgB: 1790697590164, _fgD: !0, className: "py-24 bg-white overflow-hidden", "data-fg-cnsq0": ":0:/src/app/components/about/OurStory.tsx:45:5:3170:3985:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnsq1", _fgB: 1790697590164, className: "container mx-auto px-6", "data-fg-cnsq1": ":0:/src/app/components/about/OurStory.tsx:46:7:3229:3911:e:div:ete", children: [
16079    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnsq2", _fgB: 1790697590164, className: "text-center mb-20 max-w-3xl mx-auto", "data-fg-cnsq2": ":0:/src/app/components/about/OurStory.tsx:48:9:3287:692:e:div:etete", children: [
16080      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnsq3", _fgB: 1790697590164, className: "text-[#0056B3] font-bold tracking-wider uppercase text-sm mb-2 block", "data-fg-cnsq3": ":0:/src/app/components/about/OurStory.tsx:49:11:3351:103:e:span:t", children: "Our Story" }),
16081      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cnsq5", _fgB: 1790697590164, className: "text-4xl md:text-5xl font-light text-slate-900 mb-6 font-[Space_Grotesk]", "data-fg-cnsq5": ":0:/src/app/components/about/OurStory.tsx:50:11:3465:226:e:h2:tete", children: [
16082        "From Transit Challenge to ",
16083        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cnsq7", _fgB: 1790697590164, "data-fg-cnsq7": ":0:/src/app/components/about/OurStory.tsx:51:39:3593:6:e:br" }),
16084        " ",
16085        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnsq8", _fgB: 1790697590164, className: "text-[#EFBB0F] font-serif italic", "data-fg-cnsq8": ":0:/src/app/components/about/OurStory.tsx:51:46:3600:75:e:span:t", children: "Transit Solution." })
16086      ] }),
16087      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnsq10", _fgB: 1790697590164, className: "text-slate-600 text-lg", "data-fg-cnsq10": ":0:/src/app/components/about/OurStory.tsx:53:11:3702:262:e:p:t", children: "We didn't start IT Curves to build software; we started it because, as transit veterans and stakeholders, we saw firsthand that the software of the day wasn't good enough for the people it served." })
16088    ] }),
16089    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnsq12", _fgB: 1790697590164, className: "relative max-w-6xl mx-auto", "data-fg-cnsq12": ":0:/src/app/components/about/OurStory.tsx:58:9:3989:3137:e:div:xtete", children: [
16090      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq14", _fgB: 1790697590164, className: "absolute left-[20px] md:left-1/2 top-0 bottom-0 w-px bg-slate-200 -translate-x-1/2", "data-fg-cnsq14": ":0:/src/app/components/about/OurStory.tsx:60:11:4075:102:e:div" }),
16091      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq15", _fgB: 1790697590164, className: "space-y-24", "data-fg-cnsq15": ":0:/src/app/components/about/OurStory.tsx:62:11:4189:2921:e:div:x", children: gM.map((t, e) => /* @__PURE__ */ c(
16092        a,
16093        {
16094          _fgT: m.div,
16095          _fgS: "cnsq17",
16096          _fgB: 1790697590164,
16097          initial: { opacity: 0, y: 30 },
16098          whileInView: { opacity: 1, y: 0 },
16099          transition: { delay: e * 0.1 },
16100          viewport: { once: !0 },
16101          className: `flex flex-col md:flex-row gap-8 md:gap-16 items-center relative ${e % 2 === 0 ? "md:text-right" : "md:flex-row-reverse md:text-left"}`,
16102          "data-fg-cnsq17": ":0:/src/app/components/about/OurStory.tsx:64:15:4273:2804:e:motion.div:xtetxtetxte",
16103          children: [
16104            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq19", _fgB: 1790697590164, className: "flex-1 pl-12 md:pl-0 w-full relative z-10", "data-fg-cnsq19": ":0:/src/app/components/about/OurStory.tsx:77:17:5009:1064:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnsq20", _fgB: 1790697590164, className: `p-8 rounded-2xl bg-white border border-slate-100 shadow-lg hover:shadow-xl transition-shadow relative
16105                    ${e % 2 === 0 ? "md:mr-[-20px]" : "md:ml-[-20px]"}
16106                  `, "data-fg-cnsq20": ":0:/src/app/components/about/OurStory.tsx:78:19:5087:963:e:div:xtetetete", children: [
16107              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq22", _fgB: 1790697590164, className: `hidden md:block absolute top-1/2 -translate-y-1/2 w-4 h-4 bg-white border-t border-r border-slate-100 transform rotate-45
16108                        ${e % 2 === 0 ? "-right-2 border-b-0 border-l-0" : "-left-2 border-t-0 border-r-0 border-b border-l"}
16109                     `, "data-fg-cnsq22": ":0:/src/app/components/about/OurStory.tsx:82:22:5409:295:e:div:_" }),
16110              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnsq23", _fgB: 1790697590164, className: "text-[#0056B3] font-bold text-2xl block mb-2", "data-fg-cnsq23": ":0:/src/app/components/about/OurStory.tsx:86:21:5726:81:e:span:x", children: t.year }),
16111              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cnsq25", _fgB: 1790697590164, className: "text-xl font-bold text-slate-900 mb-3", "data-fg-cnsq25": ":0:/src/app/components/about/OurStory.tsx:87:21:5828:71:e:h3:x", children: t.title }),
16112              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnsq27", _fgB: 1790697590164, className: "text-slate-600 leading-relaxed", "data-fg-cnsq27": ":0:/src/app/components/about/OurStory.tsx:88:21:5920:105:e:p:x", children: t.desc })
16113            ] }) }),
16114            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq30", _fgB: 1790697590164, className: "absolute left-[20px] md:left-1/2 -translate-x-1/2 w-6 h-6 rounded-full bg-[#EFBB0F] border-4 border-white shadow-md z-20", "data-fg-cnsq30": ":0:/src/app/components/about/OurStory.tsx:95:17:6127:140:e:div" }),
16115            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq32", _fgB: 1790697590164, className: "flex-1 hidden md:block w-full pl-12 md:pl-0", "data-fg-cnsq32": ":0:/src/app/components/about/OurStory.tsx:98:17:6336:713:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnsq33", _fgB: 1790697590164, className: `relative h-64 w-full rounded-2xl overflow-hidden shadow-md group
16116                     ${e % 2 === 0 ? "origin-left" : "origin-right"}
16117                  `, "data-fg-cnsq33": ":0:/src/app/components/about/OurStory.tsx:99:19:6416:610:e:div:ete", children: [
16118              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnsq34", _fgB: 1790697590164, className: "absolute inset-0 bg-[#0056B3]/20 mix-blend-multiply z-10 group-hover:bg-transparent transition-colors duration-500", "data-fg-cnsq34": ":0:/src/app/components/about/OurStory.tsx:102:21:6609:134:e:div" }),
16119              /* @__PURE__ */ i(
16120                a,
16121                {
16122                  _fgT: Le,
16123                  _fgS: "cnsq35",
16124                  _fgB: 1790697590164,
16125                  src: t.image,
16126                  alt: t.title,
16127                  className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
16128                  "data-fg-cnsq35": ":0:/src/app/components/about/OurStory.tsx:103:21:6764:237:e:ImageWithFallback::::::CLus"
16129                }
16130              )
16131            ] }) })
16132          ]
16133        },
16134        e
16135      )) })
16136    ] })
16137  ] }) });
16138}
16139const pM = globalThis.__GLOBALS__.getAssetURL("20dce1afceecea7e25677c5918b50e8530d96c4b.png"), MM = globalThis.__GLOBALS__.getAssetURL("7626e9128909e4875fce02c04fc69fc354637613.png"), uM = globalThis.__GLOBALS__.getAssetURL("5d02bedbc15274b1e61c2c0ed1139be6527ff5d5.png"), hM = [
16140  {
16141    name: "Matthew Mohebbi",
16142    role: "Founder and CEO",
16143    bio: "Visionary leader with over 20 years of experience in transit technology and operations, dedicated to modernizing public transportation.",
16144    image: MM,
16145    style: { objectPosition: "35% center" },
16146    linkedin: "https://www.linkedin.com/in/matthewmohebbi"
16147  },
16148  {
16149    name: "Jason Wells",
16150    role: "Head of AI Division",
16151    bio: "Spearheading our AI initiatives to optimize routing algorithms and improve rider experiences through predictive analytics.",
16152    image: pM,
16153    linkedin: "https://www.linkedin.com/in/jasonrwells/"
16154  },
16155  {
16156    name: "Imran Younus",
16157    role: "Vice President and CTO",
16158    bio: "Overseeing our technical strategy and ensuring the reliability, security, and scalability of our mission-critical platforms.",
16159    image: uM,
16160    linkedin: "https://www.linkedin.com/in/muhammad-imran-siddiqui-b28b654/"
16161  }
16162];
16163function mM() {
16164  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "eu80", _fgB: 1790697590172, _fgD: !0, className: "py-24 bg-slate-50", "data-fg-eu80": ":0:/src/app/components/about/Leadership.tsx:35:5:1408:3176:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eu81", _fgB: 1790697590172, className: "container mx-auto px-6", "data-fg-eu81": ":0:/src/app/components/about/Leadership.tsx:36:7:1454:3115:e:div:etete", children: [
16165    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eu82", _fgB: 1790697590172, className: "text-center mb-16", "data-fg-eu82": ":0:/src/app/components/about/Leadership.tsx:38:9:1512:538:e:div:etete", children: [
16166      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "eu83", _fgB: 1790697590172, className: "text-[#EFBB0F] font-bold tracking-wider uppercase text-sm mb-2 block", "data-fg-eu83": ":0:/src/app/components/about/Leadership.tsx:39:11:1558:104:e:span:t", children: "Leadership" }),
16167      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "eu85", _fgB: 1790697590172, className: "text-4xl md:text-5xl font-light text-slate-900 mb-6 font-[Space_Grotesk]", "data-fg-eu85": ":0:/src/app/components/about/Leadership.tsx:40:11:1673:208:e:h2:tete", children: [
16168        "Transit Experts Leading ",
16169        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "eu87", _fgB: 1790697590172, "data-fg-eu87": ":0:/src/app/components/about/Leadership.tsx:41:37:1799:6:e:br" }),
16170        " ",
16171        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "eu88", _fgB: 1790697590172, className: "text-[#0056B3]", "data-fg-eu88": ":0:/src/app/components/about/Leadership.tsx:41:44:1806:59:e:span:t", children: "Transit Innovation." })
16172      ] }),
16173      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "eu810", _fgB: 1790697590172, className: "text-slate-600 text-lg max-w-2xl mx-auto", "data-fg-eu810": ":0:/src/app/components/about/Leadership.tsx:43:11:1892:143:e:p:t", children: "Driving the future of mobility with experience and vision." })
16174    ] }),
16175    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eu812", _fgB: 1790697590172, className: "grid md:grid-cols-3 gap-8 mb-16 max-w-6xl mx-auto", "data-fg-eu812": ":0:/src/app/components/about/Leadership.tsx:48:9:2060:2065:e:div:x", children: hM.map((t, e) => /* @__PURE__ */ c(
16176      a,
16177      {
16178        _fgT: m.div,
16179        _fgS: "eu814",
16180        _fgB: 1790697590172,
16181        initial: { opacity: 0, y: 20 },
16182        whileInView: { opacity: 1, y: 0 },
16183        transition: { delay: e * 0.1 },
16184        viewport: { once: !0 },
16185        className: "group relative bg-white rounded-2xl overflow-hidden shadow-sm hover:shadow-xl transition-all",
16186        "data-fg-eu814": ":0:/src/app/components/about/Leadership.tsx:50:13:2177:1919:e:motion.div:ete",
16187        children: [
16188          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eu815", _fgB: 1790697590172, className: "aspect-[4/5] overflow-hidden relative", "data-fg-eu815": ":0:/src/app/components/about/Leadership.tsx:58:15:2539:1081:e:div:etetxte", children: [
16189            /* @__PURE__ */ i(
16190              a,
16191              {
16192                _fgT: Le,
16193                _fgS: "eu816",
16194                _fgB: 1790697590172,
16195                src: t.image,
16196                alt: t.name,
16197                className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",
16198                style: t.style,
16199                "data-fg-eu816": ":0:/src/app/components/about/Leadership.tsx:59:17:2611:264:e:ImageWithFallback::::::CLus"
16200              }
16201            ),
16202            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eu817", _fgB: 1790697590172, className: "absolute inset-0 bg-gradient-to-t from-slate-900/90 via-slate-900/20 to-transparent opacity-60 group-hover:opacity-80 transition-opacity", "data-fg-eu817": ":0:/src/app/components/about/Leadership.tsx:65:17:2892:156:e:div" }),
16203            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eu819", _fgB: 1790697590172, className: "absolute top-4 right-4 translate-y-[-10px] opacity-0 group-hover:translate-y-0 group-hover:opacity-100 transition-all duration-300", "data-fg-eu819": ":0:/src/app/components/about/Leadership.tsx:68:17:3118:481:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "a", _fgS: "eu820", _fgB: 1790697590172, href: t.linkedin, target: "_blank", rel: "noopener noreferrer", className: "w-8 h-8 bg-white/20 backdrop-blur-md rounded-full flex items-center justify-center text-white hover:bg-white hover:text-[#0077b5] cursor-pointer", "data-fg-eu820": ":0:/src/app/components/about/Leadership.tsx:69:19:3285:291:e:a:e", children: /* @__PURE__ */ i(a, { _fgT: K7, _fgS: "eu821", _fgB: 1790697590172, size: 16, "data-fg-eu821": ":0:node_modules/lucide-react:70:21:3531:22:e:Linkedin::::::BytQ" }) }) })
16204          ] }),
16205          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eu822", _fgB: 1790697590172, className: "p-6 relative", "data-fg-eu822": ":0:/src/app/components/about/Leadership.tsx:75:15:3636:434:e:div:etete", children: [
16206            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "eu823", _fgB: 1790697590172, className: "font-bold text-lg text-slate-900", "data-fg-eu823": ":0:/src/app/components/about/Leadership.tsx:76:18:3684:67:e:h3:x", children: t.name }),
16207            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eu825", _fgB: 1790697590172, className: "text-[#0056B3] text-xs font-bold uppercase tracking-wide mb-3", "data-fg-eu825": ":0:/src/app/components/about/Leadership.tsx:77:18:3769:98:e:div:x", children: t.role }),
16208            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "eu827", _fgB: 1790697590172, className: "text-slate-500 text-sm leading-relaxed line-clamp-4 group-hover:line-clamp-none transition-all", "data-fg-eu827": ":0:/src/app/components/about/Leadership.tsx:78:18:3885:164:e:p:x", children: t.bio })
16209          ] })
16210        ]
16211      },
16212      e
16213    )) }),
16214    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eu829", _fgB: 1790697590172, className: "max-w-3xl mx-auto text-center", "data-fg-eu829": ":0:/src/app/components/about/Leadership.tsx:86:9:4135:420:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "eu830", _fgB: 1790697590172, className: "text-xl text-slate-700 font-light leading-relaxed", "data-fg-eu830": ":0:/src/app/components/about/Leadership.tsx:87:13:4195:345:e:p:t", children: "Our team combines decades of transit industry experience with cutting-edge technology expertise. We don’t just build software — we’ve ridden the routes, visited the dispatch centers, and sat with the drivers. We build what transit actually needs." }) })
16215  ] }) });
16216}
16217function xM() {
16218  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bio0", _fgB: 1790697590168, _fgD: !0, className: "py-20 bg-slate-900 text-white border-t border-slate-800", "data-fg-bio0": ":0:/src/app/components/about/CommunityAndMetrics.tsx:3:5:50:1530:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bio1", _fgB: 1790697590168, className: "container mx-auto px-6 text-center", "data-fg-bio1": ":0:/src/app/components/about/CommunityAndMetrics.tsx:4:7:134:1431:e:div:ete", children: [
16219    /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bio2", _fgB: 1790697590168, className: "text-3xl md:text-4xl font-light mb-12 font-[Space_Grotesk]", "data-fg-bio2": ":0:/src/app/components/about/CommunityAndMetrics.tsx:5:9:195:173:e:h2:te", children: [
16220      "We’re Only Successful if ",
16221      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bio4", _fgB: 1790697590168, className: "text-[#EFBB0F]", "data-fg-bio4": ":0:/src/app/components/about/CommunityAndMetrics.tsx:6:36:306:48:e:span:t", children: "You Are." })
16222    ] }),
16223    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bio6", _fgB: 1790697590168, className: "grid md:grid-cols-3 gap-8 max-w-5xl mx-auto", "data-fg-bio6": ":0:/src/app/components/about/CommunityAndMetrics.tsx:9:9:386:1166:e:div:etete", children: [
16224      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bio7", _fgB: 1790697590168, className: "p-6 border border-slate-700 rounded-2xl bg-slate-800/50", "data-fg-bio7": ":0:/src/app/components/about/CommunityAndMetrics.tsx:10:12:459:335:e:div:etete", children: [
16225        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bio8", _fgB: 1790697590168, className: "text-4xl font-bold text-[#EFBB0F] mb-2", "data-fg-bio8": ":0:/src/app/components/about/CommunityAndMetrics.tsx:11:14:546:65:e:div:t", children: "20+" }),
16226        /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bio10", _fgB: 1790697590168, className: "font-bold text-lg mb-2", "data-fg-bio10": ":0:/src/app/components/about/CommunityAndMetrics.tsx:12:14:625:71:e:h3:t", children: "Years in Transit Technology" }),
16227        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bio12", _fgB: 1790697590168, className: "text-slate-400 text-sm", "data-fg-bio12": ":0:/src/app/components/about/CommunityAndMetrics.tsx:13:14:710:66:e:p:t", children: "Deep industry expertise." })
16228      ] }),
16229      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bio14", _fgB: 1790697590168, className: "p-6 border border-slate-700 rounded-2xl bg-slate-800/50", "data-fg-bio14": ":0:/src/app/components/about/CommunityAndMetrics.tsx:16:12:818:337:e:div:etete", children: [
16230        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bio15", _fgB: 1790697590168, className: "text-4xl font-bold text-[#EFBB0F] mb-2", "data-fg-bio15": ":0:/src/app/components/about/CommunityAndMetrics.tsx:17:14:905:67:e:div:t", children: "3.4M+" }),
16231        /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bio17", _fgB: 1790697590168, className: "font-bold text-lg mb-2", "data-fg-bio17": ":0:/src/app/components/about/CommunityAndMetrics.tsx:18:14:986:64:e:h3:t", children: "Annual Trips Powered" }),
16232        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bio19", _fgB: 1790697590168, className: "text-slate-400 text-sm", "data-fg-bio19": ":0:/src/app/components/about/CommunityAndMetrics.tsx:19:14:1064:73:e:p:t", children: "Reliable scale and performance." })
16233      ] }),
16234      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bio21", _fgB: 1790697590168, className: "p-6 border border-slate-700 rounded-2xl bg-slate-800/50", "data-fg-bio21": ":0:/src/app/components/about/CommunityAndMetrics.tsx:22:12:1179:358:e:div:etete", children: [
16235        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bio22", _fgB: 1790697590168, className: "text-4xl font-bold text-[#EFBB0F] mb-2", "data-fg-bio22": ":0:/src/app/components/about/CommunityAndMetrics.tsx:23:14:1266:64:e:div:t", children: "5+" }),
16236        /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bio24", _fgB: 1790697590168, className: "font-bold text-lg mb-2", "data-fg-bio24": ":0:/src/app/components/about/CommunityAndMetrics.tsx:24:14:1344:68:e:h3:t", children: "Transit Verticals Served" }),
16237        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bio26", _fgB: 1790697590168, className: "text-slate-400 text-sm", "data-fg-bio26": ":0:/src/app/components/about/CommunityAndMetrics.tsx:25:14:1426:93:e:p:t", children: "Paratransit, Fixed Route, Microtransit, NEMT, Taxi." })
16238      ] })
16239    ] })
16240  ] }) });
16241}
16242const _M = {
16243  hidden: { opacity: 0 },
16244  visible: {
16245    opacity: 1,
16246    transition: {
16247      staggerChildren: 0.05,
16248      delayChildren: 0.1
16249    }
16250  }
16251}, bM = {
16252  hidden: { opacity: 0, y: 20, filter: "blur(8px)" },
16253  visible: {
16254    opacity: 1,
16255    y: 0,
16256    filter: "blur(0px)",
16257    transition: {
16258      duration: 0.6,
16259      ease: "easeOut"
16260    }
16261  }
16262};
16263function vM() {
16264  const { openContactModal: t } = Z(), e = "Ready to Move Forward Together?".split(" ");
16265  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "deji0", _fgB: 1790697590170, _fgD: !0, id: "contact", className: "py-32 px-6 bg-white text-center relative z-20", "data-fg-deji0": ":0:/src/app/components/about/AboutCTA.tsx:34:5:678:1690:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "deji1", _fgB: 1790697590170, className: "max-w-4xl mx-auto relative z-10", "data-fg-deji1": ":0:/src/app/components/about/AboutCTA.tsx:35:7:765:1588:e:div:ete", children: [
16266    /* @__PURE__ */ i(
16267      a,
16268      {
16269        _fgT: m.h2,
16270        _fgS: "deji2",
16271        _fgB: 1790697590170,
16272        className: "text-4xl md:text-6xl font-bold text-black mb-8 tracking-tight font-space-grotesk flex flex-wrap justify-center gap-x-3",
16273        variants: _M,
16274        initial: "hidden",
16275        whileInView: "visible",
16276        viewport: { once: !0, amount: 0.8, margin: "0px 0px -100px 0px" },
16277        "data-fg-deji2": ":0:/src/app/components/about/AboutCTA.tsx:36:9:823:516:e:motion.h2:x",
16278        children: e.map((s, r) => /* @__PURE__ */ i(a, { _fgT: m.span, _fgS: "deji4", _fgB: 1790697590170, variants: bM, "data-fg-deji4": ":0:/src/app/components/about/AboutCTA.tsx:44:13:1211:93:e:motion.span:x", children: s }, r))
16279      }
16280    ),
16281    /* @__PURE__ */ c(
16282      a,
16283      {
16284        _fgT: m.div,
16285        _fgS: "deji6",
16286        _fgB: 1790697590170,
16287        initial: { opacity: 0, y: 20 },
16288        whileInView: { opacity: 1, y: 0 },
16289        viewport: { once: !0, amount: 1 },
16290        exit: { opacity: 0, y: -20 },
16291        transition: { delay: 0.6, duration: 0.5 },
16292        className: "flex flex-col md:flex-row gap-4 justify-center items-center",
16293        "data-fg-deji6": ":0:/src/app/components/about/AboutCTA.tsx:50:9:1349:991:e:motion.div:ete",
16294        children: [
16295          /* @__PURE__ */ i(
16296            a,
16297            {
16298              _fgT: E,
16299              _fgS: "deji7",
16300              _fgB: 1790697590170,
16301              href: "/contact",
16302              className: "uppercase bg-[#0056B3] text-white font-bold tracking-widest rounded-full px-10 py-5 hover:bg-[#004494] hover:text-white transition-colors duration-300 shadow-xl cursor-pointer inline-block",
16303              "data-fg-deji7": ":0:node_modules/wouter:58:11:1690:299:e:Link:t:::::C4yE",
16304              children: "Contact Us"
16305            }
16306          ),
16307          /* @__PURE__ */ i(
16308            a,
16309            {
16310              _fgT: "button",
16311              _fgS: "deji9",
16312              _fgB: 1790697590170,
16313              onClick: t,
16314              className: "uppercase bg-white text-[#0056B3] border border-[#0056B3] font-bold tracking-widest rounded-full px-10 py-5 hover:bg-slate-50 transition-colors duration-300 shadow-md cursor-pointer",
16315              "data-fg-deji9": ":0:/src/app/components/about/AboutCTA.tsx:64:11:2000:318:e:button:t",
16316              children: "Schedule a Meeting"
16317            }
16318          )
16319        ]
16320      }
16321    )
16322  ] }) });
16323}
16324function yM() {
16325  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "cbev0", _fgB: 1790697589426, _fgD: !0, className: "min-h-screen bg-white", "data-fg-cbev0": ":0:/src/app/pages/AboutPage.tsx:10:5:419:173:e:main:etetetetete:1", children: [
16326    /* @__PURE__ */ i(a, { _fgT: dM, _fgS: "cbev1", _fgB: 1790697589426, "data-fg-cbev1": ":0:/src/app/pages/AboutPage.tsx:11:7:466:13:e:AboutHero::::::DbRX" }),
16327    /* @__PURE__ */ i(a, { _fgT: fM, _fgS: "cbev2", _fgB: 1790697589426, "data-fg-cbev2": ":0:/src/app/pages/AboutPage.tsx:12:7:486:12:e:OurStory::::::BMGz" }),
16328    /* @__PURE__ */ i(a, { _fgT: mM, _fgS: "cbev3", _fgB: 1790697589426, "data-fg-cbev3": ":0:/src/app/pages/AboutPage.tsx:13:7:505:14:e:Leadership::::::DH35" }),
16329    /* @__PURE__ */ i(a, { _fgT: xM, _fgS: "cbev4", _fgB: 1790697589426, "data-fg-cbev4": ":0:/src/app/pages/AboutPage.tsx:14:7:526:18:e:SuccessMetrics::::::DOBy" }),
16330    /* @__PURE__ */ i(a, { _fgT: vM, _fgS: "cbev5", _fgB: 1790697589426, "data-fg-cbev5": ":0:/src/app/pages/AboutPage.tsx:15:7:551:12:e:AboutCTA::::::CYqT" }),
16331    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "cbev6", _fgB: 1790697589426, "data-fg-cbev6": ":0:/src/app/pages/AboutPage.tsx:16:7:570:10:e:Footer::::::B1Vv" })
16332  ] });
16333}
16334function wM() {
16335  const { openContactModal: t } = Z();
16336  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "c95y0", _fgB: 1790697590075, _fgD: !0, className: "relative min-h-[85vh] flex items-center bg-slate-900 overflow-hidden", "data-fg-c95y0": ":0:/src/app/components/ivr/IVRHero.tsx:9:5:235:2553:e:section:xtete:1", children: [
16337    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c95y2", _fgB: 1790697590075, className: "absolute inset-0 z-0", "data-fg-c95y2": ":0:/src/app/components/ivr/IVRHero.tsx:11:7:363:612:e:div:ete", children: [
16338      /* @__PURE__ */ i(
16339        a,
16340        {
16341          _fgT: "img",
16342          _fgS: "c95y3",
16343          _fgB: 1790697590075,
16344          src: "https://images.unsplash.com/photo-1768963094717-fce4aa93b411?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxwZXJzb24lMjB0YWxraW5nJTIwb24lMjBwaG9uZSUyMHRyYW5zaXQlMjBidXMlMjBzdG9wfGVufDF8fHx8MTc3MTAwODQ1NHww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
16345          alt: "Passenger using phone for transit",
16346          className: "w-full h-full object-cover opacity-30",
16347          "data-fg-c95y3": ":0:/src/app/components/ivr/IVRHero.tsx:12:9:410:443:e:img"
16348        }
16349      ),
16350      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c95y4", _fgB: 1790697590075, className: "absolute inset-0 bg-gradient-to-r from-slate-900 via-slate-900/90 to-transparent", "data-fg-c95y4": ":0:/src/app/components/ivr/IVRHero.tsx:17:9:862:100:e:div" })
16351    ] }),
16352    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c95y5", _fgB: 1790697590075, className: "container mx-auto px-6 relative z-10", "data-fg-c95y5": ":0:/src/app/components/ivr/IVRHero.tsx:20:7:983:1790:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c95y6", _fgB: 1790697590075, className: "max-w-4xl", "data-fg-c95y6": ":0:/src/app/components/ivr/IVRHero.tsx:21:9:1046:1714:e:div:e", children: /* @__PURE__ */ c(
16353      a,
16354      {
16355        _fgT: m.div,
16356        _fgS: "c95y7",
16357        _fgB: 1790697590075,
16358        initial: { opacity: 0, x: -50 },
16359        animate: { opacity: 1, x: 0 },
16360        transition: { duration: 0.8 },
16361        "data-fg-c95y7": ":0:/src/app/components/ivr/IVRHero.tsx:22:11:1084:1661:e:motion.div:etetete",
16362        children: [
16363          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c95y8", _fgB: 1790697590075, className: "inline-block px-3 py-1 rounded-full bg-blue-500/20 border border-blue-400/30 text-blue-300 text-sm font-bold tracking-widest uppercase mb-6 backdrop-blur-sm", "data-fg-c95y8": ":0:/src/app/components/ivr/IVRHero.tsx:27:13:1251:223:e:div:t", children: "Telephony Suite" }),
16364          /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "c95y10", _fgB: 1790697590075, className: "text-4xl md:text-6xl font-light text-white mb-6 font-[Space_Grotesk] leading-tight", "data-fg-c95y10": ":0:/src/app/components/ivr/IVRHero.tsx:30:13:1487:267:e:h1:tete", children: [
16365            "Interactive Voice Response (IVR) System: ",
16366            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c95y12", _fgB: 1790697590075, "data-fg-c95y12": ":0:/src/app/components/ivr/IVRHero.tsx:31:56:1642:6:e:br" }),
16367            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c95y13", _fgB: 1790697590075, className: "font-bold text-[#EFBB0F]", "data-fg-c95y13": ":0:/src/app/components/ivr/IVRHero.tsx:32:15:1663:73:e:span:t", children: "The Telephony Component" })
16368          ] }),
16369          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c95y15", _fgB: 1790697590075, className: "text-xl text-slate-300 mb-8 leading-relaxed max-w-2xl", "data-fg-c95y15": ":0:/src/app/components/ivr/IVRHero.tsx:34:13:1767:437:e:p:t", children: "A complete, integrated telephony suite providing a robust, reliable, and accessible communication channel for your transit riders. Seamlessly integrated into our core platform, the IVR system empowers passengers to manage trips, receive real-time updates, and interact with your service 24/7 without requiring direct staff intervention." }),
16370          /* @__PURE__ */ c(
16371            a,
16372            {
16373              _fgT: "button",
16374              _fgS: "c95y17",
16375              _fgB: 1790697590075,
16376              onClick: t,
16377              className: "group inline-flex items-center gap-3 bg-[#0056B3] text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-[#004494] transition-all duration-300 shadow-[0_0_20px_rgba(0,86,179,0.5)] hover:shadow-[0_0_30px_rgba(0,86,179,0.7)] cursor-pointer",
16378              "data-fg-c95y17": ":0:/src/app/components/ivr/IVRHero.tsx:38:13:2230:491:e:button:te",
16379              children: [
16380                "Schedule a Consultation",
16381                /* @__PURE__ */ i(a, { _fgT: D, _fgS: "c95y19", _fgB: 1790697590075, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-c95y19": ":0:node_modules/lucide-react:43:15:2616:83:e:ArrowRight::::::s5N" })
16382              ]
16383            }
16384          )
16385        ]
16386      }
16387    ) }) })
16388  ] });
16389}
16390function TM() {
16391  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bdgi0", _fgB: 1790697590079, _fgD: !0, className: "py-20 bg-white", "data-fg-bdgi0": ":0:/src/app/components/ivr/IVRIntro.tsx:5:5:84:730:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bdgi1", _fgB: 1790697590079, className: "max-w-4xl mx-auto px-6 text-center", "data-fg-bdgi1": ":0:/src/app/components/ivr/IVRIntro.tsx:6:7:127:672:e:div:e", children: /* @__PURE__ */ i(
16392    a,
16393    {
16394      _fgT: m.p,
16395      _fgS: "bdgi2",
16396      _fgB: 1790697590079,
16397      initial: { opacity: 0, y: 20 },
16398      whileInView: { opacity: 1, y: 0 },
16399      viewport: { once: !0 },
16400      transition: { duration: 0.8 },
16401      className: "text-xl md:text-2xl font-light leading-relaxed text-slate-600",
16402      "data-fg-bdgi2": ":0:/src/app/components/ivr/IVRIntro.tsx:7:9:188:598:e:motion.p:t",
16403      children: '"This system is not merely an answering machine; it is an extension of your digital transit management tools, ensuring that passengers without smartphone access, or those who prefer the simplicity of a phone call, receive the same high-quality service and up-to-the-minute information as app users."'
16404    }
16405  ) }) });
16406}
16407const SM = [
16408  {
16409    icon: $7,
16410    title: "Automated Trip Management",
16411    desc: "Allows riders to book, cancel, or reschedule existing rides using voice commands or keypad input.",
16412    benefit: "Reduces the need to speak to an agent, simplifying common requests and providing instant service."
16413  },
16414  {
16415    icon: It,
16416    title: "Real-Time Trip Status & ETA",
16417    desc: "Provides up-to-the-minute status updates on their scheduled ride, including the calculated Estimated Time of Arrival.",
16418    benefit: "Eliminates anxiety about vehicle location and arrival time, improving the overall waiting experience."
16419  },
16420  {
16421    icon: Q7,
16422    title: "Will Call Activation",
16423    desc: "Allows riders with an open-ended return trip (e.g., from a medical facility) to instantly activate their pickup by calling the system.",
16424    benefit: "Provides control and flexibility, eliminating the need for riders to wait for a return vehicle until they are ready."
16425  },
16426  {
16427    icon: mc,
16428    title: "Outbound Notifications",
16429    desc: "Automatically calls or texts riders with critical alerts regarding trip confirmations, service delays, or vehicle arrival warnings.",
16430    benefit: "Ensures riders are proactively informed, reducing no-shows and preventing missed pickups."
16431  },
16432  {
16433    icon: F3,
16434    title: "Eligibility & Account Verification",
16435    desc: "Quickly verifies a rider’s eligibility status, account balance, and subsidy information upon entry into the system.",
16436    benefit: "Expedites service by ensuring the rider is routed appropriately and has access to all eligible features."
16437  }
16438];
16439function BM() {
16440  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "dfyu0", _fgB: 1790697590078, _fgD: !0, className: "py-24 bg-slate-50", "data-fg-dfyu0": ":0:/src/app/components/ivr/IVRCapabilities.tsx:45:5:1821:1815:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dfyu1", _fgB: 1790697590078, className: "max-w-7xl mx-auto px-6", "data-fg-dfyu1": ":0:/src/app/components/ivr/IVRCapabilities.tsx:46:7:1867:1754:e:div:ete", children: [
16441    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dfyu2", _fgB: 1790697590078, className: "text-center mb-16", "data-fg-dfyu2": ":0:/src/app/components/ivr/IVRCapabilities.tsx:47:9:1916:363:e:div:e", children: /* @__PURE__ */ i(
16442      a,
16443      {
16444        _fgT: m.h2,
16445        _fgS: "dfyu3",
16446        _fgB: 1790697590078,
16447        initial: { opacity: 0, y: 20 },
16448        whileInView: { opacity: 1, y: 0 },
16449        viewport: { once: !0 },
16450        className: "text-3xl md:text-5xl font-light text-slate-900 mb-6 font-[Space_Grotesk]",
16451        "data-fg-dfyu3": ":0:/src/app/components/ivr/IVRCapabilities.tsx:48:11:1962:302:e:motion.h2:t",
16452        children: "Core Capabilities"
16453      }
16454    ) }),
16455    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dfyu5", _fgB: 1790697590078, className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", "data-fg-dfyu5": ":0:/src/app/components/ivr/IVRCapabilities.tsx:58:9:2289:1319:e:div:x", children: SM.map((t, e) => /* @__PURE__ */ c(
16456      a,
16457      {
16458        _fgT: m.div,
16459        _fgS: "dfyu7",
16460        _fgB: 1790697590078,
16461        initial: { opacity: 0, y: 20 },
16462        whileInView: { opacity: 1, y: 0 },
16463        viewport: { once: !0 },
16464        transition: { delay: e * 0.1 },
16465        className: "bg-white p-8 rounded-3xl border border-slate-100 shadow-sm hover:shadow-xl transition-all duration-300 group",
16466        "data-fg-dfyu7": ":0:/src/app/components/ivr/IVRCapabilities.tsx:60:13:2414:1165:e:motion.div:etetete",
16467        children: [
16468          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dfyu8", _fgB: 1790697590078, className: "w-14 h-14 rounded-2xl bg-blue-50 text-[#0056B3] flex items-center justify-center mb-6 group-hover:bg-[#0056B3] group-hover:text-white transition-colors", "data-fg-dfyu8": ":0:/src/app/components/ivr/IVRCapabilities.tsx:68:15:2792:233:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "dfyu9", _fgB: 1790697590078, size: 28, "data-fg-dfyu9": ":0:/src/app/components/ivr/IVRCapabilities.tsx:69:17:2978:26:e:feature.icon" }) }),
16469          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dfyu10", _fgB: 1790697590078, className: "text-xl font-bold text-slate-900 mb-3", "data-fg-dfyu10": ":0:/src/app/components/ivr/IVRCapabilities.tsx:71:15:3040:74:e:h3:x", children: t.title }),
16470          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dfyu12", _fgB: 1790697590078, className: "text-slate-600 mb-6 leading-relaxed", "data-fg-dfyu12": ":0:/src/app/components/ivr/IVRCapabilities.tsx:72:15:3129:101:e:p:x", children: t.desc }),
16471          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dfyu14", _fgB: 1790697590078, className: "pt-6 border-t border-slate-100", "data-fg-dfyu14": ":0:/src/app/components/ivr/IVRCapabilities.tsx:75:15:3245:308:e:div:ete", children: [
16472            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dfyu15", _fgB: 1790697590078, className: "block text-xs font-bold uppercase tracking-wider text-[#EFBB0F] mb-2", "data-fg-dfyu15": ":0:/src/app/components/ivr/IVRCapabilities.tsx:76:17:3310:101:e:span:t", children: "Benefit" }),
16473            /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "dfyu17", _fgB: 1790697590078, className: "text-sm text-slate-500 italic", "data-fg-dfyu17": ":0:/src/app/components/ivr/IVRCapabilities.tsx:77:17:3428:104:e:p:txt", children: [
16474              '"',
16475              t.benefit,
16476              '"'
16477            ] })
16478          ] })
16479        ]
16480      },
16481      e
16482    )) })
16483  ] }) });
16484}
16485const kM = globalThis.__GLOBALS__.getAssetURL("556b66442bdd07a3411dea30d154b77af0cae742.png");
16486function AM() {
16487  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "efpi0", _fgB: 1790697590080, _fgD: !0, className: "py-24 bg-white overflow-hidden", "data-fg-efpi0": ":0:/src/app/components/ivr/IVRIntegration.tsx:6:5:171:2002:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "efpi1", _fgB: 1790697590080, className: "max-w-7xl mx-auto px-6", "data-fg-efpi1": ":0:/src/app/components/ivr/IVRIntegration.tsx:7:7:230:1928:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "efpi2", _fgB: 1790697590080, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-efpi2": ":0:/src/app/components/ivr/IVRIntegration.tsx:8:9:279:1866:e:div:ete", children: [
16488    /* @__PURE__ */ c(
16489      a,
16490      {
16491        _fgT: m.div,
16492        _fgS: "efpi3",
16493        _fgB: 1790697590080,
16494        initial: { opacity: 0, x: -50 },
16495        whileInView: { opacity: 1, x: 0 },
16496        viewport: { once: !0 },
16497        transition: { duration: 0.8 },
16498        "data-fg-efpi3": ":0:/src/app/components/ivr/IVRIntegration.tsx:9:11:347:949:e:motion.div:ete",
16499        children: [
16500          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "efpi4", _fgB: 1790697590080, className: "text-3xl md:text-5xl font-light text-slate-900 mb-8 font-[Space_Grotesk]", "data-fg-efpi4": ":0:/src/app/components/ivr/IVRIntegration.tsx:15:13:556:222:e:h2:tete", children: [
16501            "Seamless Platform ",
16502            /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "efpi6", _fgB: 1790697590080, "data-fg-efpi6": ":0:/src/app/components/ivr/IVRIntegration.tsx:16:33:678:6:e:br" }),
16503            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "efpi7", _fgB: 1790697590080, className: "font-bold text-[#0056B3]", "data-fg-efpi7": ":0:/src/app/components/ivr/IVRIntegration.tsx:17:15:699:61:e:span:t", children: "Integration" })
16504          ] }),
16505          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "efpi9", _fgB: 1790697590080, className: "prose prose-lg text-slate-600", "data-fg-efpi9": ":0:/src/app/components/ivr/IVRIntegration.tsx:19:13:791:481:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "efpi10", _fgB: 1790697590080, className: "leading-relaxed", "data-fg-efpi10": ":0:/src/app/components/ivr/IVRIntegration.tsx:20:15:853:400:e:p:t", children: "The IVR system is designed for complete, real-time data flow with the core transit software. Every trip status update (dispatched, en route, arrived) is instantly available via the IVR, the rider-facing mobile app, and the dispatch center. This seamless integration ensures accuracy and consistency across all communication channels." }) })
16506        ]
16507      }
16508    ),
16509    /* @__PURE__ */ c(
16510      a,
16511      {
16512        _fgT: m.div,
16513        _fgS: "efpi12",
16514        _fgB: 1790697590080,
16515        initial: { opacity: 0, x: 50 },
16516        whileInView: { opacity: 1, x: 0 },
16517        viewport: { once: !0 },
16518        transition: { duration: 0.8 },
16519        className: "relative",
16520        "data-fg-efpi12": ":0:/src/app/components/ivr/IVRIntegration.tsx:26:11:1308:822:e:motion.div:etxtete",
16521        children: [
16522          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "efpi13", _fgB: 1790697590080, className: "relative rounded-[2rem] overflow-hidden shadow-2xl aspect-video", "data-fg-efpi13": ":0:/src/app/components/ivr/IVRIntegration.tsx:33:13:1549:277:e:div:e", children: /* @__PURE__ */ i(
16523            a,
16524            {
16525              _fgT: "img",
16526              _fgS: "efpi14",
16527              _fgB: 1790697590080,
16528              src: kM,
16529              alt: "Seamless Platform Integration",
16530              className: "w-full h-full object-contain",
16531              "data-fg-efpi14": ":0:/src/app/components/ivr/IVRIntegration.tsx:34:15:1645:162:e:img"
16532            }
16533          ) }),
16534          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "efpi16", _fgB: 1790697590080, className: "absolute -bottom-10 -left-10 w-40 h-40 bg-[#EFBB0F]/10 rounded-full blur-3xl -z-10", "data-fg-efpi16": ":0:/src/app/components/ivr/IVRIntegration.tsx:42:13:1891:102:e:div" }),
16535          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "efpi17", _fgB: 1790697590080, className: "absolute -top-10 -right-10 w-40 h-40 bg-[#0056B3]/10 rounded-full blur-3xl -z-10", "data-fg-efpi17": ":0:/src/app/components/ivr/IVRIntegration.tsx:43:13:2006:100:e:div" })
16536        ]
16537      }
16538    )
16539  ] }) }) });
16540}
16541function NM() {
16542  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "1us0", _fgB: 1790697590082, _fgD: !0, className: "py-24 bg-slate-900 text-white relative overflow-hidden", "data-fg-1us0": ":0:/src/app/components/ivr/IVRAccessibility.tsx:7:5:214:2934:e:section:ete:1", children: [
16543    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "1us1", _fgB: 1790697590082, className: "absolute inset-0 z-0", "data-fg-1us1": ":0:/src/app/components/ivr/IVRAccessibility.tsx:8:7:297:240:e:div:ete", children: [
16544      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us2", _fgB: 1790697590082, className: "absolute top-0 right-0 w-1/2 h-full bg-[#0056B3]/20 blur-[100px]", "data-fg-1us2": ":0:/src/app/components/ivr/IVRAccessibility.tsx:9:10:345:84:e:div" }),
16545      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us3", _fgB: 1790697590082, className: "absolute bottom-0 left-0 w-1/2 h-full bg-[#EFBB0F]/5 blur-[100px]", "data-fg-1us3": ":0:/src/app/components/ivr/IVRAccessibility.tsx:10:10:439:85:e:div" })
16546    ] }),
16547    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us4", _fgB: 1790697590082, className: "max-w-7xl mx-auto px-6 relative z-10", "data-fg-1us4": ":0:/src/app/components/ivr/IVRAccessibility.tsx:13:7:545:2588:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "1us5", _fgB: 1790697590082, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-1us5": ":0:/src/app/components/ivr/IVRAccessibility.tsx:14:9:608:2512:e:div:ete", children: [
16548      /* @__PURE__ */ i(
16549        a,
16550        {
16551          _fgT: m.div,
16552          _fgS: "1us6",
16553          _fgB: 1790697590082,
16554          initial: { opacity: 0, scale: 0.95 },
16555          whileInView: { opacity: 1, scale: 1 },
16556          viewport: { once: !0 },
16557          transition: { duration: 0.8 },
16558          className: "order-2 lg:order-1",
16559          "data-fg-1us6": ":0:/src/app/components/ivr/IVRAccessibility.tsx:15:11:676:1385:e:motion.div:e",
16560          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "1us7", _fgB: 1790697590082, className: "relative rounded-[2rem] overflow-hidden shadow-2xl border border-white/10 aspect-[4/3]", "data-fg-1us7": ":0:/src/app/components/ivr/IVRAccessibility.tsx:22:14:938:1099:e:div:etete", children: [
16561            /* @__PURE__ */ i(
16562              a,
16563              {
16564                _fgT: Le,
16565                _fgS: "1us8",
16566                _fgB: 1790697590082,
16567                src: "https://images.unsplash.com/photo-1758691030826-86a149b6278b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxzZW5pb3IlMjBjaXRpemVuJTIwdXNpbmclMjBwaG9uZSUyMGhhcHB5fGVufDF8fHx8MTc3MTAwODQ1NHww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
16568                alt: "Senior citizen using accessible phone service",
16569                className: "w-full h-full object-cover",
16570                "data-fg-1us8": ":0:/src/app/components/ivr/IVRAccessibility.tsx:23:15:1057:464:e:ImageWithFallback::::::EBG"
16571              }
16572            ),
16573            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us9", _fgB: 1790697590082, className: "absolute inset-0 bg-gradient-to-t from-black/60 to-transparent", "data-fg-1us9": ":0:/src/app/components/ivr/IVRAccessibility.tsx:28:15:1536:82:e:div" }),
16574            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us10", _fgB: 1790697590082, className: "absolute bottom-6 left-6 right-6", "data-fg-1us10": ":0:/src/app/components/ivr/IVRAccessibility.tsx:29:15:1633:385:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "1us11", _fgB: 1790697590082, className: "inline-flex items-center gap-2 bg-white/20 backdrop-blur-md px-4 py-2 rounded-lg text-sm font-medium border border-white/20", "data-fg-1us11": ":0:/src/app/components/ivr/IVRAccessibility.tsx:30:17:1700:297:e:div:ete", children: [
16575              /* @__PURE__ */ i(a, { _fgT: b2, _fgS: "1us12", _fgB: 1790697590082, size: 16, className: "text-[#EFBB0F]", "data-fg-1us12": ":0:node_modules/lucide-react:31:19:1860:52:e:CheckCircle::::::C4Wc" }),
16576              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "1us13", _fgB: 1790697590082, "data-fg-1us13": ":0:/src/app/components/ivr/IVRAccessibility.tsx:32:19:1931:43:e:span:t", children: "Accessible to All Demographics" })
16577            ] }) })
16578          ] })
16579        }
16580      ),
16581      /* @__PURE__ */ c(
16582        a,
16583        {
16584          _fgT: m.div,
16585          _fgS: "1us15",
16586          _fgB: 1790697590082,
16587          initial: { opacity: 0, x: 50 },
16588          whileInView: { opacity: 1, x: 0 },
16589          viewport: { once: !0 },
16590          transition: { duration: 0.8 },
16591          className: "order-1 lg:order-2",
16592          "data-fg-1us15": ":0:/src/app/components/ivr/IVRAccessibility.tsx:38:11:2073:1032:e:motion.div:ete",
16593          children: [
16594            /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "1us16", _fgB: 1790697590082, className: "text-3xl md:text-5xl font-light mb-8 font-[Space_Grotesk]", "data-fg-1us16": ":0:/src/app/components/ivr/IVRAccessibility.tsx:45:13:2324:200:e:h2:tete", children: [
16595              "Accessibility & ",
16596              /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "1us18", _fgB: 1790697590082, "data-fg-1us18": ":0:/src/app/components/ivr/IVRAccessibility.tsx:46:31:2429:6:e:br" }),
16597              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "1us19", _fgB: 1790697590082, className: "font-bold text-[#EFBB0F]", "data-fg-1us19": ":0:/src/app/components/ivr/IVRAccessibility.tsx:47:15:2450:56:e:span:t", children: "Equity" })
16598            ] }),
16599            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "1us21", _fgB: 1790697590082, className: "prose prose-lg text-slate-300", "data-fg-1us21": ":0:/src/app/components/ivr/IVRAccessibility.tsx:49:13:2537:544:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "1us22", _fgB: 1790697590082, className: "leading-relaxed", "data-fg-1us22": ":0:/src/app/components/ivr/IVRAccessibility.tsx:50:15:2599:463:e:p:t", children: "By offering full functionality via IVR, we guarantee service equity for all rider demographics, including older populations and individuals without reliable internet or smartphone access. The automated self-service features for booking, canceling, and tracking trips significantly offload repetitive tasks from your customer service representatives, allowing them to focus on complex rider needs." }) })
16600          ]
16601        }
16602      )
16603    ] }) })
16604  ] });
16605}
16606function IM() {
16607  const { openContactModal: t } = Z();
16608  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cgdy0", _fgB: 1790697590083, _fgD: !0, className: "py-24 bg-white relative overflow-hidden", "data-fg-cgdy0": ":0:/src/app/components/ivr/IVRCTA.tsx:9:5:241:1567:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cgdy1", _fgB: 1790697590083, className: "max-w-5xl mx-auto px-6 text-center relative z-10", "data-fg-cgdy1": ":0:/src/app/components/ivr/IVRCTA.tsx:10:7:309:1484:e:div:e", children: /* @__PURE__ */ c(
16609    a,
16610    {
16611      _fgT: m.div,
16612      _fgS: "cgdy2",
16613      _fgB: 1790697590083,
16614      initial: { opacity: 0, scale: 0.9 },
16615      whileInView: { opacity: 1, scale: 1 },
16616      viewport: { once: !0 },
16617      transition: { duration: 0.5 },
16618      className: "bg-[#0056B3] rounded-[3rem] p-12 md:p-20 shadow-2xl relative overflow-hidden",
16619      "data-fg-cgdy2": ":0:/src/app/components/ivr/IVRCTA.tsx:11:9:384:1396:e:motion.div:xtete",
16620      children: [
16621        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cgdy4", _fgB: 1790697590083, className: "absolute inset-0 opacity-10 pattern-grid-lg", "data-fg-cgdy4": ":0:/src/app/components/ivr/IVRCTA.tsx:19:11:725:63:e:div" }),
16622        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cgdy5", _fgB: 1790697590083, className: "relative z-10 flex flex-col items-center", "data-fg-cgdy5": ":0:/src/app/components/ivr/IVRCTA.tsx:21:11:810:948:e:div:etete", children: [
16623          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cgdy6", _fgB: 1790697590083, className: "w-16 h-16 bg-white/10 rounded-full flex items-center justify-center mb-8 backdrop-blur-sm border border-white/20", "data-fg-cgdy6": ":0:/src/app/components/ivr/IVRCTA.tsx:22:13:881:206:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cgdy7", _fgB: 1790697590083, className: "text-white", size: 32, "data-fg-cgdy7": ":0:node_modules/lucide-react:23:15:1026:42:e:Phone::::::DmpI" }) }),
16624          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cgdy8", _fgB: 1790697590083, className: "text-3xl md:text-5xl font-bold text-white mb-8 font-[Space_Grotesk] tracking-tight", "data-fg-cgdy8": ":0:/src/app/components/ivr/IVRCTA.tsx:26:13:1113:182:e:h2:t", children: "Deploy a Full-Featured IVR System for Your Agency." }),
16625          /* @__PURE__ */ c(
16626            a,
16627            {
16628              _fgT: "button",
16629              _fgS: "cgdy10",
16630              _fgB: 1790697590083,
16631              onClick: t,
16632              className: "group inline-flex items-center gap-3 bg-white text-[#0056B3] px-10 py-5 rounded-full font-bold text-lg hover:bg-blue-50 transition-all duration-300 shadow-xl cursor-pointer",
16633              "data-fg-cgdy10": ":0:/src/app/components/ivr/IVRCTA.tsx:30:13:1321:420:e:button:te",
16634              children: [
16635                "Schedule a Consultation",
16636                /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cgdy12", _fgB: 1790697590083, size: 20, className: "group-hover:translate-x-1 transition-transform", "data-fg-cgdy12": ":0:node_modules/lucide-react:35:15:1636:83:e:ArrowRight::::::s5N" })
16637              ]
16638            }
16639          )
16640        ] })
16641      ]
16642    }
16643  ) }) });
16644}
16645function PM() {
16646  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "knz0", _fgB: 1790697589427, _fgD: !0, className: "min-h-screen bg-white", "data-fg-knz0": ":0:/src/app/pages/IVRPage.tsx:11:5:478:201:e:main:etetetetetete:1", children: [
16647    /* @__PURE__ */ i(a, { _fgT: wM, _fgS: "knz1", _fgB: 1790697589427, "data-fg-knz1": ":0:/src/app/pages/IVRPage.tsx:12:7:525:11:e:IVRHero::::::ZvL" }),
16648    /* @__PURE__ */ i(a, { _fgT: TM, _fgS: "knz2", _fgB: 1790697589427, "data-fg-knz2": ":0:/src/app/pages/IVRPage.tsx:13:7:543:12:e:IVRIntro::::::3Y7" }),
16649    /* @__PURE__ */ i(a, { _fgT: BM, _fgS: "knz3", _fgB: 1790697589427, "data-fg-knz3": ":0:/src/app/pages/IVRPage.tsx:14:7:562:19:e:IVRCapabilities::::::CwHn" }),
16650    /* @__PURE__ */ i(a, { _fgT: AM, _fgS: "knz4", _fgB: 1790697589427, "data-fg-knz4": ":0:/src/app/pages/IVRPage.tsx:15:7:588:18:e:IVRIntegration::::::cmD" }),
16651    /* @__PURE__ */ i(a, { _fgT: NM, _fgS: "knz5", _fgB: 1790697589427, "data-fg-knz5": ":0:/src/app/pages/IVRPage.tsx:16:7:613:20:e:IVRAccessibility::::::EBa3" }),
16652    /* @__PURE__ */ i(a, { _fgT: IM, _fgS: "knz6", _fgB: 1790697589427, "data-fg-knz6": ":0:/src/app/pages/IVRPage.tsx:17:7:640:10:e:IVRCTA::::::D7DZ" }),
16653    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "knz7", _fgB: 1790697589427, "data-fg-knz7": ":0:/src/app/pages/IVRPage.tsx:18:7:657:10:e:Footer::::::B1Vv" })
16654  ] });
16655}
16656const CM = Symbol.for("@supabase/supabase-js.traceContextExtractor");
16657function FM() {
16658  return globalThis[CM];
16659}
16660function j3(t, e) {
16661  var s = {};
16662  for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (s[r] = t[r]);
16663  if (t != null && typeof Object.getOwnPropertySymbols == "function")
16664    for (var n = 0, r = Object.getOwnPropertySymbols(t); n < r.length; n++)
16665      e.indexOf(r[n]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[n]) && (s[r[n]] = t[r[n]]);
16666  return s;
16667}
16668function EM(t, e, s, r) {
16669  function n(o) {
16670    return o instanceof s ? o : new s(function(L) {
16671      L(o);
16672    });
16673  }
16674  return new (s || (s = Promise))(function(o, L) {
16675    function d(f) {
16676      try {
16677        g(r.next(f));
16678      } catch (p) {
16679        L(p);
16680      }
16681    }
16682    function l(f) {
16683      try {
16684        g(r.throw(f));
16685      } catch (p) {
16686        L(p);
16687      }
16688    }
16689    function g(f) {
16690      f.done ? o(f.value) : n(f.value).then(d, l);
16691    }
16692    g((r = r.apply(t, e || [])).next());
16693  });
16694}
16695const RM = (t) => t ? (...e) => t(...e) : (...e) => fetch(...e);
16696class s0 extends Error {
16697  constructor(e, s = "FunctionsError", r) {
16698    super(e), this.name = s, this.context = r;
16699  }
16700  toJSON() {
16701    return {
16702      name: this.name,
16703      message: this.message,
16704      context: this.context
16705    };
16706  }
16707}
16708class DM extends s0 {
16709  constructor(e) {
16710    super("Failed to send a request to the Edge Function", "FunctionsFetchError", e);
16711  }
16712}
16713class qa extends s0 {
16714  constructor(e) {
16715    super("Relay Error invoking the Edge Function", "FunctionsRelayError", e);
16716  }
16717}
16718class Ua extends s0 {
16719  constructor(e) {
16720    super("Edge Function returned a non-2xx status code", "FunctionsHttpError", e);
16721  }
16722}
16723var K4;
16724(function(t) {
16725  t.Any = "any", t.ApNortheast1 = "ap-northeast-1", t.ApNortheast2 = "ap-northeast-2", t.ApSouth1 = "ap-south-1", t.ApSoutheast1 = "ap-southeast-1", t.ApSoutheast2 = "ap-southeast-2", t.CaCentral1 = "ca-central-1", t.EuCentral1 = "eu-central-1", t.EuWest1 = "eu-west-1", t.EuWest2 = "eu-west-2", t.EuWest3 = "eu-west-3", t.SaEast1 = "sa-east-1", t.UsEast1 = "us-east-1", t.UsWest1 = "us-west-1", t.UsWest2 = "us-west-2";
16726})(K4 || (K4 = {}));
16727class zM {
16728  /**
16729   * Creates a new Functions client bound to an Edge Functions URL.
16730   *
16731   * @example Using supabase-js (recommended)
16732   * ```ts
16733   * import { createClient } from '@supabase/supabase-js'
16734   *
16735   * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
16736   * const { data, error } = await supabase.functions.invoke('hello-world')
16737   * ```
16738   *
16739   * @category Edge Functions
16740   *
16741   * @example Standalone import for bundle-sensitive environments
16742   * ```ts
16743   * import { FunctionsClient, FunctionRegion } from '@supabase/functions-js'
16744   *
16745   * const functions = new FunctionsClient('https://xyzcompany.supabase.co/functions/v1', {
16746   *   headers: { apikey: 'your-publishable-key' },
16747   *   region: FunctionRegion.UsEast1,
16748   * })
16749   * ```
16750   */
16751  constructor(e, { headers: s = {}, customFetch: r, region: n = K4.Any } = {}) {
16752    this.url = e, this.headers = s, this.region = n, this.fetch = RM(r);
16753  }
16754  /**
16755   * Updates the authorization header
16756   * @param token - the new jwt token sent in the authorisation header
16757   *
16758   * @category Edge Functions
16759   *
16760   * @example Setting the authorization header
16761   * ```ts
16762   * functions.setAuth(session.access_token)
16763   * ```
16764   */
16765  setAuth(e) {
16766    this.headers.Authorization = `Bearer ${e}`;
16767  }
16768  /**
16769   * Invokes a function
16770   * @param functionName - The name of the Function to invoke.
16771   * @param options - Options for invoking the Function.
16772   * @example
16773   * ```ts
16774   * const { data, error } = await functions.invoke('hello-world', {
16775   *   body: { name: 'Ada' },
16776   * })
16777   * ```
16778   *
16779   * @category Edge Functions
16780   *
16781   * @remarks
16782   * - The API key is sent in the `apikey` header. The `Authorization` header is reserved
16783   *   for the signed-in user's JWT (or a custom auth token) — when there is no session, a
16784   *   new-format API key (`sb_publishable_…` / `sb_secret_…`) is not sent as a Bearer token.
16785   * - Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec.
16786   * - When you pass in a body to your function, we automatically attach the C
16786ontent-Type header for `Blob`, `ArrayBuffer`, `File`, `FormData` and `String`. If it doesn't match any of these types we assume the payload is `json`, serialize it and attach the `Content-Type` header as `application/json`. You can override this behavior by passing in a `Content-Type` header of your own.
16787   * - Responses are automatically parsed as `json`, `blob` and `form-data` depending on the `Content-Type` header sent by your function. Responses are parsed as `text` by default.
16788   *
16789   * @example Basic invocation
16790   * ```js
16791   * const { data, error } = await supabase.functions.invoke('hello', {
16792   *   body: { foo: 'bar' }
16793   * })
16794   * ```
16795   *
16796   * @exampleDescription Error handling
16797   * A `FunctionsHttpError` error is returned if your function throws an error, `FunctionsRelayError` if the Supabase Relay has an error processing your function and `FunctionsFetchError` if there is a network error in calling your function. Log the full error object so fields like `name`, `context`, and any structured body aren't hidden.
16798   *
16799   * @example Error handling
16800   * ```js
16801   * import { FunctionsHttpError, FunctionsRelayError, FunctionsFetchError } from "@supabase/supabase-js";
16802   *
16803   * const { data, error } = await supabase.functions.invoke('hello', {
16804   *   headers: {
16805   *     "my-custom-header": 'my-custom-header-value'
16806   *   },
16807   *   body: { foo: 'bar' }
16808   * })
16809   *
16810   * if (error instanceof FunctionsHttpError) {
16811   *   const errorMessage = await error.context.json()
16812   *   console.error('Function returned an error', errorMessage)
16813   * } else if (error instanceof FunctionsRelayError) {
16814   *   console.error('Relay error:', error)
16815   * } else if (error instanceof FunctionsFetchError) {
16816   *   console.error('Fetch error:', error)
16817   * }
16818   * ```
16819   *
16820   * @exampleDescription Passing custom headers
16821   * You can pass custom headers to your function. Note: supabase-js automatically passes the `Authorization` header with the signed in user's JWT.
16822   *
16823   * @example Passing custom headers
16824   * ```js
16825   * const { data, error } = await supabase.functions.invoke('hello', {
16826   *   headers: {
16827   *     "my-custom-header": 'my-custom-header-value'
16828   *   },
16829   *   body: { foo: 'bar' }
16830   * })
16831   * ```
16832   *
16833   * @exampleDescription Calling with DELETE HTTP verb
16834   * You can also set the HTTP verb to `DELETE` when calling your Edge Function.
16835   *
16836   * @example Calling with DELETE HTTP verb
16837   * ```js
16838   * const { data, error } = await supabase.functions.invoke('hello', {
16839   *   headers: {
16840   *     "my-custom-header": 'my-custom-header-value'
16841   *   },
16842   *   body: { foo: 'bar' },
16843   *   method: 'DELETE'
16844   * })
16845   * ```
16846   *
16847   * @exampleDescription Invoking a Function in the UsEast1 region
16848   * Here are the available regions:
16849   * - `FunctionRegion.Any`
16850   * - `FunctionRegion.ApNortheast1`
16851   * - `FunctionRegion.ApNortheast2`
16852   * - `FunctionRegion.ApSouth1`
16853   * - `FunctionRegion.ApSoutheast1`
16854   * - `FunctionRegion.ApSoutheast2`
16855   * - `FunctionRegion.CaCentral1`
16856   * - `FunctionRegion.EuCentral1`
16857   * - `FunctionRegion.EuWest1`
16858   * - `FunctionRegion.EuWest2`
16859   * - `FunctionRegion.EuWest3`
16860   * - `FunctionRegion.SaEast1`
16861   * - `FunctionRegion.UsEast1`
16862   * - `FunctionRegion.UsWest1`
16863   * - `FunctionRegion.UsWest2`
16864   *
16865   * @example Invoking a Function in the UsEast1 region
16866   * ```js
16867   * import { createClient, FunctionRegion } from '@supabase/supabase-js'
16868   *
16869   * const { data, error } = await supabase.functions.invoke('hello', {
16870   *   body: { foo: 'bar' },
16871   *   region: FunctionRegion.UsEast1
16872   * })
16873   * ```
16874   *
16875   * @exampleDescription Calling with GET HTTP verb
16876   * You can also set the HTTP verb to `GET` when calling your Edge Function.
16877   *
16878   * @example Calling with GET HTTP verb
16879   * ```js
16880   * const { data, error } = await supabase.functions.invoke('hello', {
16881   *   headers: {
16882   *     "my-custom-header": 'my-custom-header-value'
16883   *   },
16884   *   method: 'GET'
16885   * })
16886   * ```
16887   *
16888   * @example Standalone client invoke
16889   * ```ts
16890   * const { data, error } = await functions.invoke('hello-world', {
16891   *   body: { name: 'Ada' },
16892   * })
16893   * ```
16894   */
16895  invoke(e) {
16896    return EM(this, arguments, void 0, function* (s, r = {}) {
16897      var n, o;
16898      let L, d, l;
16899      try {
16900        const { headers: g, method: f, body: p, signal: M, timeout: u } = r;
16901        let h = {}, { region: x } = r;
16902        x || (x = this.region);
16903        const _ = new URL(`${this.url}/${s}`);
16904        x && x !== "any" && (h["x-region"] = x, _.searchParams.set("forceFunctionRegion", x));
16905        let v;
16906        const y = !!g && Object.keys(g).some((w) => w.toLowerCase() === "content-type");
16907        p && !y ? typeof Blob < "u" && p instanceof Blob || p instanceof ArrayBuffer ? (h["Content-Type"] = "application/octet-stream", v = p) : typeof p == "string" ? (h["Content-Type"] = "text/plain", v = p) : typeof FormData < "u" && p instanceof FormData ? v = p : (h["Content-Type"] = "application/json", v = JSON.stringify(p)) : p && typeof p != "string" && !(typeof Blob < "u" && p instanceof Blob) && !(p instanceof ArrayBuffer) && !(typeof FormData < "u" && p instanceof FormData) ? v = JSON.stringify(p) : v = p;
16908        let b = M;
16909        u && (d = new AbortController(), L = setTimeout(() => d.abort(), u), M ? (b = d.signal, l = () => d.abort(), M.addEventListener("abort", l)) : b = d.signal);
16910        const S = yield this.fetch(_.toString(), {
16911          method: f || "POST",
16912          // headers priority is (high to low):
16913          // 1. invoke-level headers
16914          // 2. client-level headers
16915          // 3. default Content-Type header
16916          headers: Object.assign(Object.assign(Object.assign({}, h), this.headers), g),
16917          body: v,
16918          signal: b
16919        }).catch((w) => {
16920          throw new DM(w);
16921        }), k = S.headers.get("x-relay-error");
16922        if (k && k === "true")
16923          throw new qa(S);
16924        if (!S.ok)
16925          throw new Ua(S);
16926        let A = ((n = S.headers.get("Content-Type")) !== null && n !== void 0 ? n : "text/plain").split(";")[0].trim().toLowerCase(), I;
16927        return A === "application/json" ? I = yield S.json() : A === "application/octet-stream" || A === "application/pdf" ? I = yield S.blob() : A === "text/event-stream" ? I = S : A === "multipart/form-data" ? I = yield S.formData() : I = yield S.text(), { data: I, error: null, response: S };
16928      } catch (g) {
16929        return {
16930          data: null,
16931          error: g,
16932          response: g instanceof Ua || g instanceof qa ? g.context : void 0
16933        };
16934      } finally {
16935        L && clearTimeout(L), l && ((o = r.signal) === null || o === void 0 || o.removeEventListener("abort", l));
16936      }
16937    });
16938  }
16939}
16940var ut = class extends Error {
16941  /**
16942  * @example
16943  * ```ts
16944  * import PostgrestError from '@supabase/postgrest-js'
16945  *
16946  * throw new PostgrestError({
16947  *   message: 'Row level security prevented the request',
16948  *   details: 'RLS denied the insert',
16949  *   hint: 'Check your policies',
16950  *   code: 'PGRST301',
16951  * })
16952  * ```
16953  */
16954  constructor(t) {
16955    super(t.message), this.name = "PostgrestError", this.details = t.details, this.hint = t.hint, this.code = t.code;
16956  }
16957  toJSON() {
16958    return {
16959      name: this.name,
16960      message: this.message,
16961      details: this.details,
16962      hint: this.hint,
16963      code: this.code
16964    };
16965  }
16966};
16967const di = 3, Ga = (t) => Math.min(1e3 * 2 ** t, 3e4), jM = [520, 503], gi = [
16968  "GET",
16969  "HEAD",
16970  "OPTIONS"
16971];
16972function r2(t) {
16973  "@babel/helpers - typeof";
16974  return r2 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
16975    return typeof e;
16976  } : function(e) {
16977    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
16978  }, r2(t);
16979}
16980function OM(t, e) {
16981  if (r2(t) != "object" || !t) return t;
16982  var s = t[Symbol.toPrimitive];
16983  if (s !== void 0) {
16984    var r = s.call(t, e);
16985    if (r2(r) != "object") return r;
16986    throw new TypeError("@@toPrimitive must return a primitive value.");
16987  }
16988  return (e === "string" ? String : Number)(t);
16989}
16990function VM(t) {
16991  var e = OM(t, "string");
16992  return r2(e) == "symbol" ? e : e + "";
16993}
16994function HM(t, e, s) {
16995  return (e = VM(e)) in t ? Object.defineProperty(t, e, {
16996    value: s,
16997    enumerable: !0,
16998    configurable: !0,
16999    writable: !0
17000  }) : t[e] = s, t;
17001}
17002function Ja(t, e) {
17003  var s = Object.keys(t);
17004  if (Object.getOwnPropertySymbols) {
17005    var r = Object.getOwnPropertySymbols(t);
17006    e && (r = r.filter(function(n) {
17007      return Object.getOwnPropertyDescriptor(t, n).enumerable;
17008    })), s.push.apply(s, r);
17009  }
17010  return s;
17011}
17012function V1(t) {
17013  for (var e = 1; e < arguments.length; e++) {
17014    var s = arguments[e] != null ? arguments[e] : {};
17015    e % 2 ? Ja(Object(s), !0).forEach(function(r) {
17016      HM(t, r, s[r]);
17017    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(s)) : Ja(Object(s)).forEach(function(r) {
17018      Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(s, r));
17019    });
17020  }
17021  return t;
17022}
17023function Ka(t, e) {
17024  return new Promise((s) => {
17025    if (e?.aborted) {
17026      s();
17027      return;
17028    }
17029    const r = setTimeout(() => {
17030      e?.removeEventListener("abort", n), s();
17031    }, t);
17032    function n() {
17033      clearTimeout(r), s();
17034    }
17035    e?.addEventListener("abort", n);
17036  });
17037}
17038function ZM(t, e, s, r) {
17039  return !(!r || s >= di || !gi.includes(t) || !jM.includes(e));
17040}
17041async function fi(t, e, s, r) {
17042  let n = 0;
17043  for (; ; ) {
17044    const d = V1({}, s.headers);
17045    n > 0 && (d["X-Retry-Count"] = String(n));
17046    let l;
17047    try {
17048      l = await t(e, {
17049        method: s.method,
17050        headers: d,
17051        body: s.body,
17052        signal: s.signal
17053      });
17054    } catch (g) {
17055      if (g?.name === "AbortError" || g?.code === "ABORT_ERR" || !gi.includes(s.method)) throw g;
17056      if (r && n < di) {
17057        const f = Ga(n);
17058        n++, await Ka(f, s.signal);
17059        continue;
17060      }
17061      throw g;
17062    }
17063    if (ZM(s.method, l.status, n, r)) {
17064      var o, L;
17065      const g = (o = (L = l.headers) === null || L === void 0 ? void 0 : L.get("Retry-After")) !== null && o !== void 0 ? o : null, f = g !== null ? Math.max(0, parseInt(g, 10) || 0) * 1e3 : Ga(n);
17066      await l.text(), n++, await Ka(f, s.signal);
17067      continue;
17068    }
17069    return l;
17070  }
17071}
17072var WM = class {
17073  /**
17074  * Creates a builder configured for a specific PostgREST request.
17075  *
17076  * @example Using supabase-js (recommended)
17077  * ```ts
17078  * import { createClient } from '@supabase/supabase-js'
17079  *
17080  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
17081  * const { data, error } = await supabase.from('users').select('*')
17082  * ```
17083  *
17084  * @category Database
17085  *
17086  * @example Standalone import for bundle-sensitive environments
17087  * ```ts
17088  * import { PostgrestQueryBuilder } from '@supabase/postgrest-js'
17089  *
17090  * const builder = new PostgrestQueryBuilder(
17091  *   new URL('https://xyzcompany.supabase.co/rest/v1/users'),
17092  *   { headers: new Headers({ apikey: 'your-publishable-key' }) }
17093  * )
17094  * ```
17095  */
17096  constructor(t) {
17097    var e, s, r, n, o;
17098    this.shouldThrowOnError = !1, this.retryEnabled = !0, this.method = t.method, this.url = t.url, this.headers = new Headers(t.headers), this.schema = t.schema, this.body = t.body, this.shouldThrowOnError = (e = t.shouldThrowOnError) !== null && e !== void 0 ? e : !1, this.signal = t.signal, this.isMaybeSingle = (s = t.isMaybeSingle) !== null && s !== void 0 ? s : !1, this.shouldStripNulls = (r = t.shouldStripNulls) !== null && r !== void 0 ? r : !1, this.urlLengthLimit = (n = t.urlLengthLimit) !== null && n !== void 0 ? n : 8e3, this.retryEnabled = (o = t.retry) !== null && o !== void 0 ? o : !0, t.fetch ? this.fetch = t.fetch : this.fetch = fetch;
17099  }
17100  /**
17101  * If there's an error with the query, throwOnError will reject the promise by
17102  * throwing the error instead of returning it as part of a successful response.
17103  *
17104  * {@link https://github.com/supabase/supabase-js/issues/92}
17105  *
17106  * @category Database
17107  * @subcategory Using modifiers
17108  */
17109  throwOnError() {
17110    return this.shouldThrowOnError = !0, this;
17111  }
17112  /**
17113  * Strip null values from the response data. Properties with `null` values
17114  * will be omitted from the returned JSON objects.
17115  *
17116  * Requires PostgREST 11.2.0+.
17117  *
17118  * {@link https://docs.postgrest.org/en/stable/references/api/resource_representation.html#stripped-nulls}
17119  *
17120  * @category Database
17121  * @subcategory Using modifiers
17122  *
17123  * @example With `select()`
17124  * ```ts
17125  * const { data, error } = await supabase
17126  *   .from('characters')
17127  *   .select()
17128  *   .stripNulls()
17129  * ```
17130  *
17131  * @exampleSql With `select()`
17132  * ```sql
17133  * create table
17134  *   characters (id int8 primary key, name text, bio text);
17135  *
17136  * insert into
17137  *   characters (id, name, bio)
17138  * values
17139  *   (1, 'Luke', null),
17140  *   (2, 'Leia', 'Princess of Alderaan');
17141  * ```
17142  *
17143  * @exampleResponse With `select()`
17144  * ```json
17145  * {
17146  *   "data": [
17147  *     {
17148  *       "id": 1,
17149  *       "name": "Luke"
17150  *     },
17151  *     {
17152  *       "id": 2,
17153  *       "name": "Leia",
17154  *       "bio": "Princess of Alderaan"
17155  *     }
17156  *   ],
17157  *   "status": 200,
17158  *   "statusText": "OK"
17159  * }
17160  * ```
17161  */
17162  stripNulls() {
17163    if (this.headers.get("Accept") === "text/csv") throw new Error("stripNulls() cannot be used with csv()");
17164    return this.shouldStripNulls = !0, this;
17165  }
17166  /**
17167  * Set an HTTP header on this single PostgREST request, overriding any header
17168  * with the same name set on the client.
17169  *
17170  * This is an advanced escape hatch for one-off needs (passing a custom
17171  * `Authorization` for a single query, attaching a tracing header, etc.).
17172  * Most callers do not need it: configure client-wide headers via the
17173  * `headers` option when constructing the client, and authentication via
17174  * Supabase Auth.
17175  *
17176  * @param name - HTTP header name
17177  * @param value - HTTP header value
17178  *
17179  * @category Database
17180  * @subcategory Using modifiers
17181  */
17182  setHeader(t, e) {
17183    return this.headers = new Headers(this.headers), this.headers.set(t, e), this;
17184  }
17185  /**
17186  * @category Database
17187  * @subcategory Using modifiers
17188  *
17189  * Configure retry behavior for this request.
17190  *
17191  * By default, retries are enabled for idempotent requests (GET, HEAD, OPTIONS)
17192  * that fail with network errors or specific HTTP status codes (503, 520).
17193  * Retries use exponential backoff (1s, 2s, 4s) with a maximum of 3 attempts.
17194  *
17195  * @param enabled - Whether to enable retries for this request
17196  *
17197  * @example
17198  * ```ts
17199  * // Disable retries for a specific query
17200  * const { data, error } = await supabase
17201  *   .from('users')
17202  *   .select()
17203  *   .retry(false)
17204  * ```
17205  */
17206  retry(t) {
17207    return this.retryEnabled = t, this;
17208  }
17209  then(t, e) {
17210    var s = this;
17211    if (this.schema === void 0 || (["GET", "HEAD"].includes(this.method) ? this.headers.set("Accept-Profile", this.schema) : this.headers.set("Content-Profile", this.schema)), this.method !== "GET" && this.method !== "HEAD" && this.headers.set("Content-Type", "application/json"), this.shouldStripNulls) {
17212      const L = this.headers.get("Accept");
17213      L === "application/vnd.pgrst.object+json" ? this.headers.set("Accept", "application/vnd.pgrst.object+json;nulls=stripped") : (!L || L === "application/json") && this.headers.set("Accept", "application/vnd.pgrst.array+json;nulls=stripped");
17214    }
17215    const r = this.fetch;
17216    let o = (async () => {
17217      const L = {};
17218      s.headers.forEach((l, g) => {
17219        L[g] = l;
17220      });
17221      const d = await fi(r, s.url.toString(), {
17222        method: s.method,
17223        headers: L,
17224        body: JSON.stringify(s.body, (l, g) => typeof g == "bigint" ? g.toString() : g),
17225        signal: s.signal
17226      }, s.retryEnabled);
17227      return await s.processResponse(d);
17228    })();
17229    return this.shouldThrowOnError || (o = o.catch((L) => {
17230      var d;
17231      let l = "", g = "", f = "";
17232      const p = L?.cause;
17233      if (p) {
17234        var M, u, h, x;
17235        const y = (M = p?.message) !== null && M !== void 0 ? M : "", b = (u = p?.code) !== null && u !== void 0 ? u : "";
17236        l = `${(h = L?.name) !== null && h !== void 0 ? h : "FetchError"}: ${L?.message}`, l += `
17237
17238Caused by: ${(x = p?.name) !== null && x !== void 0 ? x : "Error"}: ${y}`, b && (l += ` (${b})`), p?.stack && (l += `
17239${p.stack}`);
17240      } else {
17241        var _;
17242        l = (_ = L?.stack) !== null && _ !== void 0 ? _ : "";
17243      }
17244      const v = this.url.toString().length;
17245      return L?.name === "AbortError" || L?.code === "ABORT_ERR" ? (f = "", g = "Request was aborted (timeout or manual cancellation)", v > this.urlLengthLimit && (g += `. Note: Your request URL is ${v} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)) : (p?.name === "HeadersOverflowError" || p?.code === "UND_ERR_HEADERS_OVERFLOW") && (f = "", g = "HTTP headers exceeded server limits (typically 16KB)", v > this.urlLengthLimit && (g += `. Your request URL is ${v} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)), {
17246        success: !1,
17247        error: {
17248          message: `${(d = L?.name) !== null && d !== void 0 ? d : "FetchError"}: ${L?.message}`,
17249          details: l,
17250          hint: g,
17251          code: f
17252        },
17253        data: null,
17254        count: null,
17255        status: 0,
17256        statusText: ""
17257      };
17258    })), o.then(t, e);
17259  }
17260  /**
17261  * Process a fetch response and return the standardized postgrest response.
17262  */
17263  async processResponse(t) {
17264    var e = this;
17265    let s = null, r = null, n = null, o = t.status, L = t.statusText;
17266    if (t.ok) {
17267      var d, l;
17268      if (e.method !== "HEAD") {
17269        var g;
17270        const u = await t.text();
17271        if (u !== "") if (e.headers.get("Accept") === "text/csv") r = u;
17272        else if (e.headers.get("Accept") && (!((g = e.headers.get("Accept")) === null || g === void 0) && g.includes("application/vnd.pgrst.plan+text"))) r = u;
17273        else try {
17274          r = JSON.parse(u);
17275        } catch {
17276          if (s = { message: u }, r = null, e.shouldThrowOnError) throw new ut({
17277            message: u,
17278            details: "",
17279            hint: "",
17280            code: ""
17281          });
17282        }
17283      }
17284      const p = (d = e.headers.get("Prefer")) === null || d === void 0 ? void 0 : d.match(/count=(exact|planned|estimated)/), M = (l = t.headers.get("content-range")) === null || l === void 0 ? void 0 : l.split("/");
17285      if (p && M && M.length > 1 && (n = parseInt(M[1])), e.isMaybeSingle && Array.isArray(r)) if (r.length > 1) {
17286        if (s = {
17287          code: "PGRST116",
17288          details: `Results contain ${r.length} rows, application/vnd.pgrst.object+json requires 1 row`,
17289          hint: null,
17290          message: "JSON object requested, multiple (or no) rows returned"
17291        }, r = null, n = null, o = 406, L = "Not Acceptable", e.shouldThrowOnError) {
17292          var f;
17293          throw new ut(V1(V1({}, s), {}, { hint: (f = s.hint) !== null && f !== void 0 ? f : "" }));
17294        }
17295      } else r.length === 1 ? r = r[0] : r = null;
17296    } else {
17297      const p = await t.text();
17298      try {
17299        s = JSON.parse(p), Array.isArray(s) && t.status === 404 && (r = [], s = null, o = 200, L = "OK");
17300      } catch {
17301        t.status === 404 && p === "" ? (o = 204, L = "No Content") : s = { message: p };
17302      }
17303      if (s && e.shouldThrowOnError) throw new ut(s);
17304    }
17305    return {
17306      success: s === null,
17307      error: s,
17308      data: r,
17309      count: n,
17310      status: o,
17311      statusText: L
17312    };
17313  }
17314  /**
17315  * Override the type of the returned `data`.
17316  *
17317  * @typeParam NewResult - The new result type to override with
17318  * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
17319  *
17320  * @category Database
17321  * @subcategory Using modifiers
17322  */
17323  returns() {
17324    return this;
17325  }
17326  /**
17327  * Override the type of the returned `data` field in the response.
17328  *
17329  * @typeParam NewResult - The new type to cast the response data to
17330  * @typeParam Options - Optional type configuration (defaults to { merge: true })
17331  * @typeParam Options.merge - When true, merges the new type with existing return type. When false, replaces the existing types entirely (defaults to true)
17332  * @example
17333  * ```typescript
17334  * // Merge with existing types (default behavior)
17335  * const query = supabase
17336  *   .from('users')
17337  *   .select()
17338  *   .overrideTypes<{ custom_field: string }>()
17339  *
17340  * // Replace existing types completely
17341  * const replaceQuery = supabase
17342  *   .from('users')
17343  *   .select()
17344  *   .overrideTypes<{ id: number; name: string }, { merge: false }>()
17345  * ```
17346  * @returns A PostgrestBuilder instance with the new type
17347  *
17348  * @category Database
17349  * @subcategory Using modifiers
17350  *
17351  * @example Complete Override type of successful response
17352  * ```ts
17353  * const { data } = await supabase
17354  *   .from('countries')
17355  *   .select()
17356  *   .overrideTypes<Array<MyType>, { merge: false }>()
17357  * ```
17358  *
17359  * @exampleResponse Complete Override type of successful response
17360  * ```ts
17361  * let x: typeof data // MyType[]
17362  * ```
17363  *
17364  * @example Complete Override type of object response
17365  * ```ts
17366  * const { data } = await supabase
17367  *   .from('countries')
17368  *   .select()
17369  *   .maybeSingle()
17370  *   .overrideTypes<MyType, { merge: false }>()
17371  * ```
17372  *
17373  * @exampleResponse Complete Override type of object response
17374  * ```ts
17375  * let x: typeof data // MyType | null
17376  * ```
17377  *
17378  * @example Partial Override type of successful response
17379  * ```ts
17380  * const { data } = await supabase
17381  *   .from('countries')
17382  *   .select()
17383  *   .overrideTypes<Array<{ status: "A" | "B" }>>()
17384  * ```
17385  *
17386  * @exampleResponse Partial Override type of successful response
17387  * ```ts
17388  * let x: typeof data // Array<CountryRowProperties & { status: "A" | "B" }>
17389  * ```
17390  *
17391  * @example Partial Override type of object response
17392  * ```ts
17393  * const { data } = await supabase
17394  *   .from('countries')
17395  *   .select()
17396  *   .maybeSingle()
17397  *   .overrideTypes<{ status: "A" | "B" }>()
17398  * ```
17399  *
17400  * @exampleResponse Partial Override type of object response
17401  * ```ts
17402  * let x: typeof data // CountryRowProperties & { status: "A" | "B" } | null
17403  * ```
17404  *
17405  * @example Merge vs replace existing types
17406  * ```typescript
17407  * // Merge with existing types (default behavior)
17408  * const query = supabase
17409  *   .from('users')
17410  *   .select()
17411  *   .overrideTypes<{ custom_field: string }>()
17412  *
17413  * // Replace existing types completely
17414  * const replaceQuery = supabase
17415  *   .from('users')
17416  *   .select()
17417  *   .overrideTypes<{ id: number; name: string }, { merge: false }>()
17418  * ```
17419  */
17420  overrideTypes() {
17421    return this;
17422  }
17423}, $M = class extends WM {
17424  throwOnError() {
17425    return super.throwOnError();
17426  }
17427  /**
17428  * Perform a SELECT on the query result.
17429  *
17430  * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not
17431  * return modified rows. By calling this method, modified rows are returned in
17432  * `data`.
17433  *
17434  * @param columns - The columns to retrieve, separated by commas
17435  *
17436  * @category Database
17437  * @subcategory Using modifiers
17438  *
17439  * @example With `upsert()`
17440  * ```ts
17441  * const { data, error } = await supabase
17442  *   .from('characters')
17443  *   .upsert({ id: 1, name: 'Han Solo' })
17444  *   .select()
17445  * ```
17446  *
17447  * @exampleSql With `upsert()`
17448  * ```sql
17449  * create table
17450  *   characters (id int8 primary key, name text);
17451  *
17452  * insert into
17453  *   characters (id, name)
17454  * values
17455  *   (1, 'Han');
17456  * ```
17457  *
17458  * @exampleResponse With `upsert()`
17459  * ```json
17460  * {
17461  *   "data": [
17462  *     {
17463  *       "id": 1,
17464  *       "name": "Han Solo"
17465  *     }
17466  *   ],
17467  *   "status": 201,
17468  *   "statusText": ""
17469  * }
17470  * ```
17471  */
17472  select(t) {
17473    let e = !1;
17474    const s = (t ?? "*").split("").map((r) => /\s/.test(r) && !e ? "" : (r === '"' && (e = !e), r)).join("");
17475    return this.url.searchParams.set("select", s), this.headers.append("Prefer", "return=representation"), this;
17476  }
17477  /**
17478  * Order the query result by `column`.
17479  *
17480  * You can call this method multiple times to order by multiple columns.
17481  *
17482  * You can order referenced tables, but it only affects the ordering of the
17483  * parent table if you use `!inner` in the query.
17484  *
17485  * @param column - The column to order by
17486  * @param options - Named parameters
17487  * @param options.ascending - If `true`, the result will be in ascending order
17488  * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,
17489  * `null`s appear last.
17490  * @param options.referencedTable - Set this to order a referenced table by
17491  * its columns
17492  * @param options.foreignTable - Deprecated, use `options.referencedTable`
17493  * instead
17494  *
17495  * @category Database
17496  * @subcategory Using modifiers
17497  *
17498  * @example With `select()`
17499  * ```ts
17500  * const { data, error } = await supabase
17501  *   .from('characters')
17502  *   .select('id, name')
17503  *   .order('id', { ascending: false })
17504  * ```
17505  *
17506  * @exampleSql With `select()`
17507  * ```sql
17508  * create table
17509  *   characters (id int8 primary key, name text);
17510  *
17511  * insert into
17512  *   characters (id, name)
17513  * values
17514  *   (1, 'Luke'),
17515  *   (2, 'Leia'),
17516  *   (3, 'Han');
17517  * ```
17518  *
17519  * @exampleResponse With `select()`
17520  * ```json
17521  * {
17522  *   "data": [
17523  *     {
17524  *       "id": 3,
17525  *       "name": "Han"
17526  *     },
17527  *     {
17528  *       "id": 2,
17529  *       "name": "Leia"
17530  *     },
17531  *     {
17532  *       "id": 1,
17533  *       "name": "Luke"
17534  *     }
17535  *   ],
17536  *   "status": 200,
17537  *   "statusText": "OK"
17538  * }
17539  * ```
17540  *
17541  * @exampleDescription On a referenced table
17542  * Ordering with `referencedTable` doesn't affect the ordering of the
17543  * parent table.
17544  *
17545  * @example On a referenced table
17546  * ```ts
17547  *   const { data, error } = await supabase
17548  *     .from('orchestral_sections')
17549  *     .select(`
17550  *       name,
17551  *       instruments (
17552  *         name
17553  *       )
17554  *     `)
17555  *     .order('name', { referencedTable: 'instruments', ascending: false })
17556  *
17557  * ```
17558  *
17559  * @exampleSql On a referenced table
17560  * ```sql
17561  * create table
17562  *   orchestral_sections (id int8 primary key, name text);
17563  * create table
17564  *   instruments (
17565  *     id int8 primary key,
17566  *     section_id int8 not null references orchestral_sections,
17567  *     name text
17568  *   );
17569  *
17570  * insert into
17571  *   orchestral_sections (id, name)
17572  * values
17573  *   (1, 'strings'),
17574  *   (2, 'woodwinds');
17575  * insert into
17576  *   instruments (id, section_id, name)
17577  * values
17578  *   (1, 1, 'harp'),
17579  *   (2, 1, 'violin');
17580  * ```
17581  *
17582  * @exampleResponse On a referenced table
17583  * ```json
17584  * {
17585  *   "data": [
17586  *     {
17587  *       "name": "strings",
17588  *       "instruments": [
17589  *         {
17590  *           "name": "violin"
17591  *         },
17592  *         {
17593  *           "name": "harp"
17594  *         }
17595  *       ]
17596  *     },
17597  *     {
17598  *       "name": "woodwinds",
17599  *       "instruments": []
17600  *     }
17601  *   ],
17602  *   "status": 200,
17603  *   "statusText": "OK"
17604  * }
17605  * ```
17606  *
17607  * @exampleDescription Order parent table by a referenced table
17608  * Ordering with `referenced_table(col)` affects the ordering of the
17609  * parent table.
17610  *
17611  * @example Order parent table by a referenced table
17612  * ```ts
17613  *   const { data, error } = await supabase
17614  *     .from('instruments')
17615  *     .select(`
17616  *       name,
17617  *       section:orchestral_sections (
17618  *         name
17619  *       )
17620  *     `)
17621  *     .order('section(name)', { ascending: true })
17622  *
17623  * ```
17624  *
17625  * @exampleSql Order parent table by a referenced table
17626  * ```sql
17627  * create table
17628  *   orchestral_sections (id int8 primary key, name text);
17629  * create table
17630  *   instruments (
17631  *     id int8 primary key,
17632  *     section_id int8 not null references orchestral_sections,
17633  *     name text
17634  *   );
17635  *
17636  * insert into
17637  *   orchestral_sections (id, name)
17638  * values
17639  *   (1, 'strings'),
17640  *   (2, 'woodwinds');
17641  * insert into
17642  *   instruments (id, section_id, name)
17643  * values
17644  *   (1, 2, 'flute'),
17645  *   (2, 1, 'violin');
17646  * ```
17647  *
17648  * @exampleResponse Order parent table by a referenced table
17649  * ```json
17650  * {
17651  *   "data": [
17652  *     {
17653  *       "name": "violin",
17654  *       "orchestral_sections": {"name": "strings"}
17655  *     },
17656  *     {
17657  *       "name": "flute",
17658  *       "orchestral_sections": {"name": "woodwinds"}
17659  *     }
17660  *   ],
17661  *   "status": 200,
17662  *   "statusText": "OK"
17663  * }
17664  * ```
17665  */
17666  order(t, { ascending: e = !0, nullsFirst: s, foreignTable: r, referencedTable: n = r } = {}) {
17667    const o = n ? `${n}.order` : "order", L = this.url.searchParams.get(o);
17668    return this.url.searchParams.set(o, `${L ? `${L},` : ""}${t}.${e ? "asc" : "desc"}${s === void 0 ? "" : s ? ".nullsfirst" : ".nullslast"}`), this;
17669  }
17670  /**
17671  * Limit the query result by `rows`.
17672  *
17673  * @param rows - The maximum number of rows to return
17674  * @param options - Named parameters
17675  * @param options.referencedTable - Set this to limit rows of referenced
17676  * tables instead of the parent table
17677  * @param options.foreignTable - Deprecated, use `options.referencedTable`
17678  * instead
17679  *
17680  * @category Database
17681  * @subcategory Using modifiers
17682  *
17683  * @example With `select()`
17684  * ```ts
17685  * const { data, error } = await supabase
17686  *   .from('characters')
17687  *   .select('name')
17688  *   .limit(1)
17689  * ```
17690  *
17691  * @exampleSql With `select()`
17692  * ```sql
17693  * create table
17694  *   characters (id int8 primary key, name text);
17695  *
17696  * insert into
17697  *   characters (id, name)
17698  * values
17699  *   (1, 'Luke'),
17700  *   (2, 'Leia'),
17701  *   (3, 'Han');
17702  * ```
17703  *
17704  * @exampleResponse With `select()`
17705  * ```json
17706  * {
17707  *   "data": [
17708  *     {
17709  *       "name": "Luke"
17710  *     }
17711  *   ],
17712  *   "status": 200,
17713  *   "statusText": "OK"
17714  * }
17715  * ```
17716  *
17717  * @example On a referenced table
17718  * ```ts
17719  * const { data, error } = await supabase
17720  *   .from('orchestral_sections')
17721  *   .select(`
17722  *     name,
17723  *     instruments (
17724  *       name
17725  *     )
17726  *   `)
17727  *   .limit(1, { referencedTable: 'instruments' })
17728  * ```
17729  *
17730  * @exampleSql On a referenced table
17731  * ```sql
17732  * create table
17733  *   orchestral_sections (id int8 primary key, name text);
17734  * create table
17735  *   instruments (
17736  *     id int8 primary key,
17737  *     section_id int8 not null references orchestral_sections,
17738  *     name text
17739  *   );
17740  *
17741  * insert into
17742  *   orchestral_sections (id, name)
17743  * values
17744  *   (1, 'strings');
17745  * insert into
17746  *   instruments (id, section_id, name)
17747  * values
17748  *   (1, 1, 'harp'),
17749  *   (2, 1, 'violin');
17750  * ```
17751  *
17752  * @exampleResponse On a referenced table
17753  * ```json
17754  * {
17755  *   "data": [
17756  *     {
17757  *       "name": "strings",
17758  *       "instruments": [
17759  *         {
17760  *           "name": "violin"
17761  *         }
17762  *       ]
17763  *     }
17764  *   ],
17765  *   "status": 200,
17766  *   "statusText": "OK"
17767  * }
17768  * ```
17769  */
17770  limit(t, { foreignTable: e, referencedTable: s = e } = {}) {
17771    const r = typeof s > "u" ? "limit" : `${s}.limit`;
17772    return this.url.searchParams.set(r, `${t}`), this;
17773  }
17774  /**
17775  * Limit the query result by starting at an offset `from` and ending at the offset `to`.
17776  * Only records within this range are returned.
17777  * This respects the query order and if there is no order clause the range could behave unexpectedly.
17778  * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third
17779  * and fourth rows of the query.
17780  *
17781  * @param from - The starting index from which to limit the result
17782  * @param to - The last index to which to limit the result
17783  * @param options - Named parameters
17784  * @param options.referencedTable - Set this to limit rows of referenced
17785  * tables instead of the parent table
17786  * @param options.foreignTable - Deprecated, use `options.referencedTable`
17787  * instead
17788  *
17789  * @category Database
17790  * @subcategory Using modifiers
17791  *
17792  * @example With `select()`
17793  * ```ts
17794  * const { data, error } = await supabase
17795  *   .from('characters')
17796  *   .select('name')
17797  *   .range(0, 1)
17798  * ```
17799  *
17800  * @exampleSql With `select()`
17801  * ```sql
17802  * create table
17803  *   characters (id int8 primary key, name text);
17804  *
17805  * insert into
17806  *   characters (id, name)
17807  * values
17808  *   (1, 'Luke'),
17809  *   (2, 'Leia'),
17810  *   (3, 'Han');
17811  * ```
17812  *
17813  * @exampleResponse With `select()`
17814  * ```json
17815  * {
17816  *   "data": [
17817  *     {
17818  *       "name": "Luke"
17819  *     },
17820  *     {
17821  *       "name": "Leia"
17822  *     }
17823  *   ],
17824  *   "status": 200,
17825  *   "statusText": "OK"
17826  * }
17827  * ```
17828  */
17829  range(t, e, { foreignTable: s, referencedTable: r = s } = {}) {
17830    const n = typeof r > "u" ? "offset" : `${r}.offset`, o = typeof r > "u" ? "limit" : `${r}.limit`;
17831    return this.url.searchParams.set(n, `${t}`), this.url.searchParams.set(o, `${e - t + 1}`), this;
17832  }
17833  /**
17834  * Set the AbortSignal for the fetch request.
17835  *
17836  * @param signal - The AbortSignal to use for the fetch request
17837  *
17838  * @category Database
17839  * @subcategory Using modifiers
17840  *
17841  * @remarks
17842  * You can use this to set a timeout for the request.
17843  *
17844  * @exampleDescription Aborting requests in-flight
17845  * You can use an [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) to abort requests.
17846  * Note that `status` and `statusText` don't mean anything for aborted requests as the request wasn't fulfilled.
17847  *
17848  * @example Aborting requests in-flight
17849  * ```ts
17850  * const ac = new AbortController()
17851  *
17852  * const { data, error } = await supabase
17853  *   .from('very_big_table')
17854  *   .select()
17855  *   .abortSignal(ac.signal)
17856  *
17857  * // Abort the request after 100 ms
17858  * setTimeout(() => ac.abort(), 100)
17859  * ```
17860  *
17861  * @exampleResponse Aborting requests in-flight
17862  * ```json
17863  *   {
17864  *     "error": {
17865  *       "message": "AbortError: The user aborted a request.",
17866  *       "details": "",
17867  *       "hint": "The request was aborted locally via the provided AbortSignal.",
17868  *       "code": ""
17869  *     },
17870  *     "status": 0,
17871  *     "statusText": ""
17872  *   }
17873  *
17874  * ```
17875  *
17876  * @example Set a timeout
17877  * ```ts
17878  * const { data, error } = await supabase
17879  *   .from('very_big_table')
17880  *   .select()
17881  *   .abortSignal(AbortSignal.timeout(1000 /* ms *\/))
17882  * ```
17883  *
17884  * @exampleResponse Set a timeout
17885  * ```json
17886  *   {
17887  *     "error": {
17888  *       "message": "FetchError: The user aborted a request.",
17889  *       "details": "",
17890  *       "hint": "",
17891  *       "code": ""
17892  *     },
17893  *     "status": 0,
17894  *     "statusText": ""
17895  *   }
17896  *
17897  * ```
17898  */
17899  abortSignal(t) {
17900    return this.signal = t, this;
17901  }
17902  /**
17903  * Return `data` as a single object instead of an array of objects.
17904  *
17905  * Query result must be one row (e.g. using `.limit(1)`), otherwise this
17906  * returns an error.
17907  *
17908  * @category Database
17909  * @subcategory Using modifiers
17910  *
17911  * @example With `select()`
17912  * ```ts
17913  * const { data, error } = await supabase
17914  *   .from('characters')
17915  *   .select('name')
17916  *   .limit(1)
17917  *   .single()
17918  * ```
17919  *
17920  * @exampleSql With `select()`
17921  * ```sql
17922  * create table
17923  *   characters (id int8 primary key, name text);
17924  *
17925  * insert into
17926  *   characters (id, name)
17927  * values
17928  *   (1, 'Luke'),
17929  *   (2, 'Leia'),
17930  *   (3, 'Han');
17931  * ```
17932  *
17933  * @exampleResponse With `select()`
17934  * ```json
17935  * {
17936  *   "data": {
17937  *     "name": "Luke"
17938  *   },
17939  *   "status": 200,
17940  *   "statusText": "OK"
17941  * }
17942  * ```
17943  */
17944  single() {
17945    return this.headers.set("Accept", "application/vnd.pgrst.object+json"), this;
17946  }
17947  /**
17948  * Return `data` as a single object instead of an array of objects.
17949  *
17950  * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise
17951  * this returns an error.
17952  *
17953  * @category Database
17954  * @subcategory Using modifiers
17955  *
17956  * @example With `select()`
17957  * ```ts
17958  * const { data, error } = await supabase
17959  *   .from('characters')
17960  *   .select()
17961  *   .eq('name', 'Katniss')
17962  *   .maybeSingle()
17963  * ```
17964  *
17965  * @exampleSql With `select()`
17966  * ```sql
17967  * create table
17968  *   characters (id int8 primary key, name text);
17969  *
17970  * insert into
17971  *   characters (id, name)
17972  * values
17973  *   (1, 'Luke'),
17974  *   (2, 'Leia'),
17975  *   (3, 'Han');
17976  * ```
17977  *
17978  * @exampleResponse With `select()`
17979  * ```json
17980  * {
17981  *   "status": 200,
17982  *   "statusText": "OK"
17983  * }
17984  * ```
17985  */
17986  maybeSingle() {
17987    return this.isMaybeSingle = !0, this;
17988  }
17989  /**
17990  * Return `data` as a string in CSV format.
17991  *
17992  * @category Database
17993  * @subcategory Using modifiers
17994  *
17995  * @exampleDescription Return data as CSV
17996  * By default, the data is returned in JSON format, but can also be returned as Comma Separated Values.
17997  *
17998  * @example Return data as CSV
17999  * ```ts
18000  * const { data, error } = await supabase
18001  *   .from('characters')
18002  *   .select()
18003  *   .csv()
18004  * ```
18005  *
18006  * @exampleSql Return data as CSV
18007  * ```sql
18008  * create table
18009  *   characters (id int8 primary key, name text);
18010  *
18011  * insert into
18012  *   characters (id, name)
18013  * values
18014  *   (1, 'Luke'),
18015  *   (2, 'Leia'),
18016  *   (3, 'Han');
18017  * ```
18018  *
18019  * @exampleResponse Return data as CSV
18020  * ```json
18021  * {
18022  *   "data": "id,name\n1,Luke\n2,Leia\n3,Han",
18023  *   "status": 200,
18024  *   "statusText": "OK"
18025  * }
18026  * ```
18027  */
18028  csv() {
18029    return this.headers.set("Accept", "text/csv"), this;
18030  }
18031  /**
18032  * Return `data` as an object in [GeoJSON](https://geojson.org) format.
18033  *
18034  * @category Database
18035  * @subcategory Using modifiers
18036  */
18037  geojson() {
18038    return this.headers.set("Accept", "application/geo+json"), this;
18039  }
18040  /**
18041  * Return `data` as the EXPLAIN plan for the query.
18042  *
18043  * You need to enable the
18044  * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)
18045  * setting before using this method.
18046  *
18047  * @param options - Named parameters
18048  *
18049  * @param options.analyze - If `true`, the query will be executed and the
18050  * actual run time will be returned
18051  *
18052  * @param options.verbose - If `true`, the query identifier will be returned
18053  * and `data` will include the output columns of the query
18054  *
18055  * @param options.settings - If `true`, include information on configuration
18056  * parameters that affect query planning
18057  *
18058  * @param options.buffers - If `true`, include information on buffer usage
18059  *
18060  * @param options.wal - If `true`, include information on WAL record generation
18061  *
18062  * @param options.format - The format of the output, can be `"text"` (default)
18063  * or `"json"`
18064  *
18065  * @category Database
18066  * @subcategory Using modifiers
18067  *
18068  * @exampleDescription Get the execution plan
18069  * By default, the data is returned in TEXT format, but can also be returned as JSON by using the `format` parameter.
18070  *
18071  * @example Get the execution plan
18072  * ```ts
18073  * const { data, error } = await supabase
18074  *   .from('characters')
18075  *   .select()
18076  *   .explain()
18077  * ```
18078  *
18079  * @exampleSql Get the execution plan
18080  * ```sql
18081  * create table
18082  *   characters (id int8 primary key, name text);
18083  *
18084  * insert into
18085  *   characters (id, name)
18086  * values
18087  *   (1, 'Luke'),
18088  *   (2, 'Leia'),
18089  *   (3, 'Han');
18090  * ```
18091  *
18092  * @exampleResponse Get the execution plan
18093  * ```js
18094  * Aggregate  (cost=33.34..33.36 rows=1 width=112)
18095  *   ->  Limit  (cost=0.00..18.33 rows=1000 width=40)
18096  *         ->  Seq Scan on characters  (cost=0.00..22.00 rows=1200 width=40)
18097  * ```
18098  *
18099  * @exampleDescription Get the execution plan with analyze and verbose
18100  * By default, the data is returned in TEXT format, but can also be returned as JSON by using the `format` parameter.
18101  *
18102  * @example Get the execution plan with analyze and verbose
18103  * ```ts
18104  * const { data, error } = await supabase
18105  *   .from('characters')
18106  *   .select()
18107  *   .explain({analyze:true,verbose:true})
18108  * ```
18109  *
18110  * @exampleSql Get the execution plan with analyze and verbose
18111  * ```sql
18112  * create table
18113  *   characters (id int8 primary key, name text);
18114  *
18115  * insert into
18116  *   characters (id, name)
18117  * values
18118  *   (1, 'Luke'),
18119  *   (2, 'Leia'),
18120  *   (3, 'Han');
18121  * ```
18122  *
18123  * @exampleResponse Get the execution plan with analyze and verbose
18124  * ```js
18125  * Aggregate  (cost=33.34..33.36 rows=1 width=112) (actual time=0.041..0.041 rows=1 loops=1)
18126  *   Output: NULL::bigint, count(ROW(characters.id, characters.name)), COALESCE(json_agg(ROW(characters.id, characters.name)), '[]'::json), NULLIF(current_setting('response.headers'::text, true), ''::text), NULLIF(current_setting('response.status'::text, true), ''::text)
18127  *   ->  Limit  (cost=0.00..18.33 rows=1000 width=40) (actual time=0.005..0.006 rows=3 loops=1)
18128  *         Output: characters.id, characters.name
18129  *         ->  Seq Scan on public.characters  (cost=0.00..22.00 rows=1200 width=40) (actual time=0.004..0.005 rows=3 loops=1)
18130  *               Output: characters.id, characters.name
18131  * Query Identifier: -4730654291623321173
18132  * Planning Time: 0.407 ms
18133  * Execution Time: 0.119 ms
18134  * ```
18135  */
18136  explain({ analyze: t = !1, verbose: e = !1, settings: s = !1, buffers: r = !1, wal: n = !1, format: o = "text" } = {}) {
18137    var L;
18138    const d = [
18139      t ? "analyze" : null,
18140      e ? "verbose" : null,
18141      s ? "settings" : null,
18142      r ? "buffers" : null,
18143      n ? "wal" : null
18144    ].filter(Boolean).join("|"), l = (L = this.headers.get("Accept")) !== null && L !== void 0 ? L : "application/json";
18145    return this.headers.set("Accept", `application/vnd.pgrst.plan+${o}; for="${l}"; options=${d};`), o === "json" ? this : this;
18146  }
18147  /**
18148  * Dry-run this request: execute the query but discard the changes.
18149  *
18150  * Server-side, PostgREST runs the query inside a transaction and rolls it back
18151  * instead of committing. The response still contains the data that *would* have
18152  * been returned — `RETURNING` clauses execute and RLS, triggers, and constraints
18153  * are all evaluated — but no row is actually inserted, updated, or deleted.
18154  *
18155  * This affects only the single request it is chained to. The JS caller has no
18156  * handle on the transaction: supabase-js does not group multiple queries into
18157  * one transaction. For multi-statement transactional logic, use a database
18158  * function (`supabase.rpc(...)`).
18159  *
18160  * Sets the `Prefer: tx=rollback` header. See PostgREST's docs on transaction
18161  * preferences for the underlying mechanism.
18162  *
18163  * @category Database
18164  * @subcategory Using modifiers
18165  *
18166  * @example Validate an insert without persisting
18167  * ```ts
18168  * const { data, error } = await supabase
18169  *   .from('countries')
18170  *   .insert({ name: 'France' })
18171  *   .select()
18172  *   .rollback()
18173  * // `data` shows what would have been inserted; nothing is saved.
18174  * ```
18175  */
18176  rollback() {
18177    return this.headers.append("Prefer", "tx=rollback"), this;
18178  }
18179  /**
18180  * Override the type of the returned `data`.
18181  *
18182  * @typeParam NewResult - The new result type to override with
18183  * @deprecated Use overrideTypes<yourType, { merge: false }>() method at the end of your call chain instead
18184  *
18185  * @category Database
18186  * @subcategory Using modifiers
18187  *
18188  * @remarks
18189  * - Deprecated: use overrideTypes method instead
18190  *
18191  * @example Override type of successful response
18192  * ```ts
18193  * const { data } = await supabase
18194  *   .from('countries')
18195  *   .select()
18196  *   .returns<Array<MyType>>()
18197  * ```
18198  *
18199  * @exampleResponse Override type of successful response
18200  * ```js
18201  * let x: typeof data // MyType[]
18202  * ```
18203  *
18204  * @example Override type of object response
18205  * ```ts
18206  * const { data } = await supabase
18207  *   .from('countries')
18208  *   .select()
18209  *   .maybeSingle()
18210  *   .returns<MyType>()
18211  * ```
18212  *
18213  * @exampleResponse Override type of object response
18214  * ```js
18215  * let x: typeof data // MyType | null
18216  * ```
18217  */
18218  returns() {
18219    return this;
18220  }
18221  /**
18222  * Set the maximum number of rows that can be affected by the query.
18223  * Only available in PostgREST v13+ and only works with PATCH and DELETE methods.
18224  *
18225  * @param rows - The maximum number of rows that can be affected
18226  *
18227  * @category Database
18228  * @subcategory Using modifiers
18229  */
18230  maxAffected(t) {
18231    return this.headers.append("Prefer", "handling=strict"), this.headers.append("Prefer", `max-affected=${t}`), this;
18232  }
18233};
18234const Ya = /* @__PURE__ */ new RegExp("[,()]");
18235var st = class extends $M {
18236  throwOnError() {
18237    return super.throwOnError();
18238  }
18239  /**
18240  * Match only rows where `column` is equal to `value`.
18241  *
18242  * To check if the value of `column` is NULL, you should use `.is()` instead.
18243  *
18244  * @param column - The column to filter on
18245  * @param value - The value to filter with
18246  *
18247  * @category Database
18248  * @subcategory Using filters
18249  *
18250  * @example With `select()`
18251  * ```ts
18252  * const { data, error } = await supabase
18253  *   .from('characters')
18254  *   .select()
18255  *   .eq('name', 'Leia')
18256  * ```
18257  *
18258  * @exampleSql With `select()`
18259  * ```sql
18260  * create table
18261  *   characters (id int8 primary key, name text);
18262  *
18263  * insert into
18264  *   characters (id, name)
18265  * values
18266  *   (1, 'Luke'),
18267  *   (2, 'Leia'),
18268  *   (3, 'Han');
18269  * ```
18270  *
18271  * @exampleResponse With `select()`
18272  * ```json
18273  * {
18274  *   "data": [
18275  *     {
18276  *       "id": 2,
18277  *       "name": "Leia"
18278  *     }
18279  *   ],
18280  *   "status": 200,
18281  *   "statusText": "OK"
18282  * }
18283  * ```
18284  */
18285  eq(t, e) {
18286    return this.url.searchParams.append(t, `eq.${e}`), this;
18287  }
18288  /**
18289  * Match only rows where `column` is not equal to `value`.
18290  *
18291  * This filter does not include rows where `column` is `NULL`. To match null
18292  * values, use `.is(column, null)` instead.
18293  *
18294  * @param column - The column to filter on
18295  * @param value - The value to filter with
18296  *
18297  * @category Database
18298  * @subcategory Using filters
18299  *
18300  * @example With `select()`
18301  * ```ts
18302  * const { data, error } = await supabase
18303  *   .from('characters')
18304  *   .select()
18305  *   .neq('name', 'Leia')
18306  * ```
18307  *
18308  * @exampleSql With `select()`
18309  * ```sql
18310  * create table
18311  *   characters (id int8 primary key, name text);
18312  *
18313  * insert into
18314  *   characters (id, name)
18315  * values
18316  *   (1, 'Luke'),
18317  *   (2, 'Leia'),
18318  *   (3, 'Han');
18319  * ```
18320  *
18321  * @exampleResponse With `select()`
18322  * ```json
18323  * {
18324  *   "data": [
18325  *     {
18326  *       "id": 1,
18327  *       "name": "Luke"
18328  *     },
18329  *     {
18330  *       "id": 3,
18331  *       "name": "Han"
18332  *     }
18333  *   ],
18334  *   "status": 200,
18335  *   "statusText": "OK"
18336  * }
18337  * ```
18338  */
18339  neq(t, e) {
18340    return this.url.searchParams.append(t, `neq.${e}`), this;
18341  }
18342  gt(t, e) {
18343    return this.url.searchParams.append(t, `gt.${e}`), this;
18344  }
18345  gte(t, e) {
18346    return this.url.searchParams.append(t, `gte.${e}`), this;
18347  }
18348  lt(t, e) {
18349    return this.url.searchParams.append(t, `lt.${e}`), this;
18350  }
18351  lte(t, e) {
18352    return this.url.searchParams.append(t, `lte.${e}`), this;
18353  }
18354  like(t, e) {
18355    return this.url.searchParams.append(t, `like.${e}`), this;
18356  }
18357  likeAllOf(t, e) {
18358    return this.url.searchParams.append(t, `like(all).{${e.join(",")}}`), this;
18359  }
18360  likeAnyOf(t, e) {
18361    return this.url.searchParams.append(t, `like(any).{${e.join(",")}}`), this;
18362  }
18363  ilike(t, e) {
18364    return this.url.searchParams.append(t, `ilike.${e}`), this;
18365  }
18366  ilikeAllOf(t, e) {
18367    return this.url.searchParams.append(t, `ilike(all).{${e.join(",")}}`), this;
18368  }
18369  ilikeAnyOf(t, e) {
18370    return this.url.searchParams.append(t, `ilike(any).{${e.join(",")}}`), this;
18371  }
18372  regexMatch(t, e) {
18373    return this.url.searchParams.append(t, `match.${e}`), this;
18374  }
18375  regexIMatch(t, e) {
18376    return this.url.searchParams.append(t, `imatch.${e}`), this;
18377  }
18378  is(t, e) {
18379    return this.url.searchParams.append(t, `is.${e}`), this;
18380  }
18381  /**
18382  * Match only rows where `column` IS DISTINCT FROM `value`.
18383  *
18384  * Unlike `.neq()`, this treats `NULL` as a comparable value. Two `NULL` values
18385  * are considered equal (not distinct), and comparing `NULL` with any non-NULL
18386  * value returns true (distinct).
18387  *
18388  * @param column - The column to filter on
18389  * @param value - The value to filter with
18390  */
18391  isDistinct(t, e) {
18392    return this.url.searchParams.append(t, `isdistinct.${e}`), this;
18393  }
18394  /**
18395  * Match only rows where `column` is included in the `values` array.
18396  *
18397  * @param column - The column to filter on
18398  * @param values - The values array to filter with
18399  *
18400  * @category Database
18401  * @subcategory Using filters
18402  *
18403  * @example With `select()`
18404  * ```ts
18405  * const { data, error } = await supabase
18406  *   .from('characters')
18407  *   .select()
18408  *   .in('name', ['Leia', 'Han'])
18409  * ```
18410  *
18411  * @exampleSql With `select()`
18412  * ```sql
18413  * create table
18414  *   characters (id int8 primary key, name text);
18415  *
18416  * insert into
18417  *   characters (id, name)
18418  * values
18419  *   (1, 'Luke'),
18420  *   (2, 'Leia'),
18421  *   (3, 'Han');
18422  * ```
18423  *
18424  * @exampleResponse With `select()`
18425  * ```json
18426  * {
18427  *   "data": [
18428  *     {
18429  *       "id": 2,
18430  *       "name": "Leia"
18431  *     },
18432  *     {
18433  *       "id": 3,
18434  *       "name": "Han"
18435  *     }
18436  *   ],
18437  *   "status": 200,
18438  *   "statusText": "OK"
18439  * }
18440  * ```
18441  */
18442  in(t, e) {
18443    const s = Array.from(new Set(e)).map((r) => typeof r == "string" && Ya.test(r) ? `"${r}"` : `${r}`).join(",");
18444    return this.url.searchParams.append(t, `in.(${s})`), this;
18445  }
18446  /**
18447  * Match only rows where `column` is NOT included in the `values` array.
18448  *
18449  * @param column - The column to filter on
18450  * @param values - The values array to filter with
18451  */
18452  notIn(t, e) {
18453    const s = Array.from(new Set(e)).map((r) => typeof r == "string" && Ya.test(r) ? `"${r}"` : `${r}`).join(",");
18454    return this.url.searchParams.append(t, `not.in.(${s})`), this;
18455  }
18456  contains(t, e) {
18457    return typeof e == "string" ? this.url.searchParams.append(t, `cs.${e}`) : Array.isArray(e) ? this.url.searchParams.append(t, `cs.{${e.join(",")}}`) : this.url.searchParams.append(t, `cs.${JSON.stringify(e)}`), this;
18458  }
18459  containedBy(t, e) {
18460    return typeof e == "string" ? this.url.searchParams.append(t, `cd.${e}`) : Array.isArray(e) ? this.url.searchParams.append(t, `cd.{${e.join(",")}}`) : this.url.searchParams.append(t, `cd.${JSON.stringify(e)}`), this;
18461  }
18462  rangeGt(t, e) {
18463    return this.url.searchParams.append(t, `sr.${e}`), this;
18464  }
18465  rangeGte(t, e) {
18466    return this.url.searchParams.append(t, `nxl.${e}`), this;
18467  }
18468  rangeLt(t, e) {
18469    return this.url.searchParams.append(t, `sl.${e}`), this;
18470  }
18471  rangeLte(t, e) {
18472    return this.url.searchParams.append(t, `nxr.${e}`), this;
18473  }
18474  rangeAdjacent(t, e) {
18475    return this.url.searchParams.append(t, `adj.${e}`), this;
18476  }
18477  overlaps(t, e) {
18478    return typeof e == "string" ? this.url.searchParams.append(t, `ov.${e}`) : this.url.searchParams.append(t, `ov.{${e.join(",")}}`), this;
18479  }
18480  textSearch(t, e, { config: s, type: r } = {}) {
18481    let n = "";
18482    r === "plain" ? n = "pl" : r === "phrase" ? n = "ph" : r === "websearch" && (n = "w");
18483    const o = s === void 0 ? "" : `(${s})`;
18484    return this.url.searchParams.append(t, `${n}fts${o}.${e}`), this;
18485  }
18486  match(t) {
18487    return Object.entries(t).filter(([e, s]) =>
18487 s !== void 0).forEach(([e, s]) => {
18488      this.url.searchParams.append(e, `eq.${s}`);
18489    }), this;
18490  }
18491  /**
18492  * Match only rows which doesn't satisfy the filter.
18493  *
18494  * Unlike most filters, `opearator` and `value` are used as-is and need to
18495  * follow [PostgREST
18496  * syntax](https://postgrest.org/en/stable/api.html#operators). You also need
18497  * to make sure they are properly sanitized.
18498  *
18499  * @param column - The column to filter on
18500  * @param operator - The operator to be negated to filter with, following
18501  * PostgREST syntax
18502  * @param value - The value to filter with, following PostgREST syntax
18503  *
18504  * @category Database
18505  * @subcategory Using filters
18506  *
18507  * @remarks
18508  * not() expects you to use the raw PostgREST syntax for the filter values.
18509  *
18510  * ```ts
18511  * .not('id', 'in', '(5,6,7)')  // Use `()` for `in` filter
18512  * .not('arraycol', 'cs', '{"a","b"}')  // Use `cs` for `contains()`, `{}` for array values
18513  * ```
18514  *
18515  * @example With `select()`
18516  * ```ts
18517  * const { data, error } = await supabase
18518  *   .from('countries')
18519  *   .select()
18520  *   .not('name', 'is', null)
18521  * ```
18522  *
18523  * @exampleSql With `select()`
18524  * ```sql
18525  * create table
18526  *   countries (id int8 primary key, name text);
18527  *
18528  * insert into
18529  *   countries (id, name)
18530  * values
18531  *   (1, 'null'),
18532  *   (2, null);
18533  * ```
18534  *
18535  * @exampleResponse With `select()`
18536  * ```json
18537  *   {
18538  *     "data": [
18539  *       {
18540  *         "id": 1,
18541  *         "name": "null"
18542  *       }
18543  *     ],
18544  *     "status": 200,
18545  *     "statusText": "OK"
18546  *   }
18547  *
18548  * ```
18549  */
18550  not(t, e, s) {
18551    return this.url.searchParams.append(t, `not.${e}.${s}`), this;
18552  }
18553  /**
18554  * Match only rows which satisfy at least one of the filters.
18555  *
18556  * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST
18557  * syntax](https://postgrest.org/en/stable/api.html#operators). You also need
18558  * to make sure it's properly sanitized.
18559  *
18560  * It's currently not possible to do an `.or()` filter across multiple tables.
18561  *
18562  * @param filters - The filters to use, following PostgREST syntax
18563  * @param options - Named parameters
18564  * @param options.referencedTable - Set this to filter on referenced tables
18565  * instead of the parent table
18566  * @param options.foreignTable - Deprecated, use `referencedTable` instead
18567  *
18568  * @category Database
18569  * @subcategory Using filters
18570  *
18571  * @remarks
18572  * or() expects you to use the raw PostgREST syntax for the filter names and values.
18573  *
18574  * ```ts
18575  * .or('id.in.(5,6,7), arraycol.cs.{"a","b"}')  // Use `()` for `in` filter, `{}` for array values and `cs` for `contains()`.
18576  * .or('id.in.(5,6,7), arraycol.cd.{"a","b"}')  // Use `cd` for `containedBy()`
18577  * ```
18578  *
18579  * @example With `select()`
18580  * ```ts
18581  * const { data, error } = await supabase
18582  *   .from('characters')
18583  *   .select('name')
18584  *   .or('id.eq.2,name.eq.Han')
18585  * ```
18586  *
18587  * @exampleSql With `select()`
18588  * ```sql
18589  * create table
18590  *   characters (id int8 primary key, name text);
18591  *
18592  * insert into
18593  *   characters (id, name)
18594  * values
18595  *   (1, 'Luke'),
18596  *   (2, 'Leia'),
18597  *   (3, 'Han');
18598  * ```
18599  *
18600  * @exampleResponse With `select()`
18601  * ```json
18602  * {
18603  *   "data": [
18604  *     {
18605  *       "name": "Leia"
18606  *     },
18607  *     {
18608  *       "name": "Han"
18609  *     }
18610  *   ],
18611  *   "status": 200,
18612  *   "statusText": "OK"
18613  * }
18614  * ```
18615  *
18616  * @example Use `or` with `and`
18617  * ```ts
18618  * const { data, error } = await supabase
18619  *   .from('characters')
18620  *   .select('name')
18621  *   .or('id.gt.3,and(id.eq.1,name.eq.Luke)')
18622  * ```
18623  *
18624  * @exampleSql Use `or` with `and`
18625  * ```sql
18626  * create table
18627  *   characters (id int8 primary key, name text);
18628  *
18629  * insert into
18630  *   characters (id, name)
18631  * values
18632  *   (1, 'Luke'),
18633  *   (2, 'Leia'),
18634  *   (3, 'Han');
18635  * ```
18636  *
18637  * @exampleResponse Use `or` with `and`
18638  * ```json
18639  * {
18640  *   "data": [
18641  *     {
18642  *       "name": "Luke"
18643  *     }
18644  *   ],
18645  *   "status": 200,
18646  *   "statusText": "OK"
18647  * }
18648  * ```
18649  *
18650  * @example Use `or` on referenced tables
18651  * ```ts
18652  * const { data, error } = await supabase
18653  *   .from('orchestral_sections')
18654  *   .select(`
18655  *     name,
18656  *     instruments!inner (
18657  *       name
18658  *     )
18659  *   `)
18660  *   .or('section_id.eq.1,name.eq.guzheng', { referencedTable: 'instruments' })
18661  * ```
18662  *
18663  * @exampleSql Use `or` on referenced tables
18664  * ```sql
18665  * create table
18666  *   orchestral_sections (id int8 primary key, name text);
18667  * create table
18668  *   instruments (
18669  *     id int8 primary key,
18670  *     section_id int8 not null references orchestral_sections,
18671  *     name text
18672  *   );
18673  *
18674  * insert into
18675  *   orchestral_sections (id, name)
18676  * values
18677  *   (1, 'strings'),
18678  *   (2, 'woodwinds');
18679  * insert into
18680  *   instruments (id, section_id, name)
18681  * values
18682  *   (1, 2, 'flute'),
18683  *   (2, 1, 'violin');
18684  * ```
18685  *
18686  * @exampleResponse Use `or` on referenced tables
18687  * ```json
18688  * {
18689  *   "data": [
18690  *     {
18691  *       "name": "strings",
18692  *       "instruments": [
18693  *         {
18694  *           "name": "violin"
18695  *         }
18696  *       ]
18697  *     }
18698  *   ],
18699  *   "status": 200,
18700  *   "statusText": "OK"
18701  * }
18702  * ```
18703  */
18704  or(t, { foreignTable: e, referencedTable: s = e } = {}) {
18705    const r = s ? `${s}.or` : "or";
18706    return this.url.searchParams.append(r, `(${t})`), this;
18707  }
18708  filter(t, e, s) {
18709    return this.url.searchParams.append(t, `${e}.${s}`), this;
18710  }
18711}, qM = class {
18712  /**
18713  * Creates a query builder scoped to a Postgres table or view.
18714  *
18715  * @category Database
18716  *
18717  * @param url - The URL for the query
18718  * @param options - Named parameters
18719  * @param options.headers - Custom headers
18720  * @param options.schema - Postgres schema to use
18721  * @param options.fetch - Custom fetch implementation
18722  * @param options.urlLengthLimit - Maximum URL length before warning
18723  * @param options.retry - Enable automatic retries for transient errors (default: true)
18724  *
18725  * @example Using supabase-js (recommended)
18726  * ```ts
18727  * import { createClient } from '@supabase/supabase-js'
18728  *
18729  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
18730  * const { data, error } = await supabase.from('users').select('*')
18731  * ```
18732  *
18733  * @example Standalone import for bundle-sensitive environments
18734  * ```ts
18735  * import { PostgrestQueryBuilder } from '@supabase/postgrest-js'
18736  *
18737  * const query = new PostgrestQueryBuilder(
18738  *   new URL('https://xyzcompany.supabase.co/rest/v1/users'),
18739  *   { headers: { apikey: 'your-publishable-key' }, retry: true }
18740  * )
18741  * ```
18742  */
18743  constructor(t, { headers: e = {}, schema: s, fetch: r, urlLengthLimit: n = 8e3, retry: o }) {
18744    this.url = t, this.headers = new Headers(e), this.schema = s, this.fetch = r, this.urlLengthLimit = n, this.retry = o;
18745  }
18746  /**
18747  * Clone URL and headers to prevent shared state between operations.
18748  */
18749  cloneRequestState() {
18750    return {
18751      url: new URL(this.url.toString()),
18752      headers: new Headers(this.headers)
18753    };
18754  }
18755  /**
18756  * Perform a SELECT query on the table or view.
18757  *
18758  * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`
18759  *
18760  * @param options - Named parameters
18761  *
18762  * @param options.head - When set to `true`, `data` will not be returned.
18763  * Useful if you only need the count.
18764  *
18765  * @param options.count - Count algorithm to use to count rows in the table or view.
18766  *
18767  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
18768  * hood.
18769  *
18770  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
18771  * statistics under the hood.
18772  *
18773  * `"estimated"`: Uses exact count for low numbers and planned count for high
18774  * numbers.
18775  *
18776  * @remarks
18777  * When using `count` with `.range()` or `.limit()`, the returned `count` is the total number of rows
18778  * that match your filters, not the number of rows in the current page. Use this to build pagination UI.
18779  
18780  * - By default, Supabase projects return a maximum of 1,000 rows. This setting can be changed in your project's [API settings](/dashboard/project/_/settings/api). It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data.
18781  * - `select()` can be combined with [Filters](/docs/reference/javascript/using-filters)
18782  * - `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers)
18783  * - `apikey` is a reserved keyword if you're using the [Supabase Platform](/docs/guides/platform) and [should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). *
18784  * @category Database
18785  *
18786  * @example Getting your data
18787  * ```js
18788  * const { data, error } = await supabase
18789  *   .from('characters')
18790  *   .select()
18791  * ```
18792  *
18793  * @exampleSql Getting your data
18794  * ```sql
18795  * create table
18796  *   characters (id int8 primary key, name text);
18797  *
18798  * insert into
18799  *   characters (id, name)
18800  * values
18801  *   (1, 'Harry'),
18802  *   (2, 'Frodo'),
18803  *   (3, 'Katniss');
18804  * ```
18805  *
18806  * @exampleResponse Getting your data
18807  * ```json
18808  * {
18809  *   "data": [
18810  *     {
18811  *       "id": 1,
18812  *       "name": "Harry"
18813  *     },
18814  *     {
18815  *       "id": 2,
18816  *       "name": "Frodo"
18817  *     },
18818  *     {
18819  *       "id": 3,
18820  *       "name": "Katniss"
18821  *     }
18822  *   ],
18823  *   "status": 200,
18824  *   "statusText": "OK"
18825  * }
18826  * ```
18827  *
18828  * @exampleDescription Handling errors
18829  * The most useful field on a Postgres error is usually `hint` — when the database knows the fix, it puts the literal SQL there. For example, a permission-denied error (`code: '42501'`) arrives with a `hint` like `"Grant the required privileges to the current role with: GRANT SELECT ON public.characters TO anon;"`. Log the full `error` object so the hint isn't hidden behind `error.message`.
18830  *
18831  * @example Handling errors
18832  * ```js
18833  * const { data, error } = await supabase.from('characters').select()
18834  * if (error) {
18835  *   // Logs the full error: message, code, details, and hint.
18836  *   console.error(error)
18837  *   return
18838  * }
18839  * ```
18840  *
18841  * @exampleResponse Handling errors
18842  * ```json
18843  * {
18844  *   "error": {
18845  *     "code": "42501",
18846  *     "details": null,
18847  *     "hint": "Grant the required privileges to the current role with: GRANT SELECT ON public.characters TO anon;",
18848  *     "message": "permission denied for table characters"
18849  *   },
18850  *   "status": 401,
18851  *   "statusText": ""
18852  * }
18853  * ```
18854  *
18855  * @example Selecting specific columns
18856  * ```js
18857  * const { data, error } = await supabase
18858  *   .from('characters')
18859  *   .select('name')
18860  * ```
18861  *
18862  * @exampleSql Selecting specific columns
18863  * ```sql
18864  * create table
18865  *   characters (id int8 primary key, name text);
18866  *
18867  * insert into
18868  *   characters (id, name)
18869  * values
18870  *   (1, 'Frodo'),
18871  *   (2, 'Harry'),
18872  *   (3, 'Katniss');
18873  * ```
18874  *
18875  * @exampleResponse Selecting specific columns
18876  * ```json
18877  * {
18878  *   "data": [
18879  *     {
18880  *       "name": "Frodo"
18881  *     },
18882  *     {
18883  *       "name": "Harry"
18884  *     },
18885  *     {
18886  *       "name": "Katniss"
18887  *     }
18888  *   ],
18889  *   "status": 200,
18890  *   "statusText": "OK"
18891  * }
18892  * ```
18893  *
18894  * @exampleDescription Query referenced tables
18895  * If your database has foreign key relationships, you can query related tables too.
18896  *
18897  * @example Query referenced tables
18898  * ```js
18899  * const { data, error } = await supabase
18900  *   .from('orchestral_sections')
18901  *   .select(`
18902  *     name,
18903  *     instruments (
18904  *       name
18905  *     )
18906  *   `)
18907  * ```
18908  *
18909  * @exampleSql Query referenced tables
18910  * ```sql
18911  * create table
18912  *   orchestral_sections (id int8 primary key, name text);
18913  * create table
18914  *   instruments (
18915  *     id int8 primary key,
18916  *     section_id int8 not null references orchestral_sections,
18917  *     name text
18918  *   );
18919  *
18920  * insert into
18921  *   orchestral_sections (id, name)
18922  * values
18923  *   (1, 'strings'),
18924  *   (2, 'woodwinds');
18925  * insert into
18926  *   instruments (id, section_id, name)
18927  * values
18928  *   (1, 2, 'flute'),
18929  *   (2, 1, 'violin');
18930  * ```
18931  *
18932  * @exampleResponse Query referenced tables
18933  * ```json
18934  * {
18935  *   "data": [
18936  *     {
18937  *       "name": "strings",
18938  *       "instruments": [
18939  *         {
18940  *           "name": "violin"
18941  *         }
18942  *       ]
18943  *     },
18944  *     {
18945  *       "name": "woodwinds",
18946  *       "instruments": [
18947  *         {
18948  *           "name": "flute"
18949  *         }
18950  *       ]
18951  *     }
18952  *   ],
18953  *   "status": 200,
18954  *   "statusText": "OK"
18955  * }
18956  * ```
18957  *
18958  * @exampleDescription Query referenced tables with spaces in their names
18959  * If your table name contains spaces, you must use double quotes in the `select` statement to reference the table.
18960  *
18961  * @example Query referenced tables with spaces in their names
18962  * ```js
18963  * const { data, error } = await supabase
18964  *   .from('orchestral sections')
18965  *   .select(`
18966  *     name,
18967  *     "musical instruments" (
18968  *       name
18969  *     )
18970  *   `)
18971  * ```
18972  *
18973  * @exampleSql Query referenced tables with spaces in their names
18974  * ```sql
18975  * create table
18976  *   "orchestral sections" (id int8 primary key, name text);
18977  * create table
18978  *   "musical instruments" (
18979  *     id int8 primary key,
18980  *     section_id int8 not null references "orchestral sections",
18981  *     name text
18982  *   );
18983  *
18984  * insert into
18985  *   "orchestral sections" (id, name)
18986  * values
18987  *   (1, 'strings'),
18988  *   (2, 'woodwinds');
18989  * insert into
18990  *   "musical instruments" (id, section_id, name)
18991  * values
18992  *   (1, 2, 'flute'),
18993  *   (2, 1, 'violin');
18994  * ```
18995  *
18996  * @exampleResponse Query referenced tables with spaces in their names
18997  * ```json
18998  * {
18999  *   "data": [
19000  *     {
19001  *       "name": "strings",
19002  *       "musical instruments": [
19003  *         {
19004  *           "name": "violin"
19005  *         }
19006  *       ]
19007  *     },
19008  *     {
19009  *       "name": "woodwinds",
19010  *       "musical instruments": [
19011  *         {
19012  *           "name": "flute"
19013  *         }
19014  *       ]
19015  *     }
19016  *   ],
19017  *   "status": 200,
19018  *   "statusText": "OK"
19019  * }
19020  * ```
19021  *
19022  * @exampleDescription Query referenced tables through a join table
19023  * If you're in a situation where your tables are **NOT** directly
19024  * related, but instead are joined by a _join table_, you can still use
19025  * the `select()` method to query the related data. The join table needs
19026  * to have the foreign keys as part of its composite primary key.
19027  *
19028  * @example Query referenced tables through a join table
19029  * ```ts
19030  * const { data, error } = await supabase
19031  *   .from('users')
19032  *   .select(`
19033  *     name,
19034  *     teams (
19035  *       name
19036  *     )
19037  *   `)
19038  *   
19039  * ```
19040  *
19041  * @exampleSql Query referenced tables through a join table
19042  * ```sql
19043  * create table
19044  *   users (
19045  *     id int8 primary key,
19046  *     name text
19047  *   );
19048  * create table
19049  *   teams (
19050  *     id int8 primary key,
19051  *     name text
19052  *   );
19053  * -- join table
19054  * create table
19055  *   users_teams (
19056  *     user_id int8 not null references users,
19057  *     team_id int8 not null references teams,
19058  *     -- both foreign keys must be part of a composite primary key
19059  *     primary key (user_id, team_id)
19060  *   );
19061  *
19062  * insert into
19063  *   users (id, name)
19064  * values
19065  *   (1, 'Kiran'),
19066  *   (2, 'Evan');
19067  * insert into
19068  *   teams (id, name)
19069  * values
19070  *   (1, 'Green'),
19071  *   (2, 'Blue');
19072  * insert into
19073  *   users_teams (user_id, team_id)
19074  * values
19075  *   (1, 1),
19076  *   (1, 2),
19077  *   (2, 2);
19078  * ```
19079  *
19080  * @exampleResponse Query referenced tables through a join table
19081  * ```json
19082  *   {
19083  *     "data": [
19084  *       {
19085  *         "name": "Kiran",
19086  *         "teams": [
19087  *           {
19088  *             "name": "Green"
19089  *           },
19090  *           {
19091  *             "name": "Blue"
19092  *           }
19093  *         ]
19094  *       },
19095  *       {
19096  *         "name": "Evan",
19097  *         "teams": [
19098  *           {
19099  *             "name": "Blue"
19100  *           }
19101  *         ]
19102  *       }
19103  *     ],
19104  *     "status": 200,
19105  *     "statusText": "OK"
19106  *   }
19107  *   
19108  * ```
19109  *
19110  * @exampleDescription Query the same referenced table multiple times
19111  * If you need to query the same referenced table twice, use the name of the
19112  * joined column to identify which join to use. You can also give each
19113  * column an alias.
19114  *
19115  * @example Query the same referenced table multiple times
19116  * ```ts
19117  * const { data, error } = await supabase
19118  *   .from('messages')
19119  *   .select(`
19120  *     content,
19121  *     from:sender_id(name),
19122  *     to:receiver_id(name)
19123  *   `)
19124  *
19125  * // To infer types, use the name of the table (in this case `users`) and
19126  * // the name of the foreign key constraint.
19127  * const { data, error } = await supabase
19128  *   .from('messages')
19129  *   .select(`
19130  *     content,
19131  *     from:users!messages_sender_id_fkey(name),
19132  *     to:users!messages_receiver_id_fkey(name)
19133  *   `)
19134  * ```
19135  *
19136  * @exampleSql Query the same referenced table multiple times
19137  * ```sql
19138  *  create table
19139  *  users (id int8 primary key, name text);
19140  *
19141  *  create table
19142  *    messages (
19143  *      sender_id int8 not null references users,
19144  *      receiver_id int8 not null references users,
19145  *      content text
19146  *    );
19147  *
19148  *  insert into
19149  *    users (id, name)
19150  *  values
19151  *    (1, 'Kiran'),
19152  *    (2, 'Evan');
19153  *
19154  *  insert into
19155  *    messages (sender_id, receiver_id, content)
19156  *  values
19157  *    (1, 2, '👋');
19158  *  ```
19159  * ```
19160  *
19161  * @exampleResponse Query the same referenced table multiple times
19162  * ```json
19163  * {
19164  *   "data": [
19165  *     {
19166  *       "content": "👋",
19167  *       "from": {
19168  *         "name": "Kiran"
19169  *       },
19170  *       "to": {
19171  *         "name": "Evan"
19172  *       }
19173  *     }
19174  *   ],
19175  *   "status": 200,
19176  *   "statusText": "OK"
19177  * }
19178  * ```
19179  *
19180  * @exampleDescription Query nested foreign tables through a join table
19181  * You can use the result of a joined table to gather data in
19182  * another foreign table. With multiple references to the same foreign
19183  * table you must specify the column on which to conduct the join.
19184  *
19185  * @example Query nested foreign tables through a join table
19186  * ```ts
19187  *   const { data, error } = await supabase
19188  *     .from('games')
19189  *     .select(`
19190  *       game_id:id,
19191  *       away_team:teams!games_away_team_fkey (
19192  *         users (
19193  *           id,
19194  *           name
19195  *         )
19196  *       )
19197  *     `)
19198  *   
19199  * ```
19200  *
19201  * @exampleSql Query nested foreign tables through a join table
19202  * ```sql
19203  * ```sql
19204  * create table
19205  *   users (
19206  *     id int8 primary key,
19207  *     name text
19208  *   );
19209  * create table
19210  *   teams (
19211  *     id int8 primary key,
19212  *     name text
19213  *   );
19214  * -- join table
19215  * create table
19216  *   users_teams (
19217  *     user_id int8 not null references users,
19218  *     team_id int8 not null references teams,
19219  *
19220  *     primary key (user_id, team_id)
19221  *   );
19222  * create table
19223  *   games (
19224  *     id int8 primary key,
19225  *     home_team int8 not null references teams,
19226  *     away_team int8 not null references teams,
19227  *     name text
19228  *   );
19229  *
19230  * insert into users (id, name)
19231  * values
19232  *   (1, 'Kiran'),
19233  *   (2, 'Evan');
19234  * insert into
19235  *   teams (id, name)
19236  * values
19237  *   (1, 'Green'),
19238  *   (2, 'Blue');
19239  * insert into
19240  *   users_teams (user_id, team_id)
19241  * values
19242  *   (1, 1),
19243  *   (1, 2),
19244  *   (2, 2);
19245  * insert into
19246  *   games (id, home_team, away_team, name)
19247  * values
19248  *   (1, 1, 2, 'Green vs Blue'),
19249  *   (2, 2, 1, 'Blue vs Green');
19250  * ```
19251  *
19252  * @exampleResponse Query nested foreign tables through a join table
19253  * ```json
19254  *   {
19255  *     "data": [
19256  *       {
19257  *         "game_id": 1,
19258  *         "away_team": {
19259  *           "users": [
19260  *             {
19261  *               "id": 1,
19262  *               "name": "Kiran"
19263  *             },
19264  *             {
19265  *               "id": 2,
19266  *               "name": "Evan"
19267  *             }
19268  *           ]
19269  *         }
19270  *       },
19271  *       {
19272  *         "game_id": 2,
19273  *         "away_team": {
19274  *           "users": [
19275  *             {
19276  *               "id": 1,
19277  *               "name": "Kiran"
19278  *             }
19279  *           ]
19280  *         }
19281  *       }
19282  *     ],
19283  *     "status": 200,
19284  *     "statusText": "OK"
19285  *   }
19286  *   
19287  * ```
19288  *
19289  * @exampleDescription Filtering through referenced tables
19290  * If the filter on a referenced table's column is not satisfied, the referenced
19291  * table returns `[]` or `null` but the parent table is not filtered out.
19292  * If you want to filter out the parent table rows, use the `!inner` hint
19293  *
19294  * @example Filtering through referenced tables
19295  * ```ts
19296  * const { data, error } = await supabase
19297  *   .from('instruments')
19298  *   .select('name, orchestral_sections(*)')
19299  *   .eq('orchestral_sections.name', 'percussion')
19300  * ```
19301  *
19302  * @exampleSql Filtering through referenced tables
19303  * ```sql
19304  * create table
19305  *   orchestral_sections (id int8 primary key, name text);
19306  * create table
19307  *   instruments (
19308  *     id int8 primary key,
19309  *     section_id int8 not null references orchestral_sections,
19310  *     name text
19311  *   );
19312  *
19313  * insert into
19314  *   orchestral_sections (id, name)
19315  * values
19316  *   (1, 'strings'),
19317  *   (2, 'woodwinds');
19318  * insert into
19319  *   instruments (id, section_id, name)
19320  * values
19321  *   (1, 2, 'flute'),
19322  *   (2, 1, 'violin');
19323  * ```
19324  *
19325  * @exampleResponse Filtering through referenced tables
19326  * ```json
19327  * {
19328  *   "data": [
19329  *     {
19330  *       "name": "flute",
19331  *       "orchestral_sections": null
19332  *     },
19333  *     {
19334  *       "name": "violin",
19335  *       "orchestral_sections": null
19336  *     }
19337  *   ],
19338  *   "status": 200,
19339  *   "statusText": "OK"
19340  * }
19341  * ```
19342  *
19343  * @exampleDescription Querying referenced table with count
19344  * You can get the number of rows in a related table by using the
19345  * **count** property.
19346  *
19347  * @example Querying referenced table with count
19348  * ```ts
19349  * const { data, error } = await supabase
19350  *   .from('orchestral_sections')
19351  *   .select(`*, instruments(count)`)
19352  * ```
19353  *
19354  * @exampleSql Querying referenced table with count
19355  * ```sql
19356  * create table orchestral_sections (
19357  *   "id" "uuid" primary key default "extensions"."uuid_generate_v4"() not null,
19358  *   "name" text
19359  * );
19360  *
19361  * create table characters (
19362  *   "id" "uuid" primary key default "extensions"."uuid_generate_v4"() not null,
19363  *   "name" text,
19364  *   "section_id" "uuid" references public.orchestral_sections on delete cascade
19365  * );
19366  *
19367  * with section as (
19368  *   insert into orchestral_sections (name)
19369  *   values ('strings') returning id
19370  * )
19371  * insert into instruments (name, section_id) values
19372  * ('violin', (select id from section)),
19373  * ('viola', (select id from section)),
19374  * ('cello', (select id from section)),
19375  * ('double bass', (select id from section));
19376  * ```
19377  *
19378  * @exampleResponse Querying referenced table with count
19379  * ```json
19380  * [
19381  *   {
19382  *     "id": "693694e7-d993-4360-a6d7-6294e325d9b6",
19383  *     "name": "strings",
19384  *     "instruments": [
19385  *       {
19386  *         "count": 4
19387  *       }
19388  *     ]
19389  *   }
19390  * ]
19391  * ```
19392  *
19393  * @exampleDescription Querying with count option
19394  * You can get the number of rows by using the
19395  * [count](/docs/reference/javascript/select#parameters) option.
19396  *
19397  * @example Querying with count option
19398  * ```ts
19399  * const { count, error } = await supabase
19400  *   .from('characters')
19401  *   .select('*', { count: 'exact', head: true })
19402  * ```
19403  *
19404  * @exampleSql Querying with count option
19405  * ```sql
19406  * create table
19407  *   characters (id int8 primary key, name text);
19408  *
19409  * insert into
19410  *   characters (id, name)
19411  * values
19412  *   (1, 'Luke'),
19413  *   (2, 'Leia'),
19414  *   (3, 'Han');
19415  * ```
19416  *
19417  * @exampleResponse Querying with count option
19418  * ```json
19419  * {
19420  *   "count": 3,
19421  *   "status": 200,
19422  *   "statusText": "OK"
19423  * }
19424  * ```
19425  *
19426  * @exampleDescription Querying JSON data
19427  * You can select and filter data inside of
19428  * [JSON](/docs/guides/database/json) columns. Postgres offers some
19429  * [operators](/docs/guides/database/json#query-the-jsonb-data) for
19430  * querying JSON data.
19431  *
19432  * @example Querying JSON data
19433  * ```ts
19434  * const { data, error } = await supabase
19435  *   .from('users')
19436  *   .select(`
19437  *     id, name,
19438  *     address->city
19439  *   `)
19440  * ```
19441  *
19442  * @exampleSql Querying JSON data
19443  * ```sql
19444  * create table
19445  *   users (
19446  *     id int8 primary key,
19447  *     name text,
19448  *     address jsonb
19449  *   );
19450  *
19451  * insert into
19452  *   users (id, name, address)
19453  * values
19454  *   (1, 'Frodo', '{"city":"Hobbiton"}');
19455  * ```
19456  *
19457  * @exampleResponse Querying JSON data
19458  * ```json
19459  * {
19460  *   "data": [
19461  *     {
19462  *       "id": 1,
19463  *       "name": "Frodo",
19464  *       "city": "Hobbiton"
19465  *     }
19466  *   ],
19467  *   "status": 200,
19468  *   "statusText": "OK"
19469  * }
19470  * ```
19471  *
19472  * @exampleDescription Querying referenced table with inner join
19473  * If you don't want to return the referenced table contents, you can leave the parenthesis empty.
19474  * Like `.select('name, orchestral_sections!inner()')`.
19475  *
19476  * @example Querying referenced table with inner join
19477  * ```ts
19478  * const { data, error } = await supabase
19479  *   .from('instruments')
19480  *   .select('name, orchestral_sections!inner(name)')
19481  *   .eq('orchestral_sections.name', 'woodwinds')
19482  *   .limit(1)
19483  * ```
19484  *
19485  * @exampleSql Querying referenced table with inner join
19486  * ```sql
19487  * create table orchestral_sections (
19488  *   "id" "uuid" primary key default "extensions"."uuid_generate_v4"() not null,
19489  *   "name" text
19490  * );
19491  *
19492  * create table instruments (
19493  *   "id" "uuid" primary key default "extensions"."uuid_generate_v4"() not null,
19494  *   "name" text,
19495  *   "section_id" "uuid" references public.orchestral_sections on delete cascade
19496  * );
19497  *
19498  * with section as (
19499  *   insert into orchestral_sections (name)
19500  *   values ('woodwinds') returning id
19501  * )
19502  * insert into instruments (name, section_id) values
19503  * ('flute', (select id from section)),
19504  * ('clarinet', (select id from section)),
19505  * ('bassoon', (select id from section)),
19506  * ('piccolo', (select id from section));
19507  * ```
19508  *
19509  * @exampleResponse Querying referenced table with inner join
19510  * ```json
19511  * {
19512  *   "data": [
19513  *     {
19514  *       "name": "flute",
19515  *       "orchestral_sections": {"name": "woodwinds"}
19516  *     }
19517  *   ],
19518  *   "status": 200,
19519  *   "statusText": "OK"
19520  * }
19521  * ```
19522  *
19523  * @exampleDescription Switching schemas per query
19524  * In addition to setting the schema during initialization, you can also switch schemas on a per-query basis.
19525  * Make sure you've set up your [database privileges and API settings](/docs/guides/api/using-custom-schemas).
19526  *
19527  * @example Switching schemas per query
19528  * ```ts
19529  * const { data, error } = await supabase
19530  *   .schema('myschema')
19531  *   .from('mytable')
19532  *   .select()
19533  * ```
19534  *
19535  * @exampleSql Switching schemas per query
19536  * ```sql
19537  * create schema myschema;
19538  *
19539  * create table myschema.mytable (
19540  *   id uuid primary key default gen_random_uuid(),
19541  *   data text
19542  * );
19543  *
19544  * insert into myschema.mytable (data) values ('mydata');
19545  * ```
19546  *
19547  * @exampleResponse Switching schemas per query
19548  * ```json
19549  * {
19550  *   "data": [
19551  *     {
19552  *       "id": "4162e008-27b0-4c0f-82dc-ccaeee9a624d",
19553  *       "data": "mydata"
19554  *     }
19555  *   ],
19556  *   "status": 200,
19557  *   "statusText": "OK"
19558  * }
19559  * ```
19560  */
19561  select(t, e) {
19562    const { head: s = !1, count: r } = e ?? {}, n = s ? "HEAD" : "GET";
19563    let o = !1;
19564    const L = (t ?? "*").split("").map((g) => /\s/.test(g) && !o ? "" : (g === '"' && (o = !o), g)).join(""), { url: d, headers: l } = this.cloneRequestState();
19565    return d.searchParams.set("select", L), r && l.append("Prefer", `count=${r}`), new st({
19566      method: n,
19567      url: d,
19568      headers: l,
19569      schema: this.schema,
19570      fetch: this.fetch,
19571      urlLengthLimit: this.urlLengthLimit,
19572      retry: this.retry
19573    });
19574  }
19575  /**
19576  * Perform an INSERT into the table or view.
19577  *
19578  * By default, inserted rows are not returned. To return it, chain the call
19579  * with `.select()`.
19580  *
19581  * @param values - The values to insert. Pass an object to insert a single row
19582  * or an array to insert multiple rows.
19583  *
19584  * @param options - Named parameters
19585  *
19586  * @param options.count - Count algorithm to use to count inserted rows.
19587  *
19588  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
19589  * hood.
19590  *
19591  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
19592  * statistics under the hood.
19593  *
19594  * `"estimated"`: Uses exact count for low numbers and planned count for high
19595  * numbers.
19596  *
19597  * @param options.defaultToNull - Make missing fields default to `null`.
19598  * Otherwise, use the default value for the column. Only applies for bulk
19599  * inserts.
19600  *
19601  * @category Database
19602  *
19603  * @example Create a record
19604  * ```ts
19605  * const { error } = await supabase
19606  *   .from('countries')
19607  *   .insert({ id: 1, name: 'Mordor' })
19608  * ```
19609  *
19610  * @exampleSql Create a record
19611  * ```sql
19612  * create table
19613  *   countries (id int8 primary key, name text);
19614  * ```
19615  *
19616  * @exampleResponse Create a record
19617  * ```json
19618  * {
19619  *   "status": 201,
19620  *   "statusText": ""
19621  * }
19622  * ```
19623  *
19624  * @exampleDescription Handling errors
19625  * `error.hint` from Postgres often contains the actionable fix (e.g. `"Grant the required privileges to the current role with: GRANT INSERT ON public.countries TO anon;"` for a `42501` permission-denied error). Log the full `error` object so it isn't hidden behind `error.message`.
19626  *
19627  * @example Handling errors
19628  * ```js
19629  * const { error } = await supabase.from('countries').insert({ id: 1, name: 'Mordor' })
19630  * if (error) console.error(error)
19631  * ```
19632  *
19633  * @example Create a record and return it
19634  * ```ts
19635  * const { data, error } = await supabase
19636  *   .from('countries')
19637  *   .insert({ id: 1, name: 'Mordor' })
19638  *   .select()
19639  * ```
19640  *
19641  * @exampleSql Create a record and return it
19642  * ```sql
19643  * create table
19644  *   countries (id int8 primary key, name text);
19645  * ```
19646  *
19647  * @exampleResponse Create a record and return it
19648  * ```json
19649  * {
19650  *   "data": [
19651  *     {
19652  *       "id": 1,
19653  *       "name": "Mordor"
19654  *     }
19655  *   ],
19656  *   "status": 201,
19657  *   "statusText": ""
19658  * }
19659  * ```
19660  *
19661  * @exampleDescription Bulk create
19662  * A bulk create operation is handled in a single transaction.
19663  * If any of the inserts fail, none of the rows are inserted.
19664  *
19665  * @example Bulk create
19666  * ```ts
19667  * const { error } = await supabase
19668  *   .from('countries')
19669  *   .insert([
19670  *     { id: 1, name: 'Mordor' },
19671  *     { id: 1, name: 'The Shire' },
19672  *   ])
19673  * ```
19674  *
19675  * @exampleSql Bulk create
19676  * ```sql
19677  * create table
19678  *   countries (id int8 primary key, name text);
19679  * ```
19680  *
19681  * @exampleResponse Bulk create
19682  * ```json
19683  * {
19684  *   "error": {
19685  *     "code": "23505",
19686  *     "details": "Key (id)=(1) already exists.",
19687  *     "hint": null,
19688  *     "message": "duplicate key value violates unique constraint \"countries_pkey\""
19689  *   },
19690  *   "status": 409,
19691  *   "statusText": ""
19692  * }
19693  * ```
19694  */
19695  insert(t, { count: e, defaultToNull: s = !0 } = {}) {
19696    var r;
19697    const n = "POST", { url: o, headers: L } = this.cloneRequestState();
19698    if (e && L.append("Prefer", `count=${e}`), s || L.append("Prefer", "missing=default"), Array.isArray(t)) {
19699      const d = t.reduce((l, g) => l.concat(Object.keys(g)), []);
19700      if (d.length > 0) {
19701        const l = [...new Set(d)].map((g) => `"${g}"`);
19702        o.searchParams.set("columns", l.join(","));
19703      }
19704    }
19705    return new st({
19706      method: n,
19707      url: o,
19708      headers: L,
19709      schema: this.schema,
19710      body: t,
19711      fetch: (r = this.fetch) !== null && r !== void 0 ? r : fetch,
19712      urlLengthLimit: this.urlLengthLimit,
19713      retry: this.retry
19714    });
19715  }
19716  /**
19717  * Perform an UPSERT on the table or view. Depending on the column(s) passed
19718  * to `onConflict`, `.upsert()` allows you to perform the equivalent of
19719  * `.insert()` if a row with the corresponding `onConflict` columns doesn't
19720  * exist, or if it does exist, perform an alternative action depending on
19721  * `ignoreDuplicates`.
19722  *
19723  * By default, upserted rows are not returned. To return it, chain the call
19724  * with `.select()`.
19725  *
19726  * @param values - The values to upsert with. Pass an object to upsert a
19727  * single row or an array to upsert multiple rows.
19728  *
19729  * @param options - Named parameters
19730  *
19731  * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how
19732  * duplicate rows are determined. Two rows are duplicates if all the
19733  * `onConflict` columns are equal.
19734  *
19735  * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If
19736  * `false`, duplicate rows are merged with existing rows.
19737  *
19738  * @param options.count - Count algorithm to use to count upserted rows.
19739  *
19740  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
19741  * hood.
19742  *
19743  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
19744  * statistics under the hood.
19745  *
19746  * `"estimated"`: Uses exact count for low numbers and planned count for high
19747  * numbers.
19748  *
19749  * @param options.defaultToNull - Make missing fields default to `null`.
19750  * Otherwise, use the default value for the column. This only applies when
19751  * inserting new rows, not when merging with existing rows under
19752  * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.
19753  *
19754  * @example Upsert a single row using a unique key
19755  * ```ts
19756  * // Upserting a single row, overwriting based on the 'username' unique column
19757  * const { data, error } = await supabase
19758  *   .from('users')
19759  *   .upsert({ username: 'supabot' }, { onConflict: 'username' })
19760  *
19761  * // Example response:
19762  * // {
19763  * //   data: [
19764  * //     { id: 4, message: 'bar', username: 'supabot' }
19765  * //   ],
19766  * //   error: null
19767  * // }
19768  * ```
19769  *
19770  * @example Upsert with conflict resolution and exact row counting
19771  * ```ts
19772  * // Upserting and returning exact count
19773  * const { data, error, count } = await supabase
19774  *   .from('users')
19775  *   .upsert(
19776  *     {
19777  *       id: 3,
19778  *       message: 'foo',
19779  *       username: 'supabot'
19780  *     },
19781  *     {
19782  *       onConflict: 'username',
19783  *       count: 'exact'
19784  *     }
19785  *   )
19786  *
19787  * // Example response:
19788  * // {
19789  * //   data: [
19790  * //     {
19791  * //       id: 42,
19792  * //       handle: "saoirse",
19793  * //       display_name: "Saoirse"
19794  * //     }
19795  * //   ],
19796  * //   count: 1,
19797  * //   error: null
19798  * // }
19799  * ```
19800  *
19801  * @category Database
19802  *
19803  * @remarks
19804  * - Primary keys must be included in `values` to use upsert.
19805  *
19806  * @example Upsert your data
19807  * ```ts
19808  * const { data, error } = await supabase
19809  *   .from('instruments')
19810  *   .upsert({ id: 1, name: 'piano' })
19811  *   .select()
19812  * ```
19813  *
19814  * @exampleSql Upsert your data
19815  * ```sql
19816  * create table
19817  *   instruments (id int8 primary key, name text);
19818  *
19819  * insert into
19820  *   instruments (id, name)
19821  * values
19822  *   (1, 'harpsichord');
19823  * ```
19824  *
19825  * @exampleResponse Upsert your data
19826  * ```json
19827  * {
19828  *   "data": [
19829  *     {
19830  *       "id": 1,
19831  *       "name": "piano"
19832  *     }
19833  *   ],
19834  *   "status": 201,
19835  *   "statusText": ""
19836  * }
19837  * ```
19838  *
19839  * @exampleDescription Handling errors
19840  * `error.hint` from Postgres often contains the actionable fix (e.g. `"Grant the required privileges to the current role with: GRANT INSERT, UPDATE ON public.instruments TO anon;"` for a `42501` permission-denied error). Log the full `error` object so it isn't hidden behind `error.message`.
19841  *
19842  * @example Handling errors
19843  * ```js
19844  * const { data, error } = await supabase.from('instruments').upsert({ id: 1, name: 'piano' }).select()
19845  * if (error) console.error(error)
19846  * ```
19847  *
19848  * @example Bulk Upsert your data
19849  * ```ts
19850  * const { data, error } = await supabase
19851  *   .from('instruments')
19852  *   .upsert([
19853  *     { id: 1, name: 'piano' },
19854  *     { id: 2, name: 'harp' },
19855  *   ])
19856  *   .select()
19857  * ```
19858  *
19859  * @exampleSql Bulk Upsert your data
19860  * ```sql
19861  * create table
19862  *   instruments (id int8 primary key, name text);
19863  *
19864  * insert into
19865  *   instruments (id, name)
19866  * values
19867  *   (1, 'harpsichord');
19868  * ```
19869  *
19870  * @exampleResponse Bulk Upsert your data
19871  * ```json
19872  * {
19873  *   "data": [
19874  *     {
19875  *       "id": 1,
19876  *       "name": "piano"
19877  *     },
19878  *     {
19879  *       "id": 2,
19880  *       "name": "harp"
19881  *     }
19882  *   ],
19883  *   "status": 201,
19884  *   "statusText": ""
19885  * }
19886  * ```
19887  *
19888  * @exampleDescription Upserting into tables with constraints
19889  * In the following query, `upsert()` implicitly uses the `id`
19890  * (primary key) column to determine conflicts. If there is no existing
19891  * row with the same `id`, `upsert()` inserts a new row, which
19892  * will fail in this case as there is already a row with `handle` `"saoirse"`.
19893  * Using the `onConflict` option, you can instruct `upsert()` to use
19894  * another column with a unique constraint to determine conflicts.
19895  *
19896  * @example Upserting into tables with constraints
19897  * ```ts
19898  * const { data, error } = await supabase
19899  *   .from('users')
19900  *   .upsert({ id: 42, handle: 'saoirse', display_name: 'Saoirse' })
19901  *   .select()
19902  * ```
19903  *
19904  * @exampleSql Upserting into tables with constraints
19905  * ```sql
19906  * create table
19907  *   users (
19908  *     id int8 generated by default as identity primary key,
19909  *     handle text not null unique,
19910  *     display_name text
19911  *   );
19912  *
19913  * insert into
19914  *   users (id, handle, display_name)
19915  * values
19916  *   (1, 'saoirse', null);
19917  * ```
19918  *
19919  * @exampleResponse Upserting into tables with constraints
19920  * ```json
19921  * {
19922  *   "error": {
19923  *     "code": "23505",
19924  *     "details": "Key (handle)=(saoirse) already exists.",
19925  *     "hint": null,
19926  *     "message": "duplicate key value violates unique constraint \"users_handle_key\""
19927  *   },
19928  *   "status": 409,
19929  *   "statusText": ""
19930  * }
19931  * ```
19932  */
19933  upsert(t, { onConflict: e, ignoreDuplicates: s = !1, count: r, defaultToNull: n = !0 } = {}) {
19934    var o;
19935    const L = "POST", { url: d, headers: l } = this.cloneRequestState();
19936    if (l.append("Prefer", `resolution=${s ? "ignore" : "merge"}-duplicates`), e !== void 0 && d.searchParams.set("on_conflict", e), r && l.append("Prefer", `count=${r}`), n || l.append("Prefer", "missing=default"), Array.isArray(t)) {
19937      const g = t.reduce((f, p) => f.concat(Object.keys(p)), []);
19938      if (g.length > 0) {
19939        const f = [...new Set(g)].map((p) => `"${p}"`);
19940        d.searchParams.set("columns", f.join(","));
19941      }
19942    }
19943    return new st({
19944      method: L,
19945      url: d,
19946      headers: l,
19947      schema: this.schema,
19948      body: t,
19949      fetch: (o = this.fetch) !== null && o !== void 0 ? o : fetch,
19950      urlLengthLimit: this.urlLengthLimit,
19951      retry: this.retry
19952    });
19953  }
19954  /**
19955  * Perform an UPDATE on the table or view.
19956  *
19957  * By default, updated rows are not returned. To return it, chain the call
19958  * with `.select()` after filters.
19959  *
19960  * @param values - The values to update with
19961  *
19962  * @param options - Named parameters
19963  *
19964  * @param options.count - Count algorithm to use to count updated rows.
19965  *
19966  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
19967  * hood.
19968  *
19969  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
19970  * statistics under the hood.
19971  *
19972  * `"estimated"`: Uses exact count for low numbers and planned count for high
19973  * numbers.
19974  *
19975  * @category Database
19976  *
19977  * @remarks
19978  * - `update()` should always be combined with [Filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to update.
19979  *
19980  * @example Updating your data
19981  * ```ts
19982  * const { error } = await supabase
19983  *   .from('instruments')
19984  *   .update({ name: 'piano' })
19985  *   .eq('id', 1)
19986  * ```
19987  *
19988  * @exampleSql Updating your data
19989  * ```sql
19990  * create table
19991  *   instruments (id int8 primary key, name text);
19992  *
19993  * insert into
19994  *   instruments (id, name)
19995  * values
19996  *   (1, 'harpsichord');
19997  * ```
19998  *
19999  * @exampleResponse Updating your data
20000  * ```json
20001  * {
20002  *   "status": 204,
20003  *   "statusText": ""
20004  * }
20005  * ```
20006  *
20007  * @exampleDescription Handling errors
20008  * `error.hint` from Postgres often contains the actionable fix (e.g. `"Grant the required privileges to the current role with: GRANT UPDATE ON public.instruments TO anon;"` for a `42501` permission-denied error). Log the full `error` object so it isn't hidden behind `error.message`.
20009  *
20010  * @example Handling errors
20011  * ```js
20012  * const { error } = await supabase.from('instruments').update({ name: 'piano' }).eq('id', 1)
20013  * if (error) console.error(error)
20014  * ```
20015  *
20016  * @example Update a record and return it
20017  * ```ts
20018  * const { data, error } = await supabase
20019  *   .from('instruments')
20020  *   .update({ name: 'piano' })
20021  *   .eq('id', 1)
20022  *   .select()
20023  * ```
20024  *
20025  * @exampleSql Update a record and return it
20026  * ```sql
20027  * create table
20028  *   instruments (id int8 primary key, name text);
20029  *
20030  * insert into
20031  *   instruments (id, name)
20032  * values
20033  *   (1, 'harpsichord');
20034  * ```
20035  *
20036  * @exampleResponse Update a record and return it
20037  * ```json
20038  * {
20039  *   "data": [
20040  *     {
20041  *       "id": 1,
20042  *       "name": "piano"
20043  *     }
20044  *   ],
20045  *   "status": 200,
20046  *   "statusText": "OK"
20047  * }
20048  * ```
20049  *
20050  * @exampleDescription Updating JSON data
20051  * Postgres offers some
20052  * [operators](/docs/guides/database/json#query-the-jsonb-data) for
20053  * working with JSON data. Currently, it is only possible to update the entire JSON document.
20054  *
20055  * @example Updating JSON data
20056  * ```ts
20057  * const { data, error } = await supabase
20058  *   .from('users')
20059  *   .update({
20060  *     address: {
20061  *       street: 'Melrose Place',
20062  *       postcode: 90210
20063  *     }
20064  *   })
20065  *   .eq('address->postcode', 90210)
20066  *   .select()
20067  * ```
20068  *
20069  * @exampleSql Updating JSON data
20070  * ```sql
20071  * create table
20072  *   users (
20073  *     id int8 primary key,
20074  *     name text,
20075  *     address jsonb
20076  *   );
20077  *
20078  * insert into
20079  *   users (id, name, address)
20080  * values
20081  *   (1, 'Michael', '{ "postcode": 90210 }');
20082  * ```
20083  *
20084  * @exampleResponse Updating JSON data
20085  * ```json
20086  * {
20087  *   "data": [
20088  *     {
20089  *       "id": 1,
20090  *       "name": "Michael",
20091  *       "address": {
20092  *         "street": "Melrose Place",
20093  *         "postcode": 90210
20094  *       }
20095  *     }
20096  *   ],
20097  *   "status": 200,
20098  *   "statusText": "OK"
20099  * }
20100  * ```
20101  */
20102  update(t, { count: e } = {}) {
20103    var s;
20104    const r = "PATCH", { url: n, headers: o } = this.cloneRequestState();
20105    return e && o.append("Prefer", `count=${e}`), new st({
20106      method: r,
20107      url: n,
20108      headers: o,
20109      schema: this.schema,
20110      body: t,
20111      fetch: (s = this.fetch) !== null && s !== void 0 ? s : fetch,
20112      urlLengthLimit: this.urlLengthLimit,
20113      retry: this.retry
20114    });
20115  }
20116  /**
20117  * Perform a DELETE on the table or view.
20118  *
20119  * By default, deleted rows are not returned. To return it, chain the call
20120  * with `.select()` after filters.
20121  *
20122  * @param options - Named parameters
20123  *
20124  * @param options.count - Count algorithm to use to count deleted rows.
20125  *
20126  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
20127  * hood.
20128  *
20129  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
20130  * statistics under the hood.
20131  *
20132  * `"estimated"`: Uses exact count for low numbers and planned count for high
20133  * numbers.
20134  *
20135  * @category Database
20136  *
20137  * @remarks
20138  * - `delete()` should always be combined with [filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to delete.
20139  * - If you use `delete()` with filters and you have
20140  *   [RLS](/docs/learn/auth-deep-dive/auth-row-level-security) enabled, only
20141  *   rows visible through `SELECT` policies are deleted. Note that by default
20142  *   no rows are visible, so you need at least one `SELECT`/`ALL` policy that
20143  *   makes the rows visible.
20144  * - When using `delete().in()`, specify an array of values to target multiple rows with a single query. This is particularly useful for batch deleting entries that share common criteria, such as deleting users by their IDs. Ensure that the array you provide accurately represents all records you intend to delete to avoid unintended data removal.
20145  *
20146  * @example Delete a single record
20147  * ```ts
20148  * const response = await supabase
20149  *   .from('countries')
20150  *   .delete()
20151  *   .eq('id', 1)
20152  * ```
20153  *
20154  * @exampleSql Delete a single record
20155  * ```sql
20156  * create table
20157  *   countries (id int8 primary key, name text);
20158  *
20159  * insert into
20160  *   countries (id, name)
20161  * values
20162  *   (1, 'Mordor');
20163  * ```
20164  *
20165  * @exampleResponse Delete a single record
20166  * ```json
20167  * {
20168  *   "status": 204,
20169  *   "statusText": ""
20170  * }
20171  * ```
20172  *
20173  * @exampleDescription Handling errors
20174  * `error.hint` from Postgres often contains the actionable fix (e.g. `"Grant the required privileges to the current role with: GRANT DELETE ON public.countries TO anon;"` for a `42501` permission-denied error). Log the full `error` object so it isn't hidden behind `error.message`.
20175  *
20176  * @example Handling errors
20177  * ```js
20178  * const { error } = await supabase.from('countries').delete().eq('id', 1)
20179  * if (error) console.error(error)
20180  * ```
20181  *
20182  * @example Delete a record and return it
20183  * ```ts
20184  * const { data, error } = await supabase
20185  *   .from('countries')
20186  *   .delete()
20187  *   .eq('id', 1)
20188  *   .select()
20189  * ```
20190  *
20191  * @exampleSql Delete a record and return it
20192  * ```sql
20193  * create table
20194  *   countries (id int8 primary key, name text);
20195  *
20196  * insert into
20197  *   countries (id, name)
20198  * values
20199  *   (1, 'Mordor');
20200  * ```
20201  *
20202  * @exampleResponse Delete a record and return it
20203  * ```json
20204  * {
20205  *   "data": [
20206  *     {
20207  *       "id": 1,
20208  *       "name": "Mordor"
20209  *     }
20210  *   ],
20211  *   "status": 200,
20212  *   "statusText": "OK"
20213  * }
20214  * ```
20215  *
20216  * @example Delete multiple records
20217  * ```ts
20218  * const response = await supabase
20219  *   .from('countries')
20220  *   .delete()
20221  *   .in('id', [1, 2, 3])
20222  * ```
20223  *
20224  * @exampleSql Delete multiple records
20225  * ```sql
20226  * create table
20227  *   countries (id int8 primary key, name text);
20228  *
20229  * insert into
20230  *   countries (id, name)
20231  * values
20232  *   (1, 'Rohan'), (2, 'The Shire'), (3, 'Mordor');
20233  * ```
20234  *
20235  * @exampleResponse Delete multiple records
20236  * ```json
20237  * {
20238  *   "status": 204,
20239  *   "statusText": ""
20240  * }
20241  * ```
20242  */
20243  delete({ count: t } = {}) {
20244    var e;
20245    const s = "DELETE", { url: r, headers: n } = this.cloneRequestState();
20246    return t && n.append("Prefer", `count=${t}`), new st({
20247      method: s,
20248      url: r,
20249      headers: n,
20250      schema: this.schema,
20251      fetch: (e = this.fetch) !== null && e !== void 0 ? e : fetch,
20252      urlLengthLimit: this.urlLengthLimit,
20253      retry: this.retry
20254    });
20255  }
20256};
20257function UM(t, e) {
20258  try {
20259    const L = JSON.parse(t);
20260    if (L && typeof L == "object" && !Array.isArray(L)) {
20261      var s, r, n, o;
20262      return new ut({
20263        message: String((s = L.message) !== null && s !== void 0 ? s : t),
20264        details: (r = L.details) !== null && r !== void 0 ? r : "",
20265        hint: (n = L.hint) !== null && n !== void 0 ? n : "",
20266        code: (o = L.code) !== null && o !== void 0 ? o : ""
20267      });
20268    }
20269  } catch {
20270  }
20271  return new ut({
20272    message: t || e,
20273    details: "",
20274    hint: "",
20275    code: ""
20276  });
20277}
20278function Xa(t, e, s) {
20279  var r;
20280  const n = t;
20281  return {
20282    success: !1,
20283    error: new ut({
20284      message: `${(r = n?.name) !== null && r !== void 0 ? r : "FetchError"}: ${n?.message}`,
20285      details: "",
20286      hint: "",
20287      code: ""
20288    }),
20289    data: null,
20290    count: null,
20291    status: e,
20292    statusText: s
20293  };
20294}
20295var GM = class pi {
20296  /**
20297  * Creates a PostgREST client.
20298  *
20299  * @param url - URL of the PostgREST endpoint
20300  * @param options - Named parameters
20301  * @param options.headers - Custom headers
20302  * @param options.schema - Postgres schema to switch to
20303  * @param options.fetch - Custom fetch
20304  * @param options.timeout - Optional timeout in milliseconds for all requests. When set, requests will automatically abort after this duration to prevent indefinite hangs.
20305  * @param options.urlLengthLimit - Maximum URL length in characters before warnings/errors are triggered. Defaults to 8000.
20306  * @param options.retry - Enable or disable automatic retries for transient errors.
20307  *   When enabled, idempotent requests (GET, HEAD, OPTIONS) that fail with network
20308  *   errors or HTTP 503/520 responses will be automatically retried up to 3 times
20309  *   with exponential backoff (1s, 2s, 4s). Defaults to `true`.
20310  * @example Using supabase-js (recommended)
20311  * ```ts
20312  * import { createClient } from '@supabase/supabase-js'
20313  *
20314  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
20315  * const { data, error } = await supabase.from('profiles').select('*')
20316  * ```
20317  *
20318  * @category Database
20319  *
20320  * @remarks
20321  * - A `timeout` option (in milliseconds) can be set to automatically abort requests that take too long.
20322  * - A `urlLengthLimit` option (default: 8000) can be set to control when URL length warnings are included in error messages for aborted requests.
20323  *
20324  * @example Standalone import for bundle-sensitive environments
20325  * ```ts
20326  * import { PostgrestClient } from '@supabase/postgrest-js'
20327  *
20328  * const postgrest = new PostgrestClient('https://xyzcompany.supabase.co/rest/v1', {
20329  *   headers: { apikey: 'your-publishable-key' },
20330  *   schema: 'public',
20331  *   timeout: 30000, // 30 second timeout
20332  * })
20333  * ```
20334  */
20335  constructor(e, { headers: s = {}, schema: r, fetch: n, timeout: o, urlLengthLimit: L = 8e3, retry: d } = {}) {
20336    this.url = e, this.headers = new Headers(s), this.schemaName = r, this.urlLengthLimit = L;
20337    const l = n ?? globalThis.fetch;
20338    o !== void 0 && o > 0 ? this.fetch = (g, f) => {
20339      const p = new AbortController(), M = setTimeout(() => p.abort(), o), u = f?.signal;
20340      if (u) {
20341        if (u.aborted)
20342          return clearTimeout(M), l(g, f);
20343        const h = () => {
20344          clearTimeout(M), p.abort();
20345        };
20346        return u.addEventListener("abort", h, { once: !0 }), l(g, V1(V1({}, f), {}, { signal: p.signal })).finally(() => {
20347          clearTimeout(M), u.removeEventListener("abort", h);
20348        });
20349      }
20350      return l(g, V1(V1({}, f), {}, { signal: p.signal })).finally(() => clearTimeout(M));
20351    } : this.fetch = l, this.retry = d;
20352  }
20353  from(e) {
20354    if (!e || typeof e != "string" || e.trim() === "") throw new Error("Invalid relation name: relation must be a non-empty string.");
20355    return new qM(new URL(`${this.url}/${e}`), {
20356      headers: new Headers(this.headers),
20357      schema: this.schemaName,
20358      fetch: this.fetch,
20359      urlLengthLimit: this.urlLengthLimit,
20360      retry: this.retry
20361    });
20362  }
20363  /**
20364  * Select a schema to query or perform an function (rpc) call.
20365  *
20366  * The schema needs to be on the list of exposed schemas inside Supabase.
20367  *
20368  * @param schema - The schema to query
20369  *
20370  * @category Database
20371  */
20372  schema(e) {
20373    return new pi(this.url, {
20374      headers: this.headers,
20375      schema: e,
20376      fetch: this.fetch,
20377      urlLengthLimit: this.urlLengthLimit,
20378      retry: this.retry
20379    });
20380  }
20381  /**
20382  * Fetch the OpenAPI description PostgREST publishes for this client's schema.
20383  *
20384  * The document lists only the tables, views and functions the caller's role
20385  * holds privileges on; PostgREST applies that filtering server-side. The
20386  * schema is the one this client was created with, so call `.schema()` first
20387  * to describe a different one. Transient failures are retried according to
20388  * the client's `retry` option, like any other idempotent request.
20389  *
20390  * @example
20391  * ```ts
20392  * const { data, error } = await supabase.getOpenApiSpec()
20393  * ```
20394  *
20395  * @example Describe a schema other than the client default
20396  * ```ts
20397  * const { data, error } = await supabase.schema('billing').getOpenApiSpec()
20398  * ```
20399  *
20400  * @category Database
20401  */
20402  async getOpenApiSpec() {
20403    var e = this, s;
20404    const r = new Headers(e.headers);
20405    r.set("Accept", "application/openapi+json"), e.schemaName && r.set("Accept-Profile", e.schemaName);
20406    const n = {};
20407    r.forEach((g, f) => {
20408      n[f] = g;
20409    });
20410    const o = (s = e.fetch) !== null && s !== void 0 ? s : globalThis.fetch;
20411    let L;
20412    try {
20413      var d;
20414      L = await fi(o, `${e.url}/`, {
20415        method: "GET",
20416        headers: n
20417      }, (d = e.retry) !== null && d !== void 0 ? d : !0);
20418    } catch (g) {
20419      return Xa(g, 0, "");
20420    }
20421    let l;
20422    try {
20423      l = await L.text();
20424    } catch (g) {
20425      return Xa(g, L.status, L.statusText);
20426    }
20427    if (L.ok) try {
20428      return {
20429        success: !0,
20430        error: null,
20431        data: JSON.parse(l),
20432        count: null,
20433        status: L.status,
20434        statusText: L.statusText
20435      };
20436    } catch {
20437    }
20438    return {
20439      success: !1,
20440      error: UM(l, L.statusText),
20441      data: null,
20442      count: null,
20443      status: L.status,
20444      statusText: L.statusText
20445    };
20446  }
20447  /**
20448  * Perform a function call.
20449  *
20450  * @param fn - The function name to call
20451  * @param args - The arguments to pass to the function call
20452  * @param options - Named parameters
20453  * @param options.head - When set to `true`, `data` will not be returned.
20454  * Useful if you only need the count.
20455  * @param options.get - When set to `true`, the function will be called with
20456  * read-only access mode.
20457  * @param options.count - Count algorithm to use to count rows returned by the
20458  * function. Only applicable for [set-returning
20459  * functions](https://www.postgresql.org/docs/current/functions-srf.html).
20460  *
20461  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
20462  * hood.
20463  *
20464  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
20465  * statistics under the hood.
20466  *
20467  * `"estimated"`: Uses exact count for low numbers and planned count for high
20468  * numbers.
20469  *
20470  * @example
20471  * ```ts
20472  * // For cross-schema functions where type inference fails, use overrideTypes:
20473  * const { data } = await supabase
20474  *   .schema('schema_b')
20475  *   .rpc('function_a', {})
20476  *   .overrideTypes<{ id: string; user_id: string }[]>()
20477  * ```
20478  *
20479  * @category Database
20480  *
20481  * @example Call a Postgres function without arguments
20482  * ```ts
20483  * const { data, error } = await supabase.rpc('hello_world')
20484  * ```
20485  *
20486  * @exampleSql Call a Postgres function without arguments
20487  * ```sql
20488  * create function hello_world() returns text as $$
20489  *   select 'Hello world';
20490  * $$ language sql;
20491  * ```
20492  *
20493  * @exampleResponse Call a Postgres function without arguments
20494  * ```json
20495  * {
20496  *   "data": "Hello world",
20497  *   "status": 200,
20498  *   "statusText": "OK"
20499  * }
20500  * ```
20501  *
20502  * @example Call a Postgres function with arguments
20503  * ```ts
20504  * const { data, error } = await supabase.rpc('echo', { say: '👋' })
20505  * ```
20506  *
20507  * @exampleSql Call a Postgres function with arguments
20508  * ```sql
20509  * create function echo(say text) returns text as $$
20510  *   select say;
20511  * $$ language sql;
20512  * ```
20513  *
20514  * @exampleResponse Call a Postgres function with arguments
20515  * ```json
20516  *   {
20517  *     "data": "👋",
20518  *     "status": 200,
20519  *     "statusText": "OK"
20520  *   }
20521  *
20522  * ```
20523  *
20524  * @exampleDescription Bulk processing
20525  * You can process large payloads by passing in an array as an argument.
20526  *
20527  * @example Bulk processing
20528  * ```ts
20529  * const { data, error } = await supabase.rpc('add_one_each', { arr: [1, 2, 3] })
20530  * ```
20531  *
20532  * @exampleSql Bulk processing
20533  * ```sql
20534  * create function add_one_each(arr int[]) returns int[] as $$
20535  *   select array_agg(n + 1) from unnest(arr) as n;
20536  * $$ language sql;
20537  * ```
20538  *
20539  * @exampleResponse Bulk processing
20540  * ```json
20541  * {
20542  *   "data": [
20543  *     2,
20544  *     3,
20545  *     4
20546  *   ],
20547  *   "status": 200,
20548  *   "statusText": "OK"
20549  * }
20550  * ```
20551  *
20552  * @exampleDescription Call a Postgres function with filters
20553  * Postgres functions that return tables can also be combined with [Filters](/docs/reference/javascript/using-filters) and [Modifiers](/docs/reference/javascript/using-modifiers).
20554  *
20555  * @example Call a Postgres function with filters
20556  * ```ts
20557  * const { data, error } = await supabase
20558  *   .rpc('list_stored_countries')
20559  *   .eq('id', 1)
20560  *   .single()
20561  * ```
20562  *
20563  * @exampleSql Call a Postgres function with filters
20564  * ```sql
20565  * create table
20566  *   countries (id int8 primary key, name text);
20567  *
20568  * insert into
20569  *   countries (id, name)
20570  * values
20571  *   (1, 'Rohan'),
20572  *   (2, 'The Shire');
20573  *
20574  * create function list_stored_countries() returns setof countries as $$
20575  *   select * from countries;
20576  * $$ language sql;
20577  * ```
20578  *
20579  * @exampleResponse Call a Postgres function with filters
20580  * ```json
20581  * {
20582  *   "data": {
20583  *     "id": 1,
20584  *     "name": "Rohan"
20585  *   },
20586  *   "status": 200,
20587  *   "statusText": "OK"
20588  * }
20589  * ```
20590  *
20591  * @example Call a read-only Postgres function
20592  * ```ts
20593  * const { data, error } = await supabase.rpc('hello_world', undefined, { get: true })
20594  * ```
20595  *
20596  * @exampleSql Call a read-only Postgres function
20597  * ```sql
20598  * create function hello_world() returns text as $$
20599  *   select 'Hello world';
20600  * $$ language sql;
20601  * ```
20602  *
20603  * @exampleResponse Call a read-only Postgres function
20604  * ```json
20605  * {
20606  *   "data": "Hello world",
20607  *   "status": 200,
20608  *   "statusText": "OK"
20609  * }
20610  * ```
20611  */
20612  rpc(e, s = {}, { head: r = !1, get: n = !1, count: o } = {}) {
20613    var L;
20614    let d;
20615    const l = new URL(`${this.url}/rpc/${e}`);
20616    let g;
20617    const f = (u) => u !== null && typeof u == "object" && (!Array.isArray(u) || u.some(f)), p = r && Object.values(s).some(f);
20618    p ? (d = "POST", g = s) : r || n ? (d = r ? "HEAD" : "GET", Object.entries(s).filter(([u, h]) => h !== void 0).map(([u, h]) => [u, Array.isArray(h) ? `{${h.join(",")}}` : `${h}`]).forEach(([u, h]) => {
20619      l.searchParams.append(u, h);
20620    })) : (d = "POST", g = s);
20621    const M = new Headers(this.headers);
20622    return p ? M.set("Prefer", o ? `count=${o},return=minimal` : "return=minimal") : o && M.set("Prefer", `count=${o}`), new st({
20623      method: d,
20624      url: l,
20625      headers: M,
20626      schema: this.schemaName,
20627      body: g,
20628      fetch: (L = this.fetch) !== null && L !== void 0 ? L : fetch,
20629      urlLengthLimit: this.urlLengthLimit,
20630      retry: this.retry
20631    });
20632  }
20633};
20634class JM {
20635  /**
20636   * Static-only utility – prevent instantiation.
20637   */
20638  constructor() {
20639  }
20640  static detectEnvironment() {
20641    var e;
20642    if (typeof WebSocket < "u")
20643      return { type: "native", wsConstructor: WebSocket };
20644    const s = globalThis;
20645    if (typeof globalThis < "u" && typeof s.WebSocket < "u")
20646      return { type: "native", wsConstructor: s.WebSocket };
20647    const r = typeof global < "u" ? global : void 0;
20648    if (r && typeof r.WebSocket < "u")
20649      return { type: "native", wsConstructor: r.WebSocket };
20650    if (typeof globalThis < "u" && typeof s.WebSocketPair < "u" && typeof globalThis.WebSocket > "u")
20651      return {
20652        type: "cloudflare",
20653        error: "Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",
20654        workaround: "Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."
20655      };
20656    if (typeof globalThis < "u" && s.EdgeRuntime || typeof navigator < "u" && (!((e = navigator.userAgent) === null || e === void 0) && e.includes("Vercel-Edge")))
20657      return {
20658        type: "unsupported",
20659        error: "Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",
20660        workaround: "Use serverless functions or a different deployment target for WebSocket functionality."
20661      };
20662    const n = globalThis.process;
20663    if (n) {
20664      const o = n.versions;
20665      if (o && o.node)
20666        return {
20667          type: "unsupported",
20668          error: "Node.js detected but native WebSocket not found.",
20669          workaround: "Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option."
20670        };
20671    }
20672    return {
20673      type: "unsupported",
20674      error: "Unknown JavaScript runtime without WebSocket support.",
20675      workaround: "Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."
20676    };
20677  }
20678  /**
20679   * Returns the best available WebSocket constructor for the current runtime.
20680   *
20681   * @category Realtime
20682   *
20683   * @example Example with error handling
20684   * ```ts
20685   * try {
20686   *   const WS = WebSocketFactory.getWebSocketConstructor()
20687   *   const socket = new WS('wss://example.com/socket')
20688   * } catch (error) {
20689   *   console.error('WebSocket not available in this environment.', error)
20690   * }
20691   * ```
20692   */
20693  static getWebSocketConstructor() {
20694    const e = this.detectEnvironment();
20695    if (e.wsConstructor)
20696      return e.wsConstructor;
20697    let s = e.error || "WebSocket not supported in this environment.";
20698    throw e.workaround && (s += `
20699
20700Suggested solution: ${e.workaround}`), new Error(s);
20701  }
20702  /**
20703   * Detects whether the runtime can establish WebSocket connections.
20704   *
20705   * @category Realtime
20706   *
20707   * @example Example in a Node.js script
20708   * ```ts
20709   * if (!WebSocketFactory.isWebSocketSupported()) {
20710   *   console.error('WebSockets are required for this script.')
20711   *   process.exitCode = 1
20712   * }
20713   * ```
20714   */
20715  static isWebSocketSupported() {
20716    try {
20717      return this.detectEnvironment().type === "native";
20718    } catch {
20719      return !1;
20720    }
20721  }
20722}
20723const KM = "2.117.2", YM = `realtime-js/${KM}`, XM = "1.0.0", Mi = "2.0.0", QM = Mi, eu = 1e4, tu = 15e3, au = 1e4, su = 100, x1 = {
20724  closed: "closed",
20725  errored: "errored",
20726  joined: "joined",
20727  joining: "joining",
20728  leaving: "leaving"
20729}, ui = {
20730  close: "phx_close",
20731  error: "phx_error",
20732  join: "phx_join",
20733  leave: "phx_leave",
20734  access_token: "access_token"
20735}, Y4 = {
20736  connecting: "connecting",
20737  closing: "closing",
20738  closed: "closed"
20739};
20740class iu {
20741  constructor(e) {
20742    this.HEADER_LENGTH = 1, this.USER_BROADCAST_PUSH_META_LENGTH = 6, this.KINDS = { userBroadcastPush: 3, userBroadcast: 4 }, this.BINARY_ENCODING = 0, this.JSON_ENCODING = 1, this.BROADCAST_EVENT = "broadcast", this.allowedMetadataKeys = [], this.allowedMetadataKeys = e ?? [];
20743  }
20744  encode(e, s) {
20745    if (e.event === this.BROADCAST_EVENT && !(e.payload instanceof ArrayBuffer) && typeof e.payload.event == "string")
20746      return s(this._binaryEncodeUserBroadcastPush(e));
20747    let r = [e.join_ref, e.ref, e.topic, e.event, e.payload];
20748    return s(JSON.stringify(r));
20749  }
20750  _binaryEncodeUserBroadcastPush(e) {
20751    var s;
20752    return this._isArrayBuffer((s = e.payload) === null || s === void 0 ? void 0 : s.payload) ? this._encodeBinaryUserBroadcastPush(e) : this._encodeJsonUserBroadcastPush(e);
20753  }
20754  _encodeBinaryUserBroadcastPush(e) {
20755    var s, r;
20756    const n = (r = (s = e.payload) === null || s === void 0 ? void 0 : s.payload) !== null && r !== void 0 ? r : new ArrayBuffer(0);
20757    return this._encodeUserBroadcastPush(e, this.BINARY_ENCODING, n);
20758  }
20759  _encodeJsonUserBroadcastPush(e) {
20760    var s, r;
20761    const n = (r = (s = e.payload) === null || s === void 0 ? void 0 : s.payload) !== null && r !== void 0 ? r : {}, L = new TextEncoder().encode(JSON.stringify(n)).buffer;
20762    return this._encodeUserBroadcastPush(e, this.JSON_ENCODING, L);
20763  }
20764  _encodeUserBroadcastPush(e, s, r) {
20765    var n, o;
20766    const L = new TextEncoder(), d = L.encode(e.topic), l = L.encode((n = e.ref) !== null && n !== void 0 ? n : ""), g = L.encode((o = e.join_ref) !== null && o !== void 0 ? o : ""), f = L.encode(e.payload.event), p = this.allowedMetadataKeys ? this._pick(e.payload, this.allowedMetadataKeys) : {}, M = L.encode(Object.keys(p).length === 0 ? "" : JSON.stringify(p));
20767    if (g.length > 255)
20768      throw new Error(`joinRef length ${g.length} exceeds maximum of 255`);
20769    if (l.length > 255)
20770      throw new Error(`ref length ${l.length} exceeds maximum of 255`);
20771    if (d.length > 255)
20772      throw new Error(`topic length ${d.length} exceeds maximum of 255`);
20773    if (f.length > 255)
20774      throw new Error(`userEvent length ${f.length} exceeds maximum of 255`);
20775    if (M.length > 255)
20776      throw new Error(`metadata length ${M.length} exceeds maximum of 255`);
20777    const u = this.USER_BROADCAST_PUSH_META_LENGTH + g.length + l.length + d.length + f.length + M.length, h = new ArrayBuffer(this.HEADER_LENGTH + u), x = new DataView(h), _ = new Uint8Array(h);
20778    let v = 0;
20779    x.setUint8(v++, this.KINDS.userBroadcastPush), x.setUint8(v++, g.length), x.setUint8(v++, l.length), x.setUint8(v++, d.length), x.setUint8(v++, f.length), x.setUint8(v++, M.length), x.setUint8(v++, s), _.set(g, v), v += g.length, _.set(l, v), v += l.length, _.set(d, v), v += d.length, _.set(f, v), v += f.length, _.set(M, v), v += M.length;
20780    var y = new Uint8Array(h.byteLength + r.byteLength);
20781    return y.set(new Uint8Array(h), 0), y.set(new Uint8Array(r), h.byteLength), y.buffer;
20782  }
20783  decode(e, s) {
20784    if (this._isArrayBuffer(e)) {
20785      let r = this._binaryDecode(e);
20786      return s(r);
20787    }
20788    if (typeof e == "string") {
20789      const r = JSON.parse(e), [n, o, L, d, l] = r;
20790      return s({ join_ref: n, ref: o, topic: L, event: d, payload: l });
20791    }
20792    return s({});
20793  }
20794  _binaryDecode(e) {
20795    const s = new DataView(e), r = s.getUint8(0), n = new TextDecoder();
20796    switch (r) {
20797      case this.KINDS.userBroadcast:
20798        return this._decodeUserBroadcast(e, s, n);
20799    }
20800  }
20801  _decodeUserBroadcast(e, s, r) {
20802    const n = s.getUint8(1), o = s.getUint8(2), L = s.getUint8(3), d = s.getUint8(4);
20803    let l = this.HEADER_LENGTH + 4;
20804    const g = r.decode(e.slice(l, l + n));
20805    l = l + n;
20806    const f = r.decode(e.slice(l, l + o));
20807    l = l + o;
20808    const p = r.decode(e.slice(l, l + L));
20809    l = l + L;
20810    const M = e.slice(l, e.byteLength), u = d === this.JSON_ENCODING ? JSON.parse(r.decode(M)) : M, h = {
20811      type: this.BROADCAST_EVENT,
20812      event: f,
20813      payload: u
20814    };
20815    return L > 0 && (h.meta = JSON.parse(p)), { join_ref: null, ref: null, topic: g, event: this.BROADCAST_EVENT, payload: h };
20816  }
20817  _isArrayBuffer(e) {
20818    var s;
20819    return e instanceof ArrayBuffer || ((s = e?.constructor) === null || s === void 0 ? void 0 : s.name) === "ArrayBuffer";
20820  }
20821  _pick(e, s) {
20822    return !e || typeof e != "object" ? {} : Object.fromEntries(Object.entries(e).filter(([r]) => s.includes(r)));
20823  }
20824}
20825var K;
20826(function(t) {
20827  t.abstime = "abstime", t.bool = "bool", t.date = "date", t.daterange = "daterange", t.float4 = "float4", t.float8 = "float8", t.int2 = "int2", t.int4 = "int4", t.int4range = "int4range", t.int8 = "
20827int8", t.int8range = "int8range", t.json = "json", t.jsonb = "jsonb", t.money = "money", t.numeric = "numeric", t.oid = "oid", t.reltime = "reltime", t.text = "text", t.time = "time", t.timestamp = "timestamp", t.timestamptz = "timestamptz", t.timetz = "timetz", t.tsrange = "tsrange", t.tstzrange = "tstzrange";
20828})(K || (K = {}));
20829const Qa = (t, e, s = {}) => {
20830  var r;
20831  const n = (r = s.skipTypes) !== null && r !== void 0 ? r : [];
20832  return e ? Object.keys(e).reduce((o, L) => (o[L] = ru(L, t, e, n), o), {}) : {};
20833}, ru = (t, e, s, r) => {
20834  const n = e.find((d) => d.name === t), o = n?.type, L = s[t];
20835  return o && !r.includes(o) ? hi(o, L) : X4(L);
20836}, hi = (t, e) => {
20837  if (t.charAt(0) === "_") {
20838    const s = t.slice(1, t.length);
20839    return cu(e, s);
20840  }
20841  switch (t) {
20842    case K.bool:
20843      return nu(e);
20844    case K.float4:
20845    case K.float8:
20846    case K.int2:
20847    case K.int4:
20848    case K.int8:
20849    case K.numeric:
20850    case K.oid:
20851      return ou(e);
20852    case K.json:
20853    case K.jsonb:
20854      return Lu(e);
20855    case K.timestamp:
20856      return lu(e);
20857    // Format to be consistent with PostgREST
20858    case K.abstime:
20859    // To allow users to cast it based on Timezone
20860    case K.date:
20861    // To allow users to cast it based on Timezone
20862    case K.daterange:
20863    case K.int4range:
20864    case K.int8range:
20865    case K.money:
20866    case K.reltime:
20867    // To allow users to cast it based on Timezone
20868    case K.text:
20869    case K.time:
20870    // To allow users to cast it based on Timezone
20871    case K.timestamptz:
20872    // To allow users to cast it based on Timezone
20873    case K.timetz:
20874    // To allow users to cast it based on Timezone
20875    case K.tsrange:
20876    case K.tstzrange:
20877      return X4(e);
20878    default:
20879      return X4(e);
20880  }
20881}, X4 = (t) => t, nu = (t) => {
20882  switch (t) {
20883    case "t":
20884      return !0;
20885    case "f":
20886      return !1;
20887    default:
20888      return t;
20889  }
20890}, ou = (t) => {
20891  if (typeof t == "string") {
20892    const e = parseFloat(t);
20893    if (!Number.isNaN(e))
20894      return e;
20895  }
20896  return t;
20897}, Lu = (t) => {
20898  if (typeof t == "string")
20899    try {
20900      return JSON.parse(t);
20901    } catch {
20902      return t;
20903    }
20904  return t;
20905}, cu = (t, e) => {
20906  if (typeof t != "string")
20907    return t;
20908  const s = t.length - 1, r = t[s];
20909  if (t[0] === "{" && r === "}") {
20910    let o;
20911    const L = t.slice(1, s);
20912    try {
20913      o = JSON.parse("[" + L + "]");
20914    } catch {
20915      o = L ? L.split(",") : [];
20916    }
20917    return o.map((d) => hi(e, d));
20918  }
20919  return t;
20920}, lu = (t) => typeof t == "string" ? t.replace(" ", "T") : t, mi = (t) => {
20921  const e = new URL(t);
20922  return e.protocol = e.protocol.replace(/^ws/i, "http"), e.pathname = e.pathname.replace(/\/+$/, "").replace(/\/socket\/websocket$/i, "").replace(/\/socket$/i, "").replace(/\/websocket$/i, ""), e.pathname === "" || e.pathname === "/" ? e.pathname = "/api/broadcast" : e.pathname = e.pathname + "/api/broadcast", e.href;
20923};
20924var ht = (t) => typeof t == "function" ? (
20925  /** @type {() => T} */
20926  t
20927) : function() {
20928  return t;
20929}, du = typeof self < "u" ? self : null, it = typeof window < "u" ? window : null, Ye = du || it || globalThis, gu = "2.0.0", fu = 1e4, pu = 1e3, Mu = 100, Xe = (
20930  /** @type {const} */
20931  { connecting: 0, open: 1, closing: 2, closed: 3 }
20932), Be = (
20933  /** @type {const} */
20934  {
20935    closed: "closed",
20936    errored: "errored",
20937    joined: "joined",
20938    joining: "joining",
20939    leaving: "leaving"
20940  }
20941), l1 = (
20942  /** @type {const} */
20943  {
20944    close: "phx_close",
20945    error: "phx_error",
20946    join: "phx_join",
20947    reply: "phx_reply",
20948    leave: "phx_leave"
20949  }
20950), Q4 = (
20951  /** @type {const} */
20952  {
20953    longpoll: "longpoll",
20954    websocket: "websocket"
20955  }
20956), uu = (
20957  /** @type {const} */
20958  {
20959    complete: 4
20960  }
20961), e5 = "base64url.bearer.phx.", D2 = class {
20962  /**
20963   * Initializes the Push
20964   * @param {Channel} channel - The Channel
20965   * @param {ChannelEvent} event - The event, for example `"phx_join"`
20966   * @param {() => Record<string, unknown>} payload - The payload, for example `{user_id: 123}`
20967   * @param {number} timeout - The push timeout in milliseconds
20968   */
20969  constructor(t, e, s, r) {
20970    this.channel = t, this.event = e, this.payload = s || function() {
20971      return {};
20972    }, this.receivedResp = null, this.timeout = r, this.timeoutTimer = null, this.recHo
vendor: 10,493 bytes, lines 20972-21286
20972oks = [], this.sent = !1, this.ref = void 0;
20973  }
20974  /**
20975   *
20976   * @param {number} timeout
20977   */
20978  resend(t) {
20979    this.timeout = t, this.reset(), this.send();
20980  }
20981  /**
20982   *
20983   */
20984  send() {
20985    this.hasReceived("timeout") || (this.startTimeout(), this.sent = !0, this.channel.socket.push({
20986      topic: this.channel.topic,
20987      event: this.event,
20988      payload: this.payload(),
20989      ref: this.ref,
20990      join_ref: this.channel.joinRef()
20991    }));
20992  }
20993  /**
20994   *
20995   * @param {string} status
20996   * @param {(response: any) => void} callback
20997   */
20998  receive(t, e) {
20999    return this.hasReceived(t) && e(this.receivedResp.response), this.recHooks.push({ status: t, callback: e }), this;
21000  }
21001  reset() {
21002    this.cancelRefEvent(), this.ref = null, this.refEvent = null, this.receivedResp = null, this.sent = !1;
21003  }
21004  destroy() {
21005    this.cancelRefEvent(), this.cancelTimeout();
21006  }
21007  /**
21008   * @private
21009   */
21010  matchReceive({ status: t, response: e, _ref: s }) {
21011    this.recHooks.filter((r) => r.status === t).forEach((r) => r.callback(e));
21012  }
21013  /**
21014   * @private
21015   */
21016  cancelRefEvent() {
21017    this.refEvent && this.channel.off(this.refEvent);
21018  }
21019  cancelTimeout() {
21020    clearTimeout(this.timeoutTimer), this.timeoutTimer = null;
21021  }
21022  startTimeout() {
21023    this.timeoutTimer && this.cancelTimeout(), this.ref = this.channel.socket.makeRef(), this.refEvent = this.channel.replyEventName(this.ref), this.channel.on(this.refEvent, (t) => {
21024      this.cancelRefEvent(), this.cancelTimeout(), this.receivedResp = t, this.matchReceive(t);
21025    }), this.timeoutTimer = setTimeout(() => {
21026      this.trigger("timeout", {});
21027    }, this.timeout);
21028  }
21029  /**
21030   * @private
21031   */
21032  hasReceived(t) {
21033    return this.receivedResp && this.receivedResp.status === t;
21034  }
21035  trigger(t, e) {
21036    this.channel.trigger(this.refEvent, { status: t, response: e });
21037  }
21038}, xi = class {
21039  /**
21040  * @param {() => void} callback
21041  * @param {(tries: number) => number} timerCalc
21042  */
21043  constructor(t, e) {
21044    this.callback = t, this.timerCalc = e, this.timer = void 0, this.tries = 0;
21045  }
21046  reset() {
21047    this.tries = 0, clearTimeout(this.timer);
21048  }
21049  /**
21050   * Cancels any previous scheduleTimeout and schedules callback
21051   */
21052  scheduleTimeout() {
21053    clearTimeout(this.timer), this.timer = setTimeout(() => {
21054      this.tries = this.tries + 1, this.callback();
21055    }, this.timerCalc(this.tries + 1));
21056  }
21057}, hu = class {
21058  /**
21059   * @param {string} topic
21060   * @param {Params | (() => Params)} params
21061   * @param {Socket} socket
21062   */
21063  constructor(t, e, s) {
21064    this.state = Be.closed, this.topic = t, this.params = ht(e || {}), this.socket = s, this.bindings = [], this.bindingRef = 0, this.timeout = this.socket.timeout, this.joinedOnce = !1, this.joinPush = new D2(this, l1.join, this.params, this.timeout), this.pushBuffer = [], this.stateChangeRefs = [], this.rejoinTimer = new xi(() => {
21065      this.socket.isConnected() && this.rejoin();
21066    }, this.socket.rejoinAfterMs), this.stateChangeRefs.push(this.socket.onError(() => this.rejoinTimer.reset())), this.stateChangeRefs.push(
21067      this.socket.onOpen(() => {
21068        this.rejoinTimer.reset(), this.isErrored() && this.rejoin();
21069      })
21070    ), this.joinPush.receive("ok", () => {
21071      this.state = Be.joined, this.rejoinTimer.reset(), this.pushBuffer.forEach((r) => r.send()), this.pushBuffer = [];
21072    }), this.joinPush.receive("error", (r) => {
21073      this.state = Be.errored, this.socket.hasLogger() && this.socket.log("channel", `error ${this.topic}`, r), this.socket.isConnected() && this.rejoinTimer.scheduleTimeout();
21074    }), this.onClose(() => {
21075      this.rejoinTimer.reset(), this.socket.hasLogger() && this.socket.log("channel", `close ${this.topic}`), this.state = Be.closed, this.socket.remove(this);
21076    }), this.onError((r) => {
21077      this.socket.hasLogger() && this.socket.log("channel", `error ${this.topic}`, r), this.isJoining() && this.joinPush.reset(), this.state = Be.errored, this.socket.isConnected() && this.rejoinTimer.scheduleTimeout();
21078    }), this.joinPush.receive("timeout", () => {
21079      this.socket.hasLogger() && this.socket.log("channel", `timeout ${this.topic}`, this.joinPush.timeout), new D2(this, l1.leave, ht({}), this.timeout).send(), this.state = Be.errored, this.joinPush.reset(), this.socket.isConnected() && this.rejoinTimer.scheduleTimeout();
21080    }), this.on(l1.reply, (r, n) => {
21081      this.trigger(this.replyEventName(n), r);
21082    });
21083  }
21084  /**
21085   * Join the channel
21086   * @param {number} timeout
21087   * @returns {Push}
21088   */
21089  join(t = this.timeout) {
21090    if (this.joinedOnce)
21091      throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");
21092    return this.timeout = t, this.joinedOnce = !0, this.rejoin(), this.joinPush;
21093  }
21094  /**
21095   * Teardown the channel.
21096   *
21097   * Destroys and stops related timers.
21098   */
21099  teardown() {
21100    this.pushBuffer.forEach((t) => t.destroy()), this.pushBuffer = [], this.rejoinTimer.reset(), this.joinPush.destroy(), this.state = Be.closed, this.bindings = [];
21101  }
21102  /**
21103   * Hook into channel close
21104   * @param {ChannelBindingCallback} callback
21105   */
21106  onClose(t) {
21107    this.on(l1.close, t);
21108  }
21109  /**
21110   * Hook into channel errors
21111   * @param {ChannelOnErrorCallback} callback
21112   * @return {number}
21113   */
21114  onError(t) {
21115    return this.on(l1.error, (e) => t(e));
21116  }
21117  /**
21118   * Subscribes on channel events
21119   *
21120   * Subscription returns a ref counter, which can be used later to
21121   * unsubscribe the exact event listener
21122   *
21123   * @example
21124   * const ref1 = channel.on("event", do_stuff)
21125   * const ref2 = channel.on("event", do_other_stuff)
21126   * channel.off("event", ref1)
21127   * // Since unsubscription, do_stuff won't fire,
21128   * // while do_other_stuff will keep firing on the "event"
21129   *
21130   * @param {string} event
21131   * @param {ChannelBindingCallback} callback
21132   * @returns {number} ref
21133   */
21134  on(t, e) {
21135    let s = this.bindingRef++;
21136    return this.bindings.push({ event: t, ref: s, callback: e }), s;
21137  }
21138  /**
21139   * Unsubscribes off of channel events
21140   *
21141   * Use the ref returned from a channel.on() to unsubscribe one
21142   * handler, or pass nothing for the ref to unsubscribe all
21143   * handlers for the given event.
21144   *
21145   * @example
21146   * // Unsubscribe the do_stuff handler
21147   * const ref1 = channel.on("event", do_stuff)
21148   * channel.off("event", ref1)
21149   *
21150   * // Unsubscribe all handlers from event
21151   * channel.off("event")
21152   *
21153   * @param {string} event
21154   * @param {number} [ref]
21155   */
21156  off(t, e) {
21157    this.bindings = this.bindings.filter((s) => !(s.event === t && (typeof e > "u" || e === s.ref)));
21158  }
21159  /**
21160   * @private
21161   */
21162  canPush() {
21163    return this.socket.isConnected() && this.isJoined();
21164  }
21165  /**
21166   * Sends a message `event` to phoenix with the payload `payload`.
21167   * Phoenix receives this in the `handle_in(event, payload, socket)`
21168   * function. if phoenix replies or it times out (default 10000ms),
21169   * then optionally the reply can be received.
21170   *
21171   * @example
21172   * channel.push("event")
21173   *   .receive("ok", payload => console.log("phoenix replied:", payload))
21174   *   .receive("error", err => console.log("phoenix errored", err))
21175   *   .receive("timeout", () => console.log("timed out pushing"))
21176   * @param {string} event
21177   * @param {Object} payload
21178   * @param {number} [timeout]
21179   * @returns {Push}
21180   */
21181  push(t, e, s = this.timeout) {
21182    if (e = e || {}, !this.joinedOnce)
21183      throw new Error(`tried to push '${t}' to '${this.topic}' before joining. Use channel.join() before pushing events`);
21184    let r = new D2(this, t, function() {
21185      return e;
21186    }, s);
21187    return this.canPush() ? r.send() : (r.startTimeout(), this.pushBuffer.push(r)), r;
21188  }
21189  /** Leaves the channel
21190   *
21191   * Unsubscribes from server events, and
21192   * instructs channel to terminate on server
21193   *
21194   * Triggers onClose() hooks
21195   *
21196   * To receive leave acknowledgements, use the `receive`
21197   * hook to bind to the server ack, ie:
21198   *
21199   * @example
21200   * channel.leave().receive("ok", () => alert("left!") )
21201   *
21202   * @param {number} timeout
21203   * @returns {Push}
21204   */
21205  leave(t = this.timeout) {
21206    this.rejoinTimer.reset(), this.joinPush.cancelTimeout(), this.state = Be.leaving;
21207    let e = () => {
21208      this.socket.hasLogger() && this.socket.log("channel", `leave ${this.topic}`), this.trigger(l1.close, "leave");
21209    }, s = new D2(this, l1.leave, ht({}), t);
21210    return s.receive("ok", () => e()).receive("timeout", () => e()), s.send(), this.canPush() || s.trigger("ok", {}), s;
21211  }
21212  /**
21213   * Overridable message hook
21214   *
21215   * Receives all events for specialized message handling
21216   * before dispatching to the channel callbacks.
21217   *
21218   * Must return the payload, modified or unmodified
21219   * @type{ChannelOnMessage}
21220   */
21221  onMessage(t, e, s) {
21222    return e;
21223  }
21224  /**
21225   * Overridable filter hook
21226   *
21227   * If this function returns `true`, `binding`'s callback will be called.
21228   *
21229   * @type{ChannelFilterBindings}
21230   */
21231  filterBindings(t, e, s) {
21232    return !0;
21233  }
21234  isMember(t, e, s, r) {
21235    return this.topic !== t ? !1 : r && r !== this.joinRef() ? (this.socket.hasLogger() && this.socket.log("channel", "dropping outdated message", { topic: t, event: e, payload: s, joinRef: r }), !1) : !0;
21236  }
21237  joinRef() {
21238    return this.joinPush.ref;
21239  }
21240  /**
21241   * @private
21242   */
21243  rejoin(t = this.timeout) {
21244    this.isLeaving() || (this.socket.leaveOpenTopic(this.topic), this.state = Be.joining, this.joinPush.resend(t));
21245  }
21246  /**
21247   * @param {string} event
21248   * @param {unknown} [payload]
21249   * @param {?string} [ref]
21250   * @param {?string} [joinRef]
21251   */
21252  trigger(t, e, s, r) {
21253    let n = this.onMessage(t, e, s, r);
21254    if (e && !n)
21255      throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");
21256    let o = this.bindings.filter((L) => L.event === t && this.filterBindings(L, e, s));
21257    for (let L = 0; L < o.length; L++)
21258      o[L].callback(n, s, r || this.joinRef());
21259  }
21260  /**
21261  * @param {string} ref
21262  */
21263  replyEventName(t) {
21264    return `chan_reply_${t}`;
21265  }
21266  isClosed() {
21267    return this.state === Be.closed;
21268  }
21269  isErrored() {
21270    return this.state === Be.errored;
21271  }
21272  isJoined() {
21273    return this.state === Be.joined;
21274  }
21275  isJoining() {
21276    return this.state === Be.joining;
21277  }
21278  isLeaving() {
21279    return this.state === Be.leaving;
21280  }
21281}, l3 = class {
21282  static request(t, e, s, r, n, o, L) {
21283    if (Ye.XDomainRequest) {
21284      let d = new Ye.XDomainRequest();
21285      return this.xdomainRequest(d, t, e, r, n, o, L);
21286    }
21286 else if (Ye.XMLHttpRequest) {
21287      let d = new Ye.XMLHttpRequest();
21288      return this.xhrRequest(d, t, e, s, r, n, o, L);
21289    } else {
21290      if (Ye.fetch && Ye.AbortController)
21291        return this.fetchRequest(t, e, s, r, n, o, L);
21292      throw new Error("No suitable XMLHttpRequest implementation found");
21293    }
21294  }
21295  static fetchRequest(t, e, s, r, n, o, L) {
21296    let d = {
21297      method: t,
21298      headers: s,
21299      body: r
21300    }, l = null;
21301    return n && (l = new AbortController(), setTimeout(() => l.abort(), n), d.signal = l.signal), Ye.fetch(e, d).then((g) => g.text()).then((g) => this.parseJSON(g)).then((g) => L && L(g)).catch((g) => {
21302      g.name === "AbortError" && o ? o() : L && L(null);
21303    }), l;
21304  }
21305  static xdomainRequest(t, e, s, r, n, o, L) {
21306    return t.timeout = n, t.open(e, s), t.onload = () => {
21307      let d = this.parseJSON(t.responseText);
21308      L && L(d);
21309    }, o && (t.ontimeout = o), t.onprogress = () => {
21310    }, t.send(r), t;
21311  }
21312  static xhrRequest(t, e, s, r, n, o, L, d) {
21313    t.open(e, s, !0), t.timeout = o;
21314    for (let [l, g] of Object.entries(r))
21315      t.setRequestHeader(l, g);
21316    return t.onerror = () => d && d(null), t.onreadystatechange = () => {
21317      if (t.readyState === uu.complete && d) {
21318        let l = this.parseJSON(t.responseText);
21319        d(l);
21320      }
21321    }, L && (t.ontimeout = L), t.send(n), t;
21322  }
21323  static parseJSON(t) {
21324    if (!t || t === "")
21325      return null;
21326    try {
21327      return JSON.parse(t);
21328    } catch {
21329      return console && console.log("failed to parse JSON response", t), null;
21330    }
21331  }
21332  static serialize(t, e) {
21333    let s = [];
21334    for (var r in t) {
21335      if (!Object.prototype.hasOwnProperty.call(t, r))
21336        continue;
21337      let n = e ? `${e}[${r}]` : r, o = t[r];
21338      typeof o == "object" ? s.push(this.serialize(o, n)) : s.push(encodeURIComponent(n) + "=" + encodeURIComponent(o));
21339    }
21340    return s.join("&");
21341  }
21342  static appendParams(t, e) {
21343    if (Object.keys(e).length === 0)
21344      return t;
21345    let s = t.match(/\?/) ? "&" : "?";
21346    return `${t}${s}${this.serialize(e)}`;
21347  }
21348}, mu = (t) => {
21349  let e = "", s = new Uint8Array(t), r = s.byteLength;
21350  for (let n = 0; n < r; n++)
21351    e += String.fromCharCode(s[n]);
21352  return btoa(e);
21353}, X1 = class {
21354  constructor(t, e) {
21355    e && e.length === 2 && e[1].startsWith(e5) && (this.authToken = atob(e[1].slice(e5.length))), this.endPoint = null, this.token = null, this.skipHeartbeat = !0, this.reqs = /* @__PURE__ */ new Set(), this.awaitingBatchAck = !1, this.currentBatch = null, this.currentBatchTimer = null, this.batchBuffer = [], this.onopen = function() {
21356    }, this.onerror = function() {
21357    }, this.onmessage = function() {
21358    }, this.onclose = function() {
21359    }, this.pollEndpoint = this.normalizeEndpoint(t), this.readyState = Xe.connecting, setTimeout(() => this.poll(), 0);
21360  }
21361  normalizeEndpoint(t) {
21362    return t.replace("ws://", "http://").replace("wss://", "https://").replace(new RegExp("(.*)/" + Q4.websocket), "$1/" + Q4.longpoll);
21363  }
21364  endpointURL() {
21365    return l3.appendParams(this.pollEndpoint, { token: this.token });
21366  }
21367  closeAndRetry(t, e, s) {
21368    this.close(t, e, s), this.readyState = Xe.connecting;
21369  }
21370  ontimeout() {
21371    this.onerror("timeout"), this.closeAndRetry(1005, "timeout", !1);
21372  }
21373  isActive() {
21374    return this.readyState === Xe.open || this.readyState === Xe.connecting;
21375  }
21376  poll() {
21377    const t = { Accept: "application/json" };
21378    this.authToken && (t["X-Phoenix-AuthToken"] = this.authToken), this.ajax("GET", t, null, () => this.ontimeout(), (e) => {
21379      if (e) {
21380        var { status: s, token: r, messages: n } = e;
21381        if (s === 410 && this.token !== null) {
21382          this.onerror(410), this.closeAndRetry(3410, "session_gone", !1);
21383          return;
21384        }
21385        this.token = r;
21386      } else
21387        s = 0;
21388      switch (s) {
21389        case 200:
21390          n.forEach((o) => {
21391            setTimeout(() => this.onmessage({ data: o }), 0);
21392          }), this.poll();
21393          break;
21394        case 204:
21395          this.poll();
21396          break;
21397        case 410:
21398          this.readyState = Xe.open, this.onopen({}), this.poll();
21399          break;
21400        case 403:
21401          this.onerror(403), this.close(1008, "forbidden", !1);
21402          break;
21403        case 0:
21404        case 500:
21405          this.onerror(500), this.closeAndRetry(1011, "internal server error", 500);
21406          break;
21407        default:
21408          throw new Error(`unhandled poll status ${s}`);
21409      }
21410    });
21411  }
21412  // we collect all pushes within the current event loop by
21413  // setTimeout 0, which optimizes back-to-back procedural
21414  // pushes against an empty buffer
21415  send(t) {
21416    typeof t != "string" && (t = mu(t)), this.currentBatch ? this.currentBatch.push(t) : this.awaitingBatchAck ? this.batchBuffer.push(t) : (this.currentBatch = [t], this.currentBatchTimer = setTimeout(() => {
21417      this.batchSend(this.currentBatch), this.currentBatch = null;
21418    }, 0));
21419  }
21420  batchSend(t, e = 0) {
21421    this.awaitingBatchAck = !0;
21422    const s = e + Mu, r = t.slice(e, s);
21423    this.ajax("POST", { "Content-Type": "application/x-ndjson" }, r.join(`
21424`), () => this.onerror("timeout"), (n) => {
21425      !n || n.status !== 200 ? (this.awaitingBatchAck = !1, this.onerror(n && n.status), this.closeAndRetry(1011, "internal server error", !1)) : s < t.length ? this.batchSend(t, s) : this.batchBuffer.length > 0 ? (this.batchSend(this.batchBuffer), this.batchBuffer = []) : this.awaitingBatchAck = !1;
21426    });
21427  }
21428  close(t, e, s) {
21429    for (let n of this.reqs)
21430      n.abort();
21431    this.readyState = Xe.closed;
21432    let r = Object.assign({ code: 1e3, reason: void 0, wasClean: !0 }, { code: t, reason: e, wasClean: s });
21433    this.batchBuffer = [], clearTimeout(this.currentBatchTimer), this.currentBatchTimer = null, typeof CloseEvent < "u" ? this.onclose(new CloseEvent("close", r)) : this.onclose(r);
21434  }
21435  ajax(t, e, s, r, n) {
21436    let o, L = () => {
21437      this.reqs.delete(o), r();
21438    };
21439    o = l3.request(t, this.endpointURL(), e, s, this.timeout, L, (d) => {
21440      this.reqs.delete(o), this.isActive() && n(d);
21441    }), this.reqs.add(o);
21442  }
21443}, xu = class Ht {
21444  /**
21445   * Initializes the Presence
21446   * @param {Channel} channel - The Channel
21447   * @param {PresenceOptions} [opts] - The options, for example `{events: {state: "state", diff: "diff"}}`
21448   */
21449  constructor(e, s = {}) {
21450    let r = s.events || /** @type {PresenceEvents} */
21451    { state: "presence_state", diff: "presence_diff" };
21452    this.state = /* @__PURE__ */ Object.create(null), this.pendingDiffs = [], this.channel = e, this.joinRef = null, this.caller = {
21453      onJoin: function() {
21454      },
21455      onLeave: function() {
21456      },
21457      onSync: function() {
21458      }
21459    }, this.channel.on(r.state, (n) => {
21460      let { onJoin: o, onLeave: L, onSync: d } = this.caller;
21461      this.joinRef = this.channel.joinRef(), this.state = Ht.syncState(this.state, n, o, L), this.pendingDiffs.forEach((l) => {
21462        this.state = Ht.syncDiff(this.state, l, o, L);
21463      }), this.pendingDiffs = [], d();
21464    }), this.channel.on(r.diff, (n) => {
21465      let { onJoin: o, onLeave: L, onSync: d } = this.caller;
21466      this.inPendingSyncState() ? this.pendingDiffs.push(n) : (this.state = Ht.syncDiff(this.state, n, o, L), d());
21467    });
21468  }
21469  /**
21470   * @param {PresenceOnJoin} callback
21471   */
21472  onJoin(e) {
21473    this.caller.onJoin = e;
21474  }
21475  /**
21476   * @param {PresenceOnLeave} callback
21477   */
21478  onLeave(e) {
21479    this.caller.onLeave = e;
21480  }
21481  /**
21482   * @param {PresenceOnSync} callback
21483   */
21484  onSync(e) {
21485    this.caller.onSync = e;
21486  }
21487  /**
21488   * Returns the array of presences, with selected metadata.
21489   *
21490   * @template [T=PresenceState]
21491   * @param {((key: string, obj: PresenceState) => T)} [by]
21492   *
21493   * @returns {T[]}
21494   */
21495  list(e) {
21496    return Ht.list(this.state, e);
21497  }
21498  inPendingSyncState() {
21499    return !this.joinRef || this.joinRef !== this.channel.joinRef();
21500  }
21501  // lower-level public static API
21502  /**
21503   * Used to sync the list of presences on the server
21504   * with the client's state. An optional `onJoin` and `onLeave` callback can
21505   * be provided to react to changes in the client's local presences across
21506   * disconnects and reconnects with the server.
21507   *
21508   * @param {Record<string, PresenceState>} currentState
21509   * @param {Record<string, PresenceState>} newState
21510   * @param {PresenceOnJoin} onJoin
21511   * @param {PresenceOnLeave} onLeave
21512   *
21513   * @returns {Record<string, PresenceState>}
21514   */
21515  static syncState(e, s, r, n) {
21516    let o = this.toNullProtoObj(this.clone(e));
21517    s = this.toNullProtoObj(s);
21518    let L = /* @__PURE__ */ Object.create(null), d = /* @__PURE__ */ Object.create(null);
21519    return this.map(o, (l, g) => {
21520      s[l] || (d[l] = g);
21521    }), this.map(s, (l, g) => {
21522      let f = o[l];
21523      if (f) {
21524        let p = g.metas.map((x) => x.phx_ref), M = f.metas.map((x) => x.phx_ref), u = g.metas.filter((x) => M.indexOf(x.phx_ref) < 0), h = f.metas.filter((x) => p.indexOf(x.phx_ref) < 0);
21525        u.length > 0 && (L[l] = g, L[l].metas = u), h.length > 0 && (d[l] = this.clone(f), d[l].metas = h);
21526      } else
21527        L[l] = g;
21528    }), this.syncDiff(o, { joins: L, leaves: d }, r, n);
21529  }
21530  /**
21531   *
21532   * Used to sync a diff of presence join and leave
21533   * events from the server, as they happen. Like `syncState`, `syncDiff`
21534   * accepts optional `onJoin` and `onLeave` callbacks to react to a user
21535   * joining or leaving from a device.
21536   *
21537   * @param {Record<string, PresenceState>} state
21538   * @param {PresenceDiff} diff
21539   * @param {PresenceOnJoin} onJoin
21540   * @param {PresenceOnLeave} onLeave
21541   *
21542   * @returns {Record<string, PresenceState>}
21543   */
21544  static syncDiff(e, s, r, n) {
21545    e = this.toNullProtoObj(e);
21546    let { joins: o, leaves: L } = this.clone(s);
21547    return r || (r = function() {
21548    }), n || (n = function() {
21549    }), this.map(o, (d, l) => {
21550      let g = e[d];
21551      if (e[d] = this.clone(l), g) {
21552        let f = e[d].metas.map((M) => M.phx_ref), p = g.metas.filter((M) => f.indexOf(M.phx_ref) < 0);
21553        e[d].metas.unshift(...p);
21554      }
21555      r(d, g, l);
21556    }), this.map(L, (d, l) => {
21557      let g = e[d];
21558      if (!g)
21559        return;
21560      let f = l.metas.map((p) => p.phx_ref);
21561      g.metas = g.metas.filter((p) => f.indexOf(p.phx_ref) < 0), n(d, g, l), g.metas.length === 0 && delete e[d];
21562    }), e;
21563  }
21564  /**
21565   * Returns the array of presences, with selected metadata.
21566   *
21567   * @template [T=PresenceState]
21568   * @param {Record<string, PresenceState>} presences
21569   * @param {((key: string, obj: PresenceState) => T)} [chooser]
21570   *
21571   * @returns {T[]}
21572   */
21573  static list(e, s) {
21574    return s || (s = function(r, n) {
21575      return n;
21576    }), this.map(e, (r, n) => s(r, n));
21577  }
21578  // private
21579  /**
21580  * @template T
21581  * @param {Record<string, PresenceState>} obj
21582  * @param {(key: string, obj: PresenceState) => T} func
21583  */
21584  static map(e, s) {
21585    return Object.getOwnPropertyNames(e).map((r) => s(r, e[r]));
21586  }
21587  // Presence keys are chosen on the server and may collide with
21588  // Object.prototype properties ("__proto__", "constructor", ...), so any
21589  // object indexed by presence key must not have a prototype chain
21590  //
21591  // TODO: replace the null-prototype objects with Maps in Phoenix 2.0
21592  // (breaking change for the lower-level static API)
21593  static toNullProtoObj(e) {
21594    if (Object.getPrototypeOf(e) === null)
21595      return e;
21596    let s = /* @__PURE__ */ Object.create(null);
21597    return Object.getOwnPropertyNames(e).forEach((r) => {
21598      s[r] = e[r];
21599    }), s;
21600  }
21601  /**
21602  * @template T
21603  * @param {T} obj
21604  * @returns {T}
21605  */
21606  static clone(e) {
21607    return JSON.parse(JSON.stringify(e));
21608  }
21609}, z2 = {
21610  HEADER_LENGTH: 1,
21611  META_LENGTH: 4,
21612  KINDS: { push: 0, reply: 1, broadcast: 2 },
21613  /**
21614  * @template T
21615  * @param {Message<Record<string, any>>} msg
21616  * @param {(msg: ArrayBuffer | string) => T} callback
21617  * @returns {T}
21618  */
21619  encode(t, e) {
21620    if (t.payload.constructor === ArrayBuffer)
21621      return e(this.binaryEncode(t));
21622    {
21623      let s = [t.join_ref, t.ref, t.topic, t.event, t.payload];
21624      return e(JSON.stringify(s));
21625    }
21626  },
21627  /**
21628  * @template T
21629  * @param {ArrayBuffer | string} rawPayload
21630  * @param {(msg: Message<unknown>) => T} callback
21631  * @returns {T}
21632  */
21633  decode(t, e) {
21634    if (t.constructor === ArrayBuffer)
21635      return e(this.binaryDecode(t));
21636    {
21637      let [s, r, n, o, L] = JSON.parse(t);
21638      return e({ join_ref: s, ref: r, topic: n, event: o, payload: L });
21639    }
21640  },
21641  /** @private */
21642  binaryEncode(t) {
21643    let { join_ref: e, ref: s, event: r, topic: n, payload: o } = t, L = new TextEncoder(), d = L.encode(e), l = L.encode(s), g = L.encode(n), f = L.encode(r);
21644    this.assertFieldSize(d.byteLength, "join_ref"), this.assertFieldSize(l.byteLength, "ref"), this.assertFieldSize(g.byteLength, "topic"), this.assertFieldSize(f.byteLength, "event");
21645    let p = this.META_LENGTH + d.byteLength + l.byteLength + g.byteLength + f.byteLength, M = new ArrayBuffer(this.HEADER_LENGTH + p), u = new Uint8Array(M), h = new DataView(M), x = 0;
21646    h.setUint8(x++, this.KINDS.push), h.setUint8(x++, d.byteLength), h.setUint8(x++, l.byteLength), h.setUint8(x++, g.byteLength), h.setUint8(x++, f.byteLength), u.set(d, x), x += d.byteLength, u.set(l, x), x += l.byteLength, u.set(g, x), x += g.byteLength, u.set(f, x), x += f.byteLength;
21647    var _ = new Uint8Array(M.byteLength + o.byteLength);
21648    return _.set(u, 0), _.set(new Uint8Array(o), M.byteLength), _.buffer;
21649  },
21650  assertFieldSize(t, e) {
21651    if (t > 255)
21652      throw new Error(`unable to convert ${e} to binary: must be less than or equal to 255 bytes, but is ${t} bytes`);
21653  },
21654  /**
21655  * @private
21656  */
21657  binaryDecode(t) {
21658    let e = new DataView(t), s = e.getUint8(0), r = new TextDecoder();
21659    switch (s) {
21660      case this.KINDS.push:
21661        return this.decodePush(t, e, r);
21662      case this.KINDS.reply:
21663        return this.decodeReply(t, e, r);
21664      case this.KINDS.broadcast:
21665        return this.decodeBroadcast(t, e, r);
21666    }
21667  },
21668  /** @private */
21669  decodePush(t, e, s) {
21670    let r = e.getUint8(1), n = e.getUint8(2), o = e.getUint8(3), L = this.HEADER_LENGTH + this.META_LENGTH - 1, d = s.decode(t.slice(L, L + r));
21671    L = L + r;
21672    let l = s.decode(t.slice(L, L + n));
21673    L = L + n;
21674    let g = s.decode(t.slice(L, L + o));
21675    L = L + o;
21676    let f = t.slice(L, t.byteLength);
21677    return { join_ref: d, ref: null, topic: l, event: g, payload: f };
21678  },
21679  /** @private */
21680  decodeReply(t, e, s) {
21681    let r = e.getUint8(1), n = e.getUint8(2), o = e.getUint8(3), L = e.getUint8(4), d = this.HEADER_LENGTH + this.META_LENGTH, l = s.decode(t.slice(d, d + r));
21682    d = d + r;
21683    let g = s.decode(t.slice(d, d + n));
21684    d = d + n;
21685    let f = s.decode(t.slice(d, d + o));
21686    d = d + o;
21687    let p = s.decode(t.slice(d, d + L));
21688    d = d + L;
21689    let M = t.slice(d, t.byteLength), u = { status: p, response: M };
21690    return { join_ref: l, ref: g, topic: f, event: l1.reply, payload: u };
21691  },
21692  /** @private */
21693  decodeBroadcast(t, e, s) {
21694    let r = e.getUint8(1), n = e.getUint8(2), o = this.HEADER_LENGTH + 2, L = s.decode(t.slice(o, o + r));
21695    o = o + r;
21696    let d = s.decode(t.slice(o, o + n));
21697    o = o + n;
21698    let l = t.slice(o, t.byteLength);
21699    return { join_ref: null, ref: null, topic: L, event: d, payload: l };
21700  }
21701}, _u = class {
21702  /** Initializes the Socket *
21703   *
21704   * For IE8 support use an ES5-shim (https://github.com/es-shims/es5-shim)
21705   *
21706   * @constructor
21707   * @param {string} endPoint - The string WebSocket endpoint, ie, `"ws://example.com/socket"`,
21708   *                                               `"wss://example.com"`
21709   *                                               `"/socket"` (inherited host & protocol)
21710   * @param {SocketOptions} [opts] - Optional configuration
21711   */
21712  constructor(t, e = {}) {
21713    this.stateChangeCallbacks = { open: [], close: [], error: [], message: [] }, this.channels = [], this.sendBuffer = [], this.ref = 0, this.fallbackRef = null, this.timeout = e.timeout || fu, this.transport = e.transport || Ye.WebSocket || X1, this.conn = void 0, this.primaryPassedHealthCheck = !1, this.longPollFallbackMs = e.longPollFallbackMs, this.fallbackTimer = null;
21714    let s = null;
21715    try {
21716      s = Ye && Ye.sessionStorage;
21717    } catch {
21718    }
21719    this.sessionStore = e.sessionStorage || s, this.establishedConnections = 0, this.defaultEncoder = z2.encode.bind(z2), this.defaultDecoder = z2.decode.bind(z2), this.closeWasClean = !0, this.disconnecting = !1, this.binaryType = e.binaryType || "arraybuffer", this.connectClock = 1, this.pageHidden = !1, this.encode = void 0, this.decode = void 0, this.transport !== X1 ? (this.encode = e.encode || this.defaultEncoder, this.decode = e.decode || this.defaultDecoder) : (this.encode = this.defaultEncoder, this.decode = this.defaultDecoder);
21720    let r = null;
21721    it && it.addEventListener && (it.addEventListener("pagehide", (n) => {
21722      this.conn && (this.disconnect(), r = this.connectClock);
21723    }), it.addEventListener("pageshow", (n) => {
21724      r === this.connectClock && (r = null, this.connect());
21725    }), it.addEventListener("visibilitychange", () => {
21726      document.visibilityState === "hidden" ? this.pageHidden = !0 : (this.pageHidden = !1, !this.isConnected() && !this.closeWasClean && this.teardown(() => this.connect()));
21727    })), this.heartbeatIntervalMs = e.heartbeatIntervalMs || 3e4, this.autoSendHeartbeat = e.autoSendHeartbeat ?? !0, this.heartbeatCallback = e.heartbeatCallback ?? (() => {
21728    }
21728), this.rejoinAfterMs = (n) => e.rejoinAfterMs ? e.rejoinAfterMs(n) : [1e3, 2e3, 5e3][n - 1] || 1e4, this.reconnectAfterMs = (n) => e.reconnectAfterMs ? e.reconnectAfterMs(n) : [10, 50, 100, 150, 200, 250, 500, 1e3, 2e3][n - 1] || 5e3, this.logger = e.logger || null, !this.logger && e.debug && (this.logger = (n, o, L) => {
21729      console.log(`${n}: ${o}`, L);
21730    }), this.longpollerTimeout = e.longpollerTimeout || 2e4, this.params = ht(e.params || {}), this.endPoint = `${t}/${Q4.websocket}`, this.vsn = e.vsn || gu, this.heartbeatTimeoutTimer = null, this.heartbeatTimer = null, this.heartbeatSentAt = null, this.pendingHeartbeatRef = null, this.reconnectTimer = new xi(() => {
21731      if (this.pageHidden) {
21732        this.log("Not reconnecting as page is hidden!"), this.teardown();
21733        return;
21734      }
21735      this.teardown(async () => {
21736        e.beforeReconnect && await e.beforeReconnect(), this.connect();
21737      });
21738    }, this.reconnectAfterMs), this.authToken = e.authToken && ht(e.authToken);
21739  }
21740  /**
21741   * Returns the LongPoll transport reference
21742   */
21743  getLongPollTransport() {
21744    return X1;
21745  }
21746  /**
21747   * Disconnects and replaces the active transport
21748   *
21749   * @param {SocketTransport} newTransport - The new transport class to instantiate
21750   *
21751   */
21752  replaceTransport(t) {
21753    this.connectClock++, this.closeWasClean = !0, clearTimeout(this.fallbackTimer), this.reconnectTimer.reset(), this.conn && (this.conn.close(), this.conn = null), this.transport = t;
21754  }
21755  /**
21756   * Returns the socket protocol
21757   *
21758   * @returns {"wss" | "ws"}
21759   */
21760  protocol() {
21761    return location.protocol.match(/^https/) ? "wss" : "ws";
21762  }
21763  /**
21764   * The fully qualified socket url
21765   *
21766   * @returns {string}
21767   */
21768  endPointURL() {
21769    let t = l3.appendParams(
21770      l3.appendParams(this.endPoint, this.params()),
21771      { vsn: this.vsn }
21772    );
21773    return t.charAt(0) !== "/" ? t : t.charAt(1) === "/" ? `${this.protocol()}:${t}` : `${this.protocol()}://${location.host}${t}`;
21774  }
21775  /**
21776   * Disconnects the socket
21777   *
21778   * See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes for valid status codes.
21779   *
21780   * @param {() => void} [callback] - Optional callback which is called after socket is disconnected.
21781   * @param {number} [code] - A status code for disconnection (Optional).
21782   * @param {string} [reason] - A textual description of the reason to disconnect. (Optional)
21783   */
21784  disconnect(t, e, s) {
21785    this.connectClock++, this.disconnecting = !0, this.closeWasClean = !0, clearTimeout(this.fallbackTimer), this.reconnectTimer.reset(), this.teardown(() => {
21786      this.disconnecting = !1, t && t();
21787    }, e, s);
21788  }
21789  /**
21790   * @param {Params} [params] - [DEPRECATED] The params to send when connecting, for example `{user_id: userToken}`
21791   *
21792   * Passing params to connect is deprecated; pass them in the Socket constructor instead:
21793   * `new Socket("/socket", {params: {user_id: userToken}})`.
21794   */
21795  connect(t) {
21796    t && (console && console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"), this.params = ht(t)), !(this.conn && !this.disconnecting) && (this.longPollFallbackMs && this.transport !== X1 ? this.connectWithF
21796allback(X1, this.longPollFallbackMs) : this.transportConnect());
21797  }
21798  /**
21799   * Logs the message. Override `this.logger` for specialized logging. noops by default
21800   * @param {string} kind
21801   * @param {string} msg
21802   * @param {Object} data
21803   */
21804  log(t, e, s) {
21805    this.logger && this.logger(t, e, s);
21806  }
21807  /**
21808   * Returns true if a logger has been set on this socket.
21809   */
21810  hasLogger() {
21811    return this.logger !== null;
21812  }
21813  /**
21814   * Registers callbacks for connection open events
21815   *
21816   * @example socket.onOpen(function(){ console.info("the socket was opened") })
21817   *
21818   * @param {SocketOnOpen} callback
21819   */
21820  onOpen(t) {
21821    let e = this.makeRef();
21822    return this.stateChangeCallbacks.open.push([e, t]), e;
21823  }
21824  /**
21825   * Registers callbacks for connection close events
21826   * @param {SocketOnClose} callback
21827   * @returns {string}
21828   */
21829  onClose(t) {
21830    let e = this.makeRef();
21831    return this.stateChangeCallbacks.close.push([e, t]), e;
21832  }
21833  /**
21834   * Registers callbacks for connection error events
21835   *
21836   * @example socket.onError(function(error){ alert("An error occurred") })
21837   *
21838   * @param {SocketOnError} callback
21839   * @returns {string}
21840   */
21841  onError(t) {
21842    let e = this.makeRef();
21843    return this.stateChangeCallbacks.error.push([e, t]), e;
21844  }
21845  /**
21846   * Registers callbacks for connection message events
21847   * @param {SocketOnMessage} callback
21848   * @returns {string}
21849   */
21850  onMessage(t) {
21851    let e = this.makeRef();
21852    return this.stateChangeCallbacks.message.push([e, t]), e;
21853  }
21854  /**
21855   * Sets a callback that receives lifecycle events for internal heartbeat messages.
21856   * Useful for instrumenting connection health (e.g. sent/ok/timeout/disconnected).
21857   * @param {HeartbeatCallback} callback
21858   */
21859  onHeartbeat(t) {
21860    this.heartbeatCallback = t;
21861  }
21862  /**
21863   * Pings the server and invokes the callback with the RTT in milliseconds
21864   * @param {(timeDelta: number) => void} callback
21865   *
21866   * Returns true if the ping was pushed or false if unable to be pushed.
21867   */
21868  ping(t) {
21869    if (!this.isConnected())
21870      return !1;
21871    let e = this.makeRef(), s = Date.now();
21872    this.push({ topic: "phoenix", event: "heartbeat", payload: {}, ref: e });
21873    let r = this.onMessage((n) => {
21874      n.ref === e && (this.off([r]), t(Date.now() - s));
21875    });
21876    return !0;
21877  }
21878  /**
21879   * @private
21880   *
21881   * @param {Function}
21882   */
21883  transportName(t) {
21884    switch (t) {
21885      case X1:
21886        return "LongPoll";
21887      default:
21888        return t.name;
21889    }
21890  }
21891  /**
21892   * @private
21893   */
21894  transportConnect() {
21895    this.connectClock++, this.closeWasClean = !1;
21896    let t;
21897    this.authToken && (t = ["phoenix", `${e5}${btoa(this.authToken()).replace(/=/g, "")}`]), this.conn = new this.transport(this.endPointURL(), t), this.conn.binaryType = this.binaryType, this.conn.timeout = this.longpollerTimeout, this.conn.onopen = () => this.onConnOpen(), this.conn.onerror = (e) => this.onConnError(e), this.conn.onmessage = (e) => this.onConnMessage(e), this.conn.onclose = (e) => this.onConnClose(e);
21898  }
21899  getSession(t) {
21900    return this.sessionStore && this.sessionStore.getItem(t);
21901  }
21902  storeSession(t, e) {
21903    this.sessionStore && this.sessionStore.setItem(t, e);
21904  }
21905  connectWithFallback(t, e = 2500) {
21906    clearTimeout(this.fallbackTimer);
21907    let s = !1, r = !0, n, o, L = this.transportName(t), d = (l) => {
21908      this.log("transport", `falling back to ${L}...`, l), this.off([n, o]), r = !1, this.replaceTransport(t), this.transportConnect();
21909    };
21910    if (this.getSession(`phx:fallback:${L}`))
21911      return d("memorized");
21912    this.fallbackTimer = setTimeout(d, e), o = this.onError((l) => {
21913      this.log("transport", "error", l), r && !s && (clearTimeout(this.fallbackTimer), d(l));
21914    }), this.fallbackRef && this.off([this.fallbackRef]), this.fallbackRef = this.onOpen(() => {
21915      if (s = !0, !r) {
21916        let l = this.transportName(t);
21917        return this.primaryPassedHealthCheck || this.storeSession(`phx:fallback:${l}`, "true"), this.log("transport", `established ${l} fallback`);
21918      }
21919      clearTimeout(this.fallbackTimer), this.fallbackTimer = setTimeout(d, e), this.ping((l) => {
21920        this.log("transport", "connected to primary after", l), this.primaryPassedHealthCheck = !0, clearTimeout(this.fallbackTimer);
21921      });
21922    }), this.transportConnect();
21923  }
21924  clearHeartbeats() {
21925    clearTimeout(this.heartbeatTimer), clearTimeout(this.heartbeatTimeoutTimer);
21926  }
21927  onConnOpen() {
21928    this.hasLogger() && this.log("transport", `connected to ${this.endPointURL()}`), this.closeWasClean = !1, this.disconnecting = !1, this.establishedConnections++, this.flushSendBuffer(), this.reconnectTimer.reset(), this.autoSendHeartbeat && this.resetHeartbeat(), this.triggerStateCallbacks("open");
21929  }
21930  /**
21931   * @private
21932   */
21933  heartbeatTimeout() {
21934    if (this.pendingHeartbeatRef) {
21935      this.pendingHeartbeatRef = null, this.heartbeatSentAt = null, this.hasLogger() && this.log("transport", "heartbeat timeout. Attempting to re-establish connection");
21936      try {
21937        this.heartbeatCallback("timeout");
21938      } catch (t) {
21939        this.log("error", "error in heartbeat callback", t);
21940      }
21941      this.triggerChanError(new Error("heartbeat timeout")), this.closeWasClean = !1, this.teardown(() => this.reconnectTimer.scheduleTimeout(), pu, "heartbeat timeout");
21942    }
21943  }
21944  resetHeartbeat() {
21945    this.conn && this.conn.skipHeartbeat || (this.pendingHeartbeatRef = null, this.clearHeartbeats(), this.heartbeatTimer = setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs));
21946  }
21947  teardown(t, e, s) {
21948    if (!this.conn)
21949      return t && t();
21950    const r = this.conn;
21951    this.waitForBufferDone(r, () => {
21952      e ? r.close(e, s || "") : r.close(), this.waitForSocketClosed(r, () => {
21953        this.conn === r && (this.conn.onopen = function() {
21954        }, this.conn.onerror = function() {
21955        }, this.conn.onmessage = function() {
21956        }, this.conn.onclose = function() {
21957        }, this.conn = null), t && t();
21958      });
21959    });
21960  }
21961  waitForBufferDone(t, e, s = 1) {
21962    if (s === 5 || !t.bufferedAmount) {
21963      e();
21964      return;
21965    }
21966    setTimeout(() => {
21967      this.waitForBufferDone(t, e, s + 1);
21968    }, 150 * s);
21969  }
21970  waitForSocketClosed(t, e, s = 1) {
21971    if (s === 5 || t.readyState === Xe.closed) {
21972      e();
21973      return;
21974    }
21975    setTimeout(() => {
21976      this.waitForSocketClosed(t, e, s + 1);
21977    }, 150 * s);
21978  }
21979  /**
21980  * @param {CloseEvent} event
21981  */
21982  onConnClose(t) {
21983    this.conn && (this.conn.onclose = () => {
21984    }), this.hasLogger() && this.log("transport", "close", t), this.triggerChanError(t), this.clearHeartbeats(), this.closeWasClean || this.reconnectTimer.scheduleTimeout(), this.triggerStateCallbacks("close", t);
21985  }
21986  /**
21987   * @private
21988   * @param {Event} error
21989   */
21990  onConnError(t) {
21991    this.hasLogger() && this.log("transport", "error", t);
21992    let e = this.transport, s = this.establishedConnections;
21993    this.triggerStateCallbacks("error", t, e, s), (e === this.transport || s > 0) && this.triggerChanError(t);
21994  }
21995  /**
21996   * @private
21997   * @param {unknown} [reason] underlying close/error event forwarded to channel error listeners
21998   */
21999  triggerChanError(t) {
22000    this.channels.forEach((e) => {
22001      e.isErrored() || e.isLeaving() || e.isClosed() || e.trigger(l1.error, t);
22002    });
22003  }
22004  /**
22005   * @returns {string}
22006   */
22007  connectionState() {
22008    switch (this.conn && this.conn.readyState) {
22009      case Xe.connecting:
22010        return "connecting";
22011      case Xe.open:
22012        return "open";
22013      case Xe.closing:
22014        return "closing";
22015      default:
22016        return "closed";
22017    }
22018  }
22019  /**
22020   * @returns {boolean}
22021   */
22022  isConnected() {
22023    return this.connectionState() === "open";
22024  }
22025  /**
22026   *
22027   * @param {Channel} channel
22028   */
22029  remove(t) {
22030    this.off(t.stateChangeRefs), this.channels = this.channels.filter((e) => e !== t);
22031  }
22032  /**
22033   * Removes `onOpen`, `onClose`, `onError,` and `onMessage` registrations.
22034   *
22035   * @param {string[]} refs - list of refs returned by calls to
22036   *                 `onOpen`, `onClose`, `onError,` and `onMessage`
22037   */
22038  off(t) {
22039    for (let e in this.stateChangeCallbacks)
22040      this.stateChangeCallbacks[e] = this.stateChangeCallbacks[e].filter(([s]) => t.indexOf(s) === -1);
22041  }
22042  /**
22043   * Initiates a new channel for the given topic
22044   *
22045   * @param {string} topic
22046   * @param {Params | (() => Params)} [chanParams]- Parameters for the channel
22047   * @returns {Channel}
22048   */
22049  channel(t, e = {}) {
22050    let s = new hu(t, e, this);
22051    return this.channels.push(s), s;
22052  }
22053  /**
22054   * @param {Message<Record<string, any>>} data
22055   */
22056  push(t) {
22057    if (this.hasLogger()) {
22058      let { topic: e, event: s, payload: r, ref: n, join_ref: o } = t;
22059      this.log("push", `${e} ${s} (${o}, ${n})`, r);
22060    }
22061    this.isConnected() ? this.encode(t, (e) => this.conn.send(e)) : this.sendBuffer.push(() => this.encode(t, (e) => this.conn.send(e)));
22062  }
22063  /**
22064   * Return the next message ref, accounting for overflows
22065   * @returns {string}
22066   */
22067  makeRef() {
22068    let t = this.ref + 1;
22069    return t === this.ref ? this.ref = 0 : this.ref = t, this.ref.toString();
22070  }
22071  sendHeartbeat() {
22072    if (!this.isConnected()) {
22073      try {
22074        this.heartbeatCallback("disconnected");
22075      } catch (t) {
22076        this.log("error", "error in heartbeat callback", t);
22077      }
22078      return;
22079    }
22080    if (this.pendingHeartbeatRef) {
22081      this.heartbeatTimeout();
22082      return;
22083    }
22084    this.pendingHeartbeatRef = this.makeRef(), this.heartbeatSentAt = Date.now(), this.push({ topic: "phoenix", event: "heartbeat", payload: {}, ref: this.pendingHeartbeatRef });
22085    try {
22086      this.heartbeatCallback("sent");
22087    } catch (t) {
22088      this.log("error", "error in heartbeat callback", t);
22089    }
22090    this.heartbeatTimeoutTimer = setTimeout(() => this.heartbeatTimeout(), this.heartbeatIntervalMs);
22091  }
22092  flushSendBuffer() {
22093    this.isConnected() && this.sendBuffer.length > 0 && (this.sendBuffer.forEach((t) => t()), this.sendBuffer = []);
22094  }
22095  /**
22096  * @param {MessageEvent<any>} rawMessage
22097  */
22098  onConnMessage(t) {
22099    this.decode(t.data, (e) => {
22100      let { topic: s, event: r, payload: n, ref: o, join_ref: L } = e;
22101      if (o && o === this.pendingHeartbeatRef) {
22102        const d = this.heartbeatSentAt ? Date.now() - this.heartbeatSentAt : void 0;
22103        this.clearHeartbeats();
22104        try {
22105          this.heartbeatCallback(n.status === "ok" ? "ok" : "error", d);
22106        } catch (l) {
22107          this.log("error", "error in heartbeat callback", l);
22108        }
22109        this.pendingHeartbeatRef = null, this.heartbeatSentAt = null, this.autoSendHeartbeat && (this.heartbeatTimer = setTimeout(() => this.sendHeartbeat(), this.heartbeatIntervalMs));
22110      }
22111      this.hasLogger() && this.log("receive", `${n.status || ""} ${s} ${r} ${o && "(" + o + ")" || ""}`.trim(), n);
22112      for (let d = 0; d < this.channels.length; d++) {
22113        const l = this.channels[d];
22114        l.isMember(s, r, n, L) && l.trigger(r, n, o, L);
22115      }
22116      this.triggerStateCallbacks("message", e);
22117    });
22118  }
22119  /**
22120   * @private
22121   * @template {keyof SocketStateChangeCallbacks} K
22122   * @param {K} event
22123   * @param {...Parameters<SocketStateChangeCallbacks[K][number][1]>} args
22124   * @returns {void}
22125   */
22126  triggerStateCallbacks(t, ...e) {
22127    try {
22128      this.stateChangeCallbacks[t].forEach(([s, r]) => {
22129        try {
22130          r(...e);
22131        } catch (n) {
22132          this.log("error", `error in ${t} callback`, n);
22133        }
22134      });
22135    } catch (s) {
22136      this.log("error", `error triggering ${t} callbacks`, s);
22137    }
22138  }
22139  leaveOpenTopic(t) {
22140    let e = this.channels.find((s) => s.topic === t && (s.isJoined() || s.isJoining()));
22141    e && (this.hasLogger() && this.log("transport", `leaving duplicate topic "${t}"`), e.leave());
22142  }
22143};
22144class Yt {
22145  constructor(e, s) {
22146    const r = vu(s);
22147    this.presence = new xu(e.getChannel(), r), this.presence.onJoin((n, o, L) => {
22148      const d = Yt.onJoinPayload(n, o, L);
22149      e.getChannel().trigger("presence", d);
22150    }), this.presence.onLeave((n, o, L) => {
22151      const d = Yt.onLeavePayload(n, o, L);
22152      e.getChannel().trigger("presence", d);
22153    }), this.presence.onSync(() => {
22154      e.getChannel().trigger("presence", { event: "sync" });
22155    });
22156  }
22157  get state() {
22158    return Yt.transformState(this.presence.state);
22159  }
22160  /**
22161   * @private
22162   * Remove 'metas' key
22163   * Change 'phx_ref' to 'presence_ref'
22164   * Remove 'phx_ref' and 'phx_ref_prev'
22165   *
22166   * @example Transform state
22167   * // returns {
22168   *  abc123: [
22169   *    { presence_ref: '2', user_id: 1 },
22170   *    { presence_ref: '3', user_id: 2 }
22171   *  ]
22172   * }
22173   * RealtimePresence.transformState({
22174   *  abc123: {
22175   *    metas: [
22176   *      { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },
22177   *      { phx_ref: '3', user_id: 2 }
22178   *    ]
22179   *  }
22180   * })
22181   *
22182   */
22183  static transformState(e) {
22184    return e = bu(e), Object.getOwnPropertyNames(e).reduce((s, r) => {
22185      const n = e[r];
22186      return s[r] = a3(n), s;
22187    }, {});
22188  }
22189  static onJoinPayload(e, s, r) {
22190    const n = e6(s), o = a3(r);
22191    return {
22192      event: "join",
22193      key: e,
22194      currentPresences: n,
22195      newPresences: o
22196    };
22197  }
22198  static onLeavePayload(e, s, r) {
22199    const n = e6(s), o = a3(r);
22200    return {
22201      event: "leave",
22202      key: e,
22203      currentPresences: n,
22204      leftPresences: o
22205    };
22206  }
22207}
22208function a3(t) {
22209  return t.metas.map((e) => {
22210    const s = Object.getOwnPropertyDescriptors(e), r = Object.defineProperties({}, s);
22211    return r.presence_ref = r.phx_ref, delete r.phx_ref, delete r.phx_ref_prev, r;
22212  });
22213}
22214function bu(t) {
22215  return JSON.parse(JSON.stringify(t));
22216}
22217function vu(t) {
22218  return t?.events && { events: t.events };
22219}
22220function e6(t) {
22221  return t?.metas ? a3(t) : [];
22222}
22223var t6;
22224(function(t) {
22225  t.SYNC = "sync", t.JOIN = "join", t.LEAVE = "leave";
22226})(t6 || (t6 = {}));
22227class yu {
22228  get state() {
22229    return this.presenceAdapter.state;
22230  }
22231  /**
22232   * Creates a Presence helper that keeps the local presence state in sync with the server.
22233   *
22234   * @param channel - The realtime channel to bind to.
22235   * @param opts - Optional custom event names, e.g. `{ events: { state: 'state', diff: 'diff' } }`.
22236   *
22237   * @category Realtime
22238   *
22239   * @example Example for a presence channel
22240   * ```ts
22241   * const presence = new RealtimePresence(channel)
22242   *
22243   * channel.on('presence', ({ event, key }) => {
22244   *   console.log(`Presence ${event} on ${key}`)
22245   * })
22246   * ```
22247   */
22248  constructor(e, s) {
22249    this.channel = e, this.presenceAdapter = new Yt(this.channel.channelAdapter, s);
22250  }
22251}
22252function wu(t) {
22253  if (t instanceof Error)
22254    return t;
22255  if (typeof t == "string")
22256    return new Error(t);
22257  if (t && typeof t == "object") {
22258    const e = t;
22259    if (typeof e.code == "number") {
22260      const s = typeof e.reason == "string" && e.reason ? ` (${e.reason})` : "";
22261      return new Error(`socket closed: ${e.code}${s}`, { cause: t });
22262    }
22263    return new Error("channel error: transport failure", { cause: t });
22264  }
22265  return new Error("channel error: connection lost");
22266}
22267class Tu {
22268  constructor(e, s, r) {
22269    const n = Su(r);
22270    this.channel = e.getSocket().channel(s, n), this.socket = e;
22271  }
22272  get state() {
22273    return this.channel.state;
22274  }
22275  set state(e) {
22276    this.channel.state = e;
22277  }
22278  get joinedOnce() {
22279    return this.channel.joinedOnce;
22280  }
22281  get joinPush() {
22282    return this.channel.joinPush;
22283  }
22284  get rejoinTimer() {
22285    return this.channel.rejoinTimer;
22286  }
22287  on(e, s) {
22288    return this.channel.on(e, s);
22289  }
22290  off(e, s) {
22291    this.channel.off(e, s);
22292  }
22293  subscribe(e) {
22294    return this.channel.join(e);
22295  }
22296  unsubscribe(e) {
22297    return this.channel.leave(e);
22298  }
22299  teardown() {
22300    this.channel.teardown();
22301  }
22302  onClose(e) {
22303    this.channel.onClose(e);
22304  }
22305  onError(e) {
22306    return this.channel.onError(e);
22307  }
22308  push(e, s, r) {
22309    let n;
22310    try {
22311      n = this.channel.push(e, s, r);
22312    } catch {
22313      throw new Error(`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`);
22314    }
22315    if (this.channel.pushBuffer.length > su) {
22316      const o = this.channel.pushBuffer.shift();
22317      o.cancelTimeout(), this.socket.log("channel", `discarded push due to buffer overflow: ${o.event}`, o.payload());
22318    }
22319    return n;
22320  }
22321  updateJoinPayload(e) {
22322    const s = this.channel.joinPush.payload();
22323    this.channel.joinPush.payload = () => Object.assign(Object.assign({}, s), e);
22324  }
22325  canPush() {
22326    return this.socket.isConnected() && this.state === x1.joined;
22327  }
22328  isJoined() {
22329    return this.state === x1.joined;
22330  }
22331  isJoining() {
22332    return this.state === x1.joining;
22333  }
22334  isClosed() {
22335    return this.state === x1.closed;
22336  }
22337  isLeaving() {
22338    return this.state === x1.leaving;
22339  }
22340  updateFilterBindings(e) {
22341    this.channel.filterBindings = e;
22342  }
22343  updatePayloadTransform(e) {
22344    this.channel.onMessage = e;
22345  }
22346  /**
22347   * @internal
22348   */
22349  getChannel() {
22350    return this.channel;
22351  }
22352}
22353function Su(t) {
22354  return {
22355    config: Object.assign({
22356      broadcast: { ack: !1, self: !1 },
22357      presence: { key: "", enabled: !1 },
22358      private: !1
22359    }, t.config)
22360  };
22361}
22362const Bu = /[,()"\\]/, ku = (t) => Bu.test(t) || t !== t.trim(), Au = (t) => `"${t.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`, a6 = (t) => {
22363  const e = t === null ? "null" : String(t);
22364  return ku(e) ? Au(e) : e;
22365}, Nu = (t) => t === null ? "null" : String(t), Iu = (t, e) => {
22366  if (t === "in") {
22367    const s = Array.isArray(e) ? e : [e];
22368    if (s.length === 0)
22369      throw new Error("Realtime `in` filter requires at least one value.");
22370    return `in.(${Array.from(new Set(s)).map((n) => a6(n)).join(",")})`;
22371  }
22372  return t === "is" ? `is.${Nu(e)}` : `${t}.${a6(e)}`;
22373};
22374class Pu {
22375  constructor() {
22376    this.filters = [];
22377  }
22378  add(e, s, r, n = !1) {
22379    const o = n ? "not." : "";
22380    return this.filters.push(`${e}=${o}${Iu(s, r)}`), this;
22381  }
22382  /** Match rows where `column` equals `value` (`column=eq.value`). */
22383  eq(e, s) {
22384    return this.add(e, "eq", s);
22385  }
22386  /** Match rows where `column` does not equal `value` (`column=neq.value`). */
22387  neq(e, s) {
22388    return this.add(e, "neq", s);
22389  }
22390  /** Match rows where `column` is greater than `value` (`column=gt.value`). */
22391  gt(e, s) {
22392    return this.add(e, "gt", s);
22393  }
22394  /** Match rows where `column` is greater than or equal to `value` (`column=gte.value`). */
22395  gte(e, s) {
22396    return this.add(e, "gte", s);
22397  }
22398  /** Match rows where `column` is less than `value` (`column=lt.value`). */
22399  lt(e, s) {
22400    return this.add(e, "lt", s);
22401  }
22402  /** Match rows where `column` is less than or equal to `value` (`column=lte.value`). */
22403  lte(e, s) {
22404    return this.add(e, "lte", s);
22405  }
22406  /**
22407   * Match rows where `column` is one of `values` (`column=in.(a,b,c)`).
22408   * Requires at least one value; duplicates are removed. An element containing a
22409   * reserved character is double-quoted (`in.("a,b",c)`), so commas inside an
22410   * element are preserved. `null` is intentionally not accepted (`IN (null)`
22411   * never matches in SQL) — use `is`/`not('col','is',null)` for null checks.
22412   */
22413  in(e, s) {
22414    return this.add(e, "in", s);
22415  }
22416  /** Match rows where `column` matches the case-sensitive `pattern` (`column=like.pattern`). */
22417  like(e, s) {
22418    return this.add(e, "like", s);
22419  }
22420  /** Match rows where `column` matches the case-insensitive `pattern` (`column=ilike.pattern`). */
22421  ilike(e, s) {
22422    return this.add(e, "ilike", s);
22423  }
22424  /** Match rows where `column` matches the POSIX regex `pattern` (`column=match.pattern`). */
22425  match(e, s) {
22426    return this.add(e, "match", s);
22427  }
22428  /** Match rows where `column` matches the case-insensitive POSIX regex `pattern` (`column=imatch.pattern`). */
22429  imatch(e, s) {
22430    return this.add(e, "imatch", s);
22431  }
22432  /**
22433   * Match rows where `column` `IS` the given value (`column=is.null`).
22434   * Accepts `null`, a boolean, or the keywords `'null' | 'true' | 'false' | 'unknown'`.
22435   */
22436  is(e, s) {
22437    return this.add(e, "is", s);
22438  }
22439  /** Match rows where `column` is distinct from `value` (`column=isdistinct.value`). NULL-safe inequality. */
22440  isDistinct(e, s) {
22441    return this.add(e, "isdistinct", s);
22442  }
22443  not(e, s, r) {
22444    return this.add(e, s, r, !0);
22445  }
22446  /**
22447   * Serialize all conditions into the comma-separated (AND) filter string.
22448   *
22449   * Conditions are joined by commas, which the server applies as `AND`. A scalar
22450   * value (or single `in` element) that contains a reserved character — `,`,
22451   * `(`, `)`, `"`, `\` — or surrounding whitespace is double-quoted and escaped
22452   * the way PostgREST does, so commas inside a value are preserved rather than
22453   * read as a condition boundary.
22454   */
22455  build() {
22456    return this.filters.join(",");
22457  }
22458  /** Alias for {@link build}; lets the builder be used wherever a string is expected. */
22459  toString() {
22460    return this.build();
22461  }
22462}
22463var s6;
22464(function(t) {
22465  t.ALL = "*", t.INSERT = "INSERT", t.UPDATE = "UPDATE", t.DELETE = "DELETE";
22466})(s6 || (s6 = {}));
22467var E1;
22468(function(t) {
22469  t.BROADCAST = "broadcast", t.PRESENCE = "presence", t.POSTGRES_CHANGES = "postgres_changes", t.SYSTEM = "system";
22470})(E1 || (E1 = {}));
22471var d1;
22472(function(t) {
22473  t.SUBSCRIBED = "SUBSCRIBED", t.TIMED_OUT = "TIMED_OUT", t.CLOSED = "CLOSED", t.CHANNEL_ERROR = "CHANNEL_ERROR";
22474})(d1 || (d1 = {}));
22475class g1 {
22476  get state() {
22477    return this.channelAdapter.state;
22478  }
22479  set state(e) {
22480    this.channelAdapter.state = e;
22481  }
22482  get joinedOnce() {
22483    return this.channelAdapter.joinedOnce;
22484  }
22485  get timeout() {
22486    return this.socket.timeout;
22487  }
22488  get joinPush() {
22489    return this.channelAdapter.joinPush;
22490  }
22491  get rejoinTimer() {
22492    return this.channelAdapter.rejoinTimer;
22493  }
22494  /**
22495   * Creates a channel that can broadcast messages, sync presence, and listen to Postgres changes.
22496   *
22497   * The topic determines which realtime stream you are subscribing to. Config options let you
22498   * enable acknowledgement for broadcasts, presence tracking, or private channels.
22499   *
22500   * @category Realtime
22501   *
22502   * @example Using supabase-js (recommended)
22503   * ```ts
22504   * import { createClient } from '@supabase/supabase-js'
22505   *
22506   * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
22507   * const channel = supabase.channel('room1')
22508   * channel
22509   *   .on('broadcast', { event: 'cursor-pos' }, (payload) => console.log(payload))
22510   *   .subscribe()
22511   * ```
22512   *
22513   * @example Standalone import for bundle-sensitive environments
22514   * ```ts
22515   * import RealtimeClient from '@supabase/realtime-js'
22516   *
22517   * const client = new RealtimeClient('https://xyzcompany.supabase.co/realtime/v1', {
22518   *   params: { apikey: 'your-publishable-key' },
22519   * })
22520   * const channel = new RealtimeChannel('realtime:public:messages', { config: {} }, client)
22521   * ```
22522   */
22523  constructor(e, s = { config: {} }, r) {
22524    var n, o;
22525    if (this.topic = e, this.params = s, this.socket = r, this.bindings = {}, this.subTopic = e.replace(/^realtime:/i, ""), this.params.config = Object.assign({
22526      broadcast: { ack: !1, self: !1 },
22527      presence: { key: "", enabled: !1 },
22528      private: !1
22529    }, s.config), this.channelAdapter = new Tu(this.socket.socketAdapter, e, this.params), this.presence = new yu(this), this._onClose(() => {
22530      this.socket._remove(this);
22531    }), this._updateFilterTransform(), this.broadcastEndpointURL = mi(this.socket.socketAdapter.endPointURL()), this.private = this.params.config.private || !1, !this.private && (!((o = (n = this.params.config) === null || n === void 0 ? void 0 : n.broadcast) === null || o === void 0) && o.replay))
22532      throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`);
22533  }
22534  /**
22535   * Subscribe registers your client with the server.
22536   *
22537   * The optional `callback` receives a `status` and, on failure, an `err` argument.
22538   * Log the full `err` so its `cause`, `name`, and any structured fields aren't hidden
22539   * behind `err.message`.
22540   *
22541   * @category Realtime
22542   *
22543   * @example Handling errors
22544   * ```js
22545   * supabase.channel('room1').subscribe((status, err) => {
22546   *   if (status === 'CHANNEL_ERROR' || status === 'TIMED_OUT') {
22547   *     // Log the full error: its `cause` often holds the underlying reason.
22548   *     console.error(status, err)
22549   *   }
22550   * })
22551   * ```
22552   */
22553  subscribe(e, s = this.timeout) {
22554    var r, n, o, L;
22555    if (this.socket.isConnected() || this.socket.connect(), this.channelAdapter.isClosed()) {
22556      const { config: { broadcast: d, presence: l, private: g, postgres_changes_options: f } } = this.params, p = (n = (r = this.bindings.postgres_changes) === null || r === void 0 ? void 0 : r.map((_) => _.filter)) !== null && n !== void 0 ? n : [], M = !!this.bindings[E1.PRESENCE] && this.bindings[E1.PRESENCE].length > 0 || ((o = this.params.config.presence) === null || o === void 0 ? void 0 : o.enabled) === !0, u = {}, h = Object.assign({ broadcast: d, presence: Object.assign(Object.assign({}, l), { enabled: M }), postgres_changes: p, private: g }, f ? { postgres_changes_options: f } : {});
22557      this.socket.accessTokenValue && (u.access_token = this.socket.accessTokenValue), this._onError((_) => {
22558        e?.(d1.CHANNEL_ERROR, wu(_));
22559      }), this._onClose(() => e?.(d1.CLOSED)), this.updateJoinPayload(Object.assign({ config: h }, u)), this._updateFilterMessage();
22560      const x = f?.wait && p.length > 0 ? Math.max(s, ((L = f.timeout) !== null && L !== void 0 ? L : tu) + au) : s;
22561      this.channelAdapter.subscribe(x).receive("ok", async ({ postgres_changes: _ }) => {
22562        if (this.socket._isManualToken() || this.socket.setAuth(), _ === void 0) {
22563          e?.(d1.SUBSCRIBED);
22564          return;
22565        }
22566        this._updatePostgresBindings(_, e);
22567      }).receive("error", (_) => {
22568        this.state = x1.errored;
22569        const v = Object.values(_).join(", ") || "error";
22570        e?.(d1.CHANNEL_ERROR, new Error(v, { cause: _ }));
22571      }).receive("timeout", () => {
22572        e?.(d1.TIMED_OUT);
22573      });
22574    }
22575    return this;
22576  }
22577  _updatePostgresBindings(e, s) {
22578    var r;
22579    const n = this.bindings.postgres_changes, o = (r = n?.length) !== null && r !== void 0 ? r : 0, L = [];
22580    for (let d = 0; d < o; d++) {
22581      const l = n[d], { filter: { event: g, schema: f, table: p, filter: M } } = l, u = e && e[d];
22582      if (u && u.event === g && g1.isFilterValueEqual(u.schema, f) && g1.isFilterValueEqual(u.table, p) && g1.isFilterValueEqual(u.filter, M))
22583        L.push(Object.assign(Object.assign({}, l), { id: u.id }));
22584      else {
22585        this.unsubscribe(), this.state = x1.errored, s?.(d1.CHANNEL_ERROR, new Error("mismatch between server and client bindings for postgres changes"));
22586        return;
22587      }
22588    }
22589    this.bindings.postgres_changes = L, this.state != x1.errored && s && s(d1.SUBSCRIBED);
22590  }
22591  /**
22592   * Returns the current presence state for this channel.
22593   *
22594   * The shape is a map keyed by presence key (for example a user id) where each entry contains the
22595   * tracked metadata for that user.
22596   *
22597   * @category Realtime
22598   */
22599  presenceState() {
22600    return this.presence.state;
22601  }
22602  /**
22603   * Sends the supplied payload to the presence tracker so other subscribers can see that this
22604   * client is online. Use `untrack` to stop broadcasting presence for the same key.
22605   *
22606   * Tracking makes this client visible to other subscribers immediately, regardless of this
22607   * channel's `config.presence.enabled` setting or whether it has a `presence` listener — that
22608   * flag only affects whether *this* client receives presence updates from others (and, on
22609   * RLS-protected channels, whether it's authorized to do so).
22610   *
22611   * @category Realtime
22612   */
22613  async track(e, s = {}) {
22614    return await this.send({
22615      type: "presence",
22616      event: "track",
22617      payload: e
22618    }, s);
22619  }
22620  /**
22621   * Removes the current presence state for this client.
22622   *
22623   * @category Realtime
22624   */
22625  async untrack(e = {}) {
22626    return await this.send({
22627      type: "presence",
22628      event: "untrack"
22629    }, e);
22630  }
22631  /**
22632   * Listen to realtime events on this channel.
22633   * @category Realtime
22634   *
22635   * @remarks
22636   * - By default, Broadcast and Presence are enabled for all projects.
22637   * - By default, listening to database changes is disabled for new projects due to database performance and security concerns. You can turn it on by managing Realtime's [replication](/docs/guides/api#realtime-api-overview).
22638   * - You can receive the "previous" data for updates and deletes by setting the table's `REPLICA IDENTITY` to `FULL` (e.g., `ALTER TABLE your_table REPLICA IDENTITY FULL;`).
22639   * - Row level security is not applied to delete statements. When RLS is enabled and replica identity is set to full, only the primary key is sent to clients.
22640   *
22641   * @example Listen to broadcast messages
22642   * ```js
22643   * const channel = supabase.channel("room1")
22644   *
22645   * channel.on("broadcast", { event: "cursor-pos" }, (payload) => {
22646   *   console.log("Cursor position received!", payload);
22647   * }).subscribe((status) => {
22648   *   if (status === "SUBSCRIBED") {
22649   *     channel.send({
22650   *       type: "broadcast",
22651   *       event: "cursor-pos",
22652   *       payload: { x: Math.random(), y: Math.random() },
22653   *     });
22654   *   }
22655   * });
22656   * ```
22657   *
22658   * @example Listen to presence sync
22659   * ```js
22660   * const channel = supabase.channel('room1')
22661   * channel
22662   *   .on('presence', { event: 'sync' }, () => {
22663   *     console.log('Synced presence state: ', channel.presenceState())
22664   *   })
22665   *   .subscribe(async (status) => {
22666   *     if (status === 'SUBSCRIBED') {
22667   *       await channel.track({ online_at: new Date().toISOString() })
22668   *     }
22669   *   })
22670   * ```
22671   *
22672   * @example Listen to presence join
22673   * ```js
22674   * const channel = supabase.channel('room1')
22675   * channel
22676   *   .on('presence', { event: 'join' }, ({ newPresences }) => {
22677   *     console.log('Newly joined presences: ', newPresences)
22678   *   })
22679   *   .subscribe(async (status) => {
22680   *     if (status === 'SUBSCRIBED') {
22681   *       await channel.track({ online_at: new Date().toISOString() })
22682   *     }
22683   *   })
22684   * ```
22685   *
22686   * @example Listen to presence leave
22687   * ```js
22688   * const channel = supabase.channel('room1')
22689   * channel
22690   *   .on('presence', { event: 'leave' }, ({ leftPresences }) => {
22691   *     console.log('Newly left presences: ', leftPresences)
22692   *   })
22693   *   .subscribe(async (status) => {
22694   *     if (status === 'SUBSCRIBED') {
22695   *       await channel.track({ online_at: new Date().toISOString() })
22696   *       await channel.untrack()
22697   *     }
22698   *   })
22699   * ```
22700   *
22701   * Registering the same `postgres_changes` filter more than once on a channel is a no-op: the
22702   * duplicate is ignored and an error is logged, since the server only ever creates one
22703   * subscription per distinct filter.
22704   *
22705   * @example Listen to all database changes
22706   * ```js
22707   * supabase
22708   *   .channel('room1')
22709   *   .on('postgres_changes', { event: '*', schema: '*' }, payload => {
22710   *     console.log('Change received!', payload)
22711   *   })
22712   *   .subscribe()
22713   * ```
22714   *
22715   * @example Listen to a specific table
22716   * ```js
22717   * supabase
22718   *   .channel('room1')
22719   *   .on('postgres_changes', { event: '*', schema: 'public', table: 'countries' }, payload => {
22720   *     console.log('Change received!', payload)
22721   *   })
22722   *   .subscribe()
22723   * ```
22724   *
22725   * @example Listen to inserts
22726   * ```js
22727   * supabase
22728   *   .channel('room1')
22729   *   .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'countries' }, payload => {
22730   *     console.log('Change received!', payload)
22731   *   })
22732   *   .subscribe()
22733   * ```
22734   *
22735   * @exampleDescription Listen to updates
22736   * By default, Supabase will send only the updated record. If you want to re
22736ceive the previous values as well you can
22737   * enable full replication for the table you are listening to:
22738   *
22739   * ```sql
22740   * alter table "your_table" replica identity full;
22741   * ```
22742   *
22743   * @example Listen to updates
22744   * ```js
22745   * supabase
22746   *   .channel('room1')
22747   *   .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'countries' }, payload => {
22748   *     console.log('Change received!', payload)
22749   *   })
22750   *   .subscribe()
22751   * ```
22752   *
22753   * @exampleDescription Listen to deletes
22754   * By default, Supabase does not send deleted records. If you want to receive the deleted record you can
22755   * enable full replication for the table you are listening to:
22756   *
22757   * ```sql
22758   * alter table "your_table" replica identity full;
22759   * ```
22760   *
22761   * @example Listen to deletes
22762   * ```js
22763   * supabase
22764   *   .channel('room1')
22765   *   .on('postgres_changes', { event: 'DELETE', schema: 'public', table: 'countries' }, payload => {
22766   *     console.log('Change received!', payload)
22767   *   })
22768   *   .subscribe()
22769   * ```
22770   *
22771   * @exampleDescription Listen to multiple events
22772   * You can chain listeners if you want to listen to multiple events for each table.
22773   *
22774   * @example Listen to multiple events
22775   * ```js
22776   * supabase
22777   *   .channel('room1')
22778   *   .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'countries' }, handleRecordInserted)
22779   *   .on('postgres_changes', { event: 'DELETE', schema: 'public', table: 'countries' }, handleRecordDeleted)
22780   *   .subscribe()
22781   * ```
22782   *
22783   * @exampleDescription Listen to row level changes
22784   * You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match.
22785   *
22786   * @example Listen to row level changes
22787   * ```js
22788   * supabase
22789   *   .channel('room1')
22790   *   .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'countries', filter: 'id=eq.200' }, handleRecordUpdated)
22791   *   .subscribe()
22792   * ```
22793   */
22794  on(e, s, r) {
22795    const n = this.channelAdapter.isJoined() || this.channelAdapter.isJoining(), o = e === E1.PRESENCE || e === E1.PO
22795STGRES_CHANGES;
22796    if (n && o)
22797      throw this.socket.log("channel", `cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`), new Error(`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`);
22798    return this._on(e, s, r);
22799  }
22800  /**
22801   * Sends a broadcast message explicitly via REST API.
22802   *
22803   * This method always uses the REST API endpoint regardless of WebSocket connection state.
22804   * Useful when you want to guarantee REST delivery or when gradually migrating from implicit REST fallback.
22805   *
22806   * Payloads that are `ArrayBuffer` or `ArrayBufferView` (e.g. `Uint8Array`) are sent as
22807   * `application/octet-stream`; all other payloads are JSON-encoded.
22808   *
22809   * @param event The name of the broadcast event
22810   * @param payload Payload to be sent (required)
22811   * @param opts Options including timeout
22812   * @returns Promise resolving to object with success status, and error details if failed
22813   *
22814   * @category Realtime
22815   */
22816  async httpSend(e, s, r = {}) {
22817    var n;
22818    if (s == null)
22819      return Promise.reject(new Error("Payload is required for httpSend()"));
22820    const o = s instanceof ArrayBuffer || ArrayBuffer.isView(s), L = {
22821      apikey: this.socket.apiKey ? this.socket.apiKey : "",
22822      "Content-Type": o ? "application/octet-stream" : "application/json"
22823    };
22824    this.socket.accessTokenValue && (L.Authorization = `Bearer ${this.socket.accessTokenValue}`);
22825    const d = new URL(this.broadcastEndpointURL);
22826    d.pathname += `/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(e)}`, this.private && d.searchParams.set("private", "true");
22827    const l = {
22828      method: "POST",
22829      headers: L,
22830      body: o ? s : JSON.stringify(s)
22831    }, g = await this._fetchWithTimeout(d.toString(), l, (n = r.timeout) !== null && n !== void 0 ? n : this.timeout);
22832    if (g.status === 202)
22833      return { success: !0 };
22834    if (g.status === 404)
22835      return Promise.reject(new Error("httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/migrations/httpsend-server-version.md"));
22836    let f = g.statusText;
22837    try {
22838      const p = await g.json();
22839      f = p.error || p.message || f;
22840    } catch {
22841    }
22842    return Promise.reject(new Error(f));
22843  }
22844  /**
22845   * Sends a message into the channel.
22846   *
22847   * @param args Arguments to send to channel
22848   * @param args.type The type of event to send
22849   * @param args.event The name of the event being sent
22850   * @param args.payload Payload to be sent
22851   * @param opts Options to be used during the send process
22852   *
22853   * @category Realtime
22854   *
22855   * @remarks
22856   * - When using REST you don't need to subscribe to the channel
22857   * - REST calls are only available from 2.37.0 onwards
22858   * - If you create a channel only to send a REST broadcast, remove it from
22859   *   the client when the send completes
22860   *
22861   * @example Send a message via websocket
22862   * ```js
22863   * const channel = supabase.channel('room1')
22864   *
22865   * channel.subscribe((status) => {
22866   *   if (status === 'SUBSCRIBED') {
22867   *     channel.send({
22868   *       type: 'broadcast',
22869   *       event: 'cursor-pos',
22870   *       payload: { x: Math.random(), y: Math.random() },
22871   *     })
22872   *   }
22873   * })
22874   * ```
22875   *
22876   * @exampleResponse Send a message via websocket
22877   * ```js
22878   * ok | timed out | error
22879   * ```
22880   *
22881   * @example Send a message via REST
22882   * ```js
22883   * const channel = supabase.channel('room1')
22884   *
22885   * try {
22886   *   await channel.httpSend('cursor-pos', { x: Math.random(), y: Math.random() })
22887   * } finally {
22888   *   await supabase.removeChannel(channel)
22889   * }
22890   * ```
22891   */
22892  async send(e, s = {}) {
22893    var r, n;
22894    if (!this.channelAdapter.canPush() && e.type === "broadcast") {
22895      const o = "Realtime send() is automatically falling back to REST API. This behavior will be deprecated 
22895in the future. Please use httpSend() explicitly for REST delivery.";
22896      this.socket.hasLogger() ? this.socket.log("channel", o) : console.warn(o);
22897      const { event: L, payload: d } = e, l = {
22898        apikey: this.socket.apiKey ? this.socket.apiKey : "",
22899        "Content-Type": "application/json"
22900      };
22901      this.socket.accessTokenValue && (l.Authorization = `Bearer ${this.socket.accessTokenValue}`);
22902      const g = {
22903        method: "POST",
22904        headers: l,
22905        body: JSON.stringify({
22906          messages: [
22907            {
22908              topic: this.subTopic,
22909              event: L,
22910              payload: d,
22911              private: this.private
22912            }
22913          ]
22914        })
22915      };
22916      try {
22917        const f = await this._fetchWithTimeout(this.broadcastEndpointURL, g, (r = s.timeout) !== null && r !== void 0 ? r : this.timeout);
22918        return await ((n = f.body) === null || n === void 0 ? void 0 : n.cancel()), f.ok ? "ok" : "error";
22919      } catch (f) {
22920        return f instanceof Error && f.name === "AbortError" ? "timed out" : "error";
22921      }
22922    } else
22923      return new Promise((o) => {
22924        var L, d, l;
22925        const g = this.channelAdapter.push(e.type, e, s.timeout || this.timeout);
22926        e.type === "broadcast" && !(!((l = (d = (L = this.params) === null || L === void 0 ? void 0 : L.config) === null || d === void 0 ? void 0 : d.broadcast) === null || l === void 0) && l.ack) && o("ok"), g.receive("ok", () => o("ok")), g.receive("error", () => o("error")), g.receive("timeout", () => o("timed out"));
22927      });
22928  }
22929  /**
22930   * Updates the payload that will be sent the next time the channel joins (reconnects).
22931   * Useful for rotating access tokens or updating config without re-creating the channel.
22932   *
22933   * @category Realtime
22934   */
22935  updateJoinPayload(e) {
22936    this.channelAdapter.updateJoinPayload(e);
22937  }
22938  /**
22939   * Leaves the channel.
22940   *
22941   * Unsubscribes from server events, and instructs channel to terminate on server.
22942   * Triggers onClose() hooks.
22943   *
22944   * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:
22945   * channel.unsubscribe().receive("ok", () => alert("left!") )
22946   *
22947   * @category Realtime
22948   */
22949  async unsubscribe(e = this.timeout) {
22950    return new Promise((s) => {
22951      this.channelAdapter.unsubscribe(e).receive("ok", () => s("ok")).receive("timeout", () => s("timed out")).receive("error", () => s("error"));
22952    });
22953  }
22954  /**
22955   * Destroys and stops related timers.
22956   *
22957   * @category Realtime
22958   */
22959  teardown() {
22960    this.channelAdapter.teardown();
22961  }
22962  /** @internal */
22963  async _fetchWithTimeout(e, s, r) {
22964    const n = new AbortController(), o = setTimeout(() => n.abort(), r), L = await this.socket.fetch(e, Object.assign(Object.assign({}, s), { signal: n.signal }));
22965    return clearTimeout(o), L;
22966  }
22967  /** @internal */
22968  _on(e, s, r) {
22969    var n;
22970    const o = e.toLocaleLowerCase(), L = s?.filter;
22971    if ((L instanceof Pu || typeof L == "object" && L !== null && typeof L.build == "function") && (s = Object.assign(Object.assign({}, s), { filter: L.build() })), o === E1.POSTGRES_CHANGES && ((n = this.bindings[o]) === null || n === void 0 ? void 0 : n.find((f) => g1.isSamePostgresFilter(f.filter, s))))
22972      return this.socket.log("error", `duplicate \`postgres_changes\` binding for ${this.topic} ignored`, s), this;
22973    const d = this.channelAdapter.on(e, r), l = {
22974      type: o,
22975      filter: s,
22976      callback: r,
22977      ref: d
22978    };
22979    return this.bindings[o] ? this.bindings[o].push(l) : this.bindings[o] = [l], this._updateFilterMessage(), this;
22980  }
22981  /**
22982   * Registers a callback that will be executed when the channel closes.
22983   *
22984   * @internal
22985   */
22986  _onClose(e) {
22987    this.channelAdapter.onClose(e);
22988  }
22989  /**
22990   * Registers a callback that will be executed when the channel encounteres an error.
22991   *
22992   * @internal
22993   */
22994  _onError(e) {
22995    this.channelAdapter.onError(e);
22996  }
22997  /** @internal */
22998  _updateFilterMessage() {
22999    this.channelAdapter.updateFilterBindings((e, s, r) => {
23000      var n, o, L, d, l, g, f;
23001      const p = e.event.toLocaleLowerCase();
23002      if (this._notThisChannelEvent(p, r))
23003        return !1;
23004      const M = (n = this.bindings[p]) === null || n === void 0 ? void 0 : n.find((u) => u.ref === e.ref);
23005      if (!M)
23006        return !0;
23007      if (["broadcast", "presence", "postgres_changes"].includes(p))
23008        if ("id" in M) {
23009          const u = M.id, h = (o = M.filter) === null || o === void 0 ? void 0 : o.event;
23010          return u && ((L = s.ids) === null || L === void 0 ? void 0 : L.includes(u)) && (h === "*" || h?.toLocaleLowerCase() === ((d = s.data) === null || d === void 0 ? void 0 : d.type.toLocaleLowerCase()));
23011        } else {
23012          const u = (g = (l = M?.filter) === null || l === void 0 ? void 0 : l.event) === null || g === void 0 ? void 0 : g.toLocaleLowerCase();
23013          return u === "*" || u === ((f = s?.event) === null || f === void 0 ? void 0 : f.toLocaleLowerCase());
23014        }
23015      else
23016        return M.type.toLocaleLowerCase() === p;
23017    });
23018  }
23019  /** @internal */
23020  _notThisChannelEvent(e, s) {
23021    const { close: r, error: n, leave: o, join: L } = ui;
23022    return s && [r, n, o, L].includes(e) && s !== this.joinPush.ref;
23023  }
23024  /** @internal */
23025  _updateFilterTransform() {
23026    this.channelAdapter.updatePayloadTransform((e, s, r) => {
23027      if (typeof s == "object" && "ids" in s) {
23028        const n = s.data, { schema: o, table: L, commit_timestamp: d, type: l, errors: g } = n;
23029        return Object.assign(Object.assign({}, {
23030          schema: o,
23031          table: L,
23032          commit_timestamp: d,
23033          eventType: l,
23034          new: {},
23035          old: {},
23036          errors: g
23037        }), this._getPayloadRecords(n));
23038      }
23039      return s;
23040    });
23041  }
23042  copyBindings(e) {
23043    if (this.joinedOnce)
23044      throw new Error("cannot copy bindings into joined channel");
23045    for (const s in e.bindings)
23046      for (const r of e.bindings[s])
23047        this._on(r.type, r.filter, r.callback);
23048  }
23049  /**
23050   * Compares two optional filter values for equality.
23051   * Treats undefined, null, and empty string as equivalent empty values.
23052   * @internal
23053   */
23054  static isFilterValueEqual(e, s) {
23055    return (e ?? void 0) === (s ?? void 0);
23056  }
23057  /**
23058   * Two `postgres_changes` filters are the same when the server would collapse them into a single
23059   * subscription.
23060   * @internal
23061   */
23062  static isSamePostgresFilter(e, s) {
23063    var r, n, o, L;
23064    const d = (n = (r = e?.select) === null || r === void 0 ? void 0 : r.join()) !== null && n !== void 0 ? n : void 0, l = (L = (o = s?.select) === null || o === void 0 ? void 0 : o.join()) !== null && L !== void 0 ? L : void 0;
23065    return e?.event === s?.event && g1.isFilterValueEqual(e?.schema, s?.schema) && g1.isFilterValueEqual(e?.table, s?.table) && g1.isFilterValueEqual(e?.filter, s?.filter) && d === l;
23066  }
23067  /** @internal */
23068  _getPayloadRecords(e) {
23069    const s = {
23070      new: {},
23071      old: {}
23072    };
23073    return (e.type === "INSERT" || e.type === "UPDATE") && (s.new = Qa(e.columns, e.record)), (e.type === "UPDATE" || e.type === "DELETE") && (s.old = Qa(e.columns, e.old_record)), s;
23074  }
23075}
23076class Cu {
23077  constructor(e, s) {
23078    this.socket = new _u(e, s);
23079  }
23080  get timeout() {
23081    return this.socket.timeout;
23082  }
23083  get endPoint() {
23084    return this.socket.endPoint;
23085  }
23086  get transport() {
23087    return this.socket.transport;
23088  }
23089  get heartbeatIntervalMs() {
23090    return this.socket.heartbeatIntervalMs;
23091  }
23092  get heartbeatCallback() {
23093    return this.socket.heartbeatCallback;
23094  }
23095  set heartbeatCallback(e) {
23096    this.socket.heartbeatCallback = e;
23097  }
23098  get heartbeatTimer() {
23099    return this.socket.heartbeatTimer;
23100  }
23101  get pendingHeartbeatRef() {
23102    return this.socket.pendingHeartbeatRef;
23103  }
23104  get reconnectTimer() {
23105    return this.socket.reconnectTimer;
23106  }
23107  get vsn() {
23108    return this.socket.vsn;
23109  }
23110  get encode() {
23111    return this.socket.encode;
23112  }
23113  get decode() {
23114    return this.socket.decode;
23115  }
23116  get reconnectAfterMs() {
23117    return this.socket.reconnectAfterMs;
23118  }
23119  get sendBuffer() {
23120    return this.socket.sendBuffer;
23121  }
23122  get stateChangeCallbacks() {
23123    return this.socket.stateChangeCallbacks;
23124  }
23125  connect() {
23126    this.socket.connect();
23127  }
23128  disconnect(e, s, r, n = 1e4) {
23129    return new Promise((o) => {
23130      setTimeout(() => o("timeout"), n), this.socket.disconnect(() => {
23131        e(), o("ok");
23132      }, s, r);
23133    });
23134  }
23135  push(e) {
23136    this.socket.push(e);
23137  }
23138  log(e, s, r) {
23139    this.socket.log(e, s, r);
23140  }
23141  hasLogger() {
23142    return this.socket.hasLogger();
23143  }
23144  makeRef() {
23145    return this.socket.makeRef();
23146  }
23147  onOpen(e) {
23148    this.socket.onOpen(e);
23149  }
23150  onClose(e) {
23151    this.socket.onClose(e);
23152  }
23153  onError(e) {
23154    this.socket.onError(e);
23155  }
23156  onMessage(e) {
23157    this.socket.onMessage(e);
23158  }
23159  isConnected() {
23160    return this.socket.isConnected();
23161  }
23162  isConnecting() {
23163    return this.socket.connectionState() == Y4.connecting;
23164  }
23165  isDisconnecting() {
23166    return this.socket.connectionState() == Y4.closing;
23167  }
23168  connectionState() {
23169    return this.socket.connectionState();
23170  }
23171  endPointURL() {
23172    return this.socket.endPointURL();
23173  }
23174  sendHeartbeat() {
23175    this.socket.sendHeartbeat();
23176  }
23177  /**
23178   * @internal
23179   */
23180  getSocket() {
23181    return this.socket;
23182  }
23183}
23184const i6 = {
23185  HEARTBEAT_INTERVAL: 25e3
23186}, Fu = [1e3, 2e3, 5e3, 1e4], Eu = 1e4;
23187function Ru() {
23188  const t = /* @__PURE__ */ new Map();
23189  return {
23190    get length() {
23191      return t.size;
23192    },
23193    clear() {
23194      t.clear();
23195    },
23196    getItem(e) {
23197      return t.has(e) ? t.get(e) : null;
23198    },
23199    key(e) {
23200      var s;
23201      return (s = Array.from(t.keys())[e]) !== null && s !== void 0 ? s : null;
23202    },
23203    removeItem(e) {
23204      t.delete(e);
23205    },
23206    setItem(e, s) {
23207      t.set(e, String(s));
23208    }
23209  };
23210}
23211function Du() {
23212  try {
23213    if (typeof globalThis < "u" && globalThis.sessionStorage)
23214      return globalThis.sessionStorage;
23215  } catch {
23216  }
23217  return Ru();
23218}
23219const zu = `
23220  addEventListener("message", (e) => {
23221    if (e.data.event === "start") {
23222      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
23223    }
23224  });`;
23225class ju {
23226  get endPoint() {
23227    return this.socketAdapter.endPoint;
23228  }
23229  get timeout() {
23230    return this.socketAdapter.timeout;
23231  }
23232  get transport() {
23233    return this.socketAdapter.transport;
23234  }
23235  get heartbeatCallback() {
23236    return this.socketAdapter.heartbeatCallback;
23237  }
23238  get heartbeatIntervalMs() {
23239    return this.socketAdapter.heartbeatIntervalMs;
23240  }
23241  get heartbeatTimer() {
23242    return this.worker ? this._workerHeartbeatTimer : this.socketAdapter.heartbeatTimer;
23243  }
23244  get pendingHeartbeatRef() {
23245    return this.worker ? this._pendingWorkerHeartbeatRef : this.socketAdapter.pendingHeartbeatRef;
23246  }
23247  get reconnectTimer() {
23248    return this.socketAdapter.reconnectTimer;
23249  }
23250  get vsn() {
23251    return this.socketAdapter.vsn;
23252  }
23253  get encode() {
23254    return this.socketAdapter.encode;
23255  }
23256  get decode() {
23257    return this.socketAdapter.decode;
23258  }
23259  get reconnectAfterMs() {
23260    return this.socketAdapter.reconnectAfterMs;
23261  }
23262  get sendBuffer() {
23263    return this.socketAdapter.sendBuffer;
23264  }
23265  get stateChangeCallbacks() {
23266    return this.socketAdapter.stateChangeCallbacks;
23267  }
23268  /**
23269   * Initializes the Socket.
23270   *
23271   * @param endPoint The string WebSocket endpoint, ie, "ws://example.com/socket", "wss://example.com", "/socket" (inherited host & protocol)
23272   * @param options.transport The Websocket Transport, for example WebSocket. This can be a custom implementation
23273   * @param options.timeout The default timeout in milliseconds to trigger push timeouts.
23274   * @param options.params The optional params to pass when connecting.
23275   * @param options.headers Deprecated: headers cannot be set on websocket connections and this option will be removed in the future.
23276   * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.
23277   * @param options.heartbeatCallback The optional function to handle heartbeat status and latency.
23278   * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }
23279   * @param options.logLevel Sets the log level for Realtime
23280   * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))
23281   * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.
23282   * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.
23283   * @param options.worker Use Web Worker to set a side flow. Defaults to false.
23284   * @param options.workerUrl The URL of the worker script. Defaults to https://realtime.supabase.com/worker.js that includes a heartbeat event call to keep the connection alive.
23285   * @param options.vsn The protocol version to use when connecting. Supported versions are "1.0.0" and "2.0.0". Defaults to "2.0.0".
23286   *
23287   * @category Realtime
23288   *
23289   * @example Using supabase-js (recommended)
23290   * ```ts
23291   * import { createClient } from '@supabase/supabase-js'
23292   *
23293   * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
23294   * const channel = supabase.channel('room1')
23295   * channel
23296   *   .on('broadcast', { event: 'cursor-pos' }, (payload) => console.log(payload))
23297   *   .subscribe()
23298   * ```
23299   *
23300   * @example Standalone import for bundle-sensitive environments
23301   * ```ts
23302   * import RealtimeClient from '@supabase/realtime-js'
23303   *
23304   * const client = new RealtimeClient('https://xyzcompany.supabase.co/realtime/v1', {
23305   *   params: { apikey: 'your-publishable-key' },
23306   * })
23307   * client.connect()
23308   * ```
23309   */
23310  constructor(e, s) {
23311    var r;
23312    if (this.channels = new Array(), this.accessTokenValue = null, this.accessToken = null, this.apiKey = null, this.httpEndpoint = "", this.headers = {}, this.params = {}, this.ref = 0, this.serializer = new iu(), this._manuallySetToken = !1, this._authPromise = null, this._authGeneration = 0, this._workerHeartbeatTimer = void 0, this._pendingWorkerHeartbeatRef = null, this._pendingDisconnectTimer = null, this._disconnectOnEmptyChannelsAfterMs 
23312= 0, this._resolveFetch = (o) => o ? (...L) => o(...L) : (...L) => fetch(...L), !(!((r = s?.params) === null || r === void 0) && r.apikey))
23313      throw new Error("API key is required to connect to Realtime");
23314    this.apiKey = s.params.apikey;
23315    const n = this._initializeOptions(s);
23316    this.socketAdapter = new Cu(e, n), this.httpEndpoint = mi(e), this.fetch = this._resolveFetch(s?.fetch);
23317  }
23318  /**
23319   * Connects the socket, unless already connected.
23320   *
23321   * @category Realtime
23322   */
23323  connect() {
23324    if (!(this.isConnecting() || this.isDisconnecting() || this.isConnected())) {
23325      this.accessToken && !this._authPromise && this._setAuthSafely("connect"), this._setupConnectionHandlers();
23326      try {
23327        this.socketAdapter.connect();
23328      } catch (e) {
23329        const s = e.message;
23330        throw new Error(`WebSocket not available: ${s}`);
23331      }
23332      this._handleNodeJsRaceCondition();
23333    }
23334  }
23335  /**
23336   * Returns the URL of the websocket.
23337   * @returns string The URL of the websocket.
23338   *
23339   * @category Realtime
23340   */
23341  endpointURL() {
23342    return this.socketAdapter.endPointURL();
23343  }
23344  /**
23345   * Disconnects the socket.
23346   *
23347   * @param code A numeric status code to send on disconnect.
23348   * @param reason A custom reason for the disconnect.
23349   *
23350   * @category Realtime
23351   */
23352  async disconnect(e, s) {
23353    return this._cancelPendingDisconnect(), this.isDisconnecting() ? "ok" : await this.socketAdapter.disconnect(() => {
23354      clearInterval(this._workerHeartbeatTimer), this._terminateWorker();
23355    }, e, s);
23356  }
23357  /**
23358   * Returns all created channels
23359   *
23360   * @category Realtime
23361   */
23362  getChannels() {
23363    return this.channels;
23364  }
23365  /**
23366   * Unsubscribes, removes and tears down a single channel
23367   * @param channel A RealtimeChannel instance
23368   *
23369   * @category Realtime
23370   */
23371  async removeChannel(e) {
23372    const s = await e.unsubscribe();
23373    return s === "ok" && e.teardown(), s;
23374  }
23375  /**
23376   * Unsubscribes, removes and tears down all channels
23377   *
23378   * @category Realtime
23379   */
23380  async removeAllChannels() {
23381    const e = this.channels.map(async (r) => {
23382      const n = await r.unsubscribe();
23383      return r.teardown(), n;
23384    }), s = await Promise.all(e);
23385    return await this.disconnect(), s;
23386  }
23387  /**
23388   * Logs the message.
23389   *
23390   * For customized logging, `this.logger` can be overridden in Client constructor.
23391   *
23392   * @category Realtime
23393   */
23394  log(e, s, r) {
23395    this.socketAdapter.log(e, s, r);
23396  }
23397  /**
23398   * Returns true if a custom `logger` has been configured on this client.
23399   *
23400   * @category Realtime
23401   */
23402  hasLogger() {
23403    return this.socketAdapter.hasLogger();
23404  }
23405  /**
23406   * Returns the current state of the socket.
23407   *
23408   * @category Realtime
23409   */
23410  connectionState() {
23411    return this.socketAdapter.connectionState() || Y4.closed;
23412  }
23413  /**
23414   * Returns `true` is the connection is open.
23415   *
23416   * @category Realtime
23417   */
23418  isConnected() {
23419    return this.socketAdapter.isConnected();
23420  }
23421  /**
23422   * Returns `true` if the connection is currently connecting.
23423   *
23424   * @category Realtime
23425   */
23426  isConnecting() {
23427    return this.socketAdapter.isConnecting();
23428  }
23429  /**
23430   * Returns `true` if the connection is currently disconnecting.
23431   *
23432   * @category Realtime
23433   */
23434  isDisconnecting() {
23435    return this.socketAdapter.isDisconnecting();
23436  }
23437  /**
23438   * Creates (or reuses) a {@link RealtimeChannel} for the provided topic.
23439   *
23440   * Topics are automatically prefixed with `realtime:` to match the Realtime service.
23441   * If a channel with the same topic already exists it will be returned instead of creating
23442   * a duplicate connection.
23443   *
23444   * @category Realtime
23445   */
23446  channel(e, s = { config: {} }) {
23447    const r = `realtime:${e}`, n = this.getChannels().find((o) => o.topic === r);
23448    if (n)
23449      return n;
23450    {
23451      const o = new g1(`realtime:${e}`, s, this);
23452      return this._cancelPendingDisconnect(), this.channels.push(o), o;
23453    }
23454  }
23455  /**
23456   * Push out a message if the socket is connected.
23457   *
23458   * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.
23459   *
23460   * @category Realtime
23461   */
23462  push(e) {
23463    this.socketAdapter.push(e);
23464  }
23465  /**
23466   * Sets the JWT access token used for channel subscription authorization and Realtime RLS.
23467   *
23468   * If param is null it will use the `accessToken` callback function or the token set on the client.
23469   *
23470   * On callback used, it will set the value of the token internal to the client.
23471   *
23472   * When a token is explicitly provided AND no `accessToken` callback is configured,
23473   * it will be preserved across channel operations (including removeChannel and
23474   * resubscribe) and the client stays in manual-token mode.
23475   *
23476   * When an `accessToken` callback IS configured, the callback is the source of truth:
23477   * the client remains in callback mode and continues to refresh from it on heartbeat,
23478   * even after a bootstrap/override `setAuth(token)` call.
23479   *
23480   * The callback is called on connect and on every heartbeat (`heartbeatIntervalMs`,
23481   * default 25000ms). Its token must stay valid past the next call, or the server closes
23482   * the channel at expiry with no automatic resubscribe.
23483   *
23484   * @param token A JWT string to override the token set on the client.
23485   *
23486   * @example Setting the authorization header
23487   * // Use a manual token (preserved across resubscribes when no accessToken callback is set)
23488   * client.realtime.setAuth('my-custom-jwt')
23489   *
23490   * // Switch back to using the accessToken callback
23491   * client.realtime.setAuth()
23492   *
23493   * @category Realtime
23494   */
23495  async setAuth(e = null) {
23496    const s = ++this._authGeneration, r = this._performAuth(e, s);
23497    s === this._authGeneration && (this._authPromise = r);
23498    try {
23499      await r;
23500    } finally {
23501      this._authPromise === r && (this._authPromise = null);
23502    }
23503  }
23504  /**
23505   * Returns true if the current access token was explicitly set via setAuth(token),
23506   * false if it was obtained via the accessToken callback.
23507   * @internal
23508   */
23509  _isManualToken() {
23510    return this._manuallySetToken;
23511  }
23512  /**
23513   * Sends a heartbeat message if the socket is connected.
23514   *
23515   * @category Realtime
23516   */
23517  async sendHeartbeat() {
23518    this.socketAdapter.sendHeartbeat();
23519  }
23520  /**
23521   * Sets a callback that receives lifecycle events for internal heartbeat messages.
23522   * Useful for instrumenting connection health (e.g. sent/ok/timeout).
23523   *
23524   * @category Realtime
23525   */
23526  onHeartbeat(e) {
23527    this.socketAdapter.heartbeatCallback = this._wrapHeartbeatCallback(e);
23528  }
23529  /**
23530   * Return the next message ref, accounting for overflows
23531   *
23532   * @internal
23533   */
23534  _makeRef() {
23535    return this.socketAdapter.makeRef();
23536  }
23537  /**
23538   * Removes a channel from RealtimeClient
23539   *
23540   * @param channel An open subscription.
23541   *
23542   * @internal
23543   */
23544  _remove(e) {
23545    this.channels = this.channels.filter((s) => s.topic !== e.topic), this.channels.length === 0 && (this.log("transport", "no channels remaining, scheduling disconnect"), this._schedulePendingDisconnect());
23546  }
23547  /** @internal */
23548  _schedulePendingDisconnect() {
23549    if (this._cancelPendingDisconnect(), this._disconnectOnEmptyChannelsAfterMs === 0) {
23550      this.log("transport", "disconnecting immediately - no channels"), this.disconnect();
23551      return;
23552    }
23553    this._pendingDisconnectTimer = setTimeout(() => {
23554      this._pendingDisconnectTimer = null, this.channels.length === 0 && (this.log("transport", "deferred disconnect fired - no channels, disconnecting"), this.disconnect());
23555    }, this._disconnectOnEmptyChannelsAfterMs), this.log("transport", `deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`);
23556  }
23557  /** @internal */
23558  _cancelPendingDisconnect() {
23559    this._pendingDisconnectTimer !== null && (this.log("transport", "pending disconnect cancelled - channel activity detected"), clearTimeout(this._pendingDisconnectTimer), this._pendingDisconnectTimer = null);
23560  }
23561  /**
23562   * Perform the actual auth operation
23563   * @internal
23564   */
23565  async _performAuth(e, s) {
23566    let r, n = !1;
23567    if (e)
23568      r = e, n = !0;
23569    else if (this.accessToken)
23570      try {
23571        r = await this.accessToken();
23572      } catch (o) {
23573        this.log("error", "Error fetching access token from callback", o), r = this.accessTokenValue;
23574      }
23575    else
23576      r = this.accessTokenValue;
23577    s === this._authGeneration && (this.accessToken ? this._manuallySetToken = !1 : n && (this._manuallySetToken = !0), this.accessTokenValue != r && (this.accessTokenValue = r, this.channels.forEac
23577h((o) => {
23578      const L = {
23579        access_token: r,
23580        version: YM
23581      };
23582      o.updateJoinPayload(L), o.joinedOnce && o.channelAdapter.isJoined() && o.channelAdapter.push(ui.access_token, {
23583        access_token: r
23584      });
23585    })));
23586  }
23587  /**
23588   * Wait for any in-flight auth operations to complete
23589   * @internal
23590   */
23591  async _waitForAuthIfNeeded() {
23592    this._authPromise && await this._authPromise;
23593  }
23594  /**
23595   * Safely call setAuth with standardized error handling
23596   * @internal
23597   */
23598  _setAuthSafely(e = "general") {
23599    this._isManualToken() || this.setAuth().catch((s) => {
23600      this.log("error", `Error setting auth in ${e}`, s);
23601    });
23602  }
23603  /** @internal */
23604  _setupConnectionHandlers() {
23605    this.socketAdapter.onOpen(() => {
23606      (this._authPromise || (this.accessToken && !this.accessTokenValue ? this.setAuth() : Promise.resolve())).catch((s) => {
23607        this.log("error", "error waiting for auth on connect", s);
23608      }), this.worker && !this.workerRef && this._startWorkerHeartbeat();
23609    }), this.socketAdapter.onClose(() => {
23610      this.worker && this.workerRef && this._terminateWorker();
23611    }), this.socketAdapter.onMessage((e) => {
23612      e.ref && e.ref === this._pendingWorkerHeartbeatRef && (this._pendingWorkerHeartbeatRef = null);
23613    });
23614  }
23615  /** @internal */
23616  _handleNodeJsRaceCondition() {
23617    this.socketAdapter.isConnected() && this.socketAdapter.getSocket().onConnOpen();
23618  }
23619  /** @internal */
23620  _wrapHeartbeatCallback(e) {
23621    return (s, r) => {
23622      s !== "disconnected" && (s == "sent" && this._setAuthSafely(), e && e(s, r));
23623    };
23624  }
23625  /** @internal */
23626  _startWorkerHeartbeat() {
23627    this.workerUrl ? this.log("worker", `starting worker for from ${this.workerUrl}`) : this.log("worker", "starting default worker");
23628    const e = this._workerObjectUrl(this.workerUrl);
23629    this.workerRef = new Worker(e), this.workerRef.onerror = (s) => {
23630      this.log("worker", "worker error", s.message), this._terminateWorker(), this.disconnect();
23631    }, this.workerRef.onmessage = (s) => {
23632      s.data.event === "keepAlive" && this.sendHeartbeat();
23633    }, this.workerRef.postMessage({
23634      event: "start",
23635      interval: this.heartbeatIntervalMs
23636    });
23637  }
23638  /**
23639   * Terminate the Web Worker and clear the reference
23640   * @internal
23641   */
23642  _terminateWorker() {
23643    this.workerRef && (this.log("worker", "terminating worker"), this.workerRef.terminate(), this.workerRef = void 0);
23644  }
23645  /** @internal */
23646  _workerObjectUrl(e) {
23647    let s;
23648    if (e)
23649      s = e;
23650    else {
23651      const r = new Blob([zu], { type: "application/javascript" });
23652      s = URL.createObjectURL(r);
23653    }
23654    return s;
23655  }
23656  /**
23657   * Initialize socket options with defaults
23658   * @internal
23659   */
23660  _initializeOptions(e) {
23661    var s, r, n, o, L, d, l, g, f, p, M, u;
23662    this.worker = (s = e?.worker) !== null && s !== void 0 ? s : !1, this.accessToken = (r = e?.accessToken) !== null && r !== void 0 ? r : null;
23663    const h = {};
23664    h.timeout = (n = e?.timeout) !== null && n !== void 0 ? n : eu, h.heartbeatIntervalMs = (o = e?.heartbeatIntervalMs) !== null && o !== void 0 ? o : i6.HEARTBEAT_INTERVAL, this._disconnectOnEmptyChannelsAfterMs = (L = e?.disconnectOnEmptyChannelsAfterMs) !== null && L !== void 0 ? L : 2 * ((d = e?.heartbeatIntervalMs) !== null && d !== void 0 ? d : i6.HEARTBEAT_INTERVAL), h.transport = (l = e?.transport) !== null && l !== void 0 ? l : JM.getWebSocketConstructor(), h.params = e?.params, h.logger = e?.logger, h.heartbeatCallback = this._wrapHeartbeatCallback(e?.heartbeatCallback), h.sessionStorage = (g = e?.sessionStorage) !== null && g !== void 0 ? g : Du(), h.reconnectAfterMs = (f = e?.reconnectAfterMs) !== null && f !== void 0 ? f : ((y) => Fu[y - 1] || Eu);
23665    let x, _;
23666    const v = (p = e?.vsn) !== null && p !== void 0 ? p : QM;
23667    switch (v) {
23668      case XM:
23669        x = (y, b) => b(JSON.stringify(y)), _ = (y, b) => b(JSON.parse(y));
23670        break;
23671      case Mi:
23672        x = this.serializer.encode.bind(this.serializer), _ = this.serializer.decode.bind(this.serializer);
23673        break;
23674      default:
23675        throw new Error(`Unsupported serializer version: ${h.vsn}`);
23676    }
23677    if (h.vsn = v, h.encode = (M = e?.encode) !== null && M !== void 0 ? M : x, h.decode = (u = e?.decode) !== null && u !== void 0 ? u : _, h.beforeReconnect = this._reconnectAuth.bind(this), (e?.logLevel || e?.log_level) && (this.logLevel = e.logLevel || e.log_level, h.params = Object.assign(Object.assign({}, h.params), { log_level: this.logLevel })), this.worker) {
23678      if (typeof window < "u" && !window.Worker)
23679        throw new Error("Web Worker is not supported");
23680      this.workerUrl = e?.workerUrl, h.autoSendHeartbeat = !this.worker;
23681    }
23682    return h;
23683  }
23684  /** @internal */
23685  async _reconnectAuth() {
23686    await this._waitForAuthIfNeeded(), this.isConnected() || this.connect();
23687  }
23688}
23689var n2 = class extends Error {
23690  constructor(t, e) {
23691    super(t), this.name = "IcebergError", this.status = e.status, this.icebergType = e.icebergType, this.icebergCode = e.icebergCode, this.details = e.details, this.isCommitStateUnknown = e.icebergType === "CommitStateUnknownException" || [500, 502, 504].includes(e.status) && e.icebergType?.includes("CommitState") === !0;
23692  }
23693  /**
23694   * Returns true if the error is a 404 Not Found error.
23695   */
23696  isNotFound() {
23697    return this.status === 404;
23698  }
23699  /**
23700   * Returns true if the error is a 409 Conflict error.
23701   */
23702  isConflict() {
23703    return this.status === 409;
23704  }
23705  /**
23706   * Returns true if the error is a 419 Authentication Timeout error.
23707   */
23708  isAuthenticationTimeout() {
23709    return this.status === 419;
23710  }
23711};
23712function Ou(t, e, s) {
23713  const r = new URL(e, t);
23714  if (s)
23715    for (const [n, o] of Object.entries(s))
23716      o !== void 0 && r.searchParams.set(n, o);
23717  return r.toString();
23718}
23719async function Vu(t) {
23720  return !t || t.type === "none" ? {} : t.type === "bearer" ? { Authorization: `Bearer ${t.token}` } : t.type === "header" ? { [t.name]: t.value } : t.type === "custom" ? await t.getHeaders() : {};
23721}
23722function Hu(t) {
23723  const e = t.fetchImpl ?? globalThis.fetch;
23724  return {
23725    async request({
23726      method: s,
23727      path: r,
23728      query: n,
23729      body: o,
23730      headers: L
23731    }) {
23732      const d = Ou(t.baseUrl, r, n), l = await Vu(t.auth), g = await e(d, {
23733        method: s,
23734        headers: {
23735          ...o ? { "Content-Type": "application/json" } : {},
23736          ...l,
23737          ...L
23738        },
23739        body: o ? JSON.stringify(o) : void 0
23740      }), f = await g.text(), p = (g.headers.get("content-type") || "").includes("application/json"), M = p && f ? JSON.parse(f) : f;
23741      if (!g.ok) {
23742        const u = p ? M : void 0, h = u?.error;
23743        throw new n2(
23744          h?.message ?? `Request failed with status ${g.status}`,
23745          {
23746            status: g.status,
23747            icebergType: h?.type,
23748            icebergCode: h?.code,
23749            details: u
23750          }
23751        );
23752      }
23753      return { status: g.status, headers: g.headers, data: M };
23754    }
23755  };
23756}
23757function j2(t) {
23758  return t.join("�");
23759}
23760var Zu = class {
23761  constructor(t, e = "") {
23762    this.client = t, this.prefix = e;
23763  }
23764  async listNamespaces(t) {
23765    const e = t ? { parent: j2(t.namespace) } : void 0;
23766    return (await this.client.request({
23767      method: "GET",
23768      path: `${this.prefix}/namespaces`,
23769      query: e
23770    })).data.namespaces.map((r) => ({ namespace: r }));
23771  }
23772  async createNamespace(t, e) {
23773    const s = {
23774      namespace: t.namespace,
23775      properties: e?.properties
23776    };
23777    return (await this.client.request({
23778      method: "POST",
23779      path: `${this.prefix}/namespaces`,
23780      body: s
23781    })).data;
23782  }
23783  async dropNamespace(t) {
23784    await this.client.request({
23785      method: "DELETE",
23786      path: `${this.prefix}/namespaces/${j2(t.namespace)}`
23787    });
23788  }
23789  async loadNamespaceMetadata(t) {
23790    return {
23791      properties: (await this.client.request({
23792        method: "GET",
23793        path: `${this.prefix}/namespaces/${j2(t.namespace)}`
23794      })).data.properties
23795    };
23796  }
23797  async namespaceExists(t) {
23798    try {
23799      return await this.client.request({
23800        method: "HEAD",
23801        path: `${this.prefix}/namespaces/${j2(t.namespace)}`
23802      }), !0;
23803    } catch (e) {
23804      if (e instanceof n2 && e.status === 404)
23805        return !1;
23806      throw e;
23807    }
23808  }
23809  async createNamespaceIfNotExists(t, e) {
23810    try {
23811      return await this.createNamespace(t, e);
23812    } catch (s) {
23813      if (s instanceof n2 && s.status === 409)
23814        return;
23815      throw s;
23816    }
23817  }
23818};
23819function Q1(t) {
23820  return t.join("�");
23821}
23822var Wu = class {
23823  constructor(t, e = "", s) {
23824    this.client = t, this.prefix = e, this.accessDelegation = s;
23825  }
23826  async listTables(t) {
23827    return (await this.client.request({
23828      method: "GET",
23829      path: `${this.prefix}/namespaces/${Q1(t.namespace)}/tables`
23830    })).data.identifiers;
23831  }
23832  async createTable(t, e) {
23833    const s = {};
23834    return this.accessDelegation && (s["X-Iceberg-Access-Delegation"] = this.accessDelegation), (await this.client.request({
23835      method: "POST",
23836      path: `${this.prefix}/namespaces/${Q1(t.namespace)}/tables`,
23837      body: e,
23838      headers: s
23839    })).data.metadata;
23840  }
23841  async updateTable(t, e) {
23842    const s = await this.client.request({
23843      method: "POST",
23844      path: `${this.prefix}/namespaces/${Q1(t.namespace)}
23844/tables/${t.name}`,
23845      body: e
23846    });
23847    return {
23848      "metadata-location": s.data["metadata-location"],
23849      metadata: s.data.metadata
23850    };
23851  }
23852  async dropTable(t, e) {
23853    await this.client.request({
23854      method: "DELETE",
23855      path: `${this.prefix}/namespaces/${Q1(t.namespace)}/tables/${t.name}`,
23856      query: { purgeRequested: String(e?.purge ?? !1) }
23857    });
23858  }
23859  async loadTable(t) {
23860    const e = {};
23861    return this.accessDelegation && (e["X-Iceberg-Access-Delegation"] = this.accessDelegation), (await this.client.request({
23862      method: "GET",
23863      path: `${this.prefix}/namespaces/${Q1(t.namespace)}/tables/${t.name}`,
23864      headers: e
23865    })).data.metadata;
23866  }
23867  async tableExists(t) {
23868    const e = {};
23869    this.accessDelegation && (e["X-Iceberg-Access-Delegation"] = this.accessDelegation);
23870    try {
23871      return await this.client.request({
23872        method: "HEAD",
23873        path: `${this.prefix}/namespaces/${Q1(t.namespace)}/tables/${t.name}`,
23874        headers: e
23875      }), !0;
23876    } catch (s) {
23877      if (s instanceof n2 && s.status === 404)
23878        return !1;
23879      throw s;
23880    }
23881  }
23882  async createTableIfNotExists(t, e) {
23883    try {
23884      return await this.createTable(t, e);
23885    } catch (s) {
23886      if (s instanceof n2 && s.status === 409)
23887        return await this.loadTable({ namespace: t.namespace, name: e.name });
23888      throw s;
23889    }
23890  }
23891}, $u = class {
23892  /**
23893   * Creates a new Iceberg REST Catalog client.
23894   *
23895   * @param options - Configuration options for the catalog client
23896   */
23897  constructor(t) {
23898    let e = "v1";
23899    t.catalogName && (e += `/${t.catalogName}`);
23900    const s = t.baseUrl.endsWith("/") ? t.baseUrl : `${t.baseUrl}/`;
23901    this.client = Hu({
23902      baseUrl: s,
23903      auth: t.auth,
23904      fetchImpl: t.fetch
23905    }), this.accessDelegation = t.accessDelegation?.join(","), this.namespaceOps = new Zu(this.client, e), this.tableOps = new Wu(this.client, e, this.accessDelegation);
23906  }
23907  /**
23908   * Lists all namespaces in the catalog.
23909   *
23910   * @param parent - Optional parent namespace to list children under
23911   * @returns Array of namespace identifiers
23912   *
23913   * @example
23914   * ```typescript
23915   * // List all top-level namespaces
23916   * const namespaces = await catalog.listNamespaces();
23917   *
23918   * // List namespaces under a parent
23919   * const children = await catalog.listNamespaces({ namespace: ['analytics'] });
23920   * ```
23921   */
23922  async listNamespaces(t) {
23923    return this.namespaceOps.listNamespaces(t);
23924  }
23925  /**
23926   * Creates a new namespace in the catalog.
23927   *
23928   * @param id - Namespace identifier to create
23929   * @param metadata - Optional metadata properties for the namespace
23930   * @returns Response containing the created namespace and its properties
23931   *
23932   * @example
23933   * ```typescript
23934   * const response = await catalog.createNamespace(
23935   *   { namespace: ['analytics'] },
23936   *   { properties: { owner: 'data-team' } }
23937   * );
23938   * console.log(response.namespace); // ['analytics']
23939   * console.log(response.properties); // { owner: 'data-team', ... }
23940   * ```
23941   */
23942  async createNamespace(t, e) {
23943    return this.namespaceOps.createNamespace(t, e);
23944  }
23945  /**
23946   * Drops a namespace from the catalog.
23947   *
23948   * The namespace must be empty (contain no tables) before it can be dropped.
23949   *
23950   * @param id - Namespace identifier to drop
23951   *
23952   * @example
23953   * ```typescript
23954   * await catalog.dropNamespace({ namespace: ['analytics'] });
23955   * ```
23956   */
23957  async dropNamespace(t) {
23958    await this.namespaceOps.dropNamespace(t);
23959  }
23960  /**
23961   * Loads metadata for a namespace.
23962   *
23963   * @param id - Namespace identifier to load
23964   * @returns Namespace metadata including properties
23965   *
23966   * @example
23967   * ```typescript
23968   * const metadata = await catalog.loadNamespaceMetadata({ namespace: ['analytics'] });
23969   * console.log(metadata.properties);
23970   * ```
23971   */
23972  async loadNamespaceMetadata(t) {
23973    return this.namespaceOps.loadNamespaceMetadata(t);
23974  }
23975  /**
23976   * Lists all tables in a namespace.
23977   *
23978   * @param namespace - Namespace identifier to list tables from
23979   * @returns Array of table identifiers
23980   *
23981   * @example
23982   * ```typescript
23983   * const tables = await catalog.listTables({ namespace: ['analytics'] });
23984   * console.log(tables); // [{ namespace: ['analytics'], name: 'events' }, ...]
23985   * ```
23986   */
23987  async listTables(t) {
23988    return this.tableOps.listTables(t);
23989  }
23990  /**
23991   * Creates a new table in the catalog.
23992   *
23993   * @param namespace - Namespace to create the table in
23994   * @param request - Table creation request including name, schema, partition spec, etc.
23995   * @returns Table metadata for the created table
23996   *
23997   * @example
23998   * ```typescript
23999   * const metadata = await catalog.createTable(
24000   *   { namespace: ['analytics'] },
24001   *   {
24002   *     name: 'events',
24003   *     schema: {
24004   *       type: 'struct',
24005   *       fields: [
24006   *         { id: 1, name: 'id', type: 'long', required: true },
24007   *         { id: 2, name: 'timestamp', type: 'timestamp', required: true }
24008   *       ],
24009   *       'schema-id': 0
24010   *     },
24011   *     'partition-spec': {
24012   *       'spec-id': 0,
24013   *       fields: [
24014   *         { source_id: 2, field_id: 1000, name: 'ts_day', transform: 'day' }
24015   *       ]
24016   *     }
24017   *   }
24018   * );
24019   * ```
24020   */
24021  async createTable(t, e) {
24022    return this.tableOps.createTable(t, e);
24023  }
24024  /**
24025   * Updates an existing table's metadata.
24026   *
24027   * Can update the schema, partition spec, or properties of a table.
24028   *
24029   * @param id - Table identifier to update
24030   * @param request - Update request with fields to modify
24031   * @returns Response containing the metadata location and updated table metadata
24032   *
24033   * @example
24034   * ```typescript
24035   * const response = await catalog.updateTable(
24036   *   { namespace: ['analytics'], name: 'events' },
24037   *   {
24038   *     properties: { 'read.split.target-size': '134217728' }
24039   *   }
24040   * );
24041   * console.log(response['metadata-location']); // s3://...
24042   * console.log(response.metadata); // TableMetadata object
24043   * ```
24044   */
24045  async updateTable(t, e) {
24046    return this.tableOps.updateTable(t, e);
24047  }
24048  /**
24049   * Drops a table from the catalog.
24050   *
24051   * @param id - Table identifier to drop
24052   *
24053   * @example
24054   * ```typescript
24055   * await catalog.dropTable({ namespace: ['analytics'], name: 'events' });
24056   * ```
24057   */
24058  async dropTable(t, e) {
24059    await this.tableOps.dropTable(t, e);
24060  }
24061  /**
24062   * Loads metadata for a table.
24063   *
24064   * @param id - Table identifier to load
24065   * @returns Table metadata including schema, partition spec, location, etc.
24066   *
24067   * @example
24068   * ```typescript
24069   * const metadata = await catalog.loadTable({ namespace: ['analytics'], name: 'events' });
24070   * console.log(metadata.schema);
24071   * console.log(metadata.location);
24072   * ```
24073   */
24074  async loadTable(t) {
24075    return this.tableOps.loadTable(t);
24076  }
24077  /**
24078   * Checks if a namespace exists in the catalog.
24079   *
24080   * @param id - Namespace identifier to check
24081   * @returns True if the namespace exists, false otherwise
24082   *
24083   * @example
24084   * ```typescript
24085   * const exists = await catalog.namespaceExists({ namespace: ['analytics'] });
24086   * console.log(exists); // true or false
24087   * ```
24088   */
24089  async namespaceExists(t) {
24090    return this.namespaceOps.namespaceExists(t);
24091  }
24092  /**
24093   * Checks if a table exists in the catalog.
24094   *
24095   * @param id - Table identifier to check
24096   * @returns True if the table exists, false otherwise
24097   *
24098   * @example
24099   * ```typescript
24100   * const exists = await catalog.tableExists({ namespace: ['analytics'], name: 'events' });
24101   * console.log(exists); // true or false
24102   * ```
24103   */
24104  async tableExists(t) {
24105    return this.tableOps.tableExists(t);
24106  }
24107  /**
24108   * Creates a namespace if it does not exist.
24109   *
24110   * If the namespace already exists, returns void. If created, returns the response.
24111   *
24112   * @param id - Namespace identifier to create
24113   * @param metadata - Optional metadata properties for the namespace
24114   * @returns Response containing the created namespace and its properties, or void if it already exists
24115   *
24116   * @example
24117   * ```typescript
24118   * const response = await catalog.createNamespaceIfNotExists(
24119   *   { namespace: ['analytics'] },
24120   *   { properties: { owner: 'data-team' } }
24121   * );
24122   * if (response) {
24123   *   console.log('Created:', response.namespace);
24124   * } else {
24125   *   console.log('Already exists');
24126   * }
24127   * ```
24128   */
24129  async createNamespaceIfNotExists(t, e) {
24130    return this.namespaceOps.createNamespaceIfNotExists(t, e);
24131  }
24132  /**
24133   * Creates a table if it does not exist.
24134   *
24135   * If the table already exists, returns its metadata instead.
24136   *
24137   * @param namespace - Namespace to create the table in
24138   * @param request - Table creation request including name, schema, partition spec, etc.
24139   * @returns Table metadata for the created or existing table
24140   *
24141   * @example
24142   * ```typescript
24143   * const metadata = await catalog.createTableIfNotExists(
24144   *   { namespace: ['analytics'] },
24145   *   {
24146   *     name: 'events',
24147   *     schema: {
24148   *       type: 'struct',
24149   *       fields: [
24150   *         { id: 1, name: 'id', type: 'long', required: true },
24151   *         { id: 2, name: 'timestamp', type: 'timestamp', required: true }
24152   *       ],
24153   *       'schema-id': 0
24154   *     }
24155   *   }
24156   * );
24157   * ```
24158   */
24159  async createTableIfNotExists(t, e) {
24160    return this.tableOps.createTableIfNotExists(t, e);
24161  }
24162};
24163function o2(t) {
24164  "@babel/helpers - typeof";
24165  return o2 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
24166    return typeof e;
24167  }
24167 : function(e) {
24168    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
24169  }, o2(t);
24170}
24171function qu(t, e) {
24172  if (o2(t) != "object" || !t) return t;
24173  var s = t[Symbol.toPrimitive];
24174  if (s !== void 0) {
24175    var r = s.call(t, e);
24176    if (o2(r) != "object") return r;
24177    throw new TypeError("@@toPrimitive must return a primitive value.");
24178  }
24179  return (e === "string" ? String : Number)(t);
24180}
24181function Uu(t) {
24182  var e = qu(t, "string");
24183  return o2(e) == "symbol" ? e : e + "";
24184}
24185function Gu(t, e, s) {
24186  return (e = Uu(e)) in t ? Object.defineProperty(t, e, {
24187    value: s,
24188    enumerable: !0,
24189    configurable: !0,
24190    writable: !0
24191  }) : t[e] = s, t;
24192}
24193function r6(t, e) {
24194  var s = Object.keys(t);
24195  if (Object.getOwnPropertySymbols) {
24196    var r = Object.getOwnPropertySymbols(t);
24197    e && (r = r.filter(function(n) {
24198      return Object.getOwnPropertyDescriptor(t, n).enumerable;
24199    })), s.push.apply(s, r);
24200  }
24201  return s;
24202}
24203function F(t) {
24204  for (var e = 1; e < arguments.length; e++) {
24205    var s = arguments[e] != null ? arguments[e] : {};
24206    e % 2 ? r6(Object(s), !0).forEach(function(r) {
24207      Gu(t, r, s[r]);
24208    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(s)) : r6(Object(s)).forEach(function(r) {
24209      Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(s, r));
24210    });
24211  }
24212  return t;
24213}
24214var O3 = class extends Error {
24215  constructor(t, e = "storage", s, r) {
24216    super(t), this.__isStorageError = !0, this.namespace = e, this.name = e === "vectors" ? "StorageVectorsError" : "StorageError", this.status = s, this.statusCode = r;
24217  }
24218  toJSON() {
24219    return {
24220      name: this.name,
24221      message: this.message,
24222      status: this.status,
24223      statusCode: this.statusCode
24224    };
24225  }
24226};
24227function V3(t) {
24228  return typeof t == "object" && t !== null && "__isStorageError" in t;
24229}
24230var t5 = class extends O3 {
24231  constructor(t, e, s, r = "storage", n) {
24232    super(t, r, e, s), this.name = r === "vectors" ? "StorageVectorsApiError" : "StorageApiError", this.status = e, this.statusCode = s, this.code = n;
24233  }
24234  toJSON() {
24235    return F(F({}, super.toJSON()), {}, { code: this.code });
24236  }
24237}, _i = class extends O3 {
24238  constructor(t, e, s = "storage") {
24239    super(t, s), this.name = s === "vectors" ? "StorageVectorsUnknownError" : "StorageUnknownError", this.originalError = e;
24240  }
24241};
24242function d3(t, e, s) {
24243  const r = F({}, t), n = e.toLowerCase();
24244  for (const o of Object.keys(r)) o.toLowerCase() === n && delete r[o];
24245  return r[n] = s, r;
24246}
24247function Ju(t) {
24248  const e = {};
24249  for (const [s, r] of Object.entries(t)) e[s.toLowerCase()] = r;
24250  return e;
24251}
24252const Ku = (t) => t ? (...e) => t(...e) : (...e) => fetch(...e), Yu = (t) => {
24253  if (typeof t != "object" || t === null) return !1;
24254  const e = Object.getPrototypeOf(t);
24255  return (e === null || e === Object.prototype || Object.getPrototypeOf(e) === null) && !(Symbol.toStringTag in t) && !(Symbol.iterator in t);
24256}, a5 = (t) => {
24257  if (Array.isArray(t)) return t.map((s) => a5(s));
24258  if (typeof t == "function" || t !== Object(t)) return t;
24259  const e = {};
24260  return Object.entries(t).forEach(([s, r]) => {
24261    const n = s.replace(/([-_][a-z])/gi, (o) => o.toUpperCase().replace(/[-_]/g, ""));
24262    e[n] = a5(r);
24263  }), e;
24264}, Xu = (t) => !t || typeof t != "string" || t.length === 0 || t.length > 100 || t.trim() !== t || t.includes("/") || t.includes("\\") ? !1 : /^[\w!.\*'() &$@=;:+,?-]+$/.test(t), s5 = (t) => t.split("/").map(encodeURIComponent).join("/"), n6 = (t) => {
24265  if (typeof t == "object" && t !== null) {
24266    const e = t;
24267    if (typeof e.msg == "string") return e.msg;
24268    if (typeof e.message == "string") return e.message;
24269    if (typeof e.error_description == "string") return e.error_description;
24270    if (typeof e.error == "string") return e.error;
24271    if (typeof e.error == "object" && e.error !== null) {
24272      const s = e.error;
24273      if (typeof s.message == "string") return s.message;
24274    }
24275  }
24276  return JSON.stringify(t);
24277}, Qu = async (t, e, s, r) => {
24278  if (t !== null && typeof t == "object" && "json" in t && typeof t.json == "function") {
24279    const n = t;
24280    let o = parseInt(String(n.status), 10);
24281    Number.isFinite(o) || (o = 500), n.json().then((L) => {
24282      const d = L?.statusCode || L?.code || o + "";
24283      e(new t5(n6(L), o, d, r, L?.code));
24284    }).catch(() => {
24285      const L = o + "";
24286      e(new t5(n.statusText || `HTTP ${o} error`, o, L, r));
24287    });
24288  } else e(new _i(n6(t), t, r));
24289}, eh = (t, e, s, r) => {
24290  const n = {
24291    method: t,
24292    headers: e?.headers || {}
24293  };
24294  if (t === "GET" || t === "HEAD" || !r) return F(F({}, n), s);
24295  if (Yu(r)) {
24296    var o;
24297    const L = e?.headers || {};
24298    let d;
24299    for (const [l, g] of Object.entries(L)) l.toLowerCase() === "content-type" && (d = g);
24300    n.headers = d3(L, "Content-Type", (o = d) !== null && o !== void 0 ? o : "application/json"), n.body = JSON.stringify(r);
24301  } else n.body = r;
24302  return e?.duplex && (n.duplex = e.duplex), F(F({}, n), s);
24303};
24304async function Dt(t, e, s, r, n, o, L) {
24305  return new Promise((d, l) => {
24306    t(s, eh(e, r, n, o)).then((g) => {
24307      if (!g.ok) throw g;
24308      if (r?.noResolveJson) return g;
24309      if (L === "vectors") {
24310        const f = g.headers.get("content-type");
24311        if (g.headers.get("content-length") === "0" || g.status === 204) return {};
24312        if (!f || !f.includes("application/json")) return {};
24313      }
24314      return g.json();
24315    }).then((g) => d(g)).catch((g) => Qu(g, l, r, L));
24316  });
24317}
24318function bi(t = "storage") {
24319  return {
24320    get: async (e, s, r, n) => Dt(e, "GET", s, r, n, void 0, t),
24321    post: async (e, s, r, n, o) => Dt(e, "POST", s, n, o, r, t),
24322    put: async (e, s, r, n, o) => Dt(e, "PUT", s, n, o, r, t),
24323    head: async (e, s, r, n) => Dt(e, "HEAD", s, F(F({}, r), {}, { noResolveJson: !0 }), n, void 0, t),
24324    remove: async (e, s, r, n, o) => Dt(e, "DELETE", s, n, o, r, t)
24325  };
24326}
24327const th = bi("storage"), { get: mt, post: We, put: g3, head: ah, remove: xt } = th, Ce = bi("vectors");
24328var Ct = class {
24329  /**
24330  * Creates a new BaseApiClient instance
24331  * @param url - Base URL for API requests
24332  * @param headers - Default headers for API requests
24333  * @param fetch - Optional custom fetch implementation
24334  * @param namespace - Error namespace ('storage' or 'vectors')
24335  */
24336  constructor(t, e = {}, s, r = "storage") {
24337    this.shouldThrowOnError = !1, this.url = t, this.headers = Ju(e), this.fetch = Ku(s), this.namespace = r;
24338  }
24339  /**
24340  * Enable throwing errors instead of returning them.
24341  * When enabled, errors are thrown instead of returned in { data, error } format.
24342  *
24343  * @returns this - For method chaining
24344  */
24345  throwOnError() {
24346    return this.shouldThrowOnError = !0, this;
24347  }
24348  /**
24349  * Set an HTTP header for the request.
24350  * Creates a shallow copy of headers to avoid mutating shared state.
24351  *
24352  * @param name - Header name
24353  * @param value - Header value
24354  * @returns this - For method chaining
24355  */
24356  setHeader(t, e) {
24357    return this.headers = d3(this.headers, t, e), this;
24358  }
24359  /**
24360  * Handles API operation with standardized error handling
24361  * Eliminates repetitive try-catch blocks across all API methods
24362  *
24363  * This wrapper:
24364  * 1. Executes the operation
24365  * 2. Returns { data, error: null } on success
24366  * 3. Returns { data: null, error } on failure (if shouldThrowOnError is false)
24367  * 4. Throws error on failure (if shouldThrowOnError is true)
24368  *
24369  * @typeParam T - The expected data type from the operation
24370  * @param operation - Async function that performs the API call
24371  * @returns Promise with { data, error } tuple
24372  *
24373  * @example Handling an operation
24374  * ```typescript
24375  * async listBuckets() {
24376  *   return this.handleOperation(async () => {
24377  *     return await get(this.fetch, `${this.url}/bucket`, {
24378  *       headers: this.headers,
24379  *     })
24380  *   })
24381  * }
24382  * ```
24383  */
24384  async handleOperation(t) {
24385    var e = this;
24386    try {
24387      return {
24388        data: await t(),
24389        error: null
24390      };
24391    } catch (s) {
24392      if (e.shouldThrowOnError) throw s;
24393      if (V3(s)) return {
24394        data: null,
24395        error: s
24396      };
24397      throw s;
24398    }
24399  }
24400};
24401let vi;
24402vi = Symbol.toStringTag;
24403var sh = class {
24404  constructor(t, e) {
24405    this.downloadFn = t, this.shouldThrowOnError = e, this[vi] = "StreamDownloadBuilder", this.promise = null;
24406  }
24407  then(t, e) {
24408    return this.getPromise().then(t, e);
24409  }
24410  catch(t) {
24411    return this.getPromise().catch(t);
24412  }
24413  finally(t) {
24414    return this.getPromise().finally(t);
24415  }
24416  getPromise() {
24417    return this.promise || (this.promise = this.execute()), this.promise;
24418  }
24419  async execute() {
24420    var t = this;
24421    try {
24422      return {
24423        data: (await t.downloadFn()).body,
24424        error: null
24425      };
24426    } catch (e) {
24427      if (t.shouldThrowOnError) throw e;
24428      if (V3(e)) return {
24429        data: null,
24430        error: e
24431      };
24432      throw e;
24433    }
24434  }
24435};
24436let yi;
24437yi = Symbol.toStringTag;
24438var ih = class {
24439  constructor(t, e) {
24440    this.downloadFn = t, this.shouldThrowOnError = e, this[yi] = "BlobDownloadBuilder", this.promise = null;
24441  }
24442  asStream() {
24443    return new sh(this.downloadFn, this.shouldThrowOnError);
24444  }
24445  then(t, e) {
24446    return this.getPromise().then(t, e);
24447  }
24448  catch(t) {
24449    return this.getPromise().catch(t);
24450  }
24451  finally(t) {
24452    return this.getPromise().finally(t);
24453  }
24454  getPromise() {
24455    return this.promise || (this.promise = this.execute()), this.promise;
24456  }
24457  async execute() {
24458    var t = this;
24459    try {
24460      return {
24461        data: await (await t.downloadFn()).blob(),
24462        error: null
24463      };
24464    } catch (e) {
24465      if (t.shouldThrowOnError) throw e;
24466      if (V3(e)) return {
24467        data: null,
24468        error: e
24469      };
24470      throw e;
24471    }
24472  }
24473};
24474const m4 = {
24475  limit: 100,
24476  offset: 0,
24477  sortBy: {
24478    column: "name",
24479    order: "asc"
24480  }
24481}, o6 = {
24482  cacheControl: "3600",
24483  contentType: "text/plain;charset=UTF-8",
24484  upsert: !1
24485};
24486var rh = class extends Ct {
24487  constructor(t, e = {}, s, r) {
24488    super(t, e, r, "storage"), this.bucketId = s;
24489  }
24490  /**
24491  * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.
24492  *
24493  * @param method HTTP method.
24494  * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.
24495  * @param fileBody The body of the file to be stored in the bucket.
24496  */
24497  async uploadOrUpdate(t, e, s, r) {
24498    var n = this;
24499    return n.handleOperation(async () => {
24500      let o;
24501      const L = F(F({}, o6), r);
24502      let d = F(F({}, n.headers), t === "POST" && { "x-upsert": String(L.upsert) });
24503      const l = L.metadata;
24504      if (typeof Blob < "u" && s instanceof Blob ? (o = new FormData(), o.append("cacheControl", L.cacheControl), l && o.append("metadata", n.encodeMetadata(l)), o.append("", s)) : typeof FormData < "u" && s instanceof FormData ? (o = s, o.has("cacheControl") || o.append("cacheControl", L.cacheControl), l && !o.has("metadata") && o.append("metadata", n.encodeMetadata(l))) : (o = s, d["cache-control"] = `max-age=${L.cacheControl}`, d["content-type"] = L.contentType, l && (d["x-metadata"] = n.toBase64(n.encodeMetadata(l))), (typeof ReadableStream < "u" && o instanceof ReadableStream || o && typeof o == "object" && "pipe" in o && typeof o.pipe == "function") && !L.duplex && (L.duplex = "half")), r?.headers) for (const [M, u] of Object.entries(r.headers)) d = d3(d, M, u);
24505      const g = n._removeEmptyFolders(e), f = n._getFinalPath(g), p = await (t == "PUT" ? g3 : We)(n.fetch, `${n.url}/object/${f}`, o, F({ headers: d }, L?.duplex ? { duplex: L.duplex } : {}));
24506      return {
24507        path: g,
24508        id: p.Id,
24509        fullPath: p.Key
24510      };
24511    });
24512  }
24513  /**
24514  * Uploads a file to an existing bucket.
24515  *
24516  * @category Storage
24517  * @subcategory File Buckets
24518  * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.
24519  * @param fileBody The body of the file to be stored in the bucket.
24520  * @param fileOptions Optional file upload options including cacheControl, contentType, upsert, and metadata.
24521  * @returns Promise with response containing file path, id, and fullPath or error
24522  *
24523  * @example Upload file
24524  * ```js
24525  * const avatarFile = event.target.files[0]
24526  * const { data, error } = await supabase
24527  *   .storage
24528  *   .from('avatars')
24529  *   .upload('public/avatar1.png', avatarFile, {
24530  *     cacheControl: '3600',
24531  *     upsert: false
24532  *   })
24533  * ```
24534  *
24535  * Response:
24536  * ```json
24537  * {
24538  *   "data": {
24539  *     "path": "public/avatar1.png",
24540  *     "fullPath": "avatars/public/avatar1.png"
24541  *   },
24542  *   "error": null
24543  * }
24544  * ```
24545  *
24546  * @example Upload file using `ArrayBuffer` from base64 file data
24547  * ```js
24548  * import { decode } from 'base64-arraybuffer'
24549  *
24550  * const { data, error } = await supabase
24551  *   .storage
24552  *   .from('avatars')
24553  *   .upload('public/avatar1.png', decode('base64FileData'), {
24554  *     contentType: 'image/png'
24555  *   })
24556  * ```
24557  *
24558  * @example Handling errors
24559  * ```js
24560  * const { data, error } = await supabase
24561  *   .storage
24562  *   .from('avatars')
24563  *   .upload('public/avatar1.png', avatarFile)
24564  *
24565  * if (error) {
24566  *   // Log the full error so fields like `statusCode` and `error` (the
24567  *   // Storage error name, e.g. "Duplicate") aren't hidden behind `error.message`.
24568  *   console.error(error)
24569  *   return
24570  * }
24571  * ```
24572  *
24573  * @remarks
24574  * - RLS policy permissions required:
24575  *   - `buckets` table permissions: none
24576  *   - `objects` table permissions: only `insert` when you are uploading new files and `select`, `insert` and `update` when you are upserting files
24577  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24578  * - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below.
24579  */
24580  async upload(t, e, s) {
24581    return this.uploadOrUpdate("POST", t, e, s);
24582  }
24583  /**
24584  * Upload a file with a token generated from `createSignedUploadUrl`.
24585  *
24586  * @category Storage
24587  * @subcategory File Buckets
24588  * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.
24589  * @param token The token generated from `createSignedUploadUrl`
24590  * @param fileBody The body of the file to be stored in the bucket.
24591  * @param fileOptions HTTP headers (cacheControl, contentType, etc.).
24592  * **Note:** The `upsert` option has no effect here. To enable upsert behavior,
24593  * pass `{ upsert: true }` when calling `createSignedUploadUrl()` instead.
24594  * @returns Promise with response containing file path and fullPath or error
24595  *
24596  * @example Upload to a signed URL
24597  * ```js
24598  * const { data, error } = await supabase
24599  *   .storage
24600  *   .from('avatars')
24601  *   .uploadToSignedUrl('folder/cat.jpg', 'token-from-createSignedUploadUrl', file)
24602  * ```
24603  *
24604  * Response:
24605  * ```json
24606  * {
24607  *   "data": {
24608  *     "path": "folder/cat.jpg",
24609  *     "fullPath": "avatars/folder/cat.jpg"
24610  *   },
24611  *   "error": null
24612  * }
24613  * ```
24614  *
24615  * @remarks
24616  * - RLS policy permissions required:
24617  *   - `buckets` table permissions: none
24618  *   - `objects` table permissions: none
24619  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24620  */
24621  async uploadToSignedUrl(t, e, s, r) {
24622    var n = this;
24623    const o = n._removeEmptyFolders(t), L = n._getFinalPath(o), d = new URL(n.url + `/object/upload/sign/${L}`);
24624    return d.searchParams.set("token", e), n.handleOperation(async () => {
24625      let l;
24626      const g = F(F({}, o6), r);
24627      let f = F(F({}, n.headers), { "x-upsert": String(g.upsert) });
24628      const p = g.metadata;
24629      if (typeof Blob < "u" && s instanceof Blob ? (l = new FormData(), l.append("cacheControl", g.cacheControl), p && l.append("metadata", n.encodeMetadata(p)), l.append("", s)) : typeof FormData < "u" && s instanceof FormData ? (l = s, l.has("cacheControl") || l.append("cacheControl", g.cacheControl), p && !l.has("metadata") && l.append("metadata", n.encodeMetadata(p))) : (l = s, f["cache-control"] = `max-age=${g.cac
24629heControl}`, f["content-type"] = g.contentType, p && (f["x-metadata"] = n.toBase64(n.encodeMetadata(p))), (typeof ReadableStream < "u" && l instanceof ReadableStream || l && typeof l == "object" && "pipe" in l && typeof l.pipe == "function") && !g.duplex && (g.duplex = "half")), r?.headers) for (const [M, u] of Object.entries(r.headers)) f = d3(f, M, u);
24630      return {
24631        path: o,
24632        fullPath: (await g3(n.fetch, d.toString(), l, F({ headers: f }, g?.duplex ? { duplex: g.duplex } : {}))).Key
24633      };
24634    });
24635  }
24636  /**
24637  * Creates a signed upload URL.
24638  * Signed upload URLs can be used to upload files to the bucket without further authentication.
24639  * They are valid for 2 hours.
24640  *
24641  * @category Storage
24642  * @subcategory File Buckets
24643  * @param path The file path, including the current file name. For example `folder/image.png`.
24644  * @param options.upsert If set to true, allows the file to be overwritten if it already exists.
24645  * @returns Promise with response containing signed upload URL, token, and path or error
24646  *
24647  * @example Create Signed Upload URL
24648  * ```js
24649  * const { data, error } = await supabase
24650  *   .storage
24651  *   .from('avatars')
24652  *   .createSignedUploadUrl('folder/cat.jpg')
24653  * ```
24654  *
24655  * Response:
24656  * ```json
24657  * {
24658  *   "data": {
24659  *     "signedUrl": "https://example.supabase.co/storage/v1/object/upload/sign/avatars/folder/cat.jpg?token=<TOKEN>",
24660  *     "path": "folder/cat.jpg",
24661  *     "token": "<TOKEN>"
24662  *   },
24663  *   "error": null
24664  * }
24665  * ```
24666  *
24667  * @remarks
24668  * - RLS policy permissions required:
24669  *   - `buckets` table permissions: none
24670  *   - `objects` table permissions: `insert`
24671  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24672  */
24673  async createSignedUploadUrl(t, e) {
24674    var s = this;
24675    return s.handleOperation(async () => {
24676      let r = s._getFinalPath(t);
24677      const n = F({}, s.headers);
24678      e?.upsert && (n["x-upsert"] = "true");
24679      const o = await We(s.fetch, `${s.url}/object/upload/sign/${r}`, {}, { headers: n }), L = new URL(s.url + o.url), d = L.searchParams.get("token");
24680      if (!d) throw new O3("No token returned by API");
24681      return {
24682        signedUrl: L.toString(),
24683        path: t,
24684        token: d
24685      };
24686    });
24687  }
24688  /**
24689  * Replaces an existing file at the specified path with a new one.
24690  *
24691  * @category Storage
24692  * @subcategory File Buckets
24693  * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.
24694  * @param fileBody The body of the file to be stored in the bucket.
24695  * @param fileOptions Optional file upload options including cacheControl, contentType, and metadata.
24696  * **Note:** The `upsert` option has no effect here. `update()` always replaces the
24697  * file at the given path, so the `x-upsert` header is not sent. To control upsert
24698  * behavior, use `upload()` instead.
24699  * @returns Promise with response containing file path, id, and fullPath or error
24700  *
24701  * @example Update file
24702  * ```js
24703  * const avatarFile = event.target.files[0]
24704  * const { data, error } = await supabase
24705  *   .storage
24706  *   .from('avatars')
24707  *   .update('public/avatar1.png', avatarFile, {
24708  *     cacheControl: '3600'
24709  *   })
24710  * ```
24711  *
24712  * Response:
24713  * ```json
24714  * {
24715  *   "data": {
24716  *     "path": "public/avatar1.png",
24717  *     "fullPath": "avatars/public/avatar1.png"
24718  *   },
24719  *   "error": null
24720  * }
24721  * ```
24722  *
24723  * @example Update file using `ArrayBuffer` from base64 file data
24724  * ```js
24725  * import {decode} from 'base64-arraybuffer'
24726  *
24727  * const { data, error } = await supabase
24728  *   .storage
24729  *   .from('avatars')
24730  *   .update('public/avatar1.png', decode('base64FileData'), {
24731  *     contentType: 'image/png'
24732  *   })
24733  * ```
24734  *
24735  * @remarks
24736  * - RLS policy permissions required:
24737  *   - `buckets` table permissions: none
24738  *   - `objects` table permissions: `update` and `select`
24739  * - `update()` always replaces the file at the given path regardless of the `upsert` option.
24740  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24741  * - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below.
24742  */
24743  async update(t, e, s) {
24744    return this.uploadOrUpdate("PUT", t, e, s);
24745  }
24746  /**
24747  * Moves an existing file to a new path in the same bucket.
24748  *
24749  * @category Storage
24750  * @subcategory File Buckets
24751  * @param fromPath The original file path, including the current file name. For example `folder/image.png`.
24752  * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.
24753  * @param options The destination options.
24754  * @param options.sourceVersionId The version id of the source object to move.
24755  * @returns Promise with response containing success message or error
24756  *
24757  * @example Move file
24758  * ```js
24759  * const { data, error } = await supabase
24760  *   .storage
24761  *   .from('avatars')
24762  *   .move('public/avatar1.png', 'private/avatar2.png')
24763  * ```
24764  *
24765  * Response:
24766  * ```json
24767  * {
24768  *   "data": {
24769  *     "message": "Successfully moved"
24770  *   },
24771  *   "error": null
24772  * }
24773  * ```
24774  *
24775  * @remarks
24776  * - RLS policy permissions required:
24777  *   - `buckets` table permissions: none
24778  *   - `objects` table permissions: `update` and `select`
24779  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24780  */
24781  async move(t, e, s) {
24782    var r = this;
24783    return r.handleOperation(async () => await We(r.fetch, `${r.url}/object/move`, {
24784      bucketId: r.bucketId,
24785      sourceKey: t,
24786      destinationKey: e,
24787      destinationBucket: s?.destinationBucket,
24788      sourceVersionId: s?.sourceVersionId
24789    }, { headers: r.headers }));
24790  }
24791  /**
24792  * Copies an existing file to a new path in the same bucket.
24793  *
24794  * @category Storage
24795  * @subcategory File Buckets
24796  * @param fromPath The original file path, including the current file name. For example `folder/image.png`.
24797  * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.
24798  * @param options The destination options.
24799  * @param options.sourceVersionId The version id of the source object to copy.
24800  * @returns Promise with response containing copied file path or error
24801  *
24802  * @example Copy file
24803  * ```js
24804  * const { data, error } = await supabase
24805  *   .storage
24806  *   .from('avatars')
24807  *   .copy('public/avatar1.png', 'private/avatar2.png')
24808  * ```
24809  *
24810  * Response:
24811  * ```json
24812  * {
24813  *   "data": {
24814  *     "path": "avatars/private/avatar2.png"
24815  *   },
24816  *   "error": null
24817  * }
24818  * ```
24819  *
24820  * @remarks
24821  * - RLS policy permissions required:
24822  *   - `buckets` table permissions: none
24823  *   - `objects` table permissions: `insert` and `select`
24824  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24825  */
24826  async copy(t, e, s) {
24827    var r = this;
24828    return r.handleOperation(async () => ({ path: (await We(r.fetch, `${r.url}/object/copy`, {
24829      bucketId: r.bucketId,
24830      sourceKey: t,
24831      destinationKey: e,
24832      destinationBucket: s?.destinationBucket,
24833      sourceVersionId: s?.sourceVersionId
24834    }, { headers: r.headers })).Key }));
24835  }
24836  /**
24837  * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.
24838  *
24839  * @category Storage
24840  * @subcategory File Buckets
24841  * @param path The file path, including the current file name. For example `folder/image.png`.
24842  * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.
24843  * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.
24844  * @param options.transform Transform the asset before serving it to the client.
24845  * @param options.cacheNonce Append a cache nonce parameter to the URL to invalidate the cache.
24846  * @param options.versionId Create a signed URL for a specific object version rather than the current one.
24847  * @returns Promise with response containing signed URL or error
24848  *
24849  * @example Create Signed URL
24850  * ```js
24851  * const { data, error } = await supabase
24852  *   .storage
24853  *   .from('avatars')
24854  *   .createSignedUrl('folder/avatar1.png', 60)
24855  * ```
24856  *
24857  * Response:
24858  * ```json
24859  * {
24860  *   "data": {
24861  *     "signedUrl": "https://example.supabase.co/storage/v1/object/sign/avatars/folder/avatar1.png?token=<TOKEN>"
24862  *   },
24863  *   "error": null
24864  * }
24865  * ```
24866  *
24867  * @example Create a signed URL for an asset with transformations
24868  * ```js
24869  * const { data } = await supabase
24870  *   .storage
24871  *   .from('avatars')
24872  *   .createSignedUrl('folder/avatar1.png', 60, {
24873  *     transform: {
24874  *       width: 100,
24875  *       height: 100,
24876  *     }
24877  *   })
24878  * ```
24879  *
24880  * @example Create a signed URL which triggers the download of the asset
24881  * ```js
24882  * const { data } = await supabase
24883  *   .storage
24884  *   .from('avatars')
24885  *   .createSignedUrl('folder/avatar1.png', 60, {
24886  *     download: true,
24887  *   })
24888  * ```
24889  *
24890  * @remarks
24891  * - RLS policy permissions required:
24892  *   - `buckets` table permissions: none
24893  *   - `objects` table permissions: `select`
24894  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24895  */
24896  async createSignedUrl(t, e, s) {
24897    var r = this;
24898    return r.handleOperation(async () => {
24899      let n = r._getFinalPath(t);
24900      const o = typeof s?.transform == "object" && s.transform !== null && Object.keys(s.transform).length > 0;
24901      let L = await We(r.fetch, `${r.url}/object/sign/${n}`, F(F({ expiresIn: e }, o ? { transform: s.transform } : {}), s?.versionId != null ? { versionId: s.versionId } : {}), { headers: r.headers });
24902      const d = new URLSearchParams();
24903      s?.download && d.set("download", s.download === !0 ? "" : s.download), s?.cacheNonce != null && d.set("cacheNonce", String(s.cacheNonce));
24904      const l = d.toString();
24905      return { signedUrl: encodeURI(`${r.url}${L.signedURL}${l ? `&${l}` : ""}`) };
24906    });
24907  }
24908  /**
24909  * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.
24910  *
24911  * @category Storage
24912  * @subcategory File Buckets
24913  * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.
24914  * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.
24915  * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.
24916  * @param options.cacheNonce Append a cache nonce parameter to the URL to invali
24916date the cache.
24917  * @returns Promise with response containing array of objects with signedUrl, path, and error or error
24918  *
24919  * @example Create Signed URLs
24920  * ```js
24921  * const { data, error } = await supabase
24922  *   .storage
24923  *   .from('avatars')
24924  *   .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60)
24925  * ```
24926  *
24927  * Response:
24928  * ```json
24929  * {
24930  *   "data": [
24931  *     {
24932  *       "error": null,
24933  *       "path": "folder/avatar1.png",
24934  *       "signedURL": "/object/sign/avatars/folder/avatar1.png?token=<TOKEN>",
24935  *       "signedUrl": "https://example.supabase.co/storage/v1/object/sign/avatars/folder/avatar1.png?token=<TOKEN>"
24936  *     },
24937  *     {
24938  *       "error": null,
24939  *       "path": "folder/avatar2.png",
24940  *       "signedURL": "/object/sign/avatars/folder/avatar2.png?token=<TOKEN>",
24941  *       "signedUrl": "https://example.supabase.co/storage/v1/object/sign/avatars/folder/avatar2.png?token=<TOKEN>"
24942  *     }
24943  *   ],
24944  *   "error": null
24945  * }
24946  * ```
24947  *
24948  * @remarks
24949  * - RLS policy permissions required:
24950  *   - `buckets` table permissions: none
24951  *   - `objects` table permissions: `select`
24952  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
24953  */
24954  async createSignedUrls(t, e, s) {
24955    var r = this;
24956    return r.handleOperation(async () => {
24957      const n = await We(r.fetch, `${r.url}/object/sign/${r.bucketId}`, {
24958        expiresIn: e,
24959        paths: t
24960      }, { headers: r.headers }), o = new URLSearchParams();
24961      s?.download && o.set("download", s.download === !0 ? "" : s.download), s?.cacheNonce != null && o.set("cacheNonce", String(s.cacheNonce));
24962      const L = o.toString();
24963      return n.map((d) => F(F({}, d), {}, { signedUrl: d.signedURL ? encodeURI(`${r.url}${d.signedURL}${L ? `&${L}` : ""}`) : null }));
24964    });
24965  }
24966  /**
24967  * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.
24968  *
24969  * @category Storage
24970  * @subcategory File Buckets
24971  * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.
24972  * @param options Optional settings: `transform` to transform the asset before serving it to the client, `cacheNonce` to append a cache nonce parameter to the URL to invalidate the cache, and `versionId` to download a specific object version.
24973  * @param parameters Additional fetch parameters like signal for cancellation. Supports standard fetch options including cache control.
24974  * @returns BlobDownloadBuilder instance for downloading the file
24975  *
24976  * @example Download file
24977  * ```js
24978  * const { data, error } = await supabase
24979  *   .storage
24980  *   .from('avatars')
24981  *   .download('folder/avatar1.png')
24982  * ```
24983  *
24984  * Response:
24985  * ```json
24986  * {
24987  *   "data": <BLOB>,
24988  *   "error": null
24989  * }
24990  * ```
24991  *
24992  * @example Download file with transformations
24993  * ```js
24994  * const { data, error } = await supabase
24995  *   .storage
24996  *   .from('avatars')
24997  *   .download('folder/avatar1.png', {
24998  *     transform: {
24999  *       width: 100,
25000  *       height: 100,
25001  *       quality: 80
25002  *     }
25003  *   })
25004  * ```
25005  *
25006  * @example Download with cache control (useful in Edge Functions)
25007  * ```js
25008  * const { data, error } = await supabase
25009  *   .storage
25010  *   .from('avatars')
25011  *   .download('folder/avatar1.png', {}, { cache: 'no-store' })
25012  * ```
25013  *
25014  * @example Download with abort signal
25015  * ```js
25016  * const controller = new AbortController()
25017  * setTimeout(() => controller.abort(), 5000)
25018  *
25019  * const { data, error } = await supabase
25020  *   .storage
25021  *   .from('avatars')
25022  *   .download('folder/avatar1.png', {}, { signal: controller.signal })
25023  * ```
25024  *
25025  * @remarks
25026  * - RLS policy permissions required:
25027  *   - `buckets` table permissions: none
25028  *   - `objects` table permissions: `select`
25029  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25030  */
25031  download(t, e, s) {
25032    const r = typeof e?.transform == "object" && e.transform !== null && Object.keys(e.transform).length > 0 ? "render/image/authenticated" : "object", n = new URLSearchParams();
25033    e?.transform && this.applyTransformOptsToQuery(n, e.transform), e?.cacheNonce != null && n.set("cacheNonce", String(e.cacheNonce)), e?.ver
25033sionId != null && n.set("versionId", String(e.versionId));
25034    const o = n.toString(), L = this._getFinalPath(t), d = () => mt(this.fetch, `${this.url}/${r}/${L}${o ? `?${o}` : ""}`, {
25035      headers: this.headers,
25036      noResolveJson: !0
25037    }, s);
25038    return new ih(d, this.shouldThrowOnError);
25039  }
25040  /**
25041  * Retrieves the details of an existing file.
25042  *
25043  * Returns detailed file metadata including size, content type, and timestamps.
25044  * Note: The API returns `last_modified` field, not `updated_at`.
25045  *
25046  * @category Storage
25047  * @subcategory File Buckets
25048  * @param path The file path, including the file name. For example `folder/image.png`.
25049  * @param options Optional settings, including `versionId` to retrieve a specific object version.
25050  * @returns Promise with response containing file metadata or error
25051  *
25052  * @example Get file info
25053  * ```js
25054  * const { data, error } = await supabase
25055  *   .storage
25056  *   .from('avatars')
25057  *   .info('folder/avatar1.png')
25058  *
25059  * if (data) {
25060  *   console.log('Last modified:', data.lastModified)
25061  *   console.log('Size:', data.size)
25062  * }
25063  * ```
25064  */
25065  async info(t, e) {
25066    var s = this;
25067    const r = s._getFinalPath(t), n = new URLSearchParams();
25068    e?.versionId != null && n.set("versionId", String(e.versionId));
25069    const o = n.toString();
25070    return s.handleOperation(async () => a5(await mt(s.fetch, `${s.url}/object/info/${r}${o ? `?${o}` : ""}`, { headers: s.headers })));
25071  }
25072  /**
25073  * Checks the existence of a file.
25074  *
25075  * @category Storage
25076  * @subcategory File Buckets
25077  * @param path The file path, including the file name. For example `folder/image.png`.
25078  * @returns Promise with response containing boolean indicating file existence or error
25079  *
25080  * @example Check file existence
25081  * ```js
25082  * const { data, error } = await supabase
25083  *   .storage
25084  *   .from('avatars')
25085  *   .exists('folder/avatar1.png')
25086  * ```
25087  */
25088  async exists(t) {
25089    var e = this;
25090    const s = e._getFinalPath(t);
25091    try {
25092      return await ah(e.fetch, `${e.url}/object/${s}`, { headers: e.headers }), {
25093        data: !0,
25094        error: null
25095      };
25096    } catch (n) {
25097      if (e.shouldThrowOnError) throw n;
25098      if (V3(n)) {
25099        var r;
25100        const o = n instanceof t5 ? n.status : n instanceof _i ? (r = n.originalError) === null || r === void 0 ? void 0 : r.status : void 0;
25101        if (o !== void 0 && [400, 404].includes(o)) return {
25102          data: !1,
25103          error: n
25104        };
25105      }
25106      throw n;
25107    }
25108  }
25109  /**
25110  * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.
25111  * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.
25112  *
25113  * @category Storage
25114  * @subcategory File Buckets
25115  * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.
25116  * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.
25117  * @param options.transform Transform the asset before serving it to the client.
25118  * @param options.cacheNonce Append a cache nonce parameter to the URL to invalidate the cache.
25119  * @param options.versionId Return the URL for a specific object version rather than the current one.
25120  * @returns Object with public URL
25121  *
25122  * @example Returns the URL for an asset in a public bucket
25123  * ```js
25124  * const { data } = supabase
25125  *   .storage
25126  *   .from('public-bucket')
25127  *   .getPublicUrl('folder/avatar1.png')
25128  * ```
25129  *
25130  * Response:
25131  * ```json
25132  * {
25133  *   "data": {
25134  *     "publicUrl": "https://example.supabase.co/storage/v1/object/public/public-bucket/folder/avatar1.png"
25135  *   }
25136  * }
25137  * ```
25138  *
25139  * @example Returns the URL for an asset in a public bucket with transformations
25140  * ```js
25141  * const { data } = supabase
25142  *   .storage
25143  *   .from('public-bucket')
25144  *   .getPublicUrl('folder/avatar1.png', {
25145  *     transform: {
25146  *       width: 100,
25147  *       height: 100,
25148  *     }
25149  *   })
25150  * ```
25151  *
25152  * @example Returns the URL which triggers the download of an asset in a public bucket
25153  * ```js
25154  * const { data } = supabase
25155  *   .storage
25156  *   .from('public-bucket')
25157  *   .getPublicUrl('folder/avatar1.png', {
25158  *     download: true,
25159  *   })
25160  * ```
25161  *
25162  * @remarks
25163  * - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [supabase.com/dashboard](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public"
25164  * - RLS policy permissions required:
25165  *   - `buckets` table permissions: none
25166  *   - `objects` table permissions: none
25167  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25168  */
25169  getPublicUrl(t, e) {
25170    const s = this._getFinalPath(t), r = new URLSearchParams();
25171    e?.download && r.set("download", e.download === !0 ? "" : e.download), e?.transform && this.applyTransformOptsToQuery(r, e.transform), e?.cacheNonce != null && r.set("cacheNonce", String(e.cacheNonce)), e?.ver
25171sionId != null && r.set("versionId", String(e.versionId));
25172    const n = r.toString(), o = typeof e?.transform == "object" && e.transform !== null && Object.keys(e.transform).length > 0 ? "render/image" : "object";
25173    return { data: { publicUrl: encodeURI(`${this.url}/${o}/public/${s}`) + (n ? `?${n}` : "") } };
25174  }
25175  /**
25176  * Deletes files within the same bucket
25177  *
25178  * Returns an array of FileObject entries for the deleted files. Note that deprecated
25179  * fields like `bucket_id` may or may not be present in the response - do not rely on them.
25180  *
25181  * @category Storage
25182  * @subcategory File Buckets
25183  * @param paths An array of files to delete. Each entry is either a path (deletes whichever
25184  * version is currently at that path, e.g. `'folder/image.png'`), or `{ path, versionId }` to
25185  * delete an exact version current or archived (e.g. `{ path: 'folder/image.png', versionId: '...' }`).
25186  * @returns Promise with response containing array of deleted file objects or error
25187  *
25188  * @example Delete file
25189  * ```js
25190  * const { data, error } = await supabase
25191  *   .storage
25192  *   .from('avatars')
25193  *   .remove(['folder/avatar1.png'])
25194  * ```
25195  *
25196  * Response:
25197  * ```json
25198  * {
25199  *   "data": [],
25200  *   "error": null
25201  * }
25202  * ```
25203  *
25204  * @example Delete a specific object version
25205  * ```js
25206  * const { data, error } = await supabase
25207  *   .storage
25208  *   .from('avatars')
25209  *   .remove([{ path: 'folder/avatar1.png', versionId: 'noncurrent-version-id' }])
25210  * ```
25211  *
25212  * @remarks
25213  * - RLS policy permissions required:
25214  *   - `buckets` table permissions: none
25215  *   - `objects` table permissions: `delete` and `select`
25216  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25217  */
25218  async remove(t) {
25219    var e = this;
25220    return e.handleOperation(async () => await xt(e.fetch, `${e.url}/object/${e.bucketId}`, { prefixes: t }, { headers: e.headers }));
25221  }
25222  /**
25223  * Purges the CDN cache for a single object in this bucket.
25224  *
25225  * Maps to `DELETE /cdn/{bucket}/{path}` on the Storage API. The server
25226  * issues a CDN invalidation for the object and returns `{ message: 'success' }`.
25227  *
25228  * **Requires the `service_role` key.** The underlying endpoint enforces
25229  * `service_role` JWT — calls made with the anon key or a user JWT will be
25230  * rejected by the server.
25231  *
25232  * **Hosted CDN feature.** On self-hosted Supabase, the Storage service must
25233  * have `CDN_PURGE_ENDPOINT_URL` configured and the `purgeCache` tenant
25234  * feature enabled, otherwise the server returns an error.
25235  *
25236  * Operates on a single object path. There is no wildcard or recursion: pass
25237  * the exact path of the object you want invalidated.
25238  *
25239  * @category Storage
25240  * @subcategory File Buckets
25241  * @param path The path (relative to the bucket) of the object to purge, e.g. `folder/avatar.png`.
25242  * @param options Optional purge cache options.
25243  * @param options.transformations If true, purges only transformations (resized/formatted variants), leaving the original cached file intact.
25244  * @param parameters Optional fetch parameters such as an `AbortController` signal.
25245  * @returns Promise with `{ data: { message }, error: null }` on success or `{ data: null, error }` on failure.
25246  *
25247  * @example Purge a single cached object
25248  * ```js
25249  * const { data, error } = await supabase
25250  *   .storage
25251  *   .from('avatars')
25252  *   .purgeCache('folder/avatar1.png')
25253  * ```
25254  *
25255  * @example Purge only transformations for a single object
25256  * ```js
25257  * const { data, error } = await supabase
25258  *   .storage
25259  *   .from('avatars')
25260  *   .purgeCache('folder/avatar1.png', { transformations: true })
25261  * ```
25262  */
25263  async purgeCache(t, e, s) {
25264    var r = this;
25265    return r.handleOperation(async () => {
25266      const n = s5(r._getFinalPath(t)), o = new URLSearchParams();
25267      e?.transformations && o.set("transformations", "true");
25268      const L = o.toString();
25269      return await xt(r.fetch, `${r.url}/cdn/${n}${L ? `?${L}` : ""}`, {}, { headers: r.headers }, s);
25270    });
25271  }
25272  /**
25273  * Get file metadata
25274  * @param id the file id to retrieve metadata
25275  */
25276  /**
25277  * Update file metadata
25278  * @param id the file id to update metadata
25279  * @param meta the new file metadata
25280  */
25281  /**
25282  * Lists all the files and folders within a path of the bucket.
25283  *
25284  * **Important:** For folder entries, fields like `id`, `updated_at`, `created_at`,
25285  * `last_accessed_at`, and `metadata` will be `null`. Only files have these fields populated.
25286  * Additionally, deprecated fields like `bucket_id`, `owner`, and `buckets` are NOT returned
25287  * by this method.
25288  *
25289  * @category Storage
25290  * @subcategory File Buckets
25291  * @param path The folder path.
25292  * @param options Search options including limit (defaults to 100), offset, sortBy, and search
25293  * @param parameters Optional fetch parameters including signal for cancellation
25294  * @returns Promise with response containing array of files/folders or error
25295  *
25296  * @example List files in a bucket
25297  * ```js
25298  * const { data, error } = await supabase
25299  *   .storage
25300  *   .from('avatars')
25301  *   .list('folder', {
25302  *     limit: 100,
25303  *     offset: 0,
25304  *     sortBy: { column: 'name', order: 'asc' },
25305  *   })
25306  *
25307  * // Handle files vs folders
25308  * data?.forEach(item => {
25309  *   if (item.id !== null) {
25310  *     // It's a file
25311  *     console.log('File:', item.name, 'Size:', item.metadata?.size)
25312  *   } else {
25313  *     // It's a folder
25314  *     console.log('Folder:', item.name)
25315  *   }
25316  * })
25317  * ```
25318  *
25319  * Response:
25320  * ```json
25321  * {
25322  *   "data": [
25323  *     {
25324  *       "name": "avatar1.png",
25325  *       "id": "e668cf7f-821b-4a2f-9dce-7dfa5dd1cfd2",
25326  *       "updated_at": "2024-05-22T23:06:05.580Z",
25327  *       "created_at": "2024-05-22T23:04:34.443Z",
25328  *       "last_accessed_at": "2024-05-22T23:04:34.443Z",
25329  *       "metadata": {
25330  *         "eTag": "\"c5e8c553235d9af30ef4f6e280790b92\"",
25331  *         "size": 32175,
25332  *         "mimetype": "image/png",
25333  *         "cacheControl": "max-age=3600",
25334  *         "lastModified": "2024-05-22T23:06:05.574Z",
25335  *         "contentLength": 32175,
25336  *         "httpStatusCode": 200
25337  *       }
25338  *     }
25339  *   ],
25340  *   "error": null
25341  * }
25342  * ```
25343  *
25344  * @example Search files in a bucket
25345  * ```js
25346  * const { data, error } = await supabase
25347  *   .storage
25348  *   .from('avatars')
25349  *   .list('folder', {
25350  *     limit: 100,
25351  *     offset: 0,
25352  *     sortBy: { column: 'name', order: 'asc' },
25353  *     search: 'jon'
25354  *   })
25355  * ```
25356  *
25357  * @remarks
25358  * - RLS policy permissions required:
25359  *   - `buckets` table permissions: none
25360  *   - `objects` table permissions: `select`
25361  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25362  */
25363  async list(t, e, s) {
25364    var r = this;
25365    return r.handleOperation(async () => {
25366      const n = e?.sortBy ? F(F({}, m4.sortBy), e.sortBy) : m4.sortBy, o = F(F(F({}, m4), e), {}, {
25367        sortBy: n,
25368        prefix: t || ""
25369      });
25370      return await We(r.fetch, `${r.url}/object/list/${r.bucketId}`, o, { headers: r.headers }, s);
25371    });
25372  }
25373  /**
25374  * Lists all the files and folders within a bucket using the V2 API with pagination support.
25375  *
25376  * **Important:** Folder entries in the `folders` array only contain `name` and optionally `key` —
25377  * they have no `id`, timestamps, or `metadata` fields. Full file metadata is only available
25378  * on entries in the `objects` array.
25379  *
25380  * @experimental this method signature might change in the future
25381  *
25382  * @category Storage
25383  * @subcategory File Buckets
25384  * @param options Search options including prefix, cursor for pagination, limit, with_delimiter
25385  * @param parameters Optional fetch parameters including signal for cancellation
25386  * @returns Promise with response containing folders/objects arrays with pagination info or error
25387  *
25388  * @example List files with pagination
25389  * ```js
25390  * const { data, error } = await supabase
25391  *   .storage
25392  *   .from('avatars')
25393  *   .listV2({
25394  *     prefix: 'folder/',
25395  *     limit: 100,
25396  *   })
25397  *
25398  * // Handle pagination
25399  * if (data?.hasNext) {
25400  *   const nextPage = await supabase
25401  *     .storage
25402  *     .from('avatars')
25403  *     .listV2({
25404  *       prefix: 'folder/',
25405  *       cursor: data.nextCursor,
25406  *     })
25407  * }
25408  *
25409  * // Handle files vs folders
25410  * data?.objects.forEach(file => {
25411  *   if (file.id !== null) {
25412  *     console.log('File:', file.name, 'Size:', file.metadata?.size)
25413  *   }
25414  * })
25415  * data?.folders.forEach(folder => {
25416  *   console.log('Folder:', folder.name)
25417  * })
25418  * ```
25419  */
25420  async listV2(t, e) {
25421    var s = this;
25422    return s.handleOperation(async () => {
25423      const r = F({}, t);
25424      return await We(s.fetch, `${s.url}/object/list-v2/${s.bucketId}`, r, { headers: s.headers }, e);
25425    });
25426  }
25427  encodeMetadata(t) {
25428    return JSON.stringify(t);
25429  }
25430  toBase64(t) {
25431    return typeof Buffer < "u" ? Buffer.from(t).toString("base64") : btoa(t);
25432  }
25433  _getFinalPath(t) {
25434    return `${this.bucketId}/${t.replace(/^\/+/, "")}`;
25435  }
25436  _removeEmptyFolders(t) {
25437    return t.replace(/^\/|\/$/g, "").replace(/\/+/g, "/");
25438  }
25439  /** Modifies the `query`, appending values the from `transform` */
25440  applyTransformOptsToQuery(t, e) {
25441    return e.width && t.set("width", e.width.toString()), e.height && t.set("height", e.height.toString()), e.resize && t.set("resize", e.resize), e.format && t.set("format", e.format), e.quality && t.set("quality", e.quality.toString()), t;
25442  }
25443};
25444const nh = "2.117.2", y2 = { "X-Client-Info": `storage-js/${nh}` };
25445var oh = class extends Ct {
25446  constructor(t, e = {}, s, r) {
25447    const n = new URL(t);
25448    r?.useNewHostname && /supabase\.(co|in|red)$/.test(n.hostname) && !n.hostname.includes("storage.supabase.") && (n.hostname = n.hostname.replace("supabase.", "storage.supabase."));
25449    const o = n.href.replace(/\/$/, ""), L = F(F({}, y2), e);
25450    super(o, L, s, "storage");
25451  }
25452  /**
25453  * Retrieves the details of all Storage buckets within an existing project.
25454  *
25455  * @category Storage
25456  * @subcategory File Buckets
25457  * @param options Query parameters for listing buckets
25458  * @param options.limit Maximum number of buckets to return
25459  * @param options.offset Number of buckets to skip
25460  * @param options.sortColumn Column to sort by ('id', 'name', 'created_at', 'updated_at')
25461  * @param options.sortOrder Sort order ('asc' or 'desc')
25462  * @param options.search Search term to filter bucket names
25463  * @returns Promise with response containing array of buckets or error
25464  *
25465  * @example List buckets
25466  * ```js
25467  * const { data, error } = await supabase
25468  *   .storage
25469  *   .listBuckets()
25470  * ```
25471  *
25472  * @example List buckets with options
25473  * ```js
25474  * const { data, error } = await supabase
25475  *   .storage
25476  *   .listBuckets({
25477  *     limit: 10,
25478  *     offset: 0,
25479  *     sortColumn: 'created_at',
25480  *     sortOrder: 'desc',
25481  *     search: 'prod'
25482  *   })
25483  * ```
25484  *
25485  * @remarks
25486  * - RLS policy permissions required:
25487  *   - `buckets` table permissions: `select`
25488  *   - `objects` table permissions: none
25489  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25490  */
25491  async listBuckets(t) {
25492    var e = this;
25493    return e.handleOperation(async () => {
25494      const s = e.listBucketOptionsToQueryString(t);
25495      return await mt(e.fetch, `${e.url}/bucket${s}`, { headers: e.headers });
25496    });
25497  }
25498  /**
25499  * Retrieves the details of an existing Storage bucket.
25500  *
25501  * @category Storage
25502  * @subcategory File Buckets
25503  * @param id The unique identifier of the bucket you would like to retrieve.
25504  * @returns Promise with response containing bucket details or error
25505  *
25506  * @example Get bucket
25507  * ```js
25508  * const { data, error } = await supabase
25509  *   .storage
25510  *   .getBucket('avatars')
25511  * ```
25512  *
25513  * Response:
25514  * ```json
25515  * {
25516  *   "data": {
25517  *     "id": "avatars",
25518  *     "name": "avatars",
25519  *     "owner": "",
25520  *     "public": false,
25521  *     "file_size_limit": 1024,
25522  *     "allowed_mime_types": [
25523  *       "image/png"
25524  *     ],
25525  *     "created_at": "2024-05-22T22:26:05.100Z",
25526  *     "updated_at": "2024-05-22T22:26:05.100Z"
25527  *   },
25528  *   "error": null
25529  * }
25530  * ```
25531  *
25532  * @remarks
25533  * - RLS policy permissions required:
25534  *   - `buckets` table permissions: `select`
25535  *   - `objects` table permissions: none
25536  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25537  */
25538  async getBucket(t) {
25539    var e = this;
25540    return e.handleOperation(async () => await mt(e.fetch, `${e.url}/bucket/${t}`, { headers: e.headers }));
25541  }
25542  /**
25543  * Creates a new Storage bucket
25544  *
25545  * @category Storage
25546  * @subcategory File Buckets
25547  * @param id A unique identifier for the bucket you are creating.
25548  * @param options.public The visibility of the bucket. Public bu
25548ckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.
25549  * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.
25550  * The global file size limit takes precedence over this value.
25551  * The default value is null, which doesn't set a per bucket file size limit.
25552  * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.
25553  * The default value is null, which allows files with all mime types to be uploaded.
25554  * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.
25555  * @param options.type (private-beta) specifies the bucket type. see `BucketType` for more details.
25556  *   - default bucket type is `STANDARD`
25557  * @param options.versioningStatus the bucket's initial object versioning status.
25558  * The default value is `DISABLED`
25559  * @returns Promise with response containing newly created bucket name or error
25560  *
25561  * @example Create bucket
25562  * ```js
25563  * const { data, error } = await supabase
25564  *   .storage
25565  *   .createBucket('avatars', {
25566  *     public: false,
25567  *     allowedMimeTypes: ['image/png'],
25568  *     fileSizeLimit: 1024
25569  *   })
25570  * ```
25571  *
25572  * Response:
25573  * ```json
25574  * {
25575  *   "data": {
25576  *     "name": "avatars"
25577  *   },
25578  *   "error": null
25579  * }
25580  * ```
25581  *
25582  * @remarks
25583  * - RLS policy permissions required:
25584  *   - `buckets` table permissions: `insert`
25585  *   - `objects` table permissions: none
25586  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25587  */
25588  async createBucket(t, e = { public: !1 }) {
25589    var s = this;
25590    return s.handleOperation(async () => await We(s.fetch, `${s.url}/bucket`, {
25591      id: t,
25592      name: t,
25593      type: e.type,
25594      public: e.public,
25595      file_size_limit: e.fileSizeLimit,
25596      allowed_mime_types: e.allowedMimeTypes,
25597      versioning_status: e.versioningStatus
25598    }, { headers: s.headers }));
25599  }
25600  /**
25601  * Updates a Storage bucket
25602  *
25603  * @category Storage
25604  * @subcategory File Buckets
25605  * @param id A unique identifier for the bucket you are updating.
25606  * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.
25607  * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.
25608  * The global file size limit takes precedence over this value.
25609  * The default value is null, which doesn't set a per bucket file size limit.
25610  * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.
25611  * The default value is null, which allows files with all mime types to be uploaded.
25612  * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.
25613  * @param options.versioningStatus the bucket's new object versioning status. `DISABLED` is not
25614  * valid here, there's no transition back to it once versioning has been touched.
25615  * @returns Promise with response containing success message or error
25616  *
25617  * @example Update bucket
25618  * ```js
25619  * const { data, error } = await supabase
25620  *   .storage
25621  *   .updateBucket('avatars', {
25622  *     public: false,
25623  *     allowedMimeTypes: ['image/png'],
25624  *     fileSizeLimit: 1024
25625  *   })
25626  * ```
25627  *
25628  * Response:
25629  * ```json
25630  * {
25631  *   "data": {
25632  *     "message": "Successfully updated"
25633  *   },
25634  *   "error": null
25635  * }
25636  * ```
25637  *
25638  * @remarks
25639  * - RLS policy permissions required:
25640  *   - `buckets` table permissions: `select` and `update`
25641  *   - `objects` table permissions: none
25642  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25643  */
25644  async updateBucket(t, e) {
25645    var s = this;
25646    return s.handleOperation(async () => await g3(s.fetch, `${s.url}/bucket/${t}`, {
25647      id: t,
25648      name: t,
25649      public: e.public,
25650      file_size_limit: e.fileSizeLimit,
25651      allowed_mime_types: e.allowedMimeTypes,
25652      versioning_status: e.versioningStatus
25653    }, { headers: s.headers }));
25654  }
25655  /**
25656  * Removes all objects inside a single bucket.
25657  *
25658  * @category Storage
25659  * @subcategory File Buckets
25660  * @param id The unique identifier of the bucket you would like to empty.
25661  * @returns Promise with success message or error
25662  *
25663  * @example Empty bucket
25664  * ```js
25665  * const { data, error } = await supabase
25666  *   .storage
25667  *   .emptyBucket('avatars')
25668  * ```
25669  *
25670  * Response:
25671  * ```json
25672  * {
25673  *   "data": {
25674  *     "message": "Successfully emptied"
25675  *   },
25676  *   "error": null
25677  * }
25678  * ```
25679  *
25680  * @remarks
25681  * - RLS policy permissions required:
25682  *   - `buckets` table permissions: `select`
25683  *   - `objects` table permissions: `select` and `delete`
25684  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25685  */
25686  async emptyBucket(t) {
25687    var e = this;
25688    return e.handleOperation(async () => await We(e.fetch, `${e.url}/bucket/${t}/empty`, {}, { headers: e.headers }));
25689  }
25690  /**
25691  * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.
25692  * You must first `empty()` the bucket.
25693  *
25694  * @category Storage
25695  * @subcategory File Buckets
25696  * @param id The unique identifier of the bucket you would like to delete.
25697  * @returns Promise with success message or error
25698  *
25699  * @example Delete bucket
25700  * ```js
25701  * const { data, error } = await supabase
25702  *   .storage
25703  *   .deleteBucket('avatars')
25704  * ```
25705  *
25706  * Response:
25707  * ```json
25708  * {
25709  *   "data": {
25710  *     "message": "Successfully deleted"
25711  *   },
25712  *   "error": null
25713  * }
25714  * ```
25715  *
25716  * @remarks
25717  * - RLS policy permissions required:
25718  *   - `buckets` table permissions: `select` and `delete`
25719  *   - `objects` table permissions: none
25720  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25721  */
25722  async deleteBucket(t) {
25723    var e = this;
25724    return e.handleOperation(async () => await xt(e.fetch, `${e.url}/bucket/${t}`, {}, { headers: e.headers }));
25725  }
25726  /**
25727  * Returns the lifecycle policy stored on a bucket.
25728  *
25729  * Fails with `NoSuchLifecycleConfiguration` when the bucket has no policy.
25730  *
25731  * These rules expire previous versions of objects, not the current one.
25732  * Turn versioning on or there is nothing for the policy to act on.
25733  * Standard buckets only. Returns `FeatureNotEnabled` if lifecycle is off
25734  * for the project.
25735  *
25736  * @category Storage
25737  * @subcategory File Buckets
25738  * @param id The unique identifier of the bucket.
25739  * @returns Promise with the lifecycle configuration or error
25740  *
25741  * @example Get lifecycle configuration
25742  * ```js
25743  * const { data, error } = await supabase
25744  *   .storage
25745  *   .getBucketLifecycle('avatars')
25746  * ```
25747  *
25748  * Response:
25749  * ```json
25750  * {
25751  *   "data": {
25752  *     "rules": [
25753  *       {
25754  *         "id": "expire-history",
25755  *         "status": "Enabled",
25756  *         "filter": {},
25757  *         "noncurrentVersionExpiration": {
25758  *           "noncurrentDays": 30,
25759  *           "newerNoncurrentVersions": 2
25760  *         }
25761  *       }
25762  *     ]
25763  *   },
25764  *   "error": null
25765  * }
25766  * ```
25767  *
25768  * @remarks
25769  * - RLS policy permissions required:
25770  *   - `buckets` table permissions: `select`
25771  *   - `objects` table permissions: none
25772  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25773  */
25774  async getBucketLifecycle(t) {
25775    var e = this;
25776    return e.handleOperation(async () => await mt(e.fetch, e.bucketLifecycleUrl(t), { headers: e.headers }));
25777  }
25778  /**
25779  * Replaces the lifecycle policy on a bucket.
25780  *
25781  * The `rules` array you send is the whole policy. Anything previously stored
25782  * is overwritten. Send at least one rule. Call {@link deleteBucketLifecycle}
25783  * to remove the policy.
25784  *
25785  * Each rule currently supports only `noncurrentVersionExpiration`. `filter`
25786  * is required and must be `{}`. Prefix filters, tag filters, and current-object
25787  * expiration are rejected. Rule IDs must be unique. Omit `id` and the
25788  * server generates one.
25789  *
25790  * Standard buckets only. Returns `FeatureNotEnabled` if lifecycle is off
25791  * for the project.
25792  *
25793  * @category Storage
25794  * @subcategory File Buckets
25795  * @param id The unique identifier of the bucket.
25796  * @param configuration The full lifecycle configuration to store.
25797  * @returns Promise with the stored configuration or error
25798  *
25799  * @example Replace lifecycle configuration
25800  * ```js
25801  * const { data, error } = await supabase
25802  *   .storage
25803  *   .updateBucketLifecycle('avatars', {
25804  *     rules: [
25805  *       {
25806  *         id: 'expire-history',
25807  *         status: 'Enabled',
25808  *         filter: {},
25809  *         noncurrentVersionExpiration: {
25810  *           noncurrentDays: 30,
25811  *           newerNoncurrentVersions: 2,
25812  *         },
25813  *       },
25814  *     ],
25815  *   })
25816  * ```
25817  *
25818  * @remarks
25819  * - RLS policy permissions required:
25820  *   - `buckets` table permissions: `select` and `update`
25821  *   - `objects` table permissions: none
25822  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25823  */
25824  async updateBucketLifecycle(t, e) {
25825    var s = this;
25826    return s.handleOperation(async () => await g3(s.fetch, s.bucketLifecycleUrl(t), e, { headers: s.headers }));
25827  }
25828  /**
25829  * Removes the lifecycle policy from a bucket.
25830  *
25831  * Safe to call when no policy is stored. The response is still success.
25832  * Standard buckets only. Returns `FeatureNotEnabled` if lifecycle is off
25833  * for the project.
25834  *
25835  * @category Storage
25836  * @subcategory File Buckets
25837  * @param id The unique identifier of the bucket.
25838  * @returns Promise with success message or error
25839  *
25840  * @example Delete lifecycle configuration
25841  * ```js
25842  * const { data, error } = await supabase
25843  *   .storage
25844  *   .deleteBucketLifecycle('avatars')
25845  * ```
25846  *
25847  * Response:
25848  * ```json
25849  * {
25850  *   "data": {
25851  *     "message": "Successfully deleted"
25852  *   },
25853  *   "error": null
25854  * }
25855  * ```
25856  *
25857  * @remarks
25858  * - RLS policy permissions required:
25859  *   - `buckets` table permissions: `select` and `update`
25860  *   - `objects` table permissions: none
25861  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
25862  */
25863  async deleteBucketLifecycle(t) {
25864    var e = this;
25865    return e.handleOperation(async () => await xt(e.fetch, e.bucketLifecycleUrl(t), {}, { headers: e.headers }));
25866  }
25867  /**
25868  * Purges the CDN cache for an entire bucket.
25869  *
25870  * Maps to `DELETE /cdn/{bucket}` on the Storage API. The server
25871  * issues a CDN invalidation for the bucket and returns `{ message: 'success' }`.
25872  *
25873  * **Requires the `service_role` key.** The underlying endpoint enforces
25874  * `service_role` JWT — calls made with the anon key or a user JWT will be
25875  * rejected by the server.
25876  *
25877  * **Hosted CDN feature.** On self-hosted Supabase, the Storage service must
25878  * have `CDN_PURGE_ENDPOINT_URL` configured and the `purgeCache` tenant
25879  * feature enabled, otherwise the server returns an error.
25880  *
25881  * @category Storage
25882  * @subcategory File Buckets
25883  * @param id The unique identifier of the bucket you would like to purge from cache.
25884  * @param options Optional purge cache options.
25885  * @param options.transformations If true, purges only transformations (resized/formatted variants), leaving original cached files intact.
25886  * @param parameters Optional fetch parameters such as an `AbortController` signal.
25887  * @returns Promise with `{ data: { message }, error: null }` on success or `{ data: null, error }` on failure.
25888  *
25889  * @example Purge cache for an entire bucket
25890  * ```js
25891  * const { data, error } = await supabase
25892  *   .storage
25893  *   .purgeBucketCache('avatars')
25894  * ```
25895  *
25896  * @example Purge only transformations for an entire bucket
25897  * ```js
25898  * const { data, error } = await supabase
25899  *   .storage
25900  *   .purgeBucketCache('avatars', { transformations: true })
25901  * ```
25902  */
25903  async purgeBucketCache(t, e, s) {
25904    var r = this;
25905    return r.handleOperation(async () => {
25906      const n = new URLSearchParams();
25907      e?.transformations && n.set("transformations", "true");
25908      const o = n.toString();
25909      return await xt(r.fetch, `${r.url}/cdn/${s5(t)}${o ? `?${o}` : ""}`, {}, { headers: r.headers }, s);
25910    });
25911  }
25912  bucketLifecycleUrl(t) {
25913    return `${this.url}/bucket/${s5(t)}/lifecycle`;
25914  }
25915  listBucketOptionsToQueryString(t) {
25916    const e = {};
25917    return t && ("limit" in t && (e.limit = String(t.limit)), "offset" in t && (e.offset = String(t.offset)), t.search && (e.search = t.search), t.sortColumn && (e.sortColumn = t.sortColumn), t.sortOrder && (e.sortOrder = t.sortOrder)), Object.keys(e).length > 0 ? "?" + new URLSearchParams(e).toString() : "";
25918  }
25919}, Lh = class extends Ct {
25920  /**
25921  * @alpha
25922  *
25923  * Creates a new StorageAnalyticsClient instance
25924  *
25925  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
25926  *
25927  * @category Storage
25928  * @subcategory Analytics Buckets
25929  * @param url - The base URL for the storage API
25930  * @param headers - HTTP headers to include in requests
25931  * @param fetch - Optional custom fetch implementation
25932  *
25933  * @example Using supabase-js (recommended)
25934  * ```typescript
25935  * import { createClient } from '@supabase/supabase-js'
25936  *
25937  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
25938  * const { data, error } = await supabase.storage.analytics.listBuckets()
25939  * ```
25940  *
25941  * @example Standalone import for bundle-sensitive environments
25942  * ```typescript
25943  * import { StorageAnalyticsClient } from '@supabase/storage-js'
25944  *
25945  * const client = new StorageAnalyticsClient(url, headers)
25946  * ```
25947  */
25948  constructor(t, e = {}, s) {
25949    const r = t.replace(/\/$/, ""), n = F(F({}, y2), e);
25950    super(r, n, s, "storage");
25951  }
25952  /**
25953  * @alpha
25954  *
25955  * Creates a new analytics bucket using Iceberg tables
25956  * Analytics buckets are optimized for analytical queries and data processing
25957  *
25958  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
25959  *
25960  * @category Storage
25961  * @subcategory Analytics Buckets
25962  * @param name A unique name for the bucket you are creating
25963  * @returns Promise with response containing newly created analytics bucket or error
25964  *
25965  * @example Create analytics bucket
25966  * ```js
25967  * const { data, error } = await supabase
25968  *   .storage
25969  *   .analytics
25970  *   .createBucket('analytics-data')
25971  * ```
25972  *
25973  * Response:
25974  * ```json
25975  * {
25976  *   "data": {
25977  *     "name": "analytics-data",
25978  *     "type": "ANALYTICS",
25979  *     "format": "iceberg",
25980  *     "created_at": "2024-05-22T22:26:05.100Z",
25981  *     "updated_at": "2024-05-22T22:26:05.100Z"
25982  *   },
25983  *   "error": null
25984  * }
25985  * ```
25986  *
25987  * @remarks
25988  * - Creates a new analytics bucket using Iceberg tables
25989  * - Analytics buckets are optimized for analytical queries and data processing
25990  */
25991  async createBucket(t) {
25992    var e = this;
25993    return e.handleOperation(async () => await We(e.fetch, `${e.url}/bucket`, { name: t }, { headers: e.headers }));
25994  }
25995  /**
25996  * @alpha
25997  *
25998  * Retrieves the details of all Analytics Storage buckets within an existing project
25999  * Only returns buckets of type 'ANALYTICS'
26000  *
26001  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26002  *
26003  * @category Storage
26004  * @subcategory Analytics Buckets
26005  * @param options Query parameters for listing buckets
26006  * @param options.limit Maximum number of buckets to return
26007  * @param options.offset Number of buckets to skip
26008  * @param options.sortColumn Column to sort by ('name', 'created_at', 'updated_at')
26009  * @param options.sortOrder Sort order ('asc' or 'desc')
26010  * @param options.search Search term to filter bucket names
26011  * @returns Promise with response containing array of analytics buckets or error
26012  *
26013  * @example List analytics buckets
26014  * ```js
26015  * const { data, error } = await supabase
26016  *   .storage
26017  *   .analytics
26018  *   .listBuckets({
26019  *     limit: 10,
26020  *     offset: 0,
26021  *     sortColumn: 'created_at',
26022  *     sortOrder: 'desc'
26023  *   })
26024  * ```
26025  *
26026  * Response:
26027  * ```json
26028  * {
26029  *   "data": [
26030  *     {
26031  *       "name": "analytics-data",
26032  *       "type": "ANALYTICS",
26033  *       "format": "iceberg",
26034  *       "created_at": "2024-05-22T22:26:05.100Z",
26035  *       "updated_at": "2024-05-22T22:26:05.100Z"
26036  *     }
26037  *   ],
26038  *   "error": null
26039  * }
26040  * ```
26041  *
26042  * @remarks
26043  * - Retrieves the details of all Analytics Storage buckets within an existing project
26044  * - Only returns buckets of type 'ANALYTICS'
26045  */
26046  async listBuckets(t) {
26047    var e = this;
26048    return e.handleOperation(async () => {
26049      const s = new URLSearchParams();
26050      t?.limit !== void 0 && s.set("limit", t.limit.toString()), t?.offset !== void 0 && s.set("offset", t.offset.toString()), t?.sortColumn && s.set("sortColumn", t.sortColumn), t?.sortOrder && s.set("sortOrder", t.sortOrder), t?.search && s.set("search", t.search);
26051      const r = s.toString(), n = r ? `${e.url}/bucket?${r}` : `${e.url}/bucket`;
26052      return await mt(e.fetch, n, { headers: e.headers });
26053    });
26054  }
26055  /**
26056  * @alpha
26057  *
26058  * Deletes an existing analytics bucket
26059  * A bucket can't be deleted with existing objects inside it
26060  * You must first empty the bucket before deletion
26061  *
26062  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26063  *
26064  * @category Storage
26065  * @subcategory Analytics Buckets
26066  * @param bucketName The unique identifier of the bucket you would like to delete
26067  * @returns Promise with response containing success message or error
26068  *
26069  * @example Delete analytics bucket
26070  * ```js
26071  * const { data, error } = await supabase
26072  *   .storage
26073  *   .analytics
26074  *   .deleteBucket('analytics-data')
26075  * ```
26076  *
26077  * Response:
26078  * ```json
26079  * {
26080  *   "data": {
26081  *     "message": "Successfully deleted"
26082  *   },
26083  *   "error": null
26084  * }
26085  * ```
26086  *
26087  * @remarks
26088  * - Deletes an analytics bucket
26089  */
26090  async deleteBucket(t) {
26091    var e = this;
26092    return e.handleOperation(async () => await xt(e.fetch, `${e.url}/bucket/${t}`, {}, { headers: e.headers }));
26093  }
26094  /**
26095  * @alpha
26096  *
26097  * Get an Iceberg REST Catalog client configured for a specific analytics bucket
26098  * Use this to perform advanced table and namespace operations within the bucket
26099  * The returned client provides full access to the Apache Iceberg REST Catalog API
26100  * with the Supabase `{ data, error }` pattern for consistent error handling on all operations.
26101  *
26102  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26103  *
26104  * @category Storage
26105  * @subcategory Analytics Buckets
26106  * @param bucketName - The name of the analytics bucket (warehouse) to connect to
26107  * @returns The wrapped Iceberg catalog client
26108  * @throws {StorageError} If the bucket name is invalid
26109  *
26110  * @example Get catalog and create table
26111  * ```js
26112  * // First, create an analytics bucket
26113  * const { data: bucket, error: bucketError } = await supabase
26114  *   .storage
26115  *   .analytics
26116  *   .createBucket('analytics-data')
26117  *
26118  * // Get the Iceberg catalog for that bucket
26119  * const catalog = supabase.storage.analytics.from('analytics-data')
26120  *
26121  * // Create a namespace
26122  * const { error: nsError } = await catalog.createNamespace({ namespace: ['default'] })
26123  *
26124  * // Create a table with schema
26125  * const { data: tableMetadata, error: tableError } = await catalog.createTable(
26126  *   { namespace: ['default'] },
26127  *   {
26128  *     name: 'events',
26129  *     schema: {
26130  *       type: 'struct',
26131  *       fields: [
26132  *         { id: 1, name: 'id', type: 'long', required: true },
26133  *         { id: 2, name: 'timestamp', type: 'timestamp', required: true },
26134  *         { id: 3, name: 'user_id', type: 'string', required: false }
26135  *       ],
26136  *       'schema-id': 0,
26137  *       'identifier-field-ids': [1]
26138  *     },
26139  *     'partition-spec': {
26140  *       'spec-id': 0,
26141  *       fields: []
26142  *     },
26143  *     'write-order': {
26144  *       'order-id': 0,
26145  *       fields: []
26146  *     },
26147  *     properties: {
26148  *       'write.format.default': 'parquet'
26149  *     }
26150  *   }
26151  * )
26152  * ```
26153  *
26154  * @example List tables in namespace
26155  * ```js
26156  * const catalog = supabase.storage.analytics.from('analytics-data')
26157  *
26158  * // List all tables in the default namespace
26159  * const { data: tables, error: listError } = await catalog.listTables({ namespace: ['default'] })
26160  * if (listError) {
26161  *   if (listError.isNotFound()) {
26162  *     console.log('Namespace not found')
26163  *   }
26164  *   return
26165  * }
26166  * console.log(tables) // [{ namespace: ['default'], name: 'events' }]
26167  * ```
26168  *
26169  * @example Working with namespaces
26170  * ```js
26171  * const catalog = supabase.storage.analytics.from('analytics-data')
26172  *
26173  * // List all namespaces
26174  * const { data: namespaces } = await catalog.listNamespaces()
26175  *
26176  * // Create namespace with properties
26177  * await catalog.createNamespace(
26178  *   { namespace: ['production'] },
26179  *   { properties: { owner: 'data-team', env: 'prod' } }
26180  * )
26181  * ```
26182  *
26183  * @example Cleanup operations
26184  * ```js
26185  * const catalog = supabase.storage.analytics.from('analytics-data')
26186  *
26187  * // Drop table with purge option (removes all data)
26188  * const { error: dropError } = await catalog.dropTable(
26189  *   { namespace: ['default'], name: 'events' },
26190  *   { purge: true }
26191  * )
26192  *
26193  * if (dropError?.isNotFound()) {
26194  *   console.log('Table does not exist')
26195  * }
26196  *
26197  * // Drop namespace (must be empty)
26198  * await catalog.dropNamespace({ namespace: ['default'] })
26199  * ```
26200  *
26201  * @remarks
26202  * This method provides a bridge between Supabase's bucket management and the standard
26203  * Apache Iceberg REST Catalog API. The bucket name maps to the Iceberg warehouse parameter.
26204  * All authentication and configuration is handled automatically using your Supabase credentials.
26205  *
26206  * **Error Handling**: Invalid bucket names throw immediately. All catalog
26207  * operations return `{ data, error }` where errors are `IcebergError` instances from iceberg-js.
26208  * Use helper methods like `error.isNotFound()` or check `error.status` for specific error handling.
26209  * Use `.throwOnError()` on the analytics client if you prefer exceptions for catalog operations.
26210  *
26211  * **Cleanup Operations**: When using `dropTable`, the `purge: true` option permanently
26212  * deletes all table data. Without it, the table is marked as deleted but data remains.
26213  *
26214  * **Library Dependency**: The returned catalog wraps `IcebergRestCatalog` from iceberg-js.
26215  * For complete API documentation and advanced usage, refer to the
26216  * [iceberg-js documentation](https://supabase.github.io/iceberg-js/).
26217  */
26218  from(t) {
26219    var e = this;
26220    if (!Xu(t)) throw new O3("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");
26221    const s = new $u({
26222      baseUrl: this.url,
26223      catalogName: t,
26224      auth: {
26225        type: "custom",
26226        getHeaders: async () => e.headers
26227      },
26228      fetch: this.fetch
26229    }), r = this.shouldThrowOnError;
26230    return new Proxy(s, { get(n, o) {
26231      const L = n[o];
26232      return typeof L != "function" ? L : async (...d) => {
26233        try {
26234          return {
26235            data: await L.apply(n, d),
26236            error: null
26237          };
26238        } catch (l) {
26239          if (r) throw l;
26240          return {
26241            data: null,
26242            error: l
26243          };
26244        }
26245      };
26246    } });
26247  }
26248}, ch = class extends Ct {
26249  /** Creates a new VectorIndexApi instance */
26250  constructor(t, e = {}, s) {
26251    const r = t.replace(/\/$/, ""), n = F(F({}, y2), {}, { "Content-Type": "application/json" }, e);
26252    super(r, n, s, "vectors");
26253  }
26254  /** Creates a new vector index within a bucket */
26255  async createIndex(t) {
26256    var e = this;
26257    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/CreateIndex`, t, { headers: e.headers }) || {});
26258  }
26259  /** Retrieves metadata for a specific vector index */
26260  async getIndex(t, e) {
26261    var s = this;
26262    return s.handleOperation(async () => await Ce.post(s.fetch, `${s.url}/GetIndex`, {
26263      vectorBucketName: t,
26264      indexName: e
26265    }, { headers: s.headers }));
26266  }
26267  /** Lists vector indexes within a bucket with optional filtering and pagination */
26268  async listIndexes(t) {
26269    var e = this;
26270    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/ListIndexes`, t, { headers: e.headers }));
26271  }
26272  /** Deletes a vector index and all its data */
26273  async deleteIndex(t, e) {
26274    var s = this;
26275    return s.handleOperation(async () => await Ce.post(s.fetch, `${s.url}/DeleteIndex`, {
26276      vectorBucketName: t,
26277      indexName: e
26278    }, { headers: s.headers }) || {});
26279  }
26280}, lh = class extends Ct {
26281  /** Creates a new VectorDataApi instance */
26282  constructor(t, e = {}, s) {
26283    const r = t.replace(/\/$/, ""), n = F(F({}, y2), {}, { "Content-Type": "application/json" }, e);
26284    super(r, n, s, "vectors");
26285  }
26286  /** Inserts or updates vectors in batch (1-500 per request) */
26287  async putVectors(t) {
26288    var e = this;
26289    if (t.vectors.length < 1 || t.vectors.length > 500) throw new Error("Vector batch size must be between 1 and 500 items");
26290    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/PutVectors`, t, { headers: e.headers }) || {});
26291  }
26292  /** Retrieves vectors by their keys in batch */
26293  async getVectors(t) {
26294    var e = this;
26295    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/GetVectors`, t, { headers: e.headers }));
26296  }
26297  /** Lists vectors in an index with pagination */
26298  async listVectors(t) {
26299    var e = this;
26300    if (t.segmentCount !== void 0) {
26301      if (t.segmentCount < 1 || t.segmentCount > 16) throw new Error("segmentCount must be between 1 and 16");
26302      if (t.segmentIndex !== void 0 && (t.segmentIndex < 0 || t.segmentIndex >= t.segmentCount))
26303        throw new Error(`segmentIndex must be between 0 and ${t.segmentCount - 1}`);
26304    }
26305    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/ListVectors`, t, { headers: e.headers }));
26306  }
26307  /** Queries for similar vectors using approximate nearest neighbor search */
26308  async queryVectors(t) {
26309    var e = this;
26310    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/QueryVectors`, t, { headers: e.headers }));
26311  }
26312  /** Deletes vectors by their keys in batch (1-500 per request) */
26313  async deleteVectors(t) {
26314    var e = this;
26315    if (t.keys.length < 1 || t.keys.length >
26315 500) throw new Error("Keys batch size must be between 1 and 500 items");
26316    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/DeleteVectors`, t, { headers: e.headers }) || {});
26317  }
26318}, dh = class extends Ct {
26319  /** Creates a new VectorBucketApi instance */
26320  constructor(t, e = {}, s) {
26321    const r = t.replace(/\/$/, ""), n = F(F({}, y2), {}, { "Content-Type": "application/json" }, e);
26322    super(r, n, s, "vectors");
26323  }
26324  /** Creates a new vector bucket */
26325  async createBucket(t) {
26326    var e = this;
26327    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/CreateVectorBucket`, { vectorBucketName: t }, { headers: e.headers }) || {});
26328  }
26329  /** Retrieves metadata for a specific vector bucket */
26330  async getBucket(t) {
26331    var e = this;
26332    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/GetVectorBucket`, { vectorBucketName: t }, { headers: e.headers }));
26333  }
26334  /** Lists vector buckets with optional filtering and pagination */
26335  async listBuckets(t = {}) {
26336    var e = this;
26337    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/ListVectorBuckets`, t, { headers: e.headers }));
26338  }
26339  /** Deletes a vector bucket (must be empty first) */
26340  async deleteBucket(t) {
26341    var e = this;
26342    return e.handleOperation(async () => await Ce.post(e.fetch, `${e.url}/DeleteVectorBucket`, { vectorBucketName: t }, { headers: e.headers }) || {});
26343  }
26344}, gh = class extends dh {
26345  /**
26346  * @alpha
26347  *
26348  * Creates a StorageVectorsClient that can manage buckets, indexes, and vectors.
26349  *
26350  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26351  *
26352  * @category Storage
26353  * @subcategory Vector Buckets
26354  * @param url - Base URL of the Storage Vectors REST API.
26355  * @param options.headers - Optional headers (for example `Authorization`) applied to every request.
26356  * @param options.fetch - Optional custom `fetch` implementation for non-browser runtimes.
26357  *
26358  * @example Using supabase-js (recommended)
26359  * ```typescript
26360  * import { createClient } from '@supabase/supabase-js'
26361  *
26362  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
26363  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26364  * ```
26365  *
26366  * @example Standalone import for bundle-sensitive environments
26367  * ```typescript
26368  * import { StorageVectorsClient } from '@supabase/storage-js'
26369  *
26370  * const client = new StorageVectorsClient(url, options)
26371  * ```
26372  */
26373  constructor(t, e = {}) {
26374    super(t, e.headers || {}, e.fetch);
26375  }
26376  /**
26377  *
26378  * @alpha
26379  *
26380  * Access operations for a specific vector bucket
26381  * Returns a scoped client for index and vector operations within the bucket
26382  *
26383  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26384  *
26385  * @category Storage
26386  * @subcategory Vector Buckets
26387  * @param vectorBucketName - Name of the vector bucket
26388  * @returns Bucket-scoped client with index and vector operations
26389  *
26390  * @example Accessing a vector bucket
26391  * ```typescript
26392  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26393  * ```
26394  */
26395  from(t) {
26396    return new fh(this.url, this.headers, t, this.fetch);
26397  }
26398  /**
26399  *
26400  * @alpha
26401  *
26402  * Creates a new vector bucket
26403  * Vector buckets are containers for vector indexes and their data
26404  *
26405  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26406  *
26407  * @category Storage
26408  * @subcategory Vector Buckets
26409  * @param vectorBucketName - Unique name for the vector bucket
26410  * @returns Promise with empty response on success or error
26411  *
26412  * @example Creating a vector bucket
26413  * ```typescript
26414  * const { data, error } = await supabase
26415  *   .storage
26416  *   .vectors
26417  *   .createBucket('embeddings-prod')
26418  * ```
26419  */
26420  async createBucket(t) {
26421    var e = () => super.createBucket, s = this;
26422    return e().call(s, t);
26423  }
26424  /**
26425  *
26426  * @alpha
26427  *
26428  * Retrieves metadata for a specific vector bucket
26429  *
26430  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26431  *
26432  * @category Storage
26433  * @subcategory Vector Buckets
26434  * @param vectorBucketName - Name of the vector bucket
26435  * @returns Promise with bucket metadata or error
26436  *
26437  * @example Get bucket metadata
26438  * ```typescript
26439  * const { data, error } = await supabase
26440  *   .storage
26441  *   .vectors
26442  *   .getBucket('embeddings-prod')
26443  *
26444  * console.log('Bucket created:', data?.vectorBucket.creationTime)
26445  * ```
26446  */
26447  async getBucket(t) {
26448    var e = () => super.getBucket, s = this;
26449    return e().call(s, t);
26450  }
26451  /**
26452  *
26453  * @alpha
26454  *
26455  * Lists all vector buckets with optional filtering and pagination
26456  *
26457  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26458  *
26459  * @category Storage
26460  * @subcategory Vector Buckets
26461  * @param options - Optional filters (prefix, maxResults, nextToken)
26462  * @returns Promise with list of buckets or error
26463  *
26464  * @example List vector buckets
26465  * ```typescript
26466  * const { data, error } = await supabase
26467  *   .storage
26468  *   .vectors
26469  *   .listBuckets({ prefix: 'embeddings-' })
26470  *
26471  * data?.vectorBuckets.forEach(bucket => {
26472  *   console.log(bucket.vectorBucketName)
26473  * })
26474  * ```
26475  */
26476  async listBuckets(t = {}) {
26477    var e = () => super.listBuckets, s = this;
26478    return e().call(s, t);
26479  }
26480  /**
26481  *
26482  * @alpha
26483  *
26484  * Deletes a vector bucket (bucket must be empty)
26485  * All indexes must be deleted before deleting the bucket
26486  *
26487  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26488  *
26489  * @category Storage
26490  * @subcategory Vector Buckets
26491  * @param vectorBucketName - Name of the vector bucket to delete
26492  * @returns Promise with empty response on success or error
26493  *
26494  * @example Delete a vector bucket
26495  * ```typescript
26496  * const { data, error } = await supabase
26497  *   .storage
26498  *   .vectors
26499  *   .deleteBucket('embeddings-old')
26500  * ```
26501  */
26502  async deleteBucket(t) {
26503    var e = () => super.deleteBucket, s = this;
26504    return e().call(s, t);
26505  }
26506}, fh = class extends ch {
26507  /**
26508  * @alpha
26509  *
26510  * Creates a helper that automatically scopes all index operations to the provided bucket.
26511  *
26512  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26513  *
26514  * @category Storage
26515  * @subcategory Vector Buckets
26516  * @example Creating a vector bucket scope
26517  * ```typescript
26518  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26519  * ```
26520  */
26521  constructor(t, e, s, r) {
26522    super(t, e, r), this.vectorBucketName = s;
26523  }
26524  /**
26525  *
26526  * @alpha
26527  *
26528  * Creates a new vector index in this bucket
26529  * Convenience method that automatically includes the bucket name
26530  *
26531  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26532  *
26533  * @category Storage
26534  * @subcategory Vector Buckets
26535  * @param options - Index configuration (vectorBucketName is automatically set)
26536  * @returns Promise with empty response on success or error
26537  *
26538  * @example Creating a vector index
26539  * ```typescript
26540  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26541  * await bucket.createIndex({
26542  *   indexName: 'documents-openai',
26543  *   dataType: 'float32',
26544  *   dimension: 1536,
26545  *   distanceMetric: 'cosine',
26546  *   metadataConfiguration: {
26547  *     nonFilterableMetadataKeys: ['raw_text']
26548  *   }
26549  * })
26550  * ```
26551  */
26552  async createIndex(t) {
26553    var e = () => super.createIndex, s = this;
26554    return e().call(s, F(F({}, t), {}, { vectorBucketName: s.vectorBucketName }));
26555  }
26556  /**
26557  *
26558  * @alpha
26559  *
26560  * Lists indexes in this bucket
26561  * Convenience method that automatically includes the bucket name
26562  *
26563  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26564  *
26565  * @category Storage
26566  * @subcategory Vector Buckets
26567  * @param options - Listing options (vectorBucketName is automatically set)
26568  * @returns Promise with response containing indexes array and pagination token or error
26569  *
26570  * @example List indexes
26571  * ```typescript
26572  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26573  * const { data } = await bucket.listIndexes({ prefix: 'documents-' })
26574  * ```
26575  */
26576  async listIndexes(t = {}) {
26577    var e = () => super.listIndexes, s = this;
26578    return e().call(s, F(F({}, t), {}, { vectorBucketName: s.vectorBucketName }));
26579  }
26580  /**
26581  *
26582  * @alpha
26583  *
26584  * Retrieves metadata for a specific index in this bucket
26585  * Convenience method that automatically includes the bucket name
26586  *
26587  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26588  *
26589  * @category Storage
26590  * @subcategory Vector Buckets
26591  * @param indexName - Name of the index to retrieve
26592  * @returns Promise with index metadata or error
26593  *
26594  * @example Get index metadata
26595  * ```typescript
26596  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26597  * const { data } = await bucket.getIndex('documents-openai')
26598  * console.log('Dimension:', data?.index.dimension)
26599  * ```
26600  */
26601  async getIndex(t) {
26602    var e = () => super.getIndex, s = this;
26603    return e().call(s, s.vectorBucketName, t);
26604  }
26605  /**
26606  *
26607  * @alpha
26608  *
26609  * Deletes an index from this bucket
26610  * Convenience method that automatically includes the bucket name
26611  *
26612  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26613  *
26614  * @category Storage
26615  * @subcategory Vector Buckets
26616  * @param indexName - Name of the index to delete
26617  * @returns Promise with empty response on success or error
26618  *
26619  * @example Delete an index
26620  * ```typescript
26621  * const bucket = supabase.storage.vectors.from('embeddings-prod')
26622  * await bucket.deleteIndex('old-index')
26623  * ```
26624  */
26625  async deleteIndex(t) {
26626    var e = () => super.deleteIndex, s = this;
26627    return e().call(s, s.vectorBucketName, t);
26628  }
26629  /**
26630  *
26631  * @alpha
26632  *
26633  * Access operations for a specific index within this bucket
26634  * Returns a scoped client for vector data operations
26635  *
26636  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26637  *
26638  * @category Storage
26639  * @subcategory Vector Buckets
26640  * @param indexName - Name of the index
26641  * @returns Index-scoped client with vector data operations
26642  *
26643  * @example Accessing an index
26644  * ```typescript
26645  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26646  *
26647  * // Insert vectors
26648  * await index.putVectors({
26649  *   vectors: [
26650  *     { key: 'doc-1', data: { float32: [...] }, metadata: { title: 'Intro' } }
26651  *   ]
26652  * })
26653  *
26654  * // Query similar vectors
26655  * const { data } = await index.queryVectors({
26656  *   queryVector: { float32: [...] },
26657  *   topK: 5
26658  * })
26659  * ```
26660  */
26661  index(t) {
26662    return new ph(this.url, this.headers, this.vectorBucketName, t, this.fetch);
26663  }
26664}, ph = class extends lh {
26665  /**
26666  *
26667  * @alpha
26668  *
26669  * Creates a helper that automatically scopes all vector operations to the provided bucket/index names.
26670  *
26671  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26672  *
26673  * @category Storage
26674  * @subcategory Vector Buckets
26675  * @example Creating a vector index scope
26676  * ```typescript
26677  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26678  * ```
26679  */
26680  constructor(t, e, s, r, n) {
26681    super(t, e, n), this.vectorBucketName = s, this.indexName = r;
26682  }
26683  /**
26684  *
26685  * @alpha
26686  *
26687  * Inserts or updates vectors in this index
26688  * Convenience method that automatically includes bucket and index names
26689  *
26690  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26691  *
26692  * @category Storage
26693  * @subcategory Vector Buckets
26694  * @param options - Vector insertion options (bucket and index names automatically set)
26695  * @returns Promise with empty response on success or error
26696  *
26697  * @example Insert vectors into an index
26698  * ```typescript
26699  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26700  * await index.putVectors({
26701  *   vectors: [
26702  *     {
26703  *       key: 'doc-1',
26704  *       data: { float32: [0.1, 0.2, ...] },
26705  *       metadata: { title: 'Introduction', page: 1 }
26706  *     }
26707  *   ]
26708  * })
26709  * ```
26710  */
26711  async putVectors(t) {
26712    var e = () => super.putVectors, s = this;
26713    return e().call(s, F(F({}, t), {}, {
26714      vectorBucketName: s.vectorBucketName,
26715      indexName: s.indexName
26716    }));
26717  }
26718  /**
26719  *
26720  * @alpha
26721  *
26722  * Retrieves vectors by keys from this index
26723  * Convenience method that automatically includes bucket and index names
26724  *
26725  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26726  *
26727  * @category Storage
26728  * @subcategory Vector Buckets
26729  * @param options - Vector retrieval options (bucket and index names automatically set)
26730  * @returns Promise with response containing vectors array or error
26731  *
26732  * @example Get vectors by keys
26733  * ```typescript
26734  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26735  * const { data } = await index.getVectors({
26736  *   keys: ['doc-1', 'doc-2'],
26737  *   returnMetadata: true
26738  * })
26739  * ```
26740  */
26741  async getVectors(t) {
26742    var e = () => super.getVectors, s = this;
26743    return e().call(s, F(F({}, t), {}, {
26744      vectorBucketName: s.vectorBucketName,
26745      indexName: s.indexName
26746    }));
26747  }
26748  /**
26749  *
26750  * @alpha
26751  *
26752  * Lists vectors in this index with pagination
26753  * Convenience method that automatically includes bucket and index names
26754  *
26755  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26756  *
26757  * @category Storage
26758  * @subcategory Vector Buckets
26759  * @param options - Listing options (bucket and index names automatically set)
26760  * @returns Promise with response containing vectors array and pagination token or error
26761  *
26762  * @example List vectors with pagination
26763  * ```typescript
26764  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26765  * const { data } = await index.listVectors({
26766  *   maxResults: 500,
26767  *   returnMetadata: true
26768  * })
26769  * ```
26770  */
26771  async listVectors(t = {}) {
26772    var e = () => super.listVectors, s = this;
26773    return e().call(s, F(F({}, t), {}, {
26774      vectorBucketName: s.vectorBucketName,
26775      indexName: s.indexName
26776    }));
26777  }
26778  /**
26779  *
26780  * @alpha
26781  *
26782  * Queries for similar vectors in this index
26783  * Convenience method that automatically includes bucket and index names
26784  *
26785  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26786  *
26787  * @category Storage
26788  * @subcategory Vector Buckets
26789  * @param options - Query options (bucket and index names automatically set)
26790  * @returns Promise with response containing vectors ordered by distance, an optional pagination token, or an error
26791  *
26792  * @example Query similar vectors
26793  * ```typescript
26794  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26795  * const { data } = await index.queryVectors({
26796  *   queryVector: { float32: [0.1, 0.2, ...] },
26797  *   topK: 5,
26798  *   filter: { category: 'technical' },
26799  *   returnDistance: true,
26800  *   returnMetadata: true
26801  * })
26802  * ```
26803  */
26804  async queryVectors(t) {
26805    var e = () => super.queryVectors, s = this;
26806    return e().call(s, F(F({}, t), {}, {
26807      vectorBucketName: s.vectorBucketName,
26808      indexName: s.indexName
26809    }));
26810  }
26811  /**
26812  *
26813  * @alpha
26814  *
26815  * Deletes vectors by keys from this index
26816  * Convenience method that automatically includes bucket and index names
26817  *
26818  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26819  *
26820  * @category Storage
26821  * @subcategory Vector Buckets
26822  * @param options - Deletion options (bucket and index names automatically set)
26823  * @returns Promise with empty response on success or error
26824  *
26825  * @example Delete vectors by keys
26826  * ```typescript
26827  * const index = supabase.storage.vectors.from('embeddings-prod').index('documents-openai')
26828  * await index.deleteVectors({
26829  *   keys: ['doc-1', 'doc-2', 'doc-3']
26830  * })
26831  * ```
26832  */
26833  async deleteVectors(t) {
26834    var e = () => super.deleteVectors, s = this;
26835    return e().call(s, F(F({}, t), {}, {
26836      vectorBucketName: s.vectorBucketName,
26837      indexName: s.indexName
26838    }));
26839  }
26840}, Mh = class extends oh {
26841  /**
26842  * Creates a client for Storage buckets, files, analytics, and vectors.
26843  *
26844  * @category Storage
26845  * @subcategory File Buckets
26846  *
26847  * @example Using supabase-js (recommended)
26848  * ```ts
26849  * import { createClient } from '@supabase/supabase-js'
26850  *
26851  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
26852  * const avatars = supabase.storage.from('avatars')
26853  * ```
26854  *
26855  * @example Standalone import for bundle-sensitive environments
26856  * ```ts
26857  * import { StorageClient } from '@supabase/storage-js'
26858  *
26859  * const storage = new StorageClient('https://xyzcompany.supabase.co/storage/v1', {
26860  *   apikey: 'your-publishable-key',
26861  * })
26862  * const avatars = storage.from('avatars')
26863  * ```
26864  */
26865  constructor(t, e = {}, s, r) {
26866    super(t, e, s, r);
26867  }
26868  /**
26869  * Perform file operation in a bucket.
26870  *
26871  * @category Storage
26872  * @subcategory File Buckets
26873  *
26874  * @param id The bucket id to operate on.
26875  *
26876  * @example Accessing a bucket
26877  * ```typescript
26878  * const avatars = supabase.storage.from('avatars')
26879  * ```
26880  */
26881  from(t) {
26882    return new rh(this.url, this.headers, t, this.fetch);
26883  }
26884  /**
26885  *
26886  * @alpha
26887  *
26888  * Access vector storage operations.
26889  *
26890  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26891  *
26892  * @category Storage
26893  * @subcategory Vector Buckets
26894  *
26895  * @returns A StorageVectorsClient instance configured with the current storage settings.
26896  */
26897  get vectors() {
26898    return new gh(this.url + "/vector", {
26899      headers: this.headers,
26900      fetch: this.fetch
26901    });
26902  }
26903  /**
26904  *
26905  * @alpha
26906  *
26907  * Access analytics storage operations using Iceberg tables.
26908  *
26909  * **Public alpha:** This API is part of a public alpha release and may not be available to your account type.
26910  *
26911  * @category Storage
26912  * @subcategory Analytics Buckets
26913  *
26914  * @returns A StorageAnalyticsClient instance configured with the current storage settings.
26915  */
26916  get analytics() {
26917    return new Lh(this.url + "/iceberg", this.headers, this.fetch);
26918  }
26919};
26920const wi = "2.117.2", f1 = 30 * 1e3, Zt = 3, x4 = Zt * f1, uh = 2 * f1, hh = "http://localhost:9999", mh = "supabase.auth.token", xh = { "X-Client-Info": `gotrue-js/${wi}` }, i5 = "X-Supabase-Api-Version", Ti = {
26921  "2024-01-01": {
26922    timestamp: Date.parse("2024-01-01T00:00:00.0Z"),
26923    name: "2024-01-01"
26924  }
26925}, _h = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i, H1 = "sb_flow_id", bh = 5, vh = 600 * 1e3;
26926class L2 extends Error {
26927  constructor(e, s, r) {
26928    super(e), this.__isAuthError = !0, this.name = "AuthError", this.status = s, this.code = r;
26929  }
26930  toJSON() {
26931    return {
26932      name: this.name,
26933      message: this.message,
26934      status: this.status,
26935      code: this.code
26936    };
26937  }
26938}
26939function B(t) {
26940  return typeof t == "object" && t !== null && "__isAuthError" in t;
26941}
26942class yh extends L2 {
26943  constructor(e, s, r) {
26944    super(e, s, r), this.name = "AuthApiError", this.status = s, this.code = r;
26945  }
26946}
26947function L6(t) {
26948  return B(t) && t.name === "AuthApiError";
26949}
26950class $e extends L2 {
26951  constructor(e, s) {
26952    super(e), this.name = "AuthUnknownError", this.originalError = s;
26953  }
26954}
26955class n1 extends L2 {
26956  constructor(e, s, r, n) {
26957    super(e, r, n), this.name = s, this.status = r;
26958  }
26959}
26960class he extends n1 {
26961  constructor() {
26962    super("Auth session missing!", "AuthSessionMissingError", 400, void 0);
26963  }
26964}
26965function O2(t) {
26966  return B(t) && t.name === "AuthSessionMissingError";
26967}
26968class et extends n1 {
26969  constructor() {
26970    super("Auth session or user missing", "AuthInvalidTokenResponseError", 500, void 0);
26971  }
26972}
26973class V2 extends n1 {
26974  constructor(e) {
26975    super(e, "AuthInvalidCredentialsError", 400, void 0);
26976  }
26977}
26978class H2 extends n1 {
26979  constructor(e, s = null) {
26980    super(e, "AuthImplicitGrantRedirectError", 500, void 0), this.details = null, this.details = s;
26981  }
26982  toJSON() {
26983    return Object.assign(Object.assign({}, super.toJSON()), { details: this.details });
26984  }
26985}
26986function wh(t) {
26987  return B(t) && t.name === "AuthImplicitGrantRedirectError";
26988}
26989class c6 extends n1 {
26990  constructor(e, s = null) {
26991    super(e, "AuthPKCEGrantCodeExchangeError", 500, void 0), this.details = null, this.details = s;
26992  }
26993  toJSON() {
26994    return Object.assign(Object.assign({}, super.toJSON()), { details: this.details });
26995  }
26996}
26997class Th extends n1 {
26998  constructor() {
26999    super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.", "AuthPKCECodeVerifierMissingError", 400, "pkce_code_verifier_not_found");
27000  }
27001}
27002class s3 extends n1 {
27003  constructor(e, s) {
27004    super(e, "AuthRetryableFetchError", s, void 0);
27005  }
27006}
27007function Z2(t) {
27008  return B(t) && t.name === "AuthRetryableFetchError";
27009}
27010class l6 extends n1 {
27011  constructor(e = "Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)") {
27012    super(e, "AuthRefreshDiscardedError", 409, void 0);
27013  }
27014}
27015function d6(t) {
27016  return B(t) && t.name === "AuthRefreshDiscardedError";
27017}
27018class g6 extends n1 {
27019  constructor(e, s, r) {
27020    super(e, "AuthWeakPasswordError", s, "weak_password"), this.reasons = r;
27021  }
27022  toJSON() {
27023    return Object.assign(Object.assign({}, super.toJSON()), { reasons: this.reasons });
27024  }
27025}
27026class f3 extends n1 {
27027  constructor(e) {
27028    super(e, "AuthInvalidJwtError", 400, "invalid_jwt");
27029  }
27030}
27031const p3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""), f6 = ` 	
27032\r=`.split(""), Sh = (() => {
27033  const t = new Array(128);
27034  for (let e = 0; e < t.length; e += 1)
27035    t[e] = -1;
27036  for (let e = 0; e < f6.length; e += 1)
27037    t[f6[e].charCodeAt(0)] = -2;
27038  for (let e = 0; e < p3.length; e += 1)
27039    t[p3[e].charCodeAt(0)] = e;
27040  return t;
27041})();
27042function p6(t, e, s) {
27043  if (t !== null)
27044    for (e.queue = e.queue << 8 | t, e.queuedBits += 8; e.queuedBits >= 6; ) {
27045      const r = e.queue >> e.queuedBits - 6 & 63;
27046      s(p3[r]), e.queuedBits -= 6;
27047    }
27048  else if (e.queuedBits > 0)
27049    for (e.queue = e.queue << 6 - e.queuedBits, e.queuedBits = 6; e.queuedBits >= 6; ) {
27050      const r = e.queue >> e.queuedBits - 6 & 63;
27051      s(p3[r]), e.queuedBits -= 6;
27052    }
27053}
27054function Si(t, e, s) {
27055  const r = Sh[t];
27056  if (r > -1)
27057    for (e.queue = e.queue << 6 | r, e.queuedBits += 6; e.queuedBits >= 8; )
27058      s(e.queue >> e.queuedBits - 8 & 255), e.queuedBits -= 8;
27059  else {
27060    if (r === -2)
27061      return;
27062    throw new Error(`Invalid Base64-URL character "${String.fromCharCode(t)}"`);
27063  }
27064}
27065function M6(t) {
27066  const e = [], s = (L) => {
27067    e.push(String.fromCodePoint(L));
27068  }, r = {
27069    utf8seq: 0,
27070    codepoint: 0
27071  }, n = { queue: 0, queuedBits: 0 }, o = (L) => {
27072    Ah(L, r, s);
27073  };
27074  for (let L = 0; L < t.length; L += 1)
27075    Si(t.charCodeAt(L), n, o);
27076  return e.join("");
27077}
27078function Bh(t, e) {
27079  if (t <= 127) {
27080    e(t);
27081    return;
27082  } else if (t <= 2047) {
27083    e(192 | t >> 6), e(128 | t & 63);
27084    return;
27085  } else if (t <= 65535) {
27086    e(224 | t >> 12), e(128 | t >> 6 & 63), e(128 | t & 63);
27087    return;
27088  } else if (t <= 1114111) {
27089    e(240 | t >> 18), e(128 | t >> 12 & 63), e(128 | t >> 6 & 63), e(128 | t & 63);
27090    return;
27091  }
27092  throw new Error(`Unrecognized Unicode codepoint: ${t.toString(16)}`);
27093}
27094function kh(t, e) {
27095  for (let s = 0; s < t.length; s += 1) {
27096    let r = t.charCodeAt(s);
27097    if (r > 55295 && r <= 56319) {
27098      const n = (r - 55296) * 1024 & 65535;
27099      r = (t.charCodeAt(s + 1) - 56320 & 65535 | n) + 65536, s += 1;
27100    }
27101    Bh(r, e);
27102  }
27103}
27104function Ah(t, e, s) {
27105  if (e.utf8seq === 0) {
27106    if (t <= 127) {
27107      s(t);
27108      return;
27109    }
27110    for (let r = 1; r < 6; r += 1)
27111      if ((t >> 7 - r & 1) === 0) {
27112        e.utf8seq = r;
27113        break;
27114      }
27115    if (e.utf8seq === 2)
27116      e.codepoint = t & 31;
27117    else if (e.utf8seq === 3)
27118      e.codepoint = t & 15;
27119    else if (e.utf8seq === 4)
27120      e.codepoint = t & 7;
27121    else
27122      throw new Error("Invalid UTF-8 sequence");
27123    e.utf8seq -= 1;
27124  } else if (e.utf8seq > 0) {
27125    if (t <= 127)
27126      throw new Error("Invalid UTF-8 sequence");
27127    e.codepoint = e.codepoint << 6 | t & 63, e.utf8seq -= 1, e.utf8seq === 0 && s(e.codepoint);
27128  }
27129}
27130function _t(t) {
27131  const e = [], s = { queue: 0, queuedBits: 0 }, r = (n) => {
27132    e.push(n);
27133  };
27134  for (let n = 0; n < t.length; n += 1)
27135    Si(t.charCodeAt(n), s, r);
27136  return new Uint8Array(e);
27137}
27138function Nh(t) {
27139  const e = [];
27140  return kh(t, (s) => e.push(s)), new Uint8Array(e);
27141}
27142function Z1(t) {
27143  const e = [], s = { queue: 0, queuedBits: 0 }, r = (n) => {
27144    e.push(n);
27145  };
27146  return t.forEach((n) => p6(n, s, r)), p6(null, s, r), e.join("");
27147}
27148function Bi(t) {
27149  return Math.round(Date.now() / 1e3) + t;
27150}
27151function Ih() {
27152  return Symbol("auth-callback");
27153}
27154const _e = () => typeof window < "u" && typeof document < "u", P1 = {
27155  tested: !1,
27156  writable: !1
27157}, ki = () => {
27158  if (!_e())
27159    return !1;
27160  try {
27161    if (typeof globalThis.localStorage != "object")
27162      return !1;
27163  } catch {
27164    return !1;
27165  }
27166  if (P1.tested)
27167    return P1.writable;
27168  const t = `lswt-${Math.random()}${Math.random()}`;
27169  try {
27170    globalThis.localStorage.setItem(t, t), globalThis.localStorage.removeItem(t), P1.tested = !0, P1.writable = !0;
27171  } catch {
27172    P1.tested = !0, P1.writable = !1;
27173  }
27174  return P1.writable;
27175};
27176function u6(t) {
27177  const e = {}, s = new URL(t);
27178  if (s.hash && s.hash[0] === "#")
27179    try {
27180      new URLSearchParams(s.hash.substring(1)).forEach((n, o) => {
27181        e[o] = n;
27182      });
27183    } catch {
27184    }
27185  return s.searchParams.forEach((r, n) => {
27186    e[n] = r;
27187  }), e;
27188}
27189const Ai = (t) => t ? (...e) => t(...e) : (...e) => fetch(...e), Ph = (t) => typeof t == "object" && t !== null && "status" in t && "ok" in t && "json" in t && typeof t.json == "function", p1 = async (t, e, s) => {
27190  await t.setItem(e, JSON.stringify(s));
27191}, be = async (t, e) => {
27192  const s = await t.getItem(e);
27193  if (!s)
27194    return null;
27195  try {
27196    return JSON.parse(s);
27197  } catch {
27198    return null;
27199  }
27200}, ke = async (t, e) => {
27201  await t.removeItem(e);
27202};
27203class H3 {
27204  constructor() {
27205    this.promise = new H3.promiseConstructor((e, s) => {
27206      this.resolve = e, this.reject = s;
27207    });
27208  }
27209}
27210H3.promiseConstructor = Promise;
27211function W2(t) {
27212  const e = t.split(".");
27213  if (e.length !== 3)
27214    throw new f3("Invalid JWT structure");
27215  for (let r = 0; r < e.length; r++)
27216    if (!_h.test(e[r]))
27217      throw new f3("JWT not in base64url format");
27218  return {
27219    // using base64url lib
27220    header: JSON.parse(M6(e[0])),
27221    payload: JSON.parse(M6(e[1])),
27222    signature: _t(e[2]),
27223    raw: {
27224      header: e[0],
27225      payload: e[1]
27226    }
27227  };
27228}
27229async function Ch(t) {
27230  return await new Promise((e) => {
27231    setTimeout(() => e(null), t);
27232  });
27233}
27234function Fh(t, e) {
27235  return new Promise((r, n) => {
27236    (async () => {
27237      for (let o = 0; o < 1 / 0; o++)
27238        try {
27239          const L = await t(o);
27240          if (!e(o, null, L)) {
27241            r(L);
27242            return;
27243          }
27244        } catch (L) {
27245          if (!e(o, L)) {
27246            n(L);
27247            return;
27248          }
27249        }
27250    })();
27251  });
27252}
27253function Ni(t) {
27254  return ("0" + t.toString(16)).substr(-2);
27255}
27256function Eh() {
27257  const e = new Uint32Array(56);
27258  if (typeof crypto > "u") {
27259    const s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~", r = s.length;
27260    let n = "";
27261    for (let o = 0; o < 56; o++)
27262      n += s.charAt(Math.floor(Math.random() * r));
27263    return n;
27264  }
27265  return crypto.getRandomValues(e), Array.from(e, Ni).join("");
27266}
27267async function Rh(t) {
27268  const s = new TextEncoder().encode(t), r = await crypto.subtle.digest("SHA-256", s), n = new Uint8Array(r);
27269  return Array.from(n).map((o) => String.fromCharCode(o)).join("");
27270}
27271async function Dh(t) {
27272  if (!(typeof crypto < "u" && typeof crypto.subtle < "u" && typeof TextEncoder < "u"))
27273    return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."), t;
27274  const s = await Rh(t);
27275  return btoa(s).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
27276}
27277const zh = /^[a-zA-Z0-9_-]{8,64}$/;
27278function i3(t) {
27279  return typeof t == "string" && zh.test(t) ? t : null;
27280}
27281function jh() {
27282  if (typeof crypto < "u" && typeof crypto.getRandomValues == "function") {
27283    const e = new Uint8Array(16);
27284    return crypto.getRandomValues(e), Array.from(e, Ni).join("");
27285  }
27286  let t = "";
27287  for (let e = 0; e < 32; e++)
27288    t += Math.floor(Math.random() * 16).toString(16);
27289  return t;
27290}
27291const wt = (t, e) => `${t}-flow-${e}-code-verifier`, c2 = (t) => `${t}-flows-code-verifier`;
27292async function i0(t, e) {
27293  const s = await be(t, c2(e));
27294  return Array.isArray(s) ? s.filter((r) => i3(r) !== null) : [];
27295}
27296async function Oh(t, e, s, r, n) {
27297  await p1(t, wt(e, s), r);
27298  const o = (await i0(t, e)).filter((L) => L !== s);
27299  for (o.push(s); o.length > bh; ) {
27300    const L = o.shift();
27301    await ke(t, wt(e, L)), n?.(L);
27302  }
27303  await p1(t, c2(e), o), await p1(t, `${e}-code-verifier`, r);
27304}
27305async function Vh(t, e, s) {
27306  if (s) {
27307    const n = await be(t, wt(e, s));
27308    return { verifier: typeof n == "string" ? n : null, flowId: s };
27309  }
27310  const r = await be(t, `${e}-code-verifier`);
27311  return { verifier: typeof r == "string" ? r : null, flowId: null };
27312}
27313async function He(t, e, s) {
27314  const r = `${e}-code-verifier`;
27315  if (!s) {
27316    await ke(t, r);
27317    return;
27318  }
27319  const n = wt(e, s), o = await be(t, n);
27320  await ke(t, n);
27321  const L = await i0(t, e), d = L.filter((l) => l !== s);
27322  d.length !== L.length && (d.length > 0 ? await p1(t, c2(e), d) : await ke(t, c2(e))), o != null && o === await be(t, r) && await ke(t, r);
27323}
27324async function Hh(t, e) {
27325  const s = await i0(t, e);
27326  for (const r of s)
27327    await ke(t, wt(e, r));
27328  await ke(t, c2(e)), await ke(t, `${e}-code-verifier`);
27329}
27330function Zh(t, e) {
27331  const s = t.indexOf("#");
27332  let r = s === -1 ? t : t.slice(0, s);
27333  const n = s === -1 ? "" : t.slice(s), o = r.indexOf("?");
27334  if (o !== -1) {
27335    const d = r.slice(0, o), l = r.slice(o + 1).split("&").filter((g) => g !== "" && g !== H1 && !g.startsWith(`${H1}=`));
27336    r = l.length > 0 ? `${d}?${l.join("&")}` : d;
27337  }
27338  const L = r.includes("?") ? "&" : "?";
27339  return `${r}${L}${H1}=${encodeURIComponent(e)}${n}`;
27340}
27341async function Wh(t, e, s = !1, r) {
27342  const n = Eh();
27343  let o = n;
27344  s && (o += "/recovery");
27345  const L = jh();
27346  await Oh(t, e, L, o, r);
27347  const d = await Dh(n);
27348  return [d, n === d ? "plain" : "s256", L];
27349}
27350const $h = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;
27351function qh(t) {
27352  const e = t.headers.get(i5);
27353  if (!e || !e.match($h))
27354    return null;
27355  try {
27356    return /* @__PURE__ */ new Date(`${e}T00:00:00.0Z`);
27357  } catch {
27358    return null;
27359  }
27360}
27361function Uh(t) {
27362  if (!t)
27363    throw new Error("Missing exp claim");
27364  const e = Math.floor(Date.now() / 1e3);
27365  if (t <= e)
27366    throw new Error("JWT has expired");
27367}
27368function Gh(t) {
27369  switch (t) {
27370    case "RS256":
27371      return {
27372        name: "RSASSA-PKCS1-v1_5",
27373        hash: { name: "SHA-256" }
27374      };
27375    case "ES256":
27376      return {
27377        name: "ECDSA",
27378        namedCurve: "P-256",
27379        hash: { name: "SHA-256" }
27380      };
27381    default:
27382      throw new Error("Invalid alg claim");
27383  }
27384}
27385const Jh = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
27386function L1(t) {
27387  if (!Jh.test(t))
27388    throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not");
27389}
27390function zt(t) {
27391  if (!t.recoveryCodes)
27392    throw new Error("@supabase/auth-js: the MFA recovery codes API is experimental and disabled by default. Enable it by passing `auth: { experimental: { recoveryCodes: true } }` to createClient (or to the GoTrueClient constructor).");
27393}
27394function _4() {
27395  const t = {};
27396  return new Proxy(t, {
27397    get: (e, s) => {
27398      if (s === "__isUserNotAvailableProxy")
27399        return !0;
27400      if (typeof s == "symbol") {
27401        const r = s.toString();
27402        if (r === "Symbol(Symbol.toPrimitive)" || r === "Symbol(Symbol.toStringTag)" || r === "Symbol(util.inspect.custom)")
27403          return;
27404      }
27405      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${s}" property of the session object is not supported. Please use getUser() instead.`);
27406    },
27407    set: (e, s) => {
27408      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${s}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);
27409    },
27410    deleteProperty: (e, s) => {
27411      throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${s}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`);
27412    }
27413  });
27414}
27415function Kh(t, e) {
27416  return new Proxy(t, {
27417    get: (s, r, n) => {
27418      if (r === "__isInsecureUserWarningProxy")
27419        return !0;
27420      if (typeof r == "symbol") {
27421        const o = r.toString();
27422        if (o === "Symbol(Symbol.toPrimitive)" || o === "Symbol(Symbol.toStringTag)" || o === "Symbol(util.inspect.custom)" || o === "Symbol(nodejs.util.inspect.custom)")
27423          return Reflect.get(s, r, n);
27424      }
27425      return !e.value && typeof r == "string" && (console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."), e.value = !0), Reflect.get(s, r, n);
27426    }
27427  });
27428}
27429function h6(t) {
27430  return JSON.parse(JSON.stringify(t));
27431}
27432const F1 = (t) => {
27433  if (typeof t == "object" && t !== null) {
27434    const e = t;
27435    if (typeof e.msg == "string")
27436      return e.msg;
27437    if (typeof e.message == "string")
27438      return e.message;
27439    if (typeof e.error_description == "string")
27440      return e.error_description;
27441    if (typeof e.error == "string")
27442      return e.error;
27443  }
27444  return JSON.stringify(t);
27445}, m6 = [
27446  500,
27447  501,
27448  502,
27449  503,
27450  504,
27451  520,
27452  521,
27453  522,
27454  523,
27455  524,
27456  525,
27457  526,
27458  527,
27459  528,
27460  529,
27461  530
27462];
27463async function x6(t) {
27464  var e;
27465  if (!Ph(t))
27466    throw new s3(F1(t), 0);
27467  let s;
27468  try {
27469    s = await t.json();
27470  } catch (o) {
27471    throw m6.includes(t.status) ? new s3(t.statusText || `HTTP ${t.status}`, t.status) : new $e(F1(o), o);
27472  }
27473  if (m6.includes(t.status))
27474    throw new s3(F1(s), t.status);
27475  let r;
27476  const n = qh(t);
27477  if (n && n.getTime() >= Ti["2024-01-01"].timestamp && typeof s == "object" && s && typeof s.code == "string" ? r = s.code : typeof s == "object" && s && typeof s.error_code == "string" && (r = s.error_code), r) {
27478    if (r === "weak_password")
27479      throw new g6(F1(s), t.status, ((e = s.weak_password) === null || e === void 0 ? void 0 : e.reasons) || []);
27480    if (r === "session_not_found")
27481      throw new he();
27482  } else if (typeof s == "object" && s && typeof s.weak_password == "object" && s.weak_password && Array.isArray(s.weak_password.reasons) && s.weak_password.reasons.length && s.weak_password.reasons.reduce((o, L) => o && typeof L == "string", !0))
27483    throw new g6(F1(s), t.status, s.weak_password.reasons);
27484  throw new yh(F1(s), t.status || 500, r);
27485}
27486const Yh = (t, e, s, r) => {
27487  const n = { method: t, headers: e?.headers || {} };
27488  return t === "GET" ? n : (n.headers = Object.assign({ "Content-Type": "application/json;charset=UTF-8" }, e?.headers), n.body = JSON.stringify(r), Object.assign(Object.assign({}, n), s));
27489};
27490async function N(t, e, s, r) {
27491  var n;
27492  const o = Object.assign({}, r?.headers);
27493  o[i5] || (o[i5] = Ti["2024-01-01"].name), r?.jwt && (o.Authorization = `Bearer ${r.jwt}`);
27494  const L = (n = r?.query) !== null && n !== void 0 ? n : {};
27495  r?.redirectTo && (L.redirect_to = r.redirectTo);
27496  const d = Object.keys(L).length ? "?" + new URLSearchParams(L).toString() : "", l = await Xh(t, e, s + d, {
27497    headers: o,
27498    noResolveJson: r?.noResolveJson
27499  }, {}, r?.body);
27500  return r?.xform ? r?.xform(l) : { data: Object.assign({}, l), error: null };
27501}
27502async function Xh(t, e, s, r, n, o) {
27503  const L = Yh(e, r, n, o);
27504  let d;
27505  try {
27506    d = await t(s, Object.assign({}, L));
27507  } catch (l) {
27508    throw new s3(F1(l), 0);
27509  }
27510  if (d.ok || await x6(d), r?.noResolveJson)
27511    return d;
27512  try {
27513    return await d.json();
27514  } catch (l) {
27515    await x6(l);
27516  }
27517}
27518function De(t) {
27519  var e;
27520  let s = null;
27521  tm(t) && (s = Object.assign({}, t), t.expires_at || (s.expires_at = Bi(t.expires_in)));
27522  const r = (e = t.user) !== null && e !== void 0 ? e : typeof t?.id == "string" ? t : null;
27523  return { data: { session: s, user: r }, error: null };
27524}
27525function _6(t) {
27526  const e = De(t);
27527  return !e.error && t.weak_password && typeof t.weak_password == "object" && Array.isArray(t.weak_password.reasons) && t.weak_password.reasons.length && t.weak_password.message && typeof t.weak_password.message == "string" && t.weak_password.reasons.reduce((s, r) => s && typeof r == "string", !0) && (e.data.weak_password = t.weak_password), e;
27528}
27529function _1(t) {
27530  var e;
27531  return { data: { user: (e = t.user) !== null && e !== void 0 ? e : t }, error: null };
27532}
27533function Qh(t) {
27534  return { data: t, error: null };
27535}
27536function em(t) {
27537  const { action_link: e, email_otp: s, hashed_token: r, redirect_to: n, verification_type: o } = t, L = j3(t, ["action_link", "email_otp", "hashed_token", "redirect_to", "verification_type"]), d = {
27538    action_link: e,
27539    email_otp: s,
27540    hashed_token: r,
27541    redirect_to: n,
27542    verification_type: o
27543  }, l = Object.assign({}, L);
27544  return {
27545    data: {
27546      properties: d,
27547      user: l
27548    },
27549    error: null
27550  };
27551}
27552function b6(t) {
27553  return t;
27554}
27555function tm(t) {
27556  return !!t.access_token && !!t.refresh_token && !!t.expires_in;
27557}
27558const b4 = ["global", "local", "others"];
27559class am {
27560  /**
27561   * Creates an admin API client that can be used to manage users and OAuth clients.
27562   *
27563   * @example Using supabase-js (recommended)
27564   * ```ts
27565   * import { createClient } from '@supabase/supabase-js'
27566   *
27567   * const supabase = createClient('https://xyzcompany.supabase.co', 'your-secret-key')
27568   * const { data, error } = await supabase.auth.admin.listUsers()
27569   * ```
27570   *
27571   * @example Standalone import for bundle-sensitive environments
27572   * ```ts
27573   * import { GoTrueAdminApi } from '@supabase/auth-js'
27574   *
27575   * const admin = new GoTrueAdminApi({
27576   *   url: 'https://xyzcompany.supabase.co/auth/v1',
27577   *   headers: { Authorization: `Bearer ${process.env.SUPABASE_SECRET_KEY}` },
27578   * })
27579   * ```
27580   */
27581  constructor({ url: e = "", headers: s = {}, fetch: r, experimental: n }) {
27582    this.url = e, this.headers = s, this.fetch = Ai(r), this.experimental = n ?? {}, this.mfa = {
27583      listFactors: this._listFactors.bind(this),
27584      deleteFactor: this._deleteFactor.bind(this)
27585    }, this.oauth = {
27586      listClients: this._listOAuthClients.bind(this),
27587      createClient: this._createOAuthClient.bind(this),
27588      getClient: this._getOAuthClient.bind(this),
27589      updateClient: this._updateOAuthClient.bind(this),
27590      deleteClient: this._deleteOAuthClient.bind(this),
27591      regenerateClientSecret: this._regenerateOAuthClientSecret.bind(this)
27592    }, this.customProviders = {
27593      listProviders: this._listCustomProviders.bind(this),
27594      createProvider: this._createCustomProvider.bind(this),
27595      getProvider: this._getCustomProvider.bind(this),
27596      updateProvider: this._updateCustomProvider.bind(this),
27597      deleteProvider: this._deleteCustomProvider.bind(this)
27598    }, this.passkey = {
27599      listPasskeys: this._adminListPasskeys.bind(this),
27600      deletePasskey: this._adminDeletePasskey.bind(this)
27601    };
27602  }
27603  /**
27604   * Removes a logged-in session.
27605   * @param jwt A valid, logged-in JWT.
27606   * @param scope The logout sope.
27607   *
27608   * @category Auth
27609   * @subcategory Auth Admin
27610   */
27611  async signOut(e, s = b4[0]) {
27612    if (b4.indexOf(s) < 0)
27613      throw new Error(`@supabase/auth-js: Parameter scope must be one of ${b4.join(", ")}`);
27614    try {
27615      return await N(this.fetch, "POST", `${this.url}/logout?scope=${s}`, {
27616        headers: this.headers,
27617        jwt: e,
27618        noResolveJson: !0
27619      }), { data: null, error: null };
27620    } catch (r) {
27621      if (B(r))
27622        return { data: null, error: r };
27623      throw r;
27624    }
27625  }
27626  /**
27627   * Sends an invite link to an email address.
27628   * @param email The email address of the user.
27629   * @param options Additional options to be included when inviting.
27630   *
27631   * @category Auth
27632   * @subcategory Auth Admin
27633   *
27634   * @remarks
27635   * - Sends an invite link to the user's email address.
27636   * - The `inviteUserByEmail()` method is typically used by administrators to invite users to join the application.
27637   * - Note that PKCE is not supported when using `inviteUserByEmail`. This is because the browser initiating the invite is often different from the browser accepting the invite which makes it difficult to provide the security guarantees required of the PKCE flow.
27638   *
27639   * @example Invite a user
27640   * ```js
27641   * const { data, error } = await supabase.auth.admin.inviteUserByEmail('[email protected]')
27642   * ```
27643   *
27644   * @exampleResponse Invite a user
27645   * ```json
27646   * {
27647   *   "data": {
27648   *     "user": {
27649   *       "id": "11111111-1111-1111-1111-111111111111",
27650   *       "aud": "authenticated",
27651   *       "role": "authenticated",
27652   *       "email": "[email protected]",
27653   *       "invited_at": "2024-01-01T00:00:00Z",
27654   *       "phone": "",
27655   *       "confirmation_sent_at": "2024-01-01T00:00:00Z",
27656   *       "app_metadata": {
27657   *         "provider": "email",
27658   *         "providers": [
27659   *           "email"
27660   *         ]
27661   *       },
27662   *       "user_metadata": {},
27663   *       "identities": [
27664   *         {
27665   *           "identity_id": "22222222-2222-2222-2222-222222222222",
27666   *           "id": "11111111-1111-1111-1111-111111111111",
27667   *           "user_id": "11111111-1111-1111-1111-111111111111",
27668   *           "identity_data": {
27669   *             "email": "[email protected]",
27670   *             "email_verified": false,
27671   *             "phone_verified": false,
27672   *             "sub": "11111111-1111-1111-1111-111111111111"
27673   *           },
27674   *           "provider": "email",
27675   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
27676   *           "created_at": "2024-01-01T00:00:00Z",
27677   *           "updated_at": "2024-01-01T00:00:00Z",
27678   *           "email": "[email protected]"
27679   *         }
27680   *       ],
27681   *       "created_at": "2024-01-01T00:00:00Z",
27682   *       "updated_at": "2024-01-01T00:00:00Z",
27683   *       "is_anonymous": false
27684   *     }
27685   *   },
27686   *   "error": null
27687   * }
27688   * ```
27689   */
27690  async inviteUserByEmail(e, s = {}) {
27691    try {
27692      return await N(this.fetch, "POST", `${this.url}/invite`, {
27693        body: { email: e, data: s.data },
27694        headers: this.headers,
27695        redirectTo: s.redirectTo,
27696        xform: _1
27697      });
27698    } catch (r) {
27699      if (B(r))
27700        return { data: { user: null }, error: r };
27701      throw r;
27702    }
27703  }
27704  /**
27705   * Generates email links and OTPs to be sent via a custom email provider.
27706   * @param params The parameters for generating the link, including the link `type`, the user's `email`, and type-specific options such as `password`, `data`, and `redirectTo`.
27707   *
27708   * @category Auth
27709   * @subcategory Auth Admin
27710   *
27711   * @remarks
27712   * - The following types can be passed into `generateLink()`: `signup`, `magiclink`, `invite`, `recovery`, `email_change_current`, `email_change_new`, `phone_change`.
27713   * - `generateLink()` only generates the email link for `email_change_email` if the **Secure email change** is enabled in your project's [email auth provider settings](/dashboard/project/_/auth/providers).
27714   * - `generateLink()` handles the creation of the user for `signup`, `invite` and `magiclink`.
27715   *
27716   * @example Generate a signup link
27717   * ```js
27718   * const { data, error } = await supabase.auth.admin.generateLink({
27719   *   type: 'signup',
27720   *   email: '[email protected]',
27721   *   password: 'secret'
27722   * })
27723   * ```
27724   *
27725   * @exampleResponse Generate a signup link
27726   * ```json
27727   * {
27728   *   "data": {
27729   *     "properties": {
27730   *       "action_link": "<LINK_TO_SEND_TO_USER>",
27731   *       "email_otp": "999999",
27732   *       "hashed_token": "<HASHED_TOKEN",
27733   *       "redirect_to": "<REDIRECT_URL>",
27734   *       "verification_type": "signup"
27735   *     },
27736   *     "user": {
27737   *       "id": "11111111-1111-1111-1111-111111111111",
27738   *       "aud": "authenticated",
27739   *       "role": "authenticated",
27740   *       "email": "[email protected]",
27741   *       "phone": "",
27742   *       "confirmation_sent_at": "2024-01-01T00:00:00Z",
27743   *       "app_metadata": {
27744   *         "provider": "email",
27745   *         "providers": [
27746   *           "email"
27747   *         ]
27748   *       },
27749   *       "user_metadata": {},
27750   *       "identities": [
27751   *         {
27752   *           "identity_id": "22222222-2222-2222-2222-222222222222",
27753   *           "id": "11111111-1111-1111-1111-111111111111",
27754   *           "user_id": "11111111-1111-1111-1111-111111111111",
27755   *           "identity_data": {
27756   *             "email": "[email protected]",
27757   *             "email_verified": false,
27758   *             "phone_verified": false,
27759   *             "sub": "11111111-1111-1111-1111-111111111111"
27760   *           },
27761   *           "provider": "email",
27762   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
27763   *           "created_at": "2024-01-01T00:00:00Z",
27764   *           "updated_at": "2024-01-01T00:00:00Z",
27765   *           "email": "[email protected]"
27766   *         }
27767   *       ],
27768   *       "created_at": "2024-01-01T00:00:00Z",
27769   *       "updated_at": "2024-01-01T00:00:00Z",
27770   *       "is_anonymous": false
27771   *     }
27772   *   },
27773   *   "error": null
27774   * }
27775   * ```
27776   *
27777   * @example Generate an invite link
27778   * ```js
27779   * const { data, error } = await supabase.auth.admin.generateLink({
27780   *   type: 'invite',
27781   *   email: '[email protected]'
27782   * })
27783   * ```
27784   *
27785   * @example Generate a magic link
27786   * ```js
27787   * const { data, error } = await supabase.auth.admin.generateLink({
27788   *   type: 'magiclink',
27789   *   email: '[email protected]'
27790   * })
27791   * ```
27792   *
27793   * @example Generate a recovery link
27794   * ```js
27795   * const { data, error } = await supabase.auth.admin.generateLink({
27796   *   type: 'recovery',
27797   *   email: '[email protected]'
27798   * })
27799   * ```
27800   *
27801   * @example Generate links to change current email address
27802   * ```js
27803   * // generate an email change link to be sent to the current email address
27804   * const { data, error } = await supabase.auth.admin.generateLink({
27805   *   type: 'email_change_current',
27806   *   email: '[email protected]',
27807   *   newEmail: '[email protected]'
27808   * })
27809   *
27810   * // generate an email change link to be sent to the new email address
27811   * const { data, error } = await supabase.auth.admin.generateLink({
27812   *   type: 'email_change_new',
27813   *   email: '[email protected]',
27814   *   newEmail: '[email protected]'
27815   * })
27816   * ```
27817   */
27818  async generateLink(e) {
27819    try {
27820      const { options: s } = e, r = j3(e, ["options"]), n = Object.assign(Object.assign({}, r), s);
27821      return "newEmail" in r && (n.new_email = r?.newEmail, delete n.newEmail), await N(this.fetch, "POST", `${this.url}/admin/generate_link`, {
27822        body: n,
27823        headers: this.headers,
27824        xform: em,
27825        redirectTo: s?.redirectTo
27826      });
27827    } catch (s) {
27828      if (B(s))
27829        return {
27830          data: {
27831            properties: null,
27832            user: null
27833          },
27834          error: s
27835        };
27836      throw s;
27837    }
27838  }
27839  // User Admin API
27840  /**
27841   * Creates a new user.
27842   * This function should only be called on a server. Never expose your `service_role` key in the browser.
27843   *
27844   * @category Auth
27845   * @subcategory Auth Admin
27846   *
27847   * @remarks
27848   * - To confirm the user's email address or phone number, set `email_confirm` or `phone_confirm` to true. Both arguments default to false.
27849   * - `createUser()` will not send a confirmation email to the user. You can use [`inv
27849iteUserByEmail()`](/docs/reference/javascript/auth-admin-inviteuserbyemail) if you want to send them an email invite instead.
27850   * - If you are sure that the created user's email or phone number is legitimate and verified, you can set the `email_confirm` or `phone_confirm` param to `true`.
27851   *
27852   * @example With custom user metadata
27853   * ```js
27854   * const { data, error } = await supabase.auth.admin.createUser({
27855   *   email: '[email protected]',
27856   *   password: 'password',
27857   *   user_metadata: { name: 'Yoda' }
27858   * })
27859   * ```
27860   *
27861   * @exampleResponse With custom user metadata
27862   * ```json
27863   * {
27864   *   data: {
27865   *     user: {
27866   *       id: '1',
27867   *       aud: 'authenticated',
27868   *       role: 'authenticated',
27869   *       email: '[email protected]',
27870   *       email_confirmed_at: '2024-01-01T00:00:00Z',
27871   *       phone: '',
27872   *       confirmation_sent_at: '2024-01-01T00:00:00Z',
27873   *       confirmed_at: '2024-01-01T00:00:00Z',
27874   *       last_sign_in_at: '2024-01-01T00:00:00Z',
27875   *       app_metadata: {},
27876   *       user_metadata: {},
27877   *       identities: [
27878   *         {
27879   *           "identity_id": "22222222-2222-2222-2222-222222222222",
27880   *           "id": "1",
27881   *           "user_id": "1",
27882   *           "identity_data": {
27883   *             "email": "[email protected]",
27884   *             "email_verified": true,
27885   *             "phone_verified": false,
27886   *             "sub": "1"
27887   *           },
27888   *           "provider": "email",
27889   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
27890   *           "created_at": "2024-01-01T00:00:00Z",
27891   *           "updated_at": "2024-01-01T00:00:00Z",
27892   *           "email": "[email protected]"
27893   *         },
27894   *       ],
27895   *       created_at: '2024-01-01T00:00:00Z',
27896   *       updated_at: '2024-01-01T00:00:00Z',
27897   *       is_anonymous: false,
27898   *     }
27899   *   }
27900   *   error: null
27901   * }
27902   * ```
27903   *
27904   * @example Auto-confirm the user's email
27905   * ```js
27906   * const { data, error } = await supabase.auth.admin.createUser({
27907   *   email: '[email protected]',
27908   *   email_confirm: true
27909   * })
27910   * ```
27911   *
27912   * @example Auto-confirm the user's phone number
27913   * ```js
27914   * const { data, error } = await supabase.auth.admin.createUser({
27915   *   phone: '1234567890',
27916   *   phone_confirm: true
27917   * })
27918   * ```
27919   */
27920  async createUser(e) {
27921    try {
27922      return await N(this.fetch, "POST", `${this.url}/admin/users`, {
27923        body: e,
27924        headers: this.headers,
27925        xform: _1
27926      });
27927    } catch (s) {
27928      if (B(s))
27929        return { data: { user: null }, error: s };
27930      throw s;
27931    }
27932  }
27933  /**
27934   * Get a list of users.
27935   *
27936   * This function should only be called on a server. Never expose your `service_role` key in the browser.
27937   * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.
27938   *
27939   * @category Auth
27940   * @subcategory Auth Admin
27941   *
27942   * @remarks
27943   * - Defaults to return 50 users per page.
27944   *
27945   * @example Get a page of users
27946   * ```js
27947   * const { data: { users }, error } = await supabase.auth.admin.listUsers()
27948   * ```
27949   *
27950   * @example Paginated list of users
27951   * ```js
27952   * const { data: { users }, error } = await supabase.auth.admin.listUsers({
27953   *   page: 1,
27954   *   perPage: 1000
27955   * })
27956   * ```
27957   */
27958  async listUsers(e) {
27959    var s, r, n, o, L, d, l;
27960    try {
27961      const g = { nextPage: null, lastPage: 0, total: 0 }, f = await N(this.fetch, "GET", `${this.url}/admin/users`, {
27962        headers: this.headers,
27963        noResolveJson: !0,
27964        query: {
27965          page: (r = (s = e?.page) === null || s === void 0 ? void 0 : s.toString()) !== null && r !== void 0 ? r : "",
27966          per_page: (o = (n = e?.perPage) === null || n === void 0 ? void 0 : n.toString()) !== null && o !== void 0 ? o : ""
27967        },
27968        xform: b6
27969      });
27970      if (f.error)
27971        throw f.error;
27972      const p = await f.json(), M = (L = f.headers.get("x-total-count")) !== null && L !== void 0 ? L : 0, u = (l = (d = f.headers.get("link")) === null || d === void 0 ? void 0 : d.split(",")) !== null && l !== void 0 ? l : [];
27973      return u.length > 0 && (u.forEach((h) => {
27974        const x = parseInt(h.split(";")[0].split("=")[1].substring(0, 1)), _ = JSON.parse(h.split(";")[1].split("=")[1]);
27975        g[`${_}
27975Page`] = x;
27976      }), g.total = parseInt(M)), { data: Object.assign(Object.assign({}, p), g), error: null };
27977    } catch (g) {
27978      if (B(g))
27979        return { data: { users: [] }, error: g };
27980      throw g;
27981    }
27982  }
27983  /**
27984   * Get user by id.
27985   *
27986   * @param uid The user's unique identifier
27987   *
27988   * This function should only be called on a server. Never expose your `service_role` key in the browser.
27989   *
27990   * @category Auth
27991   * @subcategory Auth Admin
27992   *
27993   * @remarks
27994   * - Fetches the user object from the database based on the user's id.
27995   * - The `getUserById()` method requires the user's id which maps to the `auth.users.id` column.
27996   *
27997   * @example Fetch the user object using the access_token jwt
27998   * ```js
27999   * const { data, error } = await supabase.auth.admin.getUserById(1)
28000   * ```
28001   *
28002   * @exampleResponse Fetch the user object using the access_token jwt
28003   * ```json
28004   * {
28005   *   data: {
28006   *     user: {
28007   *       id: '1',
28008   *       aud: 'authenticated',
28009   *       role: 'authenticated',
28010   *       email: '[email protected]',
28011   *       email_confirmed_at: '2024-01-01T00:00:00Z',
28012   *       phone: '',
28013   *       confirmation_sent_at: '2024-01-01T00:00:00Z',
28014   *       confirmed_at: '2024-01-01T00:00:00Z',
28015   *       last_sign_in_at: '2024-01-01T00:00:00Z',
28016   *       app_metadata: {},
28017   *       user_metadata: {},
28018   *       identities: [
28019   *         {
28020   *           "identity_id": "22222222-2222-2222-2222-222222222222",
28021   *           "id": "1",
28022   *           "user_id": "1",
28023   *           "identity_data": {
28024   *             "email": "[email protected]",
28025   *             "email_verified": true,
28026   *             "phone_verified": false,
28027   *             "sub": "1"
28028   *           },
28029   *           "provider": "email",
28030   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
28031   *           "created_at": "2024-01-01T00:00:00Z",
28032   *           "updated_at": "2024-01-01T00:00:00Z",
28033   *           "email": "[email protected]"
28034   *         },
28035   *       ],
28036   *       created_at: '2024-01-01T00:00:00Z',
28037   *       updated_at: '2024-01-01T00:00:00Z',
28038   *       is_anonymous: false,
28039   *     }
28040   *   }
28041   *   error: null
28042   * }
28043   * ```
28044   */
28045  async getUserById(e) {
28046    L1(e);
28047    try {
28048      return await N(this.fetch, "GET", `${this.url}/admin/users/${e}`, {
28049        headers: this.headers,
28050        xform: _1
28051      });
28052    } catch (s) {
28053      if (B(s))
28054        return { data: { user: null }, error: s };
28055      throw s;
28056    }
28057  }
28058  /**
28059   * Updates the user data. Changes are applied directly without confirmation flows.
28060   *
28061   * @param uid The user's unique identifier
28062   * @param attributes The data you want to update.
28063   *
28064   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28065   *
28066   * @remarks
28067   * **Important:** This is a server-side operation and does **not** trigger client-side
28068   * `onAuthStateChange` listeners. The admin API has no connection to client state.
28069   *
28070   * To sync changes to the client after calling this method:
28071   * 1. On the client, call `supabase.auth.refreshSession()` to fetch the updated user data
28072   * 2. This will trigger the `TOKEN_REFRESHED` event and notify all listeners
28073   *
28074   * @example
28075   * ```typescript
28076   * // Server-side (Edge Function)
28077   * const { data, error } = await supabase.auth.admin.updateUserById(
28078   *   userId,
28079   *   { user_metadata: { preferences: { theme: 'dark' } } }
28080   * )
28081   *
28082   * // Client-side (to sync the changes)
28083   * const { data, error } = await supabase.auth.refreshSession()
28084   * // onAuthStateChange listeners will now be notified with updated user
28085   * ```
28086   *
28087   * @see {@link GoTrueClient.refreshSession} for syncing admin changes to the client
28088   * @see {@link GoTrueClient.updateUser} for client-side user updates (triggers listeners automatically)
28089   *
28090   * @category Auth
28091   * @subcategory Auth Admin
28092   *
28093   * @example Updates a user's email
28094   * ```js
28095   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28096   *   '11111111-1111-1111-1111-111111111111',
28097   *   { email: '[email protected]' }
28098   * )
28099   * ```
28100   *
28101   * @exampleResponse Updates a user's email
28102   * ```json
28103   * {
28104   *   "data": {
28105   *     "user": {
28106   *       "id": "11111111-1111-1111-1111-111111111111",
28107   *       "aud": "authenticated",
28108   *       "role": "authenticated",
28109   *       "email": "[email protected]",
28110   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
28111   *       "phone": "",
28112   *       "confirmed_at": "2024-01-01T00:00:00Z",
28113   *       "recovery_sent_at": "2024-01-01T00:00:00Z",
28114   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
28115   *       "app_metadata": {
28116   *         "provider": "email",
28117   *         "providers": [
28118   *           "email"
28119   *         ]
28120   *       },
28121   *       "user_metadata": {
28122   *         "email": "[email protected]",
28123   *         "email_verified": false,
28124   *         "phone_verified": false,
28125   *         "sub": "11111111-1111-1111-1111-111111111111"
28126   *       },
28127   *       "identities": [
28128   *         {
28129   *           "identity_id": "22222222-2222-2222-2222-222222222222",
28130   *           "id": "11111111-1111-1111-1111-111111111111",
28131   *           "user_id": "11111111-1111-1111-1111-111111111111",
28132   *           "identity_data": {
28133   *             "email": "[email protected]",
28134   *             "email_verified": false,
28135   *             "phone_verified": false,
28136   *             "sub": "11111111-1111-1111-1111-111111111111"
28137   *           },
28138   *           "provider": "email",
28139   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
28140   *           "created_at": "2024-01-01T00:00:00Z",
28141   *           "updated_at": "2024-01-01T00:00:00Z",
28142   *           "email": "[email protected]"
28143   *         }
28144   *       ],
28145   *       "created_at": "2024-01-01T00:00:00Z",
28146   *       "updated_at": "2024-01-01T00:00:00Z",
28147   *       "is_anonymous": false
28148   *     }
28149   *   },
28150   *   "error": null
28151   * }
28152   * ```
28153   *
28154   * @example Updates a user's password
28155   * ```js
28156   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28157   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28158   *   { password: 'new_password' }
28159   * )
28160   * ```
28161   *
28162   * @example Updates a user's metadata
28163   * ```js
28164   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28165   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28166   *   { user_metadata: { hello: 'world' } }
28167   * )
28168   * ```
28169   *
28170   * @example Updates a user's app_metadata
28171   * ```js
28172   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28173   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28174   *   { app_metadata: { plan: 'trial' } }
28175   * )
28176   * ```
28177   *
28178   * @example Confirms a user's email address
28179   * ```js
28180   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28181   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28182   *   { email_confirm: true }
28183   * )
28184   * ```
28185   *
28186   * @example Confirms a user's phone number
28187   * ```js
28188   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28189   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28190   *   { phone_confirm: true }
28191   * )
28192   * ```
28193   *
28194   * @example Ban a user for 100 years
28195   * ```js
28196   * const { data: user, error } = await supabase.auth.admin.updateUserById(
28197   *   '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4',
28198   *   { ban_duration: '876000h' }
28199   * )
28200   * ```
28201   */
28202  async updateUserById(e, s) {
28203    L1(e);
28204    try {
28205      return await N(this.fetch, "PUT", `${this.url}/admin/users/${e}`, {
28206        body: s,
28207        headers: this.headers,
28208        xform: _1
28209      });
28210    } catch (r) {
28211      if (B(r))
28212        return { data: { user: null }, error: r };
28213      throw r;
28214    }
28215  }
28216  /**
28217   * Delete a user. Requires a `service_role` key.
28218   *
28219   * @param id The user id you want to remove.
28220   * @param shouldSoftDelete If true, then the user will be soft-deleted from the auth schema. Soft deletion allows user identification from the hashed user ID but is not reversible.
28221   * Defaults to false for backward compatibility.
28222   *
28223   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28224   *
28225   * @category Auth
28226   * @subcategory Auth Admin
28227   *
28228   * @remarks
28229   * - The `deleteUser()` method requires the user's ID, which maps to the `auth.users.id` column.
28230   *
28231   * @example Removes a user
28232   * ```js
28233   * const { data, error } = await supabase.auth.admin.deleteUser(
28234   *   '715ed5db-f090-4b8c-a067-640ecee36aa0'
28235   * )
28236   * ```
28237   *
28238   * @exampleResponse Removes a user
28239   * ```json
28240   * {
28241   *   "data": {
28242   *     "user": {}
28243   *   },
28244   *   "error": null
28245   * }
28246   * ```
28247   */
28248  async deleteUser(e, s = !1) {
28249    L1(e);
28250    try {
28251      return await N(this.fetch, "DELETE", `${this.url}/admin/users/${e}`, {
28252        headers: this.headers,
28253        body: {
28254          should_soft_delete: s
28255        },
28256        xform: _1
28257      });
28258    } catch (r) {
28259      if (B(r))
28260        return { data: { user: null }, error: r };
28261      throw r;
28262    }
28263  }
28264  async _listFactors(e) {
28265    L1(e.userId);
28266    try {
28267      const { data: s, error: r } = await N(this.fetch, "GET", `${this.url}/admin/users/${e.userId}/factors`, {
28268        headers: this.headers,
28269        xform: (n) => ({ data: { factors: n }, error: null })
28270      });
28271      return { data: s, error: r };
28272    } catch (s) {
28273      if (B(s))
28274        return { data: null, error: s };
28275      throw s;
28276    }
28277  }
28278  async _deleteFactor(e) {
28279    L1(e.userId), L1(e.id);
28280    try {
28281      return { data: await N(this.fetch, "DELETE", `${this.url}/admin/users/${e.userId}/factors/${e.id}`, {
28282        headers: this.headers
28283      }), error: null };
28284    } catch (s) {
28285      if (B(s))
28286        return { data: null, error: s };
28287      throw s;
28288    }
28289  }
28290  /**
28291   * Lists all OAuth clients with optional pagination.
28292   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28293   *
28294   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28295   */
28296  async _listOAuthClients(e) {
28297    var s, r, n, o, L, d, l;
28298    try {
28299      const g = { nextPage: null, lastPage: 0, total: 0 }, f = await N(this.fetch, "GET", `${this.url}/admin/oauth/clients`, {
28300        headers: this.headers,
28301        noResolveJson: !0,
28302        query: {
28303          page: (r = (s = e?.page) === null || s === void 0 ? void 0 : s.toString()) !== null && r !== void 0 ? r : "",
28304          per_page: (o = (n = e?.perPage) === null || n === void 0 ? void 0 : n.toString()) !== null && o !== void 0 ? o : ""
28305        },
28306        xform: b6
28307      });
28308      if (f.error)
28309        throw f.error;
28310      const p = await f.json(), M = (L = f.headers.get("x-total-count")) !== null && L !== void 0 ? L : 0, u = (l = (d = f.headers.get("link")) === null || d === void 0 ? void 0 : d.split(",")) !== null && l !== void 0 ? l : [];
28311      return u.length > 0 && (u.forEach((h) => {
28312        const x = parseInt(h.split(";")[0].split("=")[1].substring(0, 1)), _ = JSON.parse(h.split(";")[1].split("=")[1]);
28313        g[`${_}Page`] = x;
28314      }), g.total = parseInt(M)), { data: Object.assign(Object.assign({}, p), g), error: null };
28315    } catch (g) {
28316      if (B(g))
28317        return { data: { clients: [] }, error: g };
28318      throw g;
28319    }
28320  }
28321  /**
28322   * Creates a new OAuth client.
28323   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28324   *
28325   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28326   */
28327  async _createOAuthClient(e) {
28328    try {
28329      return await N(this.fetch, "POST", `${this.url}/admin/oauth/clients`, {
28330        body: e,
28331        headers: this.headers,
28332        xform: (s) => ({ data: s, error: null })
28333      });
28334    } catch (s) {
28335      if (B(s))
28336        return { data: null, error: s };
28337      throw s;
28338    }
28339  }
28340  /**
28341   * Gets details of a specific OAuth client.
28342   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28343   *
28344   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28345   */
28346  async _getOAuthClient(e) {
28347    try {
28348      return await N(this.fetch, "GET", `${this.url}/admin/oauth/clients/${e}`, {
28349        headers: this.headers,
28350        xform: (s) => ({ data: s, error: null })
28351      });
28352    } catch (s) {
28353      if (B(s))
28354        return { data: null, error: s };
28355      throw s;
28356    }
28357  }
28358  /**
28359   * Updates an existing OAuth client.
28360   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28361   *
28362   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28363   */
28364  async _updateOAuthClient(e, s) {
28365    try {
28366      return await N(this.fetch, "PUT", `${this.url}/admin/oauth/clients/${e}`, {
28367        body: s,
28368        headers: this.headers,
28369        xform: (r) => ({ data: r, error: null })
28370      });
28371    } catch (r) {
28372      if (B(r))
28373        return { data: null, error: r };
28374      throw r;
28375    }
28376  }
28377  /**
28378   * Deletes an OAuth client.
28379   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28380   *
28381   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28382   */
28383  async _deleteOAuthClient(e) {
28384    try {
28385      return await N(this.fetch, "DELETE", `${this.url}/admin/oauth/clients/${e}`, {
28386        headers: this.headers,
28387        noResolveJson: !0
28388      }), { data: null, error: null };
28389    } catch (s) {
28390      if (B(s))
28391        return { data: null, error: s };
28392      throw s;
28393    }
28394  }
28395  /**
28396   * Regenerates the secret for an OAuth client.
28397   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
28398   *
28399   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28400   */
28401  async _regenerateOAuthClientSecret(e) {
28402    try {
28403      return await N(this.fetch, "POST", `${this.url}/admin/oauth/clients/${e}/regenerate_secret`, {
28404        headers: this.headers,
28405        xform: (s) => ({ data: s, error: null })
28406      });
28407    } catch (s) {
28408      if (B(s))
28409        return { data: null, error: s };
28410      throw s;
28411    }
28412  }
28413  /**
28414   * Lists all custom providers with optional type filter.
28415   *
28416   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28417   */
28418  async _listCustomProviders(e) {
28419    try {
28420      const s = {};
28421      return e?.type && (s.type = e.type), await N(this.fetch, "GET", `${this.url}/admin/custom-providers`, {
28422        headers: this.headers,
28423        query: s,
28424        xform: (r) => {
28425          var n;
28426          return { data: { providers: (n = r?.providers) !== null && n !== void 0 ? n : [] }, error: null };
28427        }
28428      });
28429    } catch (s) {
28430      if (B(s))
28431        return { data: { providers: [] }, error: s };
28432      throw s;
28433    }
28434  }
28435  /**
28436   * Creates a new custom OIDC/OAuth provider.
28437   *
28438   * For OIDC providers, the server fetches and validates the OpenID Connect discovery document
28439   * from the issuer's well-known endpoint (or the provided `discovery_url`) at creation time.
28440   * This may return a validation error (`error_code: "validation_failed"`) if the discovery
28441   * document is unreachable, not valid JSON, missing required fields, or if the issuer
28442   * in the document does not match the expected issuer.
28443   *
28444   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28445   */
28446  async _createCustomProvider(e) {
28447    try {
28448      return await N(this.fetch, "POST", `${this.url}/admin/custom-providers`, {
28449        body: e,
28450        headers: this.headers,
28451        xform: (s) => ({ data: s, error: null })
28452      });
28453    } catch (s) {
28454      if (B(s))
28455        return { data: null, error: s };
28456      throw s;
28457    }
28458  }
28459  /**
28460   * Gets details of a specific custom provider by identifier.
28461   *
28462   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28463   */
28464  async _getCustomProvider(e) {
28465    try {
28466      return await N(this.fetch, "GET", `${this.url}/admin/custom-providers/${e}`, {
28467        headers: this.headers,
28468        xform: (s) => ({ data: s, error: null })
28469      });
28470    } catch (s) {
28471      if (B(s))
28472        return { data: null, error: s };
28473      throw s;
28474    }
28475  }
28476  /**
28477   * Updates an existing custom provider.
28478   *
28479   * When `issuer` or `discovery_url` is changed on an OIDC provider, the server re-fetches and
28480   * validates the discovery document before persisting. This may return a validation error
28481   * (`error_code: "validation_failed"`) if the discovery document is unreachable, invalid, or
28482   * the issuer does not match.
28483   *
28484   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28485   */
28486  async _updateCustomProvider(e, s) {
28487    try {
28488      return await N(this.fetch, "PUT", `${this.url}/admin/custom-providers/${e}`, {
28489        body: s,
28490        headers: this.headers,
28491        xform: (r) => ({ data: r, error: null })
28492      });
28493    } catch (r) {
28494      if (B(r))
28495        return { data: null, error: r };
28496      throw r;
28497    }
28498  }
28499  /**
28500   * Deletes a custom provider.
28501   *
28502   * This function should only be called on a server. Never expose your `service_role` key in the browser.
28503   */
28504  async _deleteCustomProvider(e) {
28505    try {
28506      return await N(this.fetch, "DELETE", `${this.url}/admin/custom-providers/${e}`, {
28507        headers: this.headers,
28508        noResolveJson: !0
28509      }), { data: null, error: null };
28510    } catch (s) {
28511      if (B(s))
28512        return { data: null, error: s };
28513      throw s;
28514    }
28515  }
28516  /**
28517   * Lists all passkeys for a user.
28518   *
28519   * This function should only be called on a server. Never expose your secret key in the browser.
28520   */
28521  async _adminListPasskeys(e) {
28522    L1(e.userId);
28523    try {
28524      return await N(this.fetch, "GET", `${this.url}/admin/users/${e.userId}/passkeys`, { headers: this.headers, xform: (s) => ({ data: s, error: null }) });
28525    } catch (s) {
28526      if (B(s))
28527        return { data: null, error: s };
28528      throw s;
28529    }
28530  }
28531  /**
28532   * Deletes a user's passkey.
28533   *
28534   * This function should only be called on a server. Never expose your secret key in the browser.
28535   */
28536  async _adminDeletePasskey(e) {
28537    L1(e.userId), L1(e.passkeyId);
28538    try {
28539      return await N(this.fetch, "DELETE", `${this.url}/admin/users/${e.userId}/passkeys/${e.passkeyId}`, { headers: this.headers, noResolveJson: !0 }), { data: null, error: null };
28540    } catch (s) {
28541      if (B(s))
28542        return { data: null, error: s };
28543      throw s;
28544    }
28545  }
28546}
28547function v6(t = {}) {
28548  return {
28549    getItem: (e) => t[e] || null,
28550    setItem: (e, s) => {
28551      t[e] = s;
28552    },
28553    removeItem: (e) => {
28554      delete t[e];
28555    }
28556  };
28557}
28558globalThis && ki() && globalThis.localStorage && globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug");
28559class sm extends Error {
28560  constructor(e) {
28561    super(e), this.isAcquireTimeout = !0;
28562  }
28563}
28564function im() {
28565  if (typeof globalThis != "object")
28566    try {
28567      Object.defineProperty(Object.prototype, "__magic__", {
28568        get: function() {
28569          return this;
28570        },
28571        configurable: !0
28572      }), __magic__.globalThis = __magic__, delete Object.prototype.__magic__;
28573    } catch {
28574      typeof self < "u" && (self.globalThis = self);
28575    }
28576}
28577function Ii(t) {
28578  if (!/^0x[a-fA-F0-9]{40}$/.test(t))
28579    throw new Error(`@supabase/auth-js: Address "${t}" is invalid.`);
28580  return t.toLowerCase();
28581}
28582function rm(t) {
28583  return parseInt(t, 16);
28584}
28585function nm(t) {
28586  const e = new TextEncoder().encode(t);
28587  return "0x" + Array.from(e, (r) => r.toString(16).padStart(2, "0")).join("");
28588}
28589function om(t) {
28590  var e;
28591  const { chainId: s, domain: r, expirationTime: n, issuedAt: o = /* @__PURE__ */ new Date(), nonce: L, notBefore: d, requestId: l, resources: g, scheme: f, uri: p, version: M } = t;
28592  {
28593    if (!Number.isInteger(s))
28594      throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${s}`);
28595    if (!r)
28596      throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');
28597    if (L && L.length < 8)
28598      throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${L}`);
28599    if (!p)
28600      throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');
28601    if (M !== "1")
28602      throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${M}`);
28603    if (!((e = t.statement) === null || e === void 0) && e.includes(`
28604`))
28605      throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${t.statement}`);
28606  }
28607  const u = Ii(t.address), h = f ? `${f}://${r}` : r, x = t.statement ? `${t.statement}
28608` : "", _ = `${h} wants you to sign in with your Ethereum account:
28609${u}
28610
28611${x}`;
28612  let v = `URI: ${p}
28613Version: ${M}
28614Chain ID: ${s}${L ? `
28615Nonce: ${L}` : ""}
28616Issued At: ${o.toISOString()}`;
28617  if (n && (v += `
28618Expiration Time: ${n.toISOString()}`), d && (v += `
28619Not Before: ${d.toISOString()}`), l && (v += `
28620Request ID: ${l}`), g) {
28621    let y = `
28622Resources:`;
28623    for (const b of g) {
28624      if (!b || typeof b != "string")
28625        throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${b}`);
28626      y += `
28627- ${b}`;
28628    }
28629    v += y;
28630  }
28631  return `${_}
28632${v}`;
28633}
28634class de extends Error {
28635  constructor({ message: e, code: s, cause: r, name: n }) {
28636    var o;
28637    super(e, { cause: r }), this.__isWebAuthnError = !0, this.name = (o = n ?? (r instanceof Error ? r.name : void 0)) !== null && o !== void 0 ? o : "Unknown Error", this.code = s;
28638  }
28639  toJSON() {
28640    return {
28641      name: this.name,
28642      message: this.message,
28643      code: this.code
28644    };
28645  }
28646}
28647class M3 extends de {
28648  constructor(e, s) {
28649    super({
28650      code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
28651      cause: s,
28652      message: e
28653    }), this.name = "WebAuthnUnknownError", this.originalError = s;
28654  }
28655}
28656function Lm({ error: t, options: e }) {
28657  var s, r, n;
28658  const { publicKey: o } = e;
28659  if (!o)
28660    throw Error("options was missing required publicKey property");
28661  if (t.name === "AbortError") {
28662    if (e.signal instanceof AbortSignal)
28663      return new de({
28664        message: "Registration ceremony was sent an abort signal",
28665        code: "ERROR_CEREMONY_ABORTED",
28666        cause: t
28667      });
28668  } else if (t.name === "ConstraintError") {
28669    if (((s = o.authenticatorSelection) === null || s === void 0 ? void 0 : s.requireResidentKey) === !0)
28670      return new de({
28671        message: "Discoverable credentials were required but no available authenticator supported it",
28672        code: "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",
28673        cause: t
28674      });
28675    if (
28676      // @ts-ignore: `mediation` doesn't yet exist on CredentialCreationOptions but it's possible as of Sept 2024
28677      e.mediation === "conditional" && ((r = o.authenticatorSelection) === null || r === void 0 ? void 0 : r.userVerification) === "required"
28678    )
28679      return new de({
28680        message: "User verification was required during automatic registration but it could not be performed",
28681        code: "ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",
28682        cause: t
28683      });
28684    if (((n = o.authenticatorSelection) === null || n === void 0 ? void 0 : n.userVerification) === "required")
28685      return new de({
28686        message: "User verification was required but no available authenticator supported it",
28687        code: "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",
28688        cause: t
28689      });
28690  } else {
28691    if (t.name === "InvalidStateError")
28692      return new de({
28693        message: "The authenticator was previously registered",
28694        code: "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",
28695        cause: t
28696      });
28697    if (t.name === "NotAllowedError")
28698      return new de({
28699        message: t.message,
28700        code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
28701        cause: t
28702      });
28703    if (t.name === "NotSupportedError")
28704      return o.pubKeyCredParams.filter((d) => d.type === "public-key").length === 0 ? new de({
28705        message: 'No entry in pubKeyCredParams was of type "public-key"',
28706        code: "ERROR_MALFORMED_PUBKEYCREDPARAMS",
28707        cause: t
28708      }) : new de({
28709        message: "No available authenticator supported any of the specified pubKeyCredParams algorithms",
28710        code: "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",
28711        cause: t
28712      });
28713    if (t.name === "SecurityError") {
28714      const L = window.location.hostname;
28715      if (Pi(L)) {
28716        if (o.rp.id !== L)
28717          return new de({
28718            message: `The RP ID "${o.rp.id}
28718" is invalid for this domain`,
28719            code: "ERROR_INVALID_RP_ID",
28720            cause: t
28721          });
28722      } else return new de({
28723        message: `${window.location.hostname} is an invalid domain`,
28724        code: "ERROR_INVALID_DOMAIN",
28725        cause: t
28726      });
28727    } else if (t.name === "TypeError") {
28728      if (o.user.id.byteLength < 1 || o.user.id.byteLength > 64)
28729        return new de({
28730          message: "User ID was not between 1 and 64 characters",
28731          code: "ERROR_INVALID_USER_ID_LENGTH",
28732          cause: t
28733        });
28734    } else if (t.name === "UnknownError")
28735      return new de({
28736        message: "The authenticator was unable to process the specified options, or could not create a new credential",
28737        code: "ERROR_AUTHENTICATOR_GENERAL_ERROR",
28738        cause: t
28739      });
28740  }
28741  return new de({
28742    message: "a Non-Webauthn related error has occurred",
28743    code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
28744    cause: t
28745  });
28746}
28747function cm({ error: t, options: e }) {
28748  const { publicKey: s } = e;
28749  if (!s)
28750    throw Error("options was missing required publicKey property");
28751  if (t.name === "AbortError") {
28752    if (e.signal instanceof AbortSignal)
28753      return new de({
28754        message: "Authentication ceremony was sent an abort signal",
28755        code: "ERROR_CEREMONY_ABORTED",
28756        cause: t
28757      });
28758  } else {
28759    if (t.name === "NotAllowedError")
28760      return new de({
28761        message: t.message,
28762        code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
28763        cause: t
28764      });
28765    if (t.name === "SecurityError") {
28766      const r = window.location.hostname;
28767      if (Pi(r)) {
28768        if (s.rpId !== r)
28769          return new de({
28770            message: `The RP ID "${s.rpId}" is invalid for this domain`,
28771            code: "ERROR_INVALID_RP_ID",
28772            cause: t
28773          });
28774      } else return new de({
28775        message: `${window.location.hostname} is an invalid domain`,
28776        code: "ERROR_INVALID_DOMAIN",
28777        cause: t
28778      });
28779    } else if (t.name === "UnknownError")
28780      return new de({
28781        message: "The authenticator was unable to process the specified options, or could not create a new assertion signature",
28782        code: "ERROR_AUTHENTICATOR_GENERAL_ERROR",
28783        cause: t
28784      });
28785  }
28786  return new de({
28787    message: "a Non-Webauthn related error has occurred",
28788    code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
28789    cause: t
28790  });
28791}
28792class lm {
28793  /**
28794   * Create an abort signal for a new WebAuthn operation.
28795   * Automatically cancels any existing operation.
28796   *
28797   * @returns {AbortSignal} Signal to pass to navigator.credentials.create() or .get()
28798   * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal MDN - AbortSignal}
28799   */
28800  createNewAbortSignal() {
28801    if (this.controller) {
28802      const s = new Error("Cancelling existing WebAuthn API call for new one");
28803      s.name = "AbortError", this.controller.abort(s);
28804    }
28805    const e = new AbortController();
28806    return this.controller = e, e.signal;
28807  }
28808  /**
28809   * Manually cancel the current WebAuthn operation.
28810   * Useful for cleaning up when user cancels or navigates away.
28811   *
28812   * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort MDN - AbortController.abort}
28813   */
28814  cancelCeremony() {
28815    if (this.controller) {
28816      const e = new Error("Manually cancelling existing WebAuthn API call");
28817      e.name = "AbortError", this.controller.abort(e), this.controller = void 0;
28818    }
28819  }
28820}
28821const r5 = new lm();
28822function y6(t) {
28823  if (!t)
28824    throw new Error("Credential creation options are required");
28825  if (typeof PublicKeyCredential < "u" && "parseCreationOptionsFromJSON" in PublicKeyCredential && typeof PublicKeyCredential.parseCreationOptionsFromJSON == "function")
28826    return PublicKeyCredential.parseCreationOptionsFromJSON(
28827      /** we assert the options here as typescript still doesn't know about future webauthn types */
28828      t
28829    );
28830  const { challenge: e, user: s, excludeCredentials: r } = t, n = j3(
28831    t,
28832    ["challenge", "user", "excludeCredentials"]
28833  ), o = _t(e).buffer, L = Object.assign(Object.assign({}, s), { id: _t(s.id).buffer }), d = Object.assign(Object.assign({}, n), {
28834    challenge: o,
28835    user: L
28836  });
28837  if (r && r.length > 0) {
28838    d.excludeCredentials = new Array(r.length);
28839    for (let l = 0; l < r.length; l++) {
28840      const g = r[l];
28841      d.excludeCredentials[l] = Object.assign(Object.assign({}, g), {
28842        id: _t(g.id).buffer,
28843        type: g.type || "public-key",
28844        // Cast transports to handle future transport types like "cable"
28845        transports: g.transports
28846      });
28847    }
28848  }
28849  return d;
28850}
28851function w6(t) {
28852  if (!t)
28853    throw new Error("Credential request options are required");
28854  if (typeof PublicKeyCredential < "u" && "parseRequestOptionsFromJSON" in PublicKeyCredential && typeof PublicKeyCredential.parseRequestOptionsFromJSON == "function")
28855    return PublicKeyCredential.parseRequestOptionsFromJSON(t);
28856  const { challenge: e, allowCredentials: s } = t, r = j3(
28857    t,
28858    ["challenge", "allowCredentials"]
28859  ), n = _t(e).buffer, o = Object.assign(Object.assign({}, r), { challenge: n });
28860  if (s && s.length > 0) {
28861    o.allowCredentials = new Array(s.length);
28862    for (let L = 0; L < s.length; L++) {
28863      const d = s[L];
28864      o.allowCredentials[L] = Object.assign(Object.assign({}, d), {
28865        id: _t(d.id).buffer,
28866        type: d.type || "public-key",
28867        // Cast transports to handle future transport types like "cable"
28868        transports: d.transports
28869      });
28870    }
28871  }
28872  return o;
28873}
28874function T6(t) {
28875  var e;
28876  if ("toJSON" in t && typeof t.toJSON == "function")
28877    return t.toJSON();
28878  const s = t;
28879  return {
28880    id: t.id,
28881    rawId: t.id,
28882    response: {
28883      attestationObject: Z1(new Uint8Array(t.response.attestationObject)),
28884      clientDataJSON: Z1(new Uint8Array(t.response.clientDataJSON))
28885    },
28886    type: "public-key",
28887    clientExtensionResults: t.getClientExtensionResults(),
28888    // Convert null to undefined and cast to AuthenticatorAttachment type
28889    authenticatorAttachment: (e = s.authenticatorAttachment) !== null && e !== void 0 ? e : void 0
28890  };
28891}
28892function S6(t) {
28893  var e;
28894  if ("toJSON" in t && typeof t.toJSON == "function")
28895    return t.toJSON();
28896  const s = t, r = t.getClientExtensionResults(), n = t.response;
28897  return {
28898    id: t.id,
28899    rawId: t.id,
28900    // W3C spec expects rawId to match id for JSON format
28901    response: {
28902      authenticatorData: Z1(new Uint8Array(n.authenticatorData)),
28903      clientDataJSON: Z1(new Uint8Array(n.clientDataJSON)),
28904      signature: Z1(new Uint8Array(n.signature)),
28905      userHandle: n.userHandle ? Z1(new Uint8Array(n.userHandle)) : void 0
28906    },
28907    type: "public-key",
28908    clientExtensionResults: r,
28909    // Convert null to undefined and cast to AuthenticatorAttachment type
28910    authenticatorAttachment: (e = s.authenticatorAttachment) !== null && e !== void 0 ? e : void 0
28911  };
28912}
28913function Pi(t) {
28914  return (
28915    // Consider localhost valid as well since it's okay wrt Secure Contexts
28916    t === "localhost" || /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)
28917  );
28918}
28919function u3() {
28920  var t, e;
28921  return !!(_e() && "PublicKeyCredential" in window && window.PublicKeyCredential && "credentials" in navigator && typeof ((t = navigator?.credentials) === null || t === void 0 ? void 0 : t.create) == "function" && typeof ((e = navigator?.credentials) === null || e === void 0 ? void 0 : e.get) == "function");
28922}
28923async function Ci(t) {
28924  try {
28925    const e = await navigator.credentials.create(
28926      /** we assert the type here until typescript types are updated */
28927      t
28928    );
28929    return e ? e instanceof PublicKeyCredential ? { data: e, error: null } : {
28930      data: null,
28931      error: new M3("Browser returned unexpected credential type", e)
28932    } : {
28933      data: null,
28934      error: new M3("Empty credential response", e)
28935    };
28936  } catch (e) {
28937    return {
28938      data: null,
28939      error: Lm({
28940        error: e,
28941        options: t
28942      })
28943    };
28944  }
28945}
28946async function Fi(t) {
28947  try {
28948    const e = await navigator.credentials.get(
28949      /** we assert the type here until typescript types are updated */
28950      t
28951    );
28952    return e ? e instanceof PublicKeyCredential ? { data: e, error: null } : {
28953      data: null,
28954      error: new M3("Browser returned unexpected credential type", e)
28955    } : {
28956      data: null,
28957      error: new M3("Empty credential response", e)
28958    };
28959  } catch (e) {
28960    return {
28961      data: null,
28962      error: cm({
28963        error: e,
28964        options: t
28965      })
28966    };
28967  }
28968}
28969const dm = {
28970  hints: ["security-key"],
28971  authenticatorSelection: {
28972    authenticatorAttachment: "cross-platform",
28973    requireResidentKey: !1,
28974    /** set to preferred because older yubikeys don't have PIN/Biometric */
28975    userVerification: "preferred",
28976    residentKey: "discouraged"
28977  },
28978  attestation: "direct"
28979}, gm = {
28980  /** set to preferred because older yubikeys don't have PIN/Biometric */
28981  userVerification: "preferred",
28982  hints: ["security-key"],
28983  attestation: "direct"
28984};
28985function h3(...t) {
28986  const e = (n) => n !== null && typeof n == "object" && !Array.isArray(n), s = (n) => n instanceof ArrayBuffer || ArrayBuffer.isView(n), r = {};
28987  for (const n of t)
28988    if (n)
28989      for (const o in n) {
28990        const L = n[o];
28991        if (L !== void 0)
28992          if (Array.isArray(L))
28993            r[o] = L;
28994          else if (s(L))
28995            r[o] = L;
28996          else if (e(L)) {
28997            const d = r[o];
28998            e(d) ? r[o] = h3(d, L) : r[o] = h3(L);
28999          } else
29000            r[o] = L;
29001      }
29002  return r;
29003}
29004function fm(t, e) {
29005  return h3(dm, t, e || {});
29006}
29007function pm(t, e) {
29008  return h3(gm, t, e || {});
29009}
29010class Mm {
29011  constructor(e) {
29012    this.client = e, this.enroll = this._enroll.bind(this), this.challenge = this._challenge.bind(this), this.verify = this._verify.bind(this), this.authenticate = this._authenticate.bind(this), this.register = this._register.bind(this);
29013  }
29014  /**
29015   * Enroll a new WebAuthn factor.
29016   * Creates an unverified WebAuthn factor that must be verified with a credential.
29017   *
29018   * @experimental This method is experimental and may change in future releases
29019   * @param {Omit<MFAEnrollWebauthnParams, 'factorType'>} params - Enrollment parameters (friendlyName required)
29020   * @returns {Promise<AuthMFAEnrollWebauthnResponse>} Enrolled factor details or error
29021   * @see {@link https://w3c.github.io/webauthn/#sctn-registering-a-new-credential W3C WebAuthn Spec - Registering a New Credential}
29022   */
29023  async _enroll(e) {
29024    return this.client.mfa.enroll(Object.assign(Object.assign({}, e), { factorType: "webauthn" }));
29025  }
29026  /**
29027   * Challenge for WebAuthn credential creation or authentication.
29028   * Combines server challenge with browser credential operations.
29029   * Handles both registration (create) and authentication (request) flows.
29030   *
29031   * @experimental This method is experimental and may change in future releases
29032   * @param {MFAChallengeWebauthnParams & { friendlyName?: string; signal?: AbortSignal }} params - Challenge parameters including factorId
29033   * @param {Object} overrides - Allows you to override the parameters passed to navigator.credentials
29034   * @param {PublicKeyCredentialCreationOptionsFuture} overrides.create - Override options for credential creation
29035   * @param {PublicKeyCredentialRequestOptionsFuture} overrides.request - Override options for credential request
29036   * @returns {Promise<RequestResult>} Challenge response with credential or error
29037   * @see {@link https://w3c.github.io/webauthn/#sctn-credential-creation W3C WebAuthn Spec - Credential Creation}
29038   * @see {@link https://w3c.github.io/webauthn/#sctn-verifying-assertion W3C WebAuthn Spec - Verifying Assertion}
29039   */
29040  async _challenge({ factorId: e, webauthn: s, friendlyName: r, signal: n }, o) {
29041    var L;
29042    try {
29043      const { data: d, error: l } = await this.client.mfa.challenge({
29044        factorId: e,
29045        webauthn: s
29046      });
29047      if (!d)
29048        return { data: null, error: l };
29049      const g = n ?? r5.createNewAbortSignal();
29050      if (d.webauthn.type === "create") {
29051        const { user: f } = d.webauthn.credential_options.publicKey;
29052        if (!f.name) {
29053          const p = r;
29054          if (p)
29055            f.name = `${f.id}:${p}`;
29056          else {
29057            const u = (await this.client.getUser()).data.user, h = ((L = u?.user_metadata) === null || L === void 0 ? void 0 : L.name) || u?.email || u?.id || "User";
29058            f.name = `${f.id}:${h}`;
29059          }
29060        }
29061        f.displayName || (f.displayName = f.name);
29062      }
29063      switch (d.webauthn.type) {
29064        case "create": {
29065          const f = fm(d.webauthn.credential_options.publicKey, o?.create), { data: p, error: M } = await Ci({
29066            publicKey: f,
29067            signal: g
29068          });
29069          return p ? {
29070            data: {
29071              factorId: e,
29072              challengeId: d.id,
29073              webauthn: {
29074                type: d.webauthn.type,
29075                credential_response: p
29076              }
29077            },
29078            error: null
29079          } : { data: null, error: M };
29080        }
29081        case "request": {
29082          const f = pm(d.webauthn.credential_options.publicKey, o?.request), { data: p, error: M } = await Fi(Object.assign(Object.assign({}, d.webauthn.credential_options), { publicKey: f, signal: g }));
29083          return p ? {
29084            data: {
29085              factorId: e,
29086              challengeId: d.id,
29087              webauthn: {
29088                type: d.webauthn.type,
29089                credential_response: p
29090              }
29091            },
29092            error: null
29093          } : { data: null, error: M };
29094        }
29095      }
29096    } catch (d) {
29097      return B(d) ? { data: null, error: d } : {
29098        data: null,
29099        error: new $e("Unexpected error in challenge", d)
29100      };
29101    }
29102  }
29103  /**
29104   * Verify a WebAuthn credential with the server.
29105   * Completes the WebAuthn ceremony by sending the credential to the server for verification.
29106   *
29107   * @experimental This method is experimental and may change in future releases
29108   * @param {Object} params - Verification parameters
29109   * @param {string} params.challengeId - ID of the challenge being verified
29110   * @param {string} params.factorId - ID of the WebAuthn factor
29111   * @param {MFAVerifyWebauthnParams<T>['webauthn']} params.webauthn - WebAuthn credential response
29112   * @returns {Promise<AuthMFAVerifyResponse>} Verification result with session or error
29113   * @see {@link https://w3c.github.io/webauthn/#sctn-verifying-assertion W3C WebAuthn Spec - Verifying an Authentication Assertion}
29114   * */
29115  async _verify({ challengeId: e, factorId: s, webauthn: r }) {
29116    return this.client.mfa.verify({
29117      factorId: s,
29118      challengeId: e,
29119      webauthn: r
29120    });
29121  }
29122  /**
29123   * Complete WebAuthn authentication flow.
29124   * Performs challenge and verification in a single operation for existing credentials.
29125   *
29126   * @experimental This method is experimental and may change in future releases
29127   * @param {Object} params - Authentication parameters
29128   * @param {string} params.factorId - ID of the WebAuthn factor to authenticate with
29129   * @param {Object} params.webauthn - WebAuthn configuration
29130   * @param {string} params.webauthn.rpId - Relying Party ID (defaults to current hostname)
29131   * @param {string[]} params.webauthn.rpOrigins - Allowed origins (defaults to current origin)
29132   * @param {AbortSignal} params.webauthn.signal - Optional abort signal
29133   * @param {PublicKeyCredentialRequestOptionsFuture} overrides - Override options for navigator.credentials.get
29134   * @returns {Promise<RequestResult<AuthMFAVerifyResponseData, WebAuthnError | AuthError>>} Authentication result
29135   * @see {@link https://w3c.github.io/webauthn/#sctn-authentication W3C WebAuthn Spec - Authentication Ceremony}
29136   * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredentialRequestOptions MDN - PublicKeyCredentialRequestOptions}
29137   */
29138  async _authenticate({ factorId: e, webauthn: { rpId: s = typeof window < "u" ? window.location.hostname : void 0, rpOrigins: r = typeof window < "u" ? [window.location.origin] : void 0, signal: n } = {} }, o) {
29139    if (!s)
29140      return {
29141        data: null,
29142        error: new L2("rpId is required for WebAuthn authentication")
29143      };
29144    try {
29145      if (!u3())
29146        return {
29147          data: null,
29148          error: new $e("Browser does not support WebAuthn", null)
29149        };
29150      const { data: L, error: d } = await this.challenge({
29151        factorId: e,
29152        webauthn: { rpId: s, rpOrigins: r },
29153        signal: n
29154      }, { request: o });
29155      if (!L)
29156        return { data: null, error: d };
29157      const { webauthn: l } = L;
29158      return this._verify({
29159        factorId: e,
29160        challengeId: L.challengeId,
29161        webauthn: {
29162          type: l.type,
29163          rpId: s,
29164          rpOrigins: r,
29165          credential_response: l.credential_response
29166        }
29167      });
29168    } catch (L) {
29169      return B(L) ? { data: null, error: L } : {
29170        data: null,
29171        error: new $e("Unexpected error in authenticate", L)
29172      };
29173    }
29174  }
29175  /**
29176   * Complete WebAuthn registration flow.
29177   * Performs enrollment, challenge, and verification in a single operation for new credentials.
29178   *
29179   * @experimental This method is experimental and may change in future releases
29180   * @param {Object} params - Registration parameters
29181   * @param {string} params.friendlyName - User-friendly name for the credential
29182   * @param {string} params.rpId - Relying Party ID (defaults to current hostname)
29183   * @param {string[]} params.rpOrigins - Allowed origins (defaults to current origin)
29184   * @param {AbortSignal} params.signal - Optional abort signal
29185   * @param {PublicKeyCredentialCreationOptionsFuture} overrides - Override options for navigator.credentials.create
29186   * @returns {Promise<RequestResult<AuthMFAVerifyResponseData, WebAuthnError | AuthError>>} Registration result
29187   * @see {@link https://w3c.github.io/webauthn/#sctn-registering-a-new-credential W3C WebAuthn Spec - Registration Ceremony}
29188   * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredentialCreationOptions MDN - PublicKeyCredentialCreationOptions}
29189   */
29190  async _register({ friendlyName: e, webauthn: { rpId: s = typeof window < "u" ? window.location.hostname : void 0, rpOrigins: r = typeof window < "u" ? [window.location.origin] : void 0, signal: n } = {} }, o) {
29191    if (!s)
29192      return {
29193        data: null,
29194        error: new L2("rpId is required for WebAuthn registration")
29195      };
29196    try {
29197      if (!u3())
29198        return {
29199          data: null,
29200          error: new $e("Browser does not support WebAuthn", null)
29201        };
29202      const { data: L, error: d } = await this._enroll({
29203        friendlyName: e
29204      });
29205      if (!L)
29206        return await this.client.mfa.listFactors().then((f) => {
29207          var p;
29208          return (p = f.data) === null || p === void 0 ? void 0 : p.all.find((M) => M.factor_type === "webauthn" && M.friendly_name === e && M.status === "unverified");
29209        }).then((f) => f ? this.client.mfa.unenroll({ factorId: f?.id }) : void 0), { data: null, error: d };
29210      const { data: l, error: g } = await this._challenge({
29211        factorId: L.id,
29212        friendlyName: L.friendly_name,
29213        webauthn: { rpId: s, rpOrigins: r },
29214        signal: n
29215      }, {
29216        create: o
29217      });
29218      return l ? this._verify({
29219        factorId: L.id,
29220        challengeId: l.challengeId,
29221        webauthn: {
29222          rpId: s,
29223          rpOrigins: r,
29224          type: l.webauthn.type,
29225          credential_response: l.webauthn.credential_response
29226        }
29227      }) : { data: null, error: g };
29228    } catch (L) {
29229      return B(L) ? { data: null, error: L } : {
29230        data: null,
29231        error: new $e("Unexpected error in register", L)
29232      };
29233    }
29234  }
29235}
29236im();
29237const um = {
29238  url: hh,
29239  storageKey: mh,
29240  autoRefreshToken: !0,
29241  persistSession: !0,
29242  detectSessionInUrl: !0,
29243  headers: xh,
29244  flowType: "implicit",
29245  debug: !1,
29246  hasCustomAuthorizationHeader: !1,
29247  throwOnError: !1,
29248  lockAcquireTimeout: 5e3,
29249  // 5 seconds. Only used when a custom `lock` is supplied. TODO(v3): remove.
29250  skipAutoInitialize: !1,
29251  experimental: {}
29252}, tt = {};
29253let B6 = !1;
29254class l2 {
29255  /**
29256   * The JWKS used for verifying asymmetric JWTs
29257   */
29258  get jwks() {
29259    var e, s;
29260    return (s = (e = tt[this.storageKey]) === null || e === void 0 ? void 0 : e.jwks) !== null && s !== void 0 ? s : { keys: [] };
29261  }
29262  set jwks(e) {
29263    tt[this.storageKey] = Object.assign(Object.assign({}, tt[this.storageKey]), { jwks: e });
29264  }
29265  get jwks_cached_at() {
29266    var e, s;
29267    return (s = (e = tt[this.storageKey]) === null || e === void 0 ? void 0 : e.cachedAt) !== null && s !== void 0 ? s : Number.MIN_SAFE_INTEGER;
29268  }
29269  set jwks_cached_at(e) {
29270    tt[this.storageKey] = Object.assign(Object.assign({}, tt[this.storageKey]), { cachedAt: e });
29271  }
29272  /**
29273   * Create a new client for use in the browser.
29274   *
29275   * @example Using supabase-js (recommended)
29276   * ```ts
29277   * import { createClient } from '@supabase/supabase-js'
29278   *
29279   * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
29280   * const { data, error } = await supabase.auth.getUser()
29281   * ```
29282   *
29283   * @example Standalone import for bundle-sensitive environments
29284   * ```ts
29285   * import { GoTrueClient } from '@supabase/auth-js'
29286   *
29287   * const auth = new GoTrueClient({
29288   *   url: 'https://xyzcompany.supabase.co/auth/v1',
29289   *   headers: { apikey: 'your-publishable-key' },
29290   *   storageKey: 'supabase-auth',
29291   * })
29292   * ```
29293   */
29294  constructor(e) {
29295    var s, r, n;
29296    this.userStorage = null, this.memoryStorage = null, this.stateChangeEmitters = /* @__PURE__ */ new Map(), this.autoRefreshTicker = null, this.autoRefreshTickTimeout = null, this.visibilityChangedCallback = null, this.refreshingDeferred = null, this.lastRefreshFailure = null, this._sessionRemovalEpoch = 0, this.initializePromise = null, this._pendingInitNotifications = null, this.detectSessionInUrl = !0, this.hasCustomAuthorizationHeader = !1, this.suppressGetSessionWarning = !1, this.lock = null, this.lockAcquired = !1, this.pendingInLock = [], this.broadcastChannel = null, this.logger = console.log;
29297    const o = Object.assign(Object.assign({}, um), e);
29298    if (this.storageKey = o.storageKey, this.instanceID = (s = l2.nextInstanceID[this.storageKey]) !== null && s !== void 0 ? s : 0, l2.nextInstanceID[this.storageKey] = this.instanceID + 1, this.logDebugMessages = !!o.debug, typeof o.debug == "function" && (this.logger = o.debug), this.instanceID > 0 && _e()) {
29299      const L = `${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;
29300      console.warn(L), this.logDebugMessages && console.trace(L);
29301    }
29302    if (this.persistSession = o.persistSession, this.autoRefreshToken = o.autoRefreshToken, this.experimental = (r = o.experimental) !== null && r !== void 0 ? r : {}, this.admin = new am({
29303      url: o.url,
29304      headers: o.headers,
29305      fetch: o.fetch,
29306      experimental: this.experimental
29307    }), this.url = o.url, this.headers = o.headers, this.fetch = Ai(o.fetch), this.detectSessionInUrl = o.detectSessionInUrl, this.flowType = o.flowType, this.hasCustomAuthorizationHeader = o.hasCustomAuthorizationHeader, this.throwOnError = o.throwOnError, this.lockAcquireTimeout = o.lockAcquireTimeout, o.lock != null && (this.lock = o.lock, B6 || (B6 = !0, console.warn(`${this._logPrefix()} The "lock" option is deprecated and will be removed in v3. The client now coordinates session refreshes without a lock, so most apps can drop the option. See https://github.com/supabase/supabase-js/blob/master/packages/core/auth-js/migrations/lockless-coordination.md`))), this.jwks || (this.jwks = { keys: [] }, this.jwks_cached_at = Number.MIN_SAFE_INTEGER), this.mfa = {
29308      verify: this._verify.bind(this),
29309      enroll: this._enroll.bind(this),
29310      unenroll: this._unenroll.bind(this),
29311      challenge: this._challenge.bind(this),
29312      listFactors: this._listFactors.bind(this),
29313      challengeAndVerify: this._challengeAndVerify.bind(this),
29314      getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),
29315      webauthn: new Mm(this),
29316      recoveryCodes: {
29317        getStatus: this._getRecoveryCodesStatus.bind(this),
29318        generate: this._generateRecoveryCodes.bind(this),
29319        verify: this._verifyRecoveryCode.bind(this),
29320        regenerate: this._regenerateRecoveryCodes.bind(this),
29321        unenroll: this._unenrollRecoveryCodes.bind(this)
29322      }
29323    }, this.oauth = {
29324      getAuthorizationDetails: this._getAuthorizationDetails.bind(this),
29325      approveAuthorization: this._approveAuthorization.bind(this),
29326      denyAuthorization: this._denyAuthorization.bind(this),
29327      listGrants: this._listOAuthGrants.bind(this),
29328      revokeGrant: this._revokeOAuthGrant.bind(this)
29329    }, this.passkey = {
29330      startRegistration: this._startPasskeyRegistration.bind(this),
29331      verifyRegistration: this._verifyPasskeyRegistration.bind(this),
29332      startAuthentication: this._startPasskeyAuthentication.bind(this),
29333      verifyAuthentication: this._verifyPasskeyAuthentication.bind(this),
29334      list: this._listPasskeys.bind(this),
29335      update: this._updatePasskey.bind(this),
29336      delete: this._deletePasskey.bind(this)
29337    }, this.persistSession ? (o.storage ? this.storage = o.storage : ki() ? this.storage = globalThis.localStorage : (this.memoryStorage = {}, this.storage = v6(this.memoryStorage)), o.userStorage && (this.userStorage = o.userStorage)) : (this.memoryStorage = {}, this.storage = v6(this.memoryStorage)), _e() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {
29338      try {
29339        this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey);
29340      } catch (L) {
29341        console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available", L);
29342      }
29343      (n = this.broadcastChannel) === null || n === void 0 || n.addEventListener("message", async (L) => {
29344        this._debug("received broadcast notification from other tab or client", L), (L.data.event === "TOKEN_REFRESHED" || L.data.event === "SIGNED_IN") && (this.lastRefreshFailure = null);
29345        try {
29346          await this._notifyAllSubscribers(L.data.event, L.data.session, !1);
29347        } catch (d) {
29348          this._debug("#broadcastChannel", "error", d);
29349        }
29350      });
29351    }
29352    o.skipAutoInitialize || this.initialize().catch((L) => {
29353      this._debug("#initialize()", "error", L);
29354    });
29355  }
29356  /**
29357   * Returns whether error throwing mode is enabled for this client.
29358   */
29359  isThrowOnErrorEnabled() {
29360    return this.throwOnError;
29361  }
29362  /**
29363   * Centralizes return handling with optional error throwing. When `throwOnError` is enabled
29364   * and the provided result contains a non-nullish error, the error is thrown instead of
29365   * being returned. This ensures consistent behavior across all public API methods.
29366   */
29367  _returnResult(e) {
29368    if (this.throwOnError && e && e.error)
29369      throw e.error;
29370    return e;
29371  }
29372  _logPrefix() {
29373    return `GoTrueClient@${this.storageKey}:${this.instanceID} (${wi}) ${(/* @__PURE__ */ new Date()).toISOString()}`;
29374  }
29375  _debug(...e) {
29376    return this.logDebugMessages && this.logger(this._logPrefix(), ...e), this;
29377  }
29378  /**
29379   * Initialize the auth client by loading the session from storage or
29380   * detecting it from the URL after an OAuth, magic-link, or password-recovery
29381   * redirect.
29382   *
29383   * **Most callers do not need to invoke this directly.** The client calls it
29384   * automatically during construction, and to react to sign-in events (including
29385   * post-redirect events) you should subscribe to `onAuthStateChange` rather
29386   * than awaiting `initialize()`.
29387   *
29388   * You only need to call it manually when you have opted out of the automatic
29389   * call by passing `skipAutoInitialize: true` — for example, in an SSR context
29390   * where you need to control initialization timing. In that case, awaiting
29391   * `initialize()` returns the resolved session result (or any error encountered
29392   * while detecting it from the URL).
29393   *
29394   * @category Auth
29395   */
29396  async initialize() {
29397    var e;
29398    if (this.initializePromise)
29399      return await this.initializePromise;
29400    this._pendingInitNotifications = [], this.initializePromise = (async () => this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._initialize()) : await this._initialize())();
29401    const s = await this.initializePromise, r = (e = this._pendingInitNotifications) !== null && e !== void 0 ? e : [];
29402    this._pendingInitNotifications = null;
29403    for (const n of r)
29404      await this._notifyAllSubscribers(n.event, n.session, n.broadcast);
29405    return s;
29406  }
29407  /**
29408   * IMPORTANT:
29409   * 1. Never throw in this method, as it is called from the constructor
29410   * 2. Never return a session from this method as it would be cached over
29411   *    the whole lifetime of the client
29412   */
29413  async _initialize() {
29414    var e;
29415    try {
29416      let s = {}, r = "none";
29417      if (_e() && (s = u6(window.location.href), this._isImplicitGrantCallback(s) ? r = "implicit" : await this._isPKCECallback(s) && (r = "pkce")), _e() && this.detectSessionInUrl && r !== "none") {
29418        const { data: n, error: o } = await this._getSessionFromURL(s, r);
29419        if (o) {
29420          if (this._debug("#_initialize()", "error detecting session from URL", o), wh(o)) {
29421            const l = (e = o.details) === null || e === void 0 ? void 0 : e.code;
29422            if (l === "identity_already_exists" || l === "identity_not_found" || l === "single_identity_not_deletable")
29423              return { error: o };
29424          }
29425          return { error: o };
29426        }
29427        const { session: L, redirectType: d } = n;
29428        return this._debug("#_initialize()", "detected session in URL", L, "redirect type", d), await this._saveSession(L), setTimeout(async () => {
29429          d === "recovery" ? await this._notifyAllSubscribers("PASSWORD_RECOVERY", L) : await this._notifyAllSubscribers("SIGNED_IN", L);
29430        }, 0), { error: null };
29431      }
29432      return await this._recoverAndRefresh(), { error: null };
29433    } catch (s) {
29434      return B(s) ? this._returnResult({ error: s }) : this._returnResult({
29435        error: new $e("Unexpected error during initialization", s)
29436      });
29437    } finally {
29438      await this._handleVisibilityChange(), this._debug("#_initialize()", "end");
29439    }
29440  }
29441  /**
29442   * Creates a new anonymous user.
29443   *
29444   * @returns A session where the is_anonymous claim in the access token JWT set to true
29445   *
29446   * @category Auth
29447   *
29448   * @remarks
29449   * - Returns an anonymous user
29450   * - It is recommended to set up captcha for anonymous sign-ins to prevent abuse. You can pass in the captcha token in the `options` param.
29451   *
29452   * @example Create an anonymous user
29453   * ```js
29454   * const { data, error } = await supabase.auth.signInAnonymously({
29455   *   options: {
29456   *     captchaToken
29457   *   }
29458   * });
29459   * ```
29460   *
29461   * @exampleResponse Create an anonymous user
29462   * ```json
29463   * {
29464   *   "data": {
29465   *     "user": {
29466   *       "id": "11111111-1111-1111-1111-111111111111",
29467   *       "aud": "authenticated",
29468   *       "role": "authenticated",
29469   *       "email": "",
29470   *       "phone": "",
29471   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
29472   *       "app_metadata": {},
29473   *       "user_metadata": {},
29474   *       "identities": [],
29475   *       "created_at": "2024-01-01T00:00:00Z",
29476   *       "updated_at": "2024-01-01T00:00:00Z",
29477   *       "is_anonymous": true
29478   *     },
29479   *     "session": {
29480   *       "access_token": "<ACCESS_TOKEN>",
29481   *       "token_type": "bearer",
29482   *       "expires_in": 3600,
29483   *       "expires_at": 1700000000,
29484   *       "refresh_token": "<REFRESH_TOKEN>",
29485   *       "user": {
29486   *         "id": "11111111-1111-1111-1111-111111111111",
29487   *         "aud": "authenticated",
29488   *         "role": "authenticated",
29489   *         "email": "",
29490   *         "phone": "",
29491   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
29492   *         "app_metadata": {},
29493   *         "user_metadata": {},
29494   *         "identities": [],
29495   *         "created_at": "2024-01-01T00:00:00Z",
29496   *         "updated_at": "2024-01-01T00:00:00Z",
29497   *         "is_anonymous": true
29498   *       }
29499   *     }
29500   *   },
29501   *   "error": null
29502   * }
29503   * ```
29504   *
29505   * @example Create an anonymous user with custom user metadata
29506   * ```js
29507   * const { data, error } = await supabase.auth.signInAnonymously({
29508   *   options: {
29509   *     data
29510   *   }
29511   * })
29512   * ```
29513   */
29514  async signInAnonymously(e) {
29515    var s, r, n;
29516    try {
29517      const o = await N(this.fetch, "POST", `${this.url}/signup`, {
29518        headers: this.headers,
29519        body: {
29520          data: (r = (s = e?.options) === null || s === void 0 ? void 0 : s.data) !== null && r !== void 0 ? r : {},
29521          gotrue_meta_security: { captcha_token: (n = e?.options) === null || n === void 0 ? void 0 : n.captchaToken }
29522        },
29523        xform: De
29524      }), { data: L, error: d } = o;
29525      if (d || !L)
29526        return this._returnResult({ data: { user: null, session: null }, error: d });
29527      const l = L.session, g = L.user;
29528      return L.session && (await this._saveSession(L.session), await this._notifyAllSubscribers("SIGNED_IN", l)), this._returnResult({ data: { user: g, session: l }, error: null });
29529    } catch (o) {
29530      if (B(o))
29531        return this._returnResult({ data: { user: null, session: null }, error: o });
29532      throw o;
29533    }
29534  }
29535  /**
29536   * Creates a new user.
29537   *
29538   * Be aware that if a user account exists in the system you may get back an
29539   * error message that attempts to hide this information from the user.
29540   * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.
29541   *
29542   * @returns A logged-in session if the server has "autoconfirm" ON
29543   * @returns A user if the server has "autoconfirm" OFF
29544   *
29545   * @category Auth
29546   *
29547   * @remarks
29548   * - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](/dashboard/project/_/auth/providers).
29549   * - **Confirm email** determines if users need to confirm their email address after signing up.
29550   *   - If **Confirm email** is enabled, a `user` is returned but `session` is null.
29551   *   - If **Confirm email** is disabled, both a `user` and a `session` are returned.
29552   * - When the user confirms their email address, they are redirected to the [`SITE_URL`](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](/dashboard/project/_/auth/url-configuration).
29553   * - If signUp() is called for an existing confirmed user:
29554   *   - When both **Confirm email** and **Confirm phone** (even when phone provider is disabled) are enabled in [your project](/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned.
29555   *   - When either **Confirm email** or **Confirm phone** (even when phone provider is disabled) is disabled, the error message, `User already registered` is returned.
29556   * - To fetch the currently logged-in user, refer to [`getUser()`](/docs/reference/javascript/auth-getuser).
29557   *
29558   * @example Sign up with an email and password
29559   * ```js
29560   * const { data, error } = await supabase.auth.signUp({
29561   *   email: '[email protected]',
29562   *   password: 'example-password',
29563   * })
29564   * ```
29565   *
29566   * @exampleResponse Sign up with an email and password
29567   * ```json
29568   * // Some fields may be null if "confirm email" is enabled.
29569   * {
29570   *   "data": {
29571   *     "user": {
29572   *       "id": "11111111-1111-1111-1111-111111111111",
29573   *       "aud": "authenticated",
29574   *       "role": "authenticated",
29575   *       "email": "[email protected]",
29576   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
29577   *       "phone": "",
29578   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
29579   *       "app_metadata": {
29580   *         "provider": "email",
29581   *         "providers": [
29582   *           "email"
29583   *         ]
29584   *       },
29585   *       "user_metadata": {},
29586   *       "identities": [
29587   *         {
29588   *           "identity_id": "22222222-2222-2222-2222-222222222222",
29589   *           "id": "11111111-1111-1111-1111-111111111111",
29590   *           "user_id": "11111111-1111-1111-1111-111111111111",
29591   *           "identity_data": {
29592   *             "email": "[email protected]",
29593   *             "email_verified": false,
29594   *             "phone_verified": false,
29595   *             "sub": "11111111-1111-1111-1111-111111111111"
29596   *           },
29597   *           "provider": "email",
29598   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
29599   *           "created_at": "2024-01-01T00:00:00Z",
29600   *           "updated_at": "2024-01-01T00:00:00Z",
29601   *           "email": "[email protected]"
29602   *         }
29603   *       ],
29604   *       "created_at": "2024-01-01T00:00:00Z",
29605   *       "updated_at": "2024-01-01T00:00:00Z"
29606   *     },
29607   *     "session": {
29608   *       "access_token": "<ACCESS_TOKEN>",
29609   *       "token_type": "bearer",
29610   *       "expires_in": 3600,
29611   *       "expires_at": 1700000000,
29612   *       "refresh_token": "<REFRESH_TOKEN>",
29613   *       "user": {
29614   *         "id": "11111111-1111-1111-1111-111111111111",
29615   *         "aud": "authenticated",
29616   *         "role": "authenticated",
29617   *         "email": "[email protected]",
29618   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
29619   *         "phone": "",
29620   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
29621   *         "app_metadata": {
29622   *           "provider": "email",
29623   *           "providers": [
29624   *             "email"
29625   *           ]
29626   *         },
29627   *         "user_metadata": {},
29628   *         "identities": [
29629   *           {
29630   *             "identity_id": "22222222-2222-2222-2222-222222222222",
29631   *             "id": "11111111-1111-1111-1111-111111111111",
29632   *             "user_id": "11111111-1111-1111-1111-111111111111",
29633   *             "identity_data": {
29634   *               "email": "[email protected]",
29635   *               "email_verified": false,
29636   *               "phone_verified": false,
29637   *               "sub": "11111111-1111-1111-1111-111111111111"
29638   *             },
29639   *             "provider": "email",
29640   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
29641   *             "created_at": "2024-01-01T00:00:00Z",
29642   *             "updated_at": "2024-01-01T00:00:00Z",
29643   *             "email": "[email protected]"
29644   *           }
29645   *         ],
29646   *         "created_at": "2024-01-01T00:00:00Z",
29647   *         "updated_at": "2024-01-01T00:00:00Z"
29648   *       }
29649   *     }
29650   *   },
29651   *   "error": null
29652   * }
29653   * ```
29654   *
29655   * @example Sign up with a phone number and password (SMS)
29656   * ```js
29657   * const { data, error } = await supabase.auth.signUp({
29658   *   phone: '123456789',
29659   *   password: 'example-password',
29660   *   options: {
29661   *     channel: 'sms'
29662   *   }
29663   * })
29664   * ```
29665   *
29666   * @exampleDescription Sign up with a phone number and password (whatsapp)
29667   * The user will be sent a WhatsApp message which contains a OTP. By default, a given user can only request a OTP once every 60 seconds. Note that a user will need to have a valid WhatsApp account that is linked to Twilio in order to use this feature.
29668   *
29669   * @example Sign up with a phone number and password (whatsapp)
29670   * ```js
29671   * const { data, error } = await supabase.auth.signUp({
29672   *   phone: '123456789',
29673   *   password: 'example-password',
29674   *   options: {
29675   *     channel: 'whatsapp'
29676   *   }
29677   * })
29678   * ```
29679   *
29680   * @example Sign up with additional user metadata
29681   * ```js
29682   * const { data, error } = await supabase.auth.signUp(
29683   *   {
29684   *     email: '[email protected]',
29685   *     password: 'example-password',
29686   *     options: {
29687   *       data: {
29688   *         first_name: 'John',
29689   *         age: 27,
29690   *       }
29691   *     }
29692   *   }
29693   * )
29694   * ```
29695   *
29696   * @exampleDescription Sign up with a redirect URL
29697   * - See [redirect URLs and wildcards](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls) to add additional redirect URLs to your project.
29698   *
29699   * @example Sign up with a redirect URL
29700   * ```js
29701   * const { data, error } = await supabase.auth.signUp(
29702   *   {
29703   *     email: '[email protected]',
29704   *     password: 'example-password',
29705   *     options: {
29706   *       emailRedirectTo: 'https://example.com/welcome'
29707   *     }
29708   *   }
29709   * )
29710   * ```
29711   */
29712  async signUp(e) {
29713    var s, r, n;
29714    let o = null;
29715    try {
29716      let L;
29717      if ("email" in e) {
29718        const { email: p, password: M, options: u } = e;
29719        let h = null, x = null;
29720        this.flowType === "pkce" && ([h, x, o] = await this._getCodeChallengeAndMethod()), L = await N(this.fetch, "POST", `${this.url}/signup`, {
29721          headers: this.headers,
29722          redirectTo: this._maybeAppendFlowIdToRedirect(u?.emailRedirectTo, o),
29723          body: {
29724            email: p,
29725            password: M,
29726            data: (s = u?.data) !== null && s !== void 0 ? s : {},
29727            gotrue_meta_security: { captcha_token: u?.captchaToken },
29728            code_challenge: h,
29729            code_challenge_method: x
29730          },
29731          xform: De
29732        });
29733      } else if ("phone" in e) {
29734        const { phone: p, password: M, options: u } = e;
29735        L = await N(this.fetch, "POST", `${this.url}/signup`, {
29736          headers: this.headers,
29737          body: {
29738            phone: p,
29739            password: M,
29740            data: (r = u?.data) !== null && r !== void 0 ? r : {},
29741            channel: (n = u?.channel) !== null && n !== void 0 ? n : "sms",
29742            gotrue_meta_security: { captcha_token: u?.captchaToken }
29743          },
29744          xform: De
29745        });
29746      } else
29747        throw new V2("You must provide either an email or phone number and a password");
29748      const { data: d, error: l } = L;
29749      if (l || !d)
29750        return await He(this.storage, this.storageKey, o), this._returnResult({ data: { user: null, session: null }, error: l });
29751      const g = d.session, f = d.user;
29752      return d.session && (await this._saveSession(d.session), await this._notifyAllSubscribers("SIGNED_IN", g)), this._returnResult({ data: { user: f, session: g }, error: null });
29753    } catch (L) {
29754      if (await He(this.storage, this.storageKey, o), B(L))
29755        return this._returnResult({ data: { user: null, session: null }, error: L });
29756      throw L;
29757    }
29758  }
29759  /**
29760   * Log in an existing user with an email and password or phone and password.
29761   *
29762   * Be aware that you may get back an error message that will not distinguish
29763   * between the cases where the account does not exist or that the
29764   * email/phone and password combination is wrong or that the account can only
29765   * be accessed via social login.
29766   *
29767   * @category Auth
29768   *
29769   * @remarks
29770   * - Requires either an email and password or a phone number and password.
29771   *
29772   * @example Sign in with email and password
29773   * ```js
29774   * const { data, error } = await supabase.auth.signInWithPassword({
29775   *   email: '[email protected]',
29776   *   password: 'example-password',
29777   * })
29778   * ```
29779   *
29780   * @exampleResponse Sign in with email and password
29781   * ```json
29782   * {
29783   *   "data": {
29784   *     "user": {
29785   *       "id": "11111111-1111-1111-1111-111111111111",
29786   *       "aud": "authenticated",
29787   *       "role": "authenticated",
29788   *       "email": "[email protected]",
29789   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
29790   *       "phone": "",
29791   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
29792   *       "app_metadata": {
29793   *         "provider": "email",
29794   *         "providers": [
29795   *           "email"
29796   *         ]
29797   *       },
29798   *       "user_metadata": {},
29799   *       "identities": [
29800   *         {
29801   *           "identity_id": "22222222-2222-2222-2222-222222222222",
29802   *           "id": "11111111-1111-1111-1111-111111111111",
29803   *           "user_id": "11111111-1111-1111-1111-111111111111",
29804   *           "identity_data": {
29805   *             "email": "[email protected]",
29806   *             "email_verified": false,
29807   *             "phone_verified": false,
29808   *             "sub": "11111111-1111-1111-1111-111111111111"
29809   *           },
29810   *           "provider": "email",
29811   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
29812   *           "created_at": "2024-01-01T00:00:00Z",
29813   *           "updated_at": "2024-01-01T00:00:00Z",
29814   *           "email": "[email protected]"
29815   *         }
29816   *       ],
29817   *       "created_at": "2024-01-01T00:00:00Z",
29818   *       "updated_at": "2024-01-01T00:00:00Z"
29819   *     },
29820   *     "session": {
29821   *       "access_token": "<ACCESS_TOKEN>",
29822   *       "token_type": "bearer",
29823   *       "expires_in": 3600,
29824   *       "expires_at": 1700000000,
29825   *       "refresh_token": "<REFRESH_TOKEN>",
29826   *       "user": {
29827   *         "id": "11111111-1111-1111-1111-111111111111",
29828   *         "aud": "authenticated",
29829   *         "role": "authenticated",
29830   *         "email": "[email protected]",
29831   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
29832   *         "phone": "",
29833   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
29834   *         "app_metadata": {
29835   *           "provider": "email",
29836   *           "providers": [
29837   *             "email"
29838   *           ]
29839   *         },
29840   *         "user_metadata": {},
29841   *         "identities": [
29842   *           {
29843   *             "identity_id": "22222222-2222-2222-2222-222222222222",
29844   *             "id": "11111111-1111-1111-1111-111111111111",
29845   *             "user_id": "11111111-1111-1111-1111-111111111111",
29846   *             "identity_data": {
29847   *               "email": "[email protected]",
29848   *               "email_verified": false,
29849   *               "phone_verified": false,
29850   *               "sub": "11111111-1111-1111-1111-111111111111"
29851   *             },
29852   *             "provider": "email",
29853   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
29854   *             "created_at": "2024-01-01T00:00:00Z",
29855   *             "updated_at": "2024-01-01T00:00:00Z",
29856   *             "email": "[email protected]"
29857   *           }
29858   *         ],
29859   *         "created_at": "2024-01-01T00:00:00Z",
29860   *         "updated_at": "2024-01-01T00:00:00Z"
29861   *       }
29862   *     }
29863   *   },
29864   *   "error": null
29865   * }
29866   * ```
29867   *
29868   * @example Sign in with phone and password
29869   * ```js
29870   * const { data, error } = await supabase.auth.signInWithPassword({
29871   *   phone: '+13334445555',
29872   *   password: 'some-password',
29873   * })
29874   * ```
29875   *
29876   * @exampleDescription Handling errors
29877   * Log the full `error` object so fields like `code`, `status`, and `name` aren't hidden. The `error.code` (e.g. `'invalid_credentials'`, `'email_not_confirmed'`) is often more useful for branching than `error.message`, and the full object surfaces both.
29878   *
29879   * @example Handling errors
29880   * ```js
29881   * const { data, error } = await supabase.auth.signInWithPassword({
29882   *   email: '[email protected]',
29883   *   password: 'example-password',
29884   * })
29885   * if (error) {
29886   *   console.error(error)
29887   *   return
29888   * }
29889   * ```
29890   */
29891  async signInWithPassword(e) {
29892    try {
29893      let s;
29894      if ("email" in e) {
29895        const { email: o, password: L, options: d } = e;
29896        s = await N(this.fetch, "POST", `${this.url}/token?grant_type=password`, {
29897          headers: this.headers,
29898          body: {
29899            email: o,
29900            password: L,
29901            gotrue_meta_security: { captcha_token: d?.captchaToken }
29902          },
29903          xform: _6
29904        });
29905      } else if ("phone" in e) {
29906        const { phone: o, password: L, options: d } = e;
29907        s = await N(this.fetch, "POST", `${this.url}/token?grant_type=password`, {
29908          headers: this.headers,
29909          body: {
29910            phone: o,
29911            password: L,
29912            gotrue_meta_security: { captcha_token: d?.captchaToken }
29913          },
29914          xform: _6
29915        });
29916      } else
29917        throw new V2("You must provide either an email or phone number and a password");
29918      const { data: r, error: n } = s;
29919      if (n)
29920        return this._returnResult({ data: { user: null, session: null }, error: n });
29921      if (!r || !r.session || !r.user) {
29922        const o = new et();
29923        return this._returnResult({ data: { user: null, session: null }, error: o });
29924      }
29925      return r.session && (await this._saveSession(r.session), await this._notifyAllSubscribers("SIGNED_IN", r.session)), this._returnResult({
29926        data: Object.assign({ user: r.user, session: r.session }, r.weak_password ? { weakPassword: r.weak_password } : null),
29927        error: n
29928      });
29929    } catch (s) {
29930      if (B(s))
29931        return this._returnResult({ data: { user: null, session: null }, error: s });
29932      throw s;
29933    }
29934  }
29935  /**
29936   * Log in an existing user via a third-party provider.
29937   * This method supports the PKCE flow.
29938   *
29939   * @category Auth
29940   *
29941   * @remarks
29942   * - This method is used for signing in using [Social Login (OAuth) providers](/docs/guides/auth#configure-third-party-providers).
29943   * - It works by redirecting your application to the provider's authorization screen, before bringing back the user to your app.
29944   *
29945   * @example Sign in using a third-party provider
29946   * ```js
29947   * const { data, error } = await supabase.auth.signInWithOAuth({
29948   *   provider: 'github'
29949   * })
29950   * ```
29951   *
29952   * @exampleResponse Sign in using a third-party provider
29953   * ```json
29954   * {
29955   *   data: {
29956   *     provider: 'github',
29957   *     url: <PROVIDER_URL_TO_REDIRECT_TO>,
29958   *     flowId: <PKCE_FLOW_ID_OR_NULL>
29959   *   },
29960   *   error: null
29961   * }
29962   * ```
29963   *
29964   * @exampleDescription Sign in using a third-party provider with redirect
29965   * - When the OAuth provider successfully authenticates the user, they are redirected to the URL specified in the `redirectTo` parameter. This parameter defaults to the [`SITE_URL`](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls). It does not redirect the user immediately after invoking this method.
29966   * - See [redirect URLs and wildcards](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls) to add additional redirect URLs to your project.
29967   *
29968   * @example Sign in using a third-party provider with redirect
29969   * ```js
29970   * const { data, error } = await supabase.auth.signInWithOAuth({
29971   *   provider: 'github',
29972   *   options: {
29973   *     redirectTo: 'https://example.com/welcome'
29974   *   }
29975   * })
29976   * ```
29977   *
29978   * @exampleDescription Sign in with scopes and access provider tokens
29979   * If you need additional access from an OAuth provider, in order to access provider specific APIs in the name of the user, you can do this by passing in the scopes the user should authorize for your application. Note that the `scopes` option takes in **a space-separated list** of scopes.
29980   *
29981   * Because OAuth sign-in often includes redirects, you should register an `onAuthStateChange` callback immediately after you create the Supabase client. This callback will listen for the presence of `provider_token` and `provider_refresh_token` properties on the `session` object and store them in local storage. The client library will emit these values **only once** immediately after the user signs in. You can then access them by looking them up in local storage, or send them to your backend servers for further processing.
29982   *
29983   * Finally, make sure you remove them from local storage on the `SIGNED_OUT` event. If the OAuth provider supports token revocation, make sure you call those APIs either from the frontend or schedule them to be called on the backend.
29984   *
29985   * @example Sign in with scopes and access provider tokens
29986   * ```js
29987   * // Register this immediately after calling createClient!
29988   * // Because signInWithOAuth causes a redirect, you need to fetch the
29989   * // provider tokens from the callback.
29990   * supabase.auth.onAuthStateChange((event, session) => {
29991   *   if (session && session.provider_token) {
29992   *     window.localStorage.setItem('oauth_provider_token', session.provider_token)
29993   *   }
29994   *
29995   *   if (session && session.provider_refresh_token) {
29996   *     window.localStorage.setItem('oauth_provider_refresh_token', session.provider_refresh_token)
29997   *   }
29998   *
29999   *   if (event === 'SIGNED_OUT') {
30000   *     window.localStorage.removeItem('oauth_provider_token')
30001   *     window.localStorage.removeItem('oauth_provider_refresh_token')
30002   *   }
30003   * })
30004   *
30005   * // Call this on your Sign in with GitHub button to initiate OAuth
30006   * // with GitHub with the requested elevated scopes.
30007   * await supabase.auth.signInWithOAuth({
30008   *   provider: 'github',
30009   *   options: {
30010   *     scopes: 'repo gist notifications'
30011   *   }
30012   * })
30013   * ```
30014   */
30015  async signInWithOAuth(e) {
30016    var s, r, n, o;
30017    return await this._handleProviderSignIn(e.provider, {
30018      redirectTo: (s = e.options) === null || s === void 0 ? void 0 : s.redirectTo,
30019      scopes: (r = e.options) === null || r === void 0 ? void 0 : r.scopes,
30020      queryParams: (n = e.options) === null || n === void 0 ? void 0 : n.queryParams,
30021      skipBrowserRedirect: (o = e.options) === null || o === void 0 ? void 0 : o.skipBrowserRedirect
30022    });
30023  }
30024  /**
30025   * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.
30026   *
30027   * @category Auth
30028   *
30029   * @remarks
30030   * - Used when `flowType` is set to `pkce` in client options.
30031   * - When several PKCE flows are in flight at once, pass `options.flowId` so
30032   *   the code is exchanged with the verifier created by that specific flow.
30033   *   The flow id is returned by `signInWithOAuth`, and with
30034   *   `experimental.appendPkceFlowIdToRedirects` enabled it also arrives on
30035   *   your callback URL as the reserved `sb_flow_id` query parameter (read
30036   *   automatically in a browser).
30037   * - When a flow id is present but its stored verifier is gone (evicted,
30038   *   already used, or from another device), the call fails with a verifier
30039   *   missing error instead of trying another flow's verifier — a mismatched
30040   *   verifier would consume the single-use code. Without any flow id the
30041   *   most recently stored verifier is used, as before.
30042   *
30043   * @example Exchange Auth Code
30044   * ```js
30045   * supabase.auth.exchangeCodeForSession('34e770dd-9ff9-416c-87fa-43b31d7ef225')
30046   * ```
30047   *
30048   * @example Exchange Auth Code for a specific flow (e.g. in a server-side callback handler)
30049   * ```js
30050   * const flowId = requestUrl.searchParams.get('sb_flow_id')
30051   * supabase.auth.exchangeCodeForSession(code, flowId ? { flowId } : undefined)
30052   * ```
30053   *
30054   * @exampleResponse Exchange Auth Code
30055   * ```json
30056   * {
30057   *   "data": {
30058   *     session: {
30059   *       access_token: '<ACCESS_TOKEN>',
30060   *       token_type: 'bearer',
30061   *       expires_in: 3600,
30062   *       expires_at: 1700000000,
30063   *       refresh_token: '<REFRESH_TOKEN>',
30064   *       user: {
30065   *         id: '11111111-1111-1111-1111-111111111111',
30066   *         aud: 'authenticated',
30067   *         role: 'authenticated',
30068   *         email: '[email protected]'
30069   *         email_confirmed_at: '2024-01-01T00:00:00Z',
30070   *         phone: '',
30071   *         confirmation_sent_at: '2024-01-01T00:00:00Z',
30072   *         confirmed_at: '2024-01-01T00:00:00Z',
30073   *         last_sign_in_at: '2024-01-01T00:00:00Z',
30074   *         app_metadata: {
30075   *           "provider": "email",
30076   *           "providers": [
30077   *             "email",
30078   *             "<OTHER_PROVIDER>"
30079   *           ]
30080   *         },
30081   *         user_metadata: {
30082   *           email: '[email protected]',
30083   *           email_verified: true,
30084   *           full_name: 'User Name',
30085   *           iss: '<ISS>',
30086   *           name: 'User Name',
30087   *           phone_verified: false,
30088   *           provider_id: '<PROVIDER_ID>',
30089   *           sub: '<SUB>'
30090   *         },
30091   *         identities: [
30092   *           {
30093   *             "identity_id": "22222222-2222-2222-2222-222222222222",
30094   *             "id": "11111111-1111-1111-1111-111111111111",
30095   *             "user_id": "11111111-1111-1111-1111-111111111111",
30096   *             "identity_data": {
30097   *               "email": "[email protected]",
30098   *               "email_verified": false,
30099   *               "phone_verified": false,
30100   *               "sub": "11111111-1111-1111-1111-111111111111"
30101   *             },
30102   *             "provider": "email",
30103   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
30104   *             "created_at": "2024-01-01T00:00:00Z",
30105   *             "updated_at": "2024-01-01T00:00:00Z",
30106   *             "email": "[email protected]"
30107   *           },
30108   *           {
30109   *             "identity_id": "33333333-3333-3333-3333-333333333333",
30110   *             "id": "<ID>",
30111   *             "user_id": "<USER_ID>",
30112   *             "identity_data": {
30113   *               "email": "[email protected]",
30114   *               "email_verified": true,
30115   *               "full_name": "User Name",
30116   *               "iss": "<ISS>",
30117   *               "name": "User Name",
30118   *               "phone_verified": false,
30119   *               "provider_id": "<PROVIDER_ID>",
30120   *               "sub": "<SUB>"
30121   *             },
30122   *             "provider": "<PROVIDER>",
30123   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
30124   *             "created_at": "2024-01-01T00:00:00Z",
30125   *             "updated_at": "2024-01-01T00:00:00Z",
30126   *             "email": "[email protected]"
30127   *           }
30128   *         ],
30129   *         created_at: '2024-01-01T00:00:00Z',
30130   *         updated_at: '2024-01-01T00:00:00Z',
30131   *         is_anonymous: false
30132   *       },
30133   *       provider_token: '<PROVIDER_TOKEN>',
30134   *       provider_refresh_token: '<PROVIDER_REFRESH_TOKEN>'
30135   *     },
30136   *     user: {
30137   *       id: '11111111-1111-1111-1111-111111111111',
30138   *       aud: 'authenticated',
30139   *       role: 'authenticated',
30140   *       email: '[email protected]',
30141   *       email_confirmed_at: '2024-01-01T00:00:00Z',
30142   *       phone: '',
30143   *       confirmation_sent_at: '2024-01-01T00:00:00Z',
30144   *       confirmed_at: '2024-01-01T00:00:00Z',
30145   *       last_sign_in_at: '2024-01-01T00:00:00Z',
30146   *       app_metadata: {
30147   *         provider: 'email',
30148   *         providers: [
30149   *           "email",
30150   *           "<OTHER_PROVIDER>"
30151   *         ]
30152   *       },
30153   *       user_metadata: {
30154   *         email: '[email protected]',
30155   *         email_verified: true,
30156   *         full_name: 'User Name',
30157   *         iss: '<ISS>',
30158   *         name: 'User Name',
30159   *         phone_verified: false,
30160   *         provider_id: '<PROVIDER_ID>',
30161   *         sub: '<SUB>'
30162   *       },
30163   *       identities: [
30164   *         {
30165   *           "identity_id": "22222222-2222-2222-2222-222222222222",
30166   *           "id": "11111111-1111-1111-1111-111111111111",
30167   *           "user_id": "11111111-1111-1111-1111-111111111111",
30168   *           "identity_data": {
30169   *             "email": "[email protected]",
30170   *             "email_verified": false,
30171   *             "phone_verified": false,
30172   *             "sub": "11111111-1111-1111-1111-111111111111"
30173   *           },
30174   *           "provider": "email",
30175   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
30176   *           "created_at": "2024-01-01T00:00:00Z",
30177   *           "updated_at": "2024-01-01T00:00:00Z",
30178   *           "email": "[email protected]"
30179   *         },
30180   *         {
30181   *           "identity_id": "33333333-3333-3333-3333-333333333333",
30182   *           "id": "<ID>",
30183   *           "user_id": "<USER_ID>",
30184   *           "identity_data": {
30185   *             "email": "[email protected]",
30186   *             "email_verified": true,
30187   *             "full_name": "User Name",
30188   *             "iss": "<ISS>",
30189   *             "name": "User Name",
30190   *             "phone_verified": false,
30191   *             "provider_id": "<PROVIDER_ID>",
30192   *             "sub": "<SUB>"
30193   *           },
30194   *           "provider": "<PROVIDER>",
30195   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
30196   *           "created_at": "2024-01-01T00:00:00Z",
30197   *           "updated_at": "2024-01-01T00:00:00Z",
30198   *           "email": "[email protected]"
30199   *         }
30200   *       ],
30201   *       created_at: '2024-01-01T00:00:00Z',
30202   *       updated_at: '2024-01-01T00:00:00Z',
30203   *       is_anonymous: false
30204   *     },
30205   *     redirectType: null
30206   *   },
30207   *   "error": null
30208   * }
30209   * ```
30210   */
30211  async exchangeCodeForSession(e, s) {
30212    return await this.initializePromise, this.lock != null ? this._acquireLock(this.lockAcquireTimeout, async () => this._exchangeCodeForSession(e, s)) : this._exchangeCodeForSession(e, s);
30213  }
30214  /**
30215   * Signs in a user by verifying a message signed by the user's private key.
30216   * Supports Ethereum (via Sign-In-With-Ethereum) & Solana (Sign-In-With-Solana) standards,
30217   * both of which derive from the EIP-4361 standard
30218   * With slight variation on Solana's side.
30219   * @reference https://eips.ethereum.org/EIPS/eip-4361
30220   *
30221   * @category Auth
30222   *
30223   * @remarks
30224   * - Uses a Web3 (Ethereum, Solana) wallet to sign a user in.
30225   * - Read up on the [potential for abuse](/docs/guides/auth/auth-web3#potential-for-abuse) before using it.
30226   *
30227   * @example Sign in with Solana or Ethereum (Window API)
30228   * ```js
30229   *   // uses window.ethereum for the wallet
30230   *   const { data, error } = await supabase.auth.signInWithWeb3({
30231   *     chain: 'ethereum',
30232   *     statement: 'I accept the Terms of Service at https://example.com/tos'
30233   *   })
30234   *
30235   *   // uses window.solana for the wallet
30236   *   const { data, error } = await supabase.auth.signInWithWeb3({
30237   *     chain: 'solana',
30238   *     statement: 'I accept the Terms of Service at https://example.com/tos'
30239   *   })
30240   * ```
30241   *
30242   * @example Sign in with Ethereum (Message and Signature)
30243   * ```js
30244   *   const { data, error } = await supabase.auth.signInWithWeb3({
30245   *     chain: 'ethereum',
30246   *     message: '<sign in with ethereum message>',
30247   *     signature: '<hex of the ethereum signature over the message>',
30248   *   })
30249   * ```
30250   *
30251   * @example Sign in with Solana (Brave)
30252   * ```js
30253   *   const { data, error } = await supabase.auth.signInWithWeb3({
30254   *     chain: 'solana',
30255   *     statement: 'I accept the Terms of Service at https://example.com/tos',
30256   *     wallet: window.braveSolana
30257   *   })
30258   * ```
30259   *
30260   * @example Sign in with Solana (Wallet Adapter)
30261   * ```jsx
30262   *   function SignInButton() {
30263   *   const wallet = useWallet()
30264   *
30265   *   return (
30266   *     <>
30267   *       {wallet.connected ? (
30268   *         <button
30269   *           onClick={() => {
30270   *             supabase.auth.signInWithWeb3({
30271   *               chain: 'solana',
30272   *               statement: 'I accept the Terms of Service at https://example.com/tos',
30273   *               wallet,
30274   *             })
30275   *           }}
30276   *         >
30277   *           Sign in with Solana
30278   *         </button>
30279   *       ) : (
30280   *         <WalletMultiButton />
30281   *       )}
30282   *     </>
30283   *   )
30284   * }
30285   *
30286   * function App() {
30287   *   const endpoint = clusterApiUrl('devnet')
30288   *   const wallets = useMemo(() => [], [])
30289   *
30290   *   return (
30291   *     <ConnectionProvider endpoint={endpoint}>
30292   *       <WalletProvider wallets={wallets}>
30293   *         <WalletModalProvider>
30294   *           <SignInButton />
30295   *         </WalletModalProvider>
30296   *       </WalletProvider>
30297   *     </ConnectionProvider>
30298   *   )
30299   * }
30300   * ```
30301   */
30302  async signInWithWeb3(e) {
30303    const { chain: s } = e;
30304    switch (s) {
30305      case "ethereum":
30306        return await this.signInWithEthereum(e);
30307      case "solana":
30308        return await this.signInWithSolana(e);
30309      default:
30310        throw new Error(`@supabase/auth-js: Unsupported chain "${s}"`);
30311    }
30312  }
30313  async signInWithEthereum(e) {
30314    var s, r, n, o, L, d, l, g, f, p, M;
30315    let u, h;
30316    if ("message" in e)
30317      u = e.message, h = e.signature;
30318    else {
30319      const { chain: x, wallet: _, statement: v, options: y } = e;
30320      let b;
30321      if (_e())
30322        if (typeof _ == "object")
30323          b = _;
30324        else {
30325          const P = window;
30326          if ("ethereum" in P && typeof P.ethereum == "object" && "request" in P.ethereum && typeof P.ethereum.request == "function")
30327            b = P.ethereum;
30328          else
30329            throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.");
30330        }
30331      else {
30332        if (typeof _ != "object" || !y?.url)
30333          throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");
30334        b = _;
30335      }
30336      const S = new URL((s = y?.url) !== null && s !== void 0 ? s : window.location.href), k = await b.request({
30337        method: "eth_requestAccounts"
30338      }).then((P) => P).catch(() => {
30339        throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid");
30340      });
30341      if (!k || k.length === 0)
30342        throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");
30343      const A = Ii(k[0]);
30344      let I = (r = y?.signInWithEthereum) === null || r === void 0 ? void 0 : r.chainId;
30345      if (!I) {
30346        const P = await b.request({
30347          method: "eth_chainId"
30348        });
30349        I = rm(P);
30350      }
30351      const w = {
30352        domain: S.host,
30353        address: A,
30354        statement: v,
30355        uri: S.href,
30356        version: "1",
30357        chainId: I,
30358        nonce: (n = y?.signInWithEthereum) === null || n === void 0 ? void 0 : n.nonce,
30359        issuedAt: (L = (o = y?.signInWithEthereum) === null || o === void 0 ? void 0 : o.issuedAt) !== null && L !== void 0 ? L : /* @__PURE__ */ new Date(),
30360        expirationTime: (d = y?.signInWithEthereum) === null || d === void 0 ? void 0 : d.expirationTime,
30361        notBefore: (l = y?.signInWithEthereum) === null || l === void 0 ? void 0 : l.notBefore,
30362        requestId: (g = y?.signInWithEthereum) === null || g === void 0 ? void 0 : g.requestId,
30363        resources: (f = y?.signInWithEthereum) === null || f === void 0 ? void 0 : f.resources
30364      };
30365      u = om(w), h = await b.request({
30366        method: "personal_sign",
30367        params: [nm(u), A]
30368      });
30369    }
30370    try {
30371      const { data: x, error: _ } = await N(this.fetch, "POST", `${this.url}/token?grant_type=web3`, {
30372        headers: this.headers,
30373        body: Object.assign({
30374          chain: "ethereum",
30375          message: u,
30376          signature: h
30377        }, !((p = e.options) === null || p === void 0) && p.captchaToken ? { gotrue_meta_security: { c
30377aptcha_token: (M = e.options) === null || M === void 0 ? void 0 : M.captchaToken } } : null),
30378        xform: De
30379      });
30380      if (_)
30381        throw _;
30382      if (!x || !x.session || !x.user) {
30383        const v = new et();
30384        return this._returnResult({ data: { user: null, session: null }, error: v });
30385      }
30386      return x.session && (await this._saveSession(x.session), await this._notifyAllSubscribers("SIGNED_IN", x.session)), this._returnResult({ data: Object.assign({}, x), error: _ });
30387    } catch (x) {
30388      if (B(x))
30389        return this._returnResult({ data: { user: null, session: null }, error: x });
30390      throw x;
30391    }
30392  }
30393  async signInWithSolana(e) {
30394    var s, r, n, o, L, d, l, g, f, p, M, u;
30395    let h, x;
30396    if ("message" in e)
30397      h = e.message, x = e.signature;
30398    else {
30399      const { chain: _, wallet: v, statement: y, options: b } = e;
30400      let S;
30401      if (_e())
30402        if (typeof v == "object")
30403          S = v;
30404        else {
30405          const A = window;
30406          if ("solana" in A && typeof A.solana == "object" && ("signIn" in A.solana && typeof A.solana.signIn == "function" || "signMessage" in A.solana && typeof A.solana.signMessage == "function"))
30407            S = A.solana;
30408          else
30409            throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.");
30410        }
30411      else {
30412        if (typeof v != "object" || !b?.url)
30413          throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");
30414        S = v;
30415      }
30416      const k = new URL((s = b?.url) !== null && s !== void 0 ? s : window.location.href);
30417      if ("signIn" in S && S.signIn) {
30418        const A = await S.signIn(Object.assign(Object.assign(Object.assign({ issuedAt: (/* @__PURE__ */ new Date()).toISOString() }, b?.signInWithSolana), {
30419          // non-overridable properties
30420          version: "1",
30421          domain: k.host,
30422          uri: k.href
30423        }), y ? { statement: y } : null));
30424        let I;
30425        if (Array.isArray(A) && A[0] && typeof A[0] == "object")
30426          I = A[0];
30427        else if (A && typeof A == "object" && "signedMessage" in A && "signature" in A)
30428          I = A;
30429        else
30430          throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");
30431        if ("signedMessage" in I && "signature" in I && (typeof I.signedMessage == "string" || I.signedMessage instanceof Uint8Array) && I.signature instanceof Uint8Array)
30432          h = typeof I.signedMessage == "string" ? I.signedMessage : new TextDecoder().decode(I.signedMessage), x = I.signature;
30433        else
30434          throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields");
30435      } else {
30436        if (!("signMessage" in S) || typeof S.signMessage != "function" || !("publicKey" in S) || typeof S != "object" || !S.publicKey || !("toBase58" in S.publicKey) || typeof S.publicKey.toBase58 != "function")
30437          throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");
30438        h = [
30439          `${k.host} wants you to sign in with your Solana account:`,
30440          S.publicKey.toBase58(),
30441          ...y ? ["", y, ""] : [""],
30442          "Version: 1",
30443          `URI: ${k.href}`,
30444          `Issued At: ${(n = (r = b?.signInWithSolana) === null || r === void 0 ? void 0 : r.issuedAt) !== null && n !== void 0 ? n : (/* @__PURE__ */ new Date()).toISOString()}`,
30445          ...!((o = b?.signInWithSolana) === null || o === void 0) && o.notBefore ? [`Not Before: ${b.signInWithSolana.notBefore}`] : [],
30446          ...!((L = b?.signInWithSolana) === null || L === void 0) && L.expirationTime ? [`Expiration Time: ${b.signInWithSolana.expirationTime}`] : [],
30447          ...!((d = b?.signInWithSolana) === null || d === void 0) && d.chainId ? [`Chain ID: ${b.signInWithSolana.chainId}`] : [],
30448          ...!((l = b?.signInWithSolana) === null || l === void 0) && l.nonce ? [`Nonce: ${b.signInWithSolana.nonce}`] : [],
30449          ...!((g = b?.signInWithSolana) === null || g === void 0) && g.requestId ? [`Request ID: ${b.signInWithSolana.requestId}`] : [],
30450          ...!((p = (f = b?.signInWithSolana) === null || f === void 0 ? void 0 : f.resources) === null || p === void 0) && p.length ? [
30451            "Resources",
30452            ...b.signInWithSolana.resources.map((I) => `- ${I}`)
30453          ] : []
30454        ].join(`
30455`);
30456        const A = await S.signMessage(new TextEncoder().encode(h), "utf8");
30457        if (!A || !(A instanceof Uint8Array))
30458          throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");
30459        x = A;
30460      }
30461    }
30462    try {
30463      const { data: _, error: v } = await N(this.fetch, "POST", `${this.url}/token?grant_type=web3`, {
30464        headers: this.headers,
30465        body: Object.assign({ chain: "solana", message: h, signature: Z1(x) }, !((M = e.options) === null || M === void 0) && M.captchaToken ? { gotrue_meta_security: { c
30465aptcha_token: (u = e.options) === null || u === void 0 ? void 0 : u.captchaToken } } : null),
30466        xform: De
30467      });
30468      if (v)
30469        throw v;
30470      if (!_ || !_.session || !_.user) {
30471        const y = new et();
30472        return this._returnResult({ data: { user: null, session: null }, error: y });
30473      }
30474      return _.session && (await this._saveSession(_.session), await this._notifyAllSubscribers("SIGNED_IN", _.session)), this._returnResult({ data: Object.assign({}, _), error: v });
30475    } catch (_) {
30476      if (B(_))
30477        return this._returnResult({ data: { user: null, session: null }, error: _ });
30478      throw _;
30479    }
30480  }
30481  async _exchangeCodeForSession(e, s) {
30482    const r = s?.flowId != null, n = r ? i3(s?.flowId) : _e() ? i3(u6(window.location.href)[H1]) : null;
30483    r && !n && this._debug("#_exchangeCodeForSession()", "provided flowId is not a valid flow id", s?.flowId);
30484    const { verifier: o, flowId: L } = r && !n ? { verifier: null, flowId: null } : await Vh(this.storage, this.storageKey, n), [d, l] = (o ?? "").split("/");
30485    try {
30486      if (!d && this.flowType === "pkce")
30487        throw new Th();
30488      const { data: g, error: f } = await N(this.fetch, "POST", `${this.url}/token?grant_type=pkce`, {
30489        headers: this.headers,
30490        body: {
30491          auth_code: e,
30492          code_verifier: d
30493        },
30494        xform: De
30495      });
30496      if (await He(this.storage, this.storageKey, L), f)
30497        throw f;
30498      if (!g || !g.session || !g.user) {
30499        const p = new et();
30500        return this._returnResult({
30501          data: { user: null, session: null, redirectType: null },
30502          error: p
30503        });
30504      }
30505      return g.session && (await this._saveSession(g.session), await this._notifyAllSubscribers(l === "recovery" ? "PASSWORD_RECOVERY" : "SIGNED_IN", g.session)), this._returnResult({ data: Object.assign(Object.assign({}, g), { redirectType: l ?? null }), error: f });
30506    } catch (g) {
30507      if (await He(this.storage, this.storageKey, L), B(g))
30508        return this._returnResult({
30509          data: { user: null, session: null, redirectType: null },
30510          error: g
30511        });
30512      throw g;
30513    }
30514  }
30515  /**
30516   * Allows signing in with an OIDC ID token. The authentication provider used
30517   * should be enabled and configured.
30518   *
30519   * @category Auth
30520   *
30521   * @remarks
30522   * - Use an ID token to sign in.
30523   * - Especially useful when implementing sign in using native platform dialogs in mobile or desktop apps using Sign in with Apple or Sign in with Google on iOS and Android.
30524   * - You can also use Google's [One Tap](https://developers.google.com/identity/gsi/web/guides/display-google-one-tap) and [Automatic sign-in](https://developers.google.com/identity/gsi/web/guides/automatic-sign-in-sign-out) via this API.
30525   *
30526   * @example Sign In using ID Token
30527   * ```js
30528   * const { data, error } = await supabase.auth.signInWithIdToken({
30529   *   provider: 'google',
30530   *   token: 'your-id-token'
30531   * })
30532   * ```
30533   *
30534   * @exampleResponse Sign In using ID Token
30535   * ```json
30536   * {
30537   *   "data": {
30538   *     "user": {
30539   *       "id": "11111111-1111-1111-1111-111111111111",
30540   *       "aud": "authenticated",
30541   *       "role": "authenticated",
30542   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
30543   *       "app_metadata": {
30544   *         ...
30545   *       },
30546   *       "user_metadata": {
30547   *         ...
30548   *       },
30549   *       "identities": [
30550   *         {
30551   *           "identity_id": "22222222-2222-2222-2222-222222222222",
30552   *           "provider": "google",
30553   *         }
30554   *       ],
30555   *       "created_at": "2024-01-01T00:00:00Z",
30556   *       "updated_at": "2024-01-01T00:00:00Z",
30557   *     },
30558   *     "session": {
30559   *       "access_token": "<ACCESS_TOKEN>",
30560   *       "token_type": "bearer",
30561   *       "expires_in": 3600,
30562   *       "expires_at": 1700000000,
30563   *       "refresh_token": "<REFRESH_TOKEN>",
30564   *       "user": {
30565   *         "id": "11111111-1111-1111-1111-111111111111",
30566   *         "aud": "authenticated",
30567   *         "role": "authenticated",
30568   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
30569   *         "app_metadata": {
30570   *           ...
30571   *         },
30572   *         "user_metadata": {
30573   *           ...
30574   *         },
30575   *         "identities": [
30576   *           {
30577   *             "identity_id": "22222222-2222-2222-2222-222222222222",
30578   *             "provider": "google",
30579   *           }
30580   *         ],
30581   *         "created_at": "2024-01-01T00:00:00Z",
30582   *         "updated_at": "2024-01-01T00:00:00Z",
30583   *       }
30584   *     }
30585   *   },
30586   *   "error": null
30587   * }
30588   * ```
30589   */
30590  async signInWithIdToken(e) {
30591    try {
30592      const { options: s, provider: r, token: n, access_token: o, nonce: L } = e, d = await N(this.fetch, "POST", `${this.url}/token?grant_type=id_token`, {
30593        headers: this.headers,
30594        body: {
30595          provider: r,
30596          id_token: n,
30597          access_token: o,
30598          nonce: L,
30599          gotrue_meta_security: { captcha_token: s?.captchaToken }
30600        },
30601        xform: De
30602      }), { data: l, error: g } = d;
30603      if (g)
30604        return this._returnResult({ data: { user: null, session: null }, error: g });
30605      if (!l || !l.session || !l.user) {
30606        const f = new et();
30607        return this._returnResult({ data: { user: null, session: null }, error: f });
30608      }
30609      return l.session && (await this._saveSession(l.session), await this._notifyAllSubscribers("SIGNED_IN", l.session)), this._returnResult({ data: l, error: g });
30610    } catch (s) {
30611      if (B(s))
30612        return this._returnResult({ data: { user: null, session: null }, error: s });
30613      throw s;
30614    }
30615  }
30616  /**
30617   * Log in a user using magiclink or a one-time password (OTP).
30618   *
30619   * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.
30620   * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.
30621   * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.
30622   *
30623   * Be aware that you may get back an error message that will not distinguish
30624   * between the cases where the account does not exist or, that the account
30625   * can only be accessed via social login.
30626   *
30627   * Do note that you will need to configure a Whatsapp sender on Twilio
30628   * if you are using phone sign in with the 'whatsapp' channel. The whatsapp
30629   * channel is not supported on other providers
30630   * at this time.
30631   * This method supports PKCE when an email is passed.
30632   *
30633   * @category Auth
30634   *
30635   * @remarks
30636   * - Requires either an email or phone number.
30637   * - This method is used for passwordless sign-ins where a OTP is sent to the user's email or phone number.
30638   * - If the user doesn't exist, `signInWithOtp()` will signup the user instead. To restrict this behavior, you can set `shouldCreateUser` in `SignInWithPasswordlessCredentials.options` to `false`.
30639   * - If you're using an email, you can configure whether you want the user to receive a magiclink or a OTP.
30640   * - If you're using phone, you can configure whether you want the user to receive a OTP.
30641   * - The magic link's destination URL is determined by the [`SITE_URL`](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls).
30642   * - See [redirect URLs and wildcards](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls) to add additional redirect URLs to your project.
30643   * - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](/dashboard/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`.
30644   * - See our [Twilio Phone Auth Guide](/docs/guides/auth/phone-login?showSMSProvider=Twilio) for details about configuring WhatsApp sign in.
30645   *
30646   * @exampleDescription Sign in with email
30647   * The user will be sent an email which contains either a magiclink or a OTP or both. By default, a given user can only request a OTP once every 60 seconds.
30648   *
30649   * @example Sign in with email
30650   * ```js
30651   * const { data, error } = await supabase.auth.signInWithOtp({
30652   *   email: '[email protected]',
30653   *   options: {
30654   *     emailRedirectTo: 'https://example.com/welcome'
30655   *   }
30656   * })
30657   * ```
30658   *
30659   * @exampleResponse Sign in with email
30660   * ```json
30661   * {
30662   *   "data": {
30663   *     "user": null,
30664   *     "session": null
30665   *   },
30666   *   "error": null
30667   * }
30668   * ```
30669   *
30670   * @exampleDescription Sign in with SMS OTP
30671   * The user will be sent a SMS which contains a OTP. By default, a given user can only request a OTP once every 60 seconds.
30672   *
30673   * @example Sign in with SMS OTP
30674   * ```js
30675   * const { data, error } = await supabase.auth.signInWithOtp({
30676   *   phone: '+13334445555',
30677   * })
30678   * ```
30679   *
30680   * @exampleDescription Sign in with WhatsApp OTP
30681   * The user will be sent a WhatsApp message which contains a OTP. By default, a given user can only request a OTP once every 60 seconds. Note that a user will need to have a valid WhatsApp account that is linked to Twilio in order to use this feature.
30682   *
30683   * @example Sign in with WhatsApp OTP
30684   * ```js
30685   * const { data, error } = await supabase.auth.signInWithOtp({
30686   *   phone: '+13334445555',
30687   *   options: {
30688   *     channel:'whatsapp',
30689   *   }
30690   * })
30691   * ```
30692   */
30693  async signInWithOtp(e) {
30694    var s, r, n, o, L;
30695    let d = null;
30696    try {
30697      if ("email" in e) {
30698        const { email: l, options: g } = e;
30699        let f = null, p = null;
30700        this.flowType === "pkce" && ([f, p, d] = await this._getCodeChallengeAndMethod());
30701        const { error: M } = await N(this.fetch, "POST", `${this.url}/otp`, {
30702          headers: this.headers,
30703          body: {
30704            email: l,
30705            data: (s = g?.data) !== null && s !== void 0 ? s : {},
30706            create_user: (r = g?.shouldCreateUser) !== null && r !== void 0 ? r : !0,
30707            gotrue_meta_security: { captcha_token: g?.captchaToken },
30708            code_challenge: f,
30709            code_challenge_method: p
30710          },
30711          redirectTo: this._maybeAppendFlowIdToRedirect(g?.emailRedirectTo, d)
30712        });
30713        return this._returnResult({ data: { user: null, session: null }, error: M });
30714      }
30715      if ("phone" in e) {
30716        const { phone: l, options: g } = e, { data: f, error: p } = await N(this.fetch, "POST", `${this.url}/otp`, {
30717          headers: this.headers,
30718          body: {
30719            phone: l,
30720            data: (n = g?.data) !== null && n !== void 0 ? n : {},
30721            create_user: (o = g?.shouldCreateUser) !== null && o !== void 0 ? o : !0,
30722            gotrue_meta_security: { captcha_token: g?.captchaToken },
30723            channel: (L = g?.channel) !== null && L !== void 0 ? L : "sms"
30724          }
30725        });
30726        return this._returnResult({
30727          data: { user: null, session: null, messageId: f?.message_id },
30728          error: p
30729        });
30730      }
30731      throw new V2("You must provide either an email or phone number.");
30732    } catch (l) {
30733      if (await He(this.storage, this.storageKey, d), B(l))
30734        return this._returnResult({ data: { user: null, session: null }, error: l });
30735      throw l;
30736    }
30737  }
30738  /**
30739   * Log in a user given a User supplied OTP or TokenHash received through mobile or email.
30740   *
30741   * @category Auth
30742   *
30743   * @remarks
30744   * - The `verifyOtp` method takes in different verification types.
30745   * - If a phone number is used, the type can either be:
30746   *   1. `sms` – Used when verifying a one-time password (OTP) sent via SMS during sign-up or sign-in.
30747   *   2. `phone_change` – Used when verifying an OTP sent to a new phone number during a phone number update process.
30748   * - If an email address is used, the type can be one of the following (note: `signup` and `magiclink` types are deprecated):
30749   *   1. `email` – Used when verifying an OTP sent to the user's email during sign-up or sign-in.
30750   *   2. `recovery` – Used when verifying an OTP sent for account recovery, typically after a password reset request.
30751   *   3. `invite` – Used when verifying an OTP sent as part of an invitation to join a project or organization.
30752   *   4. `email_change` – Used when verifying an OTP sent to a new email address during an email update process.
30753   * - The verification type used should be determined based on the corresponding auth method called before `verifyOtp` to sign up / sign-in a user.
30754   * - The `TokenHash` is contained in the [email templates](/docs/guides/auth/auth-email-templates) and can be used to sign in.  You may wish to use the hash for the PKCE flow for Server Side Auth. Read [the Password-based Auth guide](/docs/guides/auth/passwords) for more details.
30755   *
30756   * @example Verify Signup One-Time Password (OTP)
30757   * ```js
30758   * const { data, error } = await supabase.auth.verifyOtp({ email, token, type: 'email'})
30759   * ```
30760   *
30761   * @exampleResponse Verify Signup One-Time Password (OTP)
30762   * ```json
30763   * {
30764   *   "data": {
30765   *     "user": {
30766   *       "id": "11111111-1111-1111-1111-111111111111",
30767   *       "aud": "authenticated",
30768   *       "role": "authenticated",
30769   *       "email": "[email protected]",
30770   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
30771   *       "phone": "",
30772   *       "confirmed_at": "2024-01-01T00:00:00Z",
30773   *       "recovery_sent_at": "2024-01-01T00:00:00Z",
30774   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
30775   *       "app_metadata": {
30776   *         "provider": "email",
30777   *         "providers": [
30778   *           "email"
30779   *         ]
30780   *       },
30781   *       "user_metadata": {
30782   *         "email": "[email protected]",
30783   *         "email_verified": false,
30784   *         "phone_verified": false,
30785   *         "sub": "11111111-1111-1111-1111-111111111111"
30786   *       },
30787   *       "identities": [
30788   *         {
30789   *           "identity_id": "22222222-2222-2222-2222-222222222222",
30790   *           "id": "11111111-1111-1111-1111-111111111111",
30791   *           "user_id": "11111111-1111-1111-1111-111111111111",
30792   *           "identity_data": {
30793   *             "email": "[email protected]",
30794   *             "email_verified": false,
30795   *             "phone_verified": false,
30796   *             "sub": "11111111-1111-1111-1111-111111111111"
30797   *           },
30798   *           "provider": "email",
30799   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
30800   *           "created_at": "2024-01-01T00:00:00Z",
30801   *           "updated_at": "2024-01-01T00:00:00Z",
30802   *           "email": "[email protected]"
30803   *         }
30804   *       ],
30805   *       "created_at": "2024-01-01T00:00:00Z",
30806   *       "updated_at": "2024-01-01T00:00:00Z",
30807   *       "is_anonymous": false
30808   *     },
30809   *     "session": {
30810   *       "access_token": "<ACCESS_TOKEN>",
30811   *       "token_type": "bearer",
30812   *       "expires_in": 3600,
30813   *       "expires_at": 1700000000,
30814   *       "refresh_token": "<REFRESH_TOKEN>",
30815   *       "user": {
30816   *         "id": "11111111-1111-1111-1111-111111111111",
30817   *         "aud": "authenticated",
30818   *         "role": "authenticated",
30819   *         "email": "[email protected]",
30820   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
30821   *         "phone": "",
30822   *         "confirmed_at": "2024-01-01T00:00:00Z",
30823   *         "recovery_sent_at": "2024-01-01T00:00:00Z",
30824   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
30825   *         "app_metadata": {
30826   *           "provider": "email",
30827   *           "providers": [
30828   *             "email"
30829   *           ]
30830   *         },
30831   *         "user_metadata": {
30832   *           "email": "[email protected]",
30833   *           "email_verified": false,
30834   *           "phone_verified": false,
30835   *           "sub": "11111111-1111-1111-1111-111111111111"
30836   *         },
30837   *         "identities": [
30838   *           {
30839   *             "identity_id": "22222222-2222-2222-2222-222222222222",
30840   *             "id": "11111111-1111-1111-1111-111111111111",
30841   *             "user_id": "11111111-1111-1111-1111-111111111111",
30842   *             "identity_data": {
30843   *               "email": "[email protected]",
30844   *               "email_verified": false,
30845   *               "phone_verified": false,
30846   *               "sub": "11111111-1111-1111-1111-111111111111"
30847   *             },
30848   *             "provider": "email",
30849   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
30850   *             "created_at": "2024-01-01T00:00:00Z",
30851   *             "updated_at": "2024-01-01T00:00:00Z",
30852   *             "email": "[email protected]"
30853   *           }
30854   *         ],
30855   *         "created_at": "2024-01-01T00:00:00Z",
30856   *         "updated_at": "2024-01-01T00:00:00Z",
30857   *         "is_anonymous": false
30858   *       }
30859   *     }
30860   *   },
30861   *   "error": null
30862   * }
30863   * ```
30864   *
30865   * @example Verify SMS One-Time Password (OTP)
30866   * ```js
30867   * const { data, error } = await supabase.auth.verifyOtp({ phone, token, type: 'sms'})
30868   * ```
30869   *
30870   * @example Verify Email Auth (Token Hash)
30871   * ```js
30872   * const { data, error } = await supabase.auth.verifyOtp({ token_hash: tokenHash, type: 'email'})
30873   * ```
30874   */
30875  async verifyOtp(e) {
30876    var s, r;
30877    try {
30878      let n, o;
30879      "options" in e && (n = (s = e.options) === null || s === void 0 ? void 0 : s.redirectTo, o = (r = e.options) === null || r === void 0 ? void 0 : r.captchaToken);
30880      const { data: L, error: d } = await N(this.fetch, "POST", `${this.url}/verify`, {
30881        headers: this.headers,
30882        body: Object.assign(Object.assign({}
30882, e), { gotrue_meta_security: { captcha_token: o } }),
30883        redirectTo: n,
30884        xform: De
30885      });
30886      if (d)
30887        throw d;
30888      if (!L)
30889        throw new Error("An error occurred on token verification.");
30890      const l = L.session, g = L.user;
30891      return l?.access_token && (await this._saveSession(l), await this._notifyAllSubscribers(e.type == "recovery" ? "PASSWORD_RECOVERY" : "SIGNED_IN", l)), this._returnResult({ data: { user: g, session: l }, error: null });
30892    } catch (n) {
30893      if (B(n))
30894        return this._returnResult({ data: { user: null, session: null }, error: n });
30895      throw n;
30896    }
30897  }
30898  /**
30899   * Attempts a single-sign on using an enterprise Identity Provider. A
30900   * successful SSO attempt will redirect the current page to the identity
30901   * provider authorization page. The redirect URL is implementation and SSO
30902   * protocol specific.
30903   *
30904   * You can use it by providing a SSO domain. Typically you can extract this
30905   * domain by asking users for their email address. If this domain is
30906   * registered on the Auth instance the redirect will use that organization's
30907   * currently active SSO Identity Provider for the login.
30908   *
30909   * If you have built an organization-specific login page, you can use the
30910   * organization's SSO Identity Provider UUID directly instead.
30911   *
30912   * @category Auth
30913   *
30914   * @remarks
30915   * - Before you can call this method you need to [establish a connection](/docs/guides/auth/sso/auth-sso-saml#managing-saml-20-connections) to an identity provider. Use the [CLI commands](/docs/reference/cli/supabase-sso) to do this.
30916   * - If you've associated an email domain to the identity provider, you can use the `domain` property to start a sign-in flow.
30917   * - In case you need to use a different way to start the authentication flow with an identity provider, you can use the `providerId` property. For example:
30918   *     - Mapping specific user email addresses with an identity provider.
30919   *     - Using different hints to identity the identity provider to be used by the user, like a company-specific page, IP address or other tracking information.
30920   *
30921   * @example Sign in with email domain
30922   * ```js
30923   *   // You can extract the user's email domain and use it to trigger the
30924   *   // authentication flow with the correct identity provider.
30925   *
30926   *   const { data, error } = await supabase.auth.signInWithSSO({
30927   *     domain: 'company.com'
30928   *   })
30929   *
30930   *   if (data?.url) {
30931   *     // redirect the user to the identity provider's authentication flow
30932   *     window.location.href = data.url
30933   *   }
30934   * ```
30935   *
30936   * @example Sign in with provider UUID
30937   * ```js
30938   *   // Useful when you need to map a user's sign in request according
30939   *   // to different rules that can't use email domains.
30940   *
30941   *   const { data, error } = await supabase.auth.signInWithSSO({
30942   *     providerId: '21648a9d-8d5a-4555-a9d1-d6375dc14e92'
30943   *   })
30944   *
30945   *   if (data?.url) {
30946   *     // redirect the user to the identity provider's authentication flow
30947   *     window.location.href = data.url
30948   *   }
30949   * ```
30950   */
30951  async signInWithSSO(e) {
30952    var s, r, n, o;
30953    let L = null;
30954    try {
30955      let d = null, l = null;
30956      this.flowType === "pkce" && ([d, l, L] = await this._getCodeChallengeAndMethod());
30957      const g = await N(this.fetch, "POST", `${this.url}/sso`, {
30958        body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, "providerId" in e ? { provider_id: e.providerId } : null), "domain" in e ? { domain: e.domain } : null), { redirect_to: this._maybeAppendFlowIdToRedirect((s = e.options) === null || s === void 0 ? void 0 : s.redirectTo, L) }), !((r = e?.options) === null || r === void 0) && r.captchaToken ? { gotrue_meta_security: { captcha_token: e.options.captchaToken } } : null), { skip_http_redirect: !0, code_challenge: d, code_challenge_method: l }),
30959        headers: this.headers,
30960        xform: Qh
30961      });
30962      return !((n = g.data) === null || n === void 0) && n.url && _e() && !(!((o = e.options) === null || o === void 0) && o.skipBrowserRedirect) && window.location.assign(g.data.url), this._returnResult(g);
30963    } catch (d) {
30964      if (await He(this.storage, this.storageKey, L), B(d))
30965        return this._returnResult({ data: null, error: d });
30966      throw d;
30967    }
30968  }
30969  /**
30970   * Sends a reauthentication OTP to the user's email or phone number.
30971   * Requires the user to be signed-in.
30972   *
30973   * @category Auth
30974   *
30975   * @remarks
30976   * - This method is used together with `updateUser()` when a user's password needs to be updated.
30977   * - If you require your user to reauthenticate before updating their password, you need to enable the **Secure password change** option in your [project's email provider settings](/dashboard/project/_/auth/providers).
30978   * - A user is only require to reauthenticate before updating their password if **Secure password change** is enabled and the user **hasn't recently signed in**. A user is deemed recently signed in if the session was created in the last 24 hours.
30979   * - This method will send a nonce to the user's email. If the user doesn't have a confirmed email address, the method will send the nonce to the user's confirmed phone number instead.
30980   * - After receiving the OTP, include it as the `nonce` in your `updateUser()` call to finalize the password change.
30981   *
30982   * @exampleDescription Send reauthentication nonce
30983   * Sends a reauthentication nonce to the user's email or phone number.
30984   *
30985   * @example Send reauthentication nonce
30986   * ```js
30987   * const { error } = await supabase.auth.reauthenticate()
30988   * ```
30989   */
30990  async reauthenticate() {
30991    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._reauthenticate()) : await this._reauthenticate();
30992  }
30993  async _reauthenticate() {
30994    try {
30995      return await this._useSession(async (e) => {
30996        const { data: { session: s }, error: r }
30996 = e;
30997        if (r)
30998          throw r;
30999        if (!s)
31000          throw new he();
31001        const { error: n } = await N(this.fetch, "GET", `${this.url}/reauthenticate`, {
31002          headers: this.headers,
31003          jwt: s.access_token
31004        });
31005        return this._returnResult({ data: { user: null, session: null }, error: n });
31006      });
31007    } catch (e) {
31008      if (B(e))
31009        return this._returnResult({ data: { user: null, session: null }, error: e });
31010      throw e;
31011    }
31012  }
31013  /**
31014   * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.
31015   *
31016   * @category Auth
31017   *
31018   * @remarks
31019   * - Resends a signup confirmation, email change or phone change email to the user.
31020   * - Passwordless sign-ins can be resent by calling the `signInWithOtp()` method again.
31021   * - Password recovery emails can be resent by calling the `resetPasswordForEmail()` method again.
31022   * - This method will only resend an email or phone OTP to the user if there was an initial signup, email change or phone change request being made(note: For existing users signing in with OTP, you should use `signInWithOtp()` again to resend the OTP).
31023   * - You can specify a redirect url when you resend an email link using the `emailRedirectTo` option.
31024   *
31025   * @exampleDescription Resend an email signup confirmation
31026   * Resends the email signup confirmation to the user
31027   *
31028   * @example Resend an email signup confirmation
31029   * ```js
31030   * const { error } = await supabase.auth.resend({
31031   *   type: 'signup',
31032   *   email: '[email protected]',
31033   *   options: {
31034   *     emailRedirectTo: 'https://example.com/welcome'
31035   *   }
31036   * })
31037   * ```
31038   *
31039   * @exampleDescription Resend a phone signup confirmation
31040   * Resends the phone signup confirmation email to the user
31041   *
31042   * @example Resend a phone signup confirmation
31043   * ```js
31044   * const { error } = await supabase.auth.resend({
31045   *   type: 'sms',
31046   *   phone: '1234567890'
31047   * })
31048   * ```
31049   *
31050   * @exampleDescription Resend email change email
31051   * Resends the email change email to the user
31052   *
31053   * @example Resend email change email
31054   * ```js
31055   * const { error } = await supabase.auth.resend({
31056   *   type: 'email_change',
31057   *   email: '[email protected]'
31058   * })
31059   * ```
31060   *
31061   * @exampleDescription Resend phone change OTP
31062   * Resends the phone change OTP to the user
31063   *
31064   * @example Resend phone change OTP
31065   * ```js
31066   * const { error } = await supabase.auth.resend({
31067   *   type: 'phone_change',
31068   *   phone: '1234567890'
31069   * })
31070   * ```
31071   */
31072  async resend(e) {
31073    let s = null;
31074    try {
31075      const r = `${this.url}/resend`;
31076      if ("email" in e) {
31077        const { email: n, type: o, options: L } = e;
31078        let d = null, l = null;
31079        this.flowType === "pkce" && ([d, l, s] = await this._getCodeChallengeAndMethod());
31080        const { error: g } = await N(this.fetch, "POST", r, {
31081          headers: this.headers,
31082          body: {
31083            email: n,
31084            type: o,
31085            gotrue_meta_security: { captcha_token: L?.captchaToken },
31086            code_challenge: d,
31087            code_challenge_method: l
31088          },
31089          redirectTo: this._maybeAppendFlowIdToRedirect(L?.emailRedirectTo, s)
31090        });
31091        return g && await He(this.storage, this.storageKey, s), this._returnResult({ data: { user: null, session: null }, error: g });
31092      } else if ("phone" in e) {
31093        const { phone: n, type: o, options: L } = e, { data: d, error: l } = await N(this.fetch, "POST", r, {
31094          headers: this.headers,
31095          body: {
31096            phone: n,
31097            type: o,
31098            gotrue_meta_security: { captcha_token: L?.captchaToken }
31099          }
31100        });
31101        return this._returnResult({
31102          data: { user: null, session: null, messageId: d?.message_id },
31103          error: l
31104        });
31105      }
31106      throw new V2("You must provide either an email or phone number and a type");
31107    } catch (r) {
31108      if (await He(this.storage, this.storageKey, s), B(r))
31109        return this._returnResult({ data: { user: null, session: null }, error: r });
31110      throw r;
31111    }
31112  }
31113  /**
31114   * Returns the session, refreshing it if necessary.
31115   *
31116   * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.
31117   *
31118   * **IMPORTANT:** This method loads values directly from the storage attached
31119   * to the client. If that storage is based on request cookies for example,
31120   * the values in it may not be authentic and therefore it's strongly advised
31121   * against using this method and its results in such circumstances. A warning
31122   * will be emitted if this is detected. Use {@link GoTrueClient.getUser} instead.
31123   *
31124   * @category Auth
31125   *
31126   * @remarks
31127   * - Since the introduction of [asymmetric JWT signing keys](/docs/guides/auth/signing-keys), this method is considered low-level and we encourage you to use `getClaims()` or `getUser()` instead.
31128   * - Retrieves the current [user session](/docs/guides/auth/sessions) from the storage medium (local storage, cookies).
31129   * - The session contains an access token (signed JWT), a refresh token and the user object.
31130   * - If the session's access token is expired or is about to expire, this method will use the refresh token to refresh the session.
31131   * - When using in a browser, or you've called `startAutoRefresh()` in your environment (React Native, etc.) this function always returns a valid access token without refreshing the session itself, as this is done in the background. This function returns very fast.
31132   * - **IMPORTANT SECURITY NOTICE:** If using an insecure storage medium, such as cookies or request headers, the user object returned by this function **must not be trusted**. Always verify the JWT using `getClaims()` or your own JWT verification library to securely establish the user's identity and access. You can also use `getUser()` to fetch the user object directly from the Auth server for this purpose.
31133   * - Cross-tab refresh races are handled by the GoTrue server (the rotated token from the first tab is returned to subsequent tabs via the parent-of-active mechanism), so no client-side serialization is needed.
31134   *
31135   * @example Get the session data
31136   * ```js
31137   * const { data, error } = await supabase.auth.getSession()
31138   * ```
31139   *
31140   * @exampleResponse Get the session data
31141   * ```json
31142   * {
31143   *   "data": {
31144   *     "session": {
31145   *       "access_token": "<ACCESS_TOKEN>",
31146   *       "token_type": "bearer",
31147   *       "expires_in": 3600,
31148   *       "expires_at": 1700000000,
31149   *       "refresh_token": "<REFRESH_TOKEN>",
31150   *       "user": {
31151   *         "id": "11111111-1111-1111-1111-111111111111",
31152   *         "aud": "authenticated",
31153   *         "role": "authenticated",
31154   *         "email": "[email protected]",
31155   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
31156   *         "phone": "",
31157   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
31158   *         "app_metadata": {
31159   *           "provider": "email",
31160   *           "providers": [
31161   *             "email"
31162   *           ]
31163   *         },
31164   *         "user_metadata": {
31165   *           "email": "[email protected]",
31166   *           "email_verified": false,
31167   *           "phone_verified": false,
31168   *           "sub": "11111111-1111-1111-1111-111111111111"
31169   *         },
31170   *         "identities": [
31171   *           {
31172   *             "identity_id": "22222222-2222-2222-2222-222222222222",
31173   *             "id": "11111111-1111-1111-1111-111111111111",
31174   *             "user_id": "11111111-1111-1111-1111-111111111111",
31175   *             "identity_data": {
31176   *               "email": "[email protected]",
31177   *               "email_verified": false,
31178   *               "phone_verified": false,
31179   *               "sub": "11111111-1111-1111-1111-111111111111"
31180   *             },
31181   *             "provider": "email",
31182   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
31183   *             "created_at": "2024-01-01T00:00:00Z",
31184   *             "updated_at": "2024-01-01T00:00:00Z",
31185   *             "email": "[email protected]"
31186   *           }
31187   *         ],
31188   *         "created_at": "2024-01-01T00:00:00Z",
31189   *         "updated_at": "2024-01-01T00:00:00Z",
31190   *         "is_anonymous": false
31191   *       }
31192   *     }
31193   *   },
31194   *   "error": null
31195   * }
31196   * ```
31197   */
31198  async getSession() {
31199    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => this._useSession(async (e) => e)) : await this._useSession(async (e) => e);
31200  }
31201  /**
31202   * Acquires a global lock based on the storage key.
31203   *
31204   * TODO(v3): remove along with the legacy lock path. Only called when
31205   * `this.lock` is non-null (custom lock supplied via constructor). The
31206   * default lockless path bypasses this entirely.
31207   */
31208  async _acquireLock(e, s) {
31209    this._debug("#_acquireLock", "begin", e);
31210    try {
31211      if (this.lockAcquired) {
31212        const r = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve(), n = (async () => (await r, await s()))();
31213        return this.pendingInLock.push((async () => {
31214          try {
31215            await n;
31216          } catch {
31217          }
31218        })()), n;
31219      }
31220      return await this.lock(`lock:${this.storageKey}`, e, async () => {
31221        this._debug("#_acquireLock", "lock acquired for storage key", this.storageKey);
31222        try {
31223          this.lockAcquired = !0;
31224          const r = s();
31225          for (this.pendingInLock.push((async () => {
31226            try {
31227              await r;
31228            } catch {
31229            }
31230          })()), await r; this.pendingInLock.length; ) {
31231            const n = [...this.pendingInLock];
31232            await Promise.all(n), this.pendingInLock.splice(0, n.length);
31233          }
31234          return await r;
31235        } finally {
31236          this._debug("#_acquireLock", "lock released for storage key", this.storageKey), this.lockAcquired = !1;
31237        }
31238      });
31239    } finally {
31240      this._debug("#_acquireLock", "end");
31241    }
31242  }
31243  /**
31244   * Use instead of {@link GoTrueClient.getSession} inside the library. Loads the session
31245   * via `__loadSession` (which may trigger a refresh if the access token is
31246   * within the expiry margin) and runs `fn` with the result.
31247   */
31248  async _useSession(e) {
31249    this._debug("#_useSession", "begin");
31250    try {
31251      const s = await this.__loadSession();
31252      return await e(s);
31253    } finally {
31254      this._debug("#_useSession", "end");
31255    }
31256  }
31257  /**
31258   * NEVER USE DIRECTLY!
31259   *
31260   * Always use `_useSession`.
31261   */
31262  async __loadSession() {
31263    this._debug("#__loadSession()", "begin"), this.lock != null && !this.lockAcquired && this._debug("#__loadSession()", "used outside of an acquired lock!", new Error().stack);
31264    try {
31265      let e = null;
31266      const s = await be(this.storage, this.storageKey);
31267      if (this._debug("#getSession()", "session from storage", s), s !== null && (this._isValidSession(s) ? e = s : (this._debug("#getSession()", "session from storage is not val
31267id"), await this._removeSession())), !e)
31268        return { data: { session: null }, error: null };
31269      const r = e.expires_at ? e.expires_at * 1e3 - Date.now() < x4 : !1;
31270      if (this._debug("#__loadSession()", `session has${r ? "" : " not"} expired`, "expires_at", e.expires_at), !r)
31271        return { data: { session: await this._hydrateSessionUser(e) }, error: null };
31272      const { data: n, error: o } = await this._callRefreshToken(e.refresh_token);
31273      if (o) {
31274        const L = await be(this.storage, this.storageKey);
31275        return L && this._isValidSession(L) && L.expires_at && L.expires_at * 1e3 > Date.now() ? this._returnResult({
31276          data: { session: await this._hydrateSessionUser(L) },
31277          error: null
31278        }) : this._returnResult({ data: { session: null }, error: o });
31279      }
31280      return this._returnResult({ data: { session: n }, error: null });
31281    } finally {
31282      this._debug("#__loadSession()", "end");
31283    }
31284  }
31285  /**
31286   * Completes a session read back from storage so it matches what callers of
31287   * `getSession()` expect: fills in `session.user` from `userStorage` when the
31288   * client keeps the user in split storage, and wraps the user in the
31289   * insecure-access warning proxy on the server.
31290   */
31291  async _hydrateSessionUser(e) {
31292    if (this.userStorage) {
31293      const s = await be(this.userStorage, this.storageKey + "-user");
31294      e.user = s?.user ? s.user : _4();
31295    }
31296    if (this.storage.isServer && e.user && !e.user.__isUserNotAvailableProxy) {
31297      const s = { value: this.suppressGetSessionWarning };
31298      e.user = Kh(e.user, s), s.value && (this.suppressGetSessionWarning = !0);
31299    }
31300    return e;
31301  }
31302  /**
31303   * Gets the current user details if there is an existing session. This method
31304   * performs a network request to the Supabase Auth server, so the returned
31305   * value is authentic and can be used to base authorization rules on.
31306   *
31307   * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.
31308   *
31309   * @category Auth
31310   *
31311   * @remarks
31312   * - This method fetches the user object from the database instead of local session.
31313   * - This method is useful for checking if the user is authorized because it validates the user's access token JWT on the server.
31314   * - Should always be used when checking for user authorization on the server. On the client, you can instead use `getSession().session.user` for faster results. `getSession` is insecure on the server.
31315   *
31316   * @example Get the logged in user with the current existing session
31317   * ```js
31318   * const { data: { user } } = await supabase.auth.getUser()
31319   * ```
31320   *
31321   * @exampleResponse Get the logged in user with the current existing session
31322   * ```json
31323   * {
31324   *   "data": {
31325   *     "user": {
31326   *       "id": "11111111-1111-1111-1111-111111111111",
31327   *       "aud": "authenticated",
31328   *       "role": "authenticated",
31329   *       "email": "[email protected]",
31330   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
31331   *       "phone": "",
31332   *       "confirmed_at": "2024-01-01T00:00:00Z",
31333   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
31334   *       "app_metadata": {
31335   *         "provider": "email",
31336   *         "providers": [
31337   *           "email"
31338   *         ]
31339   *       },
31340   *       "user_metadata": {
31341   *         "email": "[email protected]",
31342   *         "email_verified": false,
31343   *         "phone_verified": false,
31344   *         "sub": "11111111-1111-1111-1111-111111111111"
31345   *       },
31346   *       "identities": [
31347   *         {
31348   *           "identity_id": "22222222-2222-2222-2222-222222222222",
31349   *           "id": "11111111-1111-1111-1111-111111111111",
31350   *           "user_id": "11111111-1111-1111-1111-111111111111",
31351   *           "identity_data": {
31352   *             "email": "[email protected]",
31353   *             "email_verified": false,
31354   *             "phone_verified": false,
31355   *             "sub": "11111111-1111-1111-1111-111111111111"
31356   *           },
31357   *           "provider": "email",
31358   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
31359   *           "created_at": "2024-01-01T00:00:00Z",
31360   *           "updated_at": "2024-01-01T00:00:00Z",
31361   *           "email": "[email protected]"
31362   *         }
31363   *       ],
31364   *       "created_at": "2024-01-01T00:00:00Z",
31365   *       "updated_at": "2024-01-01T00:00:00Z",
31366   *       "is_anonymous": false
31367   *     }
31368   *   },
31369   *   "error": null
31370   * }
31371   * ```
31372   *
31373   * @example Get the logged in user with a custom access token jwt
31374   * ```js
31375   * const { data: { user } } = await supabase.auth.getUser(jwt)
31376   * ```
31377   */
31378  async getUser(e) {
31379    if (e)
31380      return await this._getUser(e);
31381    await this.initializePromise;
31382    let s;
31383    return this.lock != null ? s = await this._acquireLock(this.lockAcquireTimeout, async () => await this._getUser()) : s = await this._getUser(), s.data.user && (this.suppressGetSessionWarning = !0), s;
31384  }
31385  async _getUser(e) {
31386    try {
31387      return e ? await N(this.fetch, "GET", `${this.url}/user`, {
31388        headers: this.headers,
31389        jwt: e,
31390        xform: _1
31391      }) : await this._useSession(async (s) => {
31392        var r, n, o;
31393        const { data: L, error: d } = s;
31394        if (d)
31395          throw d;
31396        return !(!((r = L.session) === null || r === void 0) && r.access_token) && !this.hasCustomAuthorizationHeader ? { data: { user: null }, error: new he() } : await N(this.fetch, "GET", `${this.url}/user`, {
31397          headers: this.headers,
31398          jwt: (o = (n = L.session) === null || n === void 0 ? void 0 : n.access_token) !== null && o !== void 0 ? o : void 0,
31399          xform: _1
31400        });
31401      });
31402    } catch (s) {
31403      if (B(s))
31404        return O2(s) && await this._removeSession(), this._returnResult({ data: { user: null }, error: s });
31405      throw s;
31406    }
31407  }
31408  /**
31409   * Updates user data for a logged in user.
31410   *
31411   * @category Auth
31412   *
31413   * @remarks
31414   * - In order to use the `updateUser()` method, the user needs to be signed in first.
31415   * - By default, email updates sends a confirmation link to both the user's current and new email.
31416   * To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](/dashboard/project/_/auth/providers).
31417   *
31418   * @exampleDescription Update the email for an authenticated user
31419   * Sends a "Confirm Email Change" email to the new address. If **Secure Email Change** is enabled (default), confirmation is also required from the **old email** before the change is applied. To skip dual confirmation and apply the change after only the new email is verified, disable **Secure Email Change** in the [Email Auth Provider settings](/dashboard/project/_/auth/providers?provider=Email).
31420   *
31421   * @example Update the email for an authenticated user
31422   * ```js
31423   * const { data, error } = await supabase.auth.updateUser({
31424   *   email: '[email protected]'
31425   * })
31426   * ```
31427   *
31428   * @exampleResponse Update the email for an authenticated user
31429   * ```json
31430   * {
31431   *   "data": {
31432   *     "user": {
31433   *       "id": "11111111-1111-1111-1111-111111111111",
31434   *       "aud": "authenticated",
31435   *       "role": "authenticated",
31436   *       "email": "[email protected]",
31437   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
31438   *       "phone": "",
31439   *       "confirmed_at": "2024-01-01T00:00:00Z",
31440   *       "new_email": "[email protected]",
31441   *       "email_change_sent_at": "2024-01-01T00:00:00Z",
31442   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
31443   *       "app_metadata": {
31444   *         "provider": "email",
31445   *         "providers": [
31446   *           "email"
31447   *         ]
31448   *       },
31449   *       "user_metadata": {
31450   *         "email": "[email protected]",
31451   *         "email_verified": false,
31452   *         "phone_verified": false,
31453   *         "sub": "11111111-1111-1111-1111-111111111111"
31454   *       },
31455   *       "identities": [
31456   *         {
31457   *           "identity_id": "22222222-2222-2222-2222-222222222222",
31458   *           "id": "11111111-1111-1111-1111-111111111111",
31459   *           "user_id": "11111111-1111-1111-1111-111111111111",
31460   *           "identity_data": {
31461   *             "email": "[email protected]",
31462   *             "email_verified": false,
31463   *             "phone_verified": false,
31464   *             "sub": "11111111-1111-1111-1111-111111111111"
31465   *           },
31466   *           "provider": "email",
31467   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
31468   *           "created_at": "2024-01-01T00:00:00Z",
31469   *           "updated_at": "2024-01-01T00:00:00Z",
31470   *           "email": "[email protected]"
31471   *         }
31472   *       ],
31473   *       "created_at": "2024-01-01T00:00:00Z",
31474   *       "updated_at": "2024-01-01T00:00:00Z",
31475   *       "is_anonymous": false
31476   *     }
31477   *   },
31478   *   "error": null
31479   * }
31480   * ```
31481   *
31482   * @exampleDescription Update the phone number for an authenticated user
31483   * Sends a one-time password (OTP) to the new phone number.
31484   *
31485   * @example Update the phone number for an authenticated user
31486   * ```js
31487   * const { data, error } = await supabase.auth.updateUser({
31488   *   phone: '123456789'
31489   * })
31490   * ```
31491   *
31492   * @example Update the password for an authenticated user
31493   * ```js
31494   * const { data, error } = await supabase.auth.updateUser({
31495   *   password: 'new password'
31496   * })
31497   * ```
31498   *
31499   * @exampleDescription Update the user's metadata
31500   * Updates the user's custom metadata.
31501   *
31502   * **Note**: The `data` field maps to the `auth.users.raw_user_meta_data` column in your Supabase database. When calling `getUser()`, the data will be available as `user.user_metadata`.
31503   *
31504   * @example Update the user's metadata
31505   * ```js
31506   * const { data, error } = await supabase.auth.updateUser({
31507   *   data: { hello: 'world' }
31508   * })
31509   * ```
31510   *
31511   * @exampleDescription Update the user's password with a nonce
31512   * If **Secure password change** is enabled in your [project's email provider settings](/dashboard/project/_/auth/providers), updating the user's password would require a nonce if the user **hasn't recently signed in**. The nonce is sent to the user's email or phone number. A user is deemed recently signed in if the session was created in the last 24 hours.
31513   *
31514   * @example Update the user's password with a nonce
31515   * ```js
31516   * const { data, error } = await supabase.auth.updateUser({
31517   *   password: 'new password',
31518   *   nonce: '123456'
31519   * })
31520   * ```
31521   */
31522  async updateUser(e, s = {}) {
31523    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._updateUser(e, s)) : await this._updateUser(e, s);
31524  }
31525  async _updateUser(e, s = {}) {
31526    let r = null;
31527    try {
31528      return await this._useSession(async (n) => {
31529        const { data: o, error: L } = n;
31530        if (L)
31531          throw L;
31532        if (!o.session)
31533          throw new he();
31534        const d = o.session;
31535        let l = null, g = null;
31536        this.flowType === "pkce" && e.email != null && ([l, g, r] = await this._getCodeChallengeAndMethod());
31537        const { data: f, error: p } = await N(this.fetch, "PUT", `${this.url}/user`, {
31538          headers: this.headers,
31539          redirectTo: this._maybeAppendFlowIdToRedirect(s?.emailRedirectTo, r),
31540          body: Object.assign(Object.assign({}, e), { code_challenge: l, code_challenge_method: g }),
31541          jwt: d.access_token,
31542          xform: _1
31543        });
31544        if (p)
31545          throw p;
31546        return d.user = f.user, await this._saveSession(d), await this._notifyAllSubscribers("USER_UPDATED", d), this._returnResult({ data: { user: d.user }, error: null });
31547      });
31548    } catch (n) {
31549      if (await He(this.storage, this.storageKey, r), B(n))
31550        return this._returnResult({ data: { user: null }, error: n });
31551      throw n;
31552    }
31553  }
31554  /**
31555   * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.
31556   * If the refresh token or access token in the current session is invali
31556d, an error will be thrown.
31557   * @param currentSession The current session that minimally contains an access token and refresh token.
31558   *
31559   * @category Auth
31560   *
31561   * @remarks
31562   * - This method sets the session using an `access_token` and `refresh_token`.
31563   * - If successful, a `SIGNED_IN` event is emitted.
31564   *
31565   * @exampleDescription Set the session
31566   * Sets the session data from an access_token and refresh_token, then returns an auth response or error.
31567   *
31568   * @example Set the session
31569   * ```js
31570   *   const { data, error } = await supabase.auth.setSession({
31571   *     access_token,
31572   *     refresh_token
31573   *   })
31574   * ```
31575   *
31576   * @exampleResponse Set the session
31577   * ```json
31578   * {
31579   *   "data": {
31580   *     "user": {
31581   *       "id": "11111111-1111-1111-1111-111111111111",
31582   *       "aud": "authenticated",
31583   *       "role": "authenticated",
31584   *       "email": "[email protected]",
31585   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
31586   *       "phone": "",
31587   *       "confirmed_at": "2024-01-01T00:00:00Z",
31588   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
31589   *       "app_metadata": {
31590   *         "provider": "email",
31591   *         "providers": [
31592   *           "email"
31593   *         ]
31594   *       },
31595   *       "user_metadata": {
31596   *         "email": "[email protected]",
31597   *         "email_verified": false,
31598   *         "phone_verified": false,
31599   *         "sub": "11111111-1111-1111-1111-111111111111"
31600   *       },
31601   *       "identities": [
31602   *         {
31603   *           "identity_id": "22222222-2222-2222-2222-222222222222",
31604   *           "id": "11111111-1111-1111-1111-111111111111",
31605   *           "user_id": "11111111-1111-1111-1111-111111111111",
31606   *           "identity_data": {
31607   *             "email": "[email protected]",
31608   *             "email_verified": false,
31609   *             "phone_verified": false,
31610   *             "sub": "11111111-1111-1111-1111-111111111111"
31611   *           },
31612   *           "provider": "email",
31613   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
31614   *           "created_at": "2024-01-01T00:00:00Z",
31615   *           "updated_at": "2024-01-01T00:00:00Z",
31616   *           "email": "[email protected]"
31617   *         }
31618   *       ],
31619   *       "created_at": "2024-01-01T00:00:00Z",
31620   *       "updated_at": "2024-01-01T00:00:00Z",
31621   *       "is_anonymous": false
31622   *     },
31623   *     "session": {
31624   *       "access_token": "<ACCESS_TOKEN>",
31625   *       "refresh_token": "<REFRESH_TOKEN>",
31626   *       "user": {
31627   *         "id": "11111111-1111-1111-1111-111111111111",
31628   *         "aud": "authenticated",
31629   *         "role": "authenticated",
31630   *         "email": "[email protected]",
31631   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
31632   *         "phone": "",
31633   *         "confirmed_at": "2024-01-01T00:00:00Z",
31634   *         "last_sign_in_at": "11111111-1111-1111-1111-111111111111",
31635   *         "app_metadata": {
31636   *           "provider": "email",
31637   *           "providers": [
31638   *             "email"
31639   *           ]
31640   *         },
31641   *         "user_metadata": {
31642   *           "email": "[email protected]",
31643   *           "email_verified": false,
31644   *           "phone_verified": false,
31645   *           "sub": "11111111-1111-1111-1111-111111111111"
31646   *         },
31647   *         "identities": [
31648   *           {
31649   *             "identity_id": "2024-01-01T00:00:00Z",
31650   *             "id": "11111111-1111-1111-1111-111111111111",
31651   *             "user_id": "11111111-1111-1111-1111-111111111111",
31652   *             "identity_data": {
31653   *               "email": "[email protected]",
31654   *               "email_verified": false,
31655   *               "phone_verified": false,
31656   *               "sub": "11111111-1111-1111-1111-111111111111"
31657   *             },
31658   *             "provider": "email",
31659   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
31660   *             "created_at": "2024-01-01T00:00:00Z",
31661   *             "updated_at": "2024-01-01T00:00:00Z",
31662   *             "email": "[email protected]"
31663   *           }
31664   *         ],
31665   *         "created_at": "2024-01-01T00:00:00Z",
31666   *         "updated_at": "2024-01-01T00:00:00Z",
31667   *         "is_anonymous": false
31668   *       },
31669   *       "token_type": "bearer",
31670   *       "expires_in": 3500,
31671   *       "expires_at": 1700000000
31672   *     }
31673   *   },
31674   *   "error": null
31675   * }
31676   * ```
31677   */
31678  async setSession(e) {
31679    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._setSession(e)) : await this._setSession(e);
31680  }
31681  async _setSession(e) {
31682    try {
31683      if (!e.access_token || !e.refresh_token)
31684        throw new he();
31685      const s = Date.now() / 1e3;
31686      let r = s, n = !0, o = null;
31687      const { payload: L } = W2(e.access_token);
31688      if (L.exp && (r = L.exp, n = r <= s), n) {
31689        const { data: d, error: l } = await this._callRefreshToken(e.refresh_token);
31690        if (l)
31691          return this._returnResult({ data: { user: null, session: null }, error: l });
31692        if (!d)
31693          return { data: { user: null, session: null }, error: null };
31694        o = d;
31695      } else {
31696        const { data: d, error: l } = await this._getUser(e.access_token);
31697        if (l)
31698          return this._returnResult({ data: { user: null, session: null }, error: l });
31699        o = {
31700          access_token: e.access_token,
31701          refresh_token: e.refresh_token,
31702          user: d.user,
31703          token_type: "bearer",
31704          expires_in: r - s,
31705          expires_at: r
31706        }, await this._saveSession(o), await this._notifyAllSubscribers("SIGNED_IN", o);
31707      }
31708      return this._returnResult({ data: { user: o.user, session: o }, error: null });
31709    } catch (s) {
31710      if (B(s))
31711        return this._returnResult({ data: { session: null, user: null }, error: s });
31712      throw s;
31713    }
31714  }
31715  /**
31716   * Returns a new session, regardless of expiry status.
31717   * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().
31718   * If the current session's refresh token is invalid, an error will be thrown.
31719   * @param currentSession The current session. If passed in, it must contain a refresh token.
31720   *
31721   * @category Auth
31722   *
31723   * @remarks
31724   * - This method will refresh and return a new session whether the current one is expired or not.
31725   *
31726   * @example Refresh session using the current session
31727   * ```js
31728   * const { data, error } = await supabase.auth.refreshSession()
31729   * const { session, user } = data
31730   * ```
31731   *
31732   * @exampleResponse Refresh session using the current session
31733   * ```json
31734   * {
31735   *   "data": {
31736   *     "user": {
31737   *       "id": "11111111-1111-1111-1111-111111111111",
31738   *       "aud": "authenticated",
31739   *       "role": "authenticated",
31740   *       "email": "[email protected]",
31741   *       "email_confirmed_at": "2024-01-01T00:00:00Z",
31742   *       "phone": "",
31743   *       "confirmed_at": "2024-01-01T00:00:00Z",
31744   *       "last_sign_in_at": "2024-01-01T00:00:00Z",
31745   *       "app_metadata": {
31746   *         "provider": "email",
31747   *         "providers": [
31748   *           "email"
31749   *         ]
31750   *       },
31751   *       "user_metadata": {
31752   *         "email": "[email protected]",
31753   *         "email_verified": false,
31754   *         "phone_verified": false,
31755   *         "sub": "11111111-1111-1111-1111-111111111111"
31756   *       },
31757   *       "identities": [
31758   *         {
31759   *           "identity_id": "22222222-2222-2222-2222-222222222222",
31760   *           "id": "11111111-1111-1111-1111-111111111111",
31761   *           "user_id": "11111111-1111-1111-1111-111111111111",
31762   *           "identity_data": {
31763   *             "email": "[email protected]",
31764   *             "email_verified": false,
31765   *             "phone_verified": false,
31766   *             "sub": "11111111-1111-1111-1111-111111111111"
31767   *           },
31768   *           "provider": "email",
31769   *           "last_sign_in_at": "2024-01-01T00:00:00Z",
31770   *           "created_at": "2024-01-01T00:00:00Z",
31771   *           "updated_at": "2024-01-01T00:00:00Z",
31772   *           "email": "[email protected]"
31773   *         }
31774   *       ],
31775   *       "created_at": "2024-01-01T00:00:00Z",
31776   *       "updated_at": "2024-01-01T00:00:00Z",
31777   *       "is_anonymous": false
31778   *     },
31779   *     "session": {
31780   *       "access_token": "<ACCESS_TOKEN>",
31781   *       "token_type": "bearer",
31782   *       "expires_in": 3600,
31783   *       "expires_at": 1700000000,
31784   *       "refresh_token": "<REFRESH_TOKEN>",
31785   *       "user": {
31786   *         "id": "11111111-1111-1111-1111-111111111111",
31787   *         "aud": "authenticated",
31788   *         "role": "authenticated",
31789   *         "email": "[email protected]",
31790   *         "email_confirmed_at": "2024-01-01T00:00:00Z",
31791   *         "phone": "",
31792   *         "confirmed_at": "2024-01-01T00:00:00Z",
31793   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
31794   *         "app_metadata": {
31795   *           "provider": "email",
31796   *           "providers": [
31797   *             "email"
31798   *           ]
31799   *         },
31800   *         "user_metadata": {
31801   *           "email": "[email protected]",
31802   *           "email_verified": false,
31803   *           "phone_verified": false,
31804   *           "sub": "11111111-1111-1111-1111-111111111111"
31805   *         },
31806   *         "identities": [
31807   *           {
31808   *             "identity_id": "22222222-2222-2222-2222-222222222222",
31809   *             "id": "11111111-1111-1111-1111-111111111111",
31810   *             "user_id": "11111111-1111-1111-1111-111111111111",
31811   *             "identity_data": {
31812   *               "email": "[email protected]",
31813   *               "email_verified": false,
31814   *               "phone_verified": false,
31815   *               "sub": "11111111-1111-1111-1111-111111111111"
31816   *             },
31817   *             "provider": "email",
31818   *             "last_sign_in_at": "2024-01-01T00:00:00Z",
31819   *             "created_at": "2024-01-01T00:00:00Z",
31820   *             "updated_at": "2024-01-01T00:00:00Z",
31821   *             "email": "[email protected]"
31822   *           }
31823   *         ],
31824   *         "created_at": "2024-01-01T00:00:00Z",
31825   *         "updated_at": "2024-01-01T00:00:00Z",
31826   *         "is_anonymous": false
31827   *       }
31828   *     }
31829   *   },
31830   *   "error": null
31831   * }
31832   * ```
31833   *
31834   * @example Refresh session using a refresh token
31835   * ```js
31836   * const { data, error } = await supabase.auth.refreshSession({ refresh_token })
31837   * const { session, user } = data
31838   * ```
31839   */
31840  async refreshSession(e) {
31841    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._refreshSession(e)) : await this._refreshSession(e);
31842  }
31843  async _refreshSession(e) {
31844    try {
31845      return await this._useSession(async (s) => {
31846        var r;
31847        if (!e) {
31848          const { data: L, error: d } = s;
31849          if (d)
31850            throw d;
31851          e = (r = L.session) !== null && r !== void 0 ? r : void 0;
31852        }
31853        if (!e?.refresh_token)
31854          throw new he();
31855        const { data: n, error: o } = await this._callRefreshToken(e.refresh_token);
31856        return o ? this._returnResult({ data: { user: null, session: null }, error: o }) : n ? this._returnResult({ data: { user: n.user, session: n }, error: null }) : this._returnResult({ data: { user: null, session: null }, error: null });
31857      });
31858    } catch (s) {
31859      if (B(s))
31860        return this._returnResult({ data: { user: null, session: null }, error: s });
31861      throw s;
31862    }
31863  }
31864  /**
31865   * Gets the session data from a URL string
31866   */
31867  async _getSessionFromURL(e, s) {
31868    var r;
31869    try {
31870      if (!_e())
31871        throw new H2("No browser detected.");
31872      if (e.error || e.error_description || e.error_code)
31873        throw new H2(e.error_description || "Error in URL with unspecified error_description", {
31874          error: e.error || "unspecified_error",
31875          code: e.error_code || "unspecified_code"
31876        });
31877      switch (s) {
31878        case "implicit":
31879          if (this.flowType === "pkce")
31880            throw new c6("Not a valid PKCE flow url.");
31881          break;
31882        case "pkce":
31883          if (this.flowType === "implicit")
31884            throw new H2("Not a valid implicit grant flow url.");
31885          break;
31886        default:
31887      }
31888      if (s === "pkce") {
31889        if (this._debug("#_initialize()", "begin", "is PKCE flow", !0), !e.code)
31890          throw new c6("No code detected.");
31891        const { data: b, error: S } = await this._exchangeCodeForSession(e.code, {
31892          flowId: e[H1]
31893        });
31894        if (S)
31895          throw S;
31896        const k = new URL(window.location.href);
31897        return k.searchParams.delete("code"), k.searchParams.delete(H1), window.history.replaceState(window.history.state, "", k.toString()), {
31898          data: { session: b.session, redirectType: (r = b.redirectType) !== null && r !== void 0 ? r : null },
31899          error: null
31900        };
31901      }
31902      const { provider_token: n, provider_refresh_token: o, access_token: L, refresh_token: d, expires_in: l, expires_at: g, token_type: f } = e;
31903      if (!L || !l || !d || !f)
31904        throw new H2("No session defined in URL");
31905      const p = Math.round(Date.now() / 1e3), M = parseInt(l);
31906      let u = p + M;
31907      g && (u = parseInt(g));
31908      const h = u - p;
31909      h * 1e3 <= f1 && console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${h}s, should have been closer to ${M}s`);
31910      const x = u - M;
31911      p - x >= 120 ? console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale", x, u, p) : p - x < 0 && console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew", x, u, p);
31912      const { data: _, error: v } = await this._getUser(L);
31913      if (v)
31914        throw v;
31915      const y = {
31916        provider_token: n,
31917        provider_refresh_token: o,
31918        access_token: L,
31919        expires_in: M,
31920        expires_at: u,
31921        refresh_token: d,
31922        token_type: f,
31923        user: _.user
31924      };
31925      return window.location.hash = "", this._debug("#_getSessionFromURL()", "clearing window.location.hash"), this._returnResult({ data: { session: y, redirectType: e.type }, error: null });
31926    } catch (n) {
31927      if (B(n))
31928        return this._returnResult({ data: { session: null, redirectType: null }, error: n });
31929      throw n;
31930    }
31931  }
31932  /**
31933   * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)
31934   *
31935   * If `detectSessionInUrl` is a function, it will be called with the URL and params to determine
31936   * if the URL should be processed as a Supabase auth callback. This allows users to exclude
31937   * URLs from other OAuth providers (e.g., Facebook Login) that also return access_token in the fragment.
31938   */
31939  _isImplicitGrantCallback(e) {
31940    return typeof this.detectSessionInUrl == "function" ? this.detectSessionInUrl(new URL(window.location.href), e) : !!(e.access_token || e.error || e.error_description || e.error_code);
31941  }
31942  /**
31943   * Checks if the current URL and backing storage contain parameters given by a PKCE flow
31944   */
31945  async _isPKCECallback(e) {
31946    if (!e.code)
31947      return !1;
31948    const s = i3(e[H1]);
31949    return s && await be(this.storage, wt(this.storageKey, s)) ? !0 : !!await be(this.storage, `${this.storageKey}-code-verifier`);
31950  }
31951  /**
31952   * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `"SIGNED_OUT"` event.
31953   *
31954   * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.
31955   * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.
31956   *
31957   * If using `others` scope, no `SIGNED_OUT` event is fired!
31958   *
31959   * **Warning:** the default `scope` is `'global'`. This signs the user out of
31960   * **every device they are currently signed in on**, not just the current
31961   * tab/session. If you only want to sign the user out of the current session
31962   * (the behavior most other auth libraries default to), pass
31963   * `{ scope: 'local' }` explicitly.
31964   *
31965   * @category Auth
31966   *
31967   * @remarks
31968   * - In order to use the `signOut()` method, the user needs to be signed in first.
31969   * - By default, `signOut()` uses the **global** scope, which signs out the user
31970   *   on every device they are signed in on (not just the current one). Pass
31971   *   `{ scope: 'local' }` to only sign out the current session. This is
31972   *   usually what apps want on a "Sign out" button, especially when users
31973   *   sign in from multiple devices and do not expect signing out of one to
31974   *   terminate the others.
31975   * - Since Supabase Auth uses JWTs for authentication, the access token JWT will be valid until it's expired. When the user signs out, Supabase revokes the refresh token and deletes the JWT from the client-side. This does not revoke the JWT and it will still be valid until it expires.
31976   *
31977   * @example Sign out of every device (global – default)
31978   * ```js
31979   * const { error } = await supabase.auth.signOut()
31980   * ```
31981   *
31982   * @example Sign out only the current session (recommended for most apps)
31983   * ```js
31984   * const { error } = await supabase.auth.signOut({ scope: 'local' })
31985   * ```
31986   *
31987   * @example Sign out of all other sessions, keep the current one
31988   * ```js
31989   * const { error } = await supabase.auth.signOut({ scope: 'others' })
31990   * ```
31991   */
31992  async signOut(e = { scope: "global" }) {
31993    return await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => await this._signOut(e)) : await this._signOut(e);
31994  }
31995  async _signOut({ scope: e } = { scope: "global" }) {
31996    return await this._useSession(async (s) => {
31997      var r;
31998      const n = async () => {
31999        await this._removeSession();
32000      }, { data: o, error: L } = s;
32001      if (L && !O2(L))
32002        return this._returnResult({ error: L });
32003      const d = (r = o.session) === null || r === void 0 ? void 0 : r.access_token;
32004      if (d) {
32005        const { error: l } = await this.admin.signOut(d, e);
32006        if (l && !(L6(l) && (l.status === 404 || l.status === 401 || l.status === 403) || O2(l)))
32007          return e !== "others" && await n(), this._returnResult({ error: l });
32008      }
32009      return e !== "others" && await n(), this._returnResult({ error: null });
32010    });
32011  }
32012  /**  *
32013   * @category Auth
32014   *
32015   * @remarks
32016   * - Subscribes to important events occurring on the user's session.
32017   * - Use on the frontend/client. It is less useful on the server.
32018   * - Events are emitted across tabs to keep your application's UI up-to-date. Some events can fire very frequently, based on the number of tabs open. Use a quick and efficie
32018nt callback function, and defer or debounce as many operations as you can to be performed outside of the callback.
32019   * - Callbacks can be `async` and can safely call other Supabase auth methods (`getUser`, `setSession`, etc.) from inside the callback.
32020   * - Keep callbacks quick. Events are awaited in order, so a slow callback delays subsequent events to subscribers in this tab.
32021   * - Emitted events:
32022   *   - `INITIAL_SESSION`
32023   *     - Emitted right after the Supabase client is constructed and the initial session from storage is loaded.
32024   *   - `SIGNED_IN`
32025   *     - Emitted each time a user session is confirmed or re-established, including on user sign in and when refocusing a tab.
32026   *     - Avoid making assumptions as to when this event is fired, this may occur even when the user is already signed in. Instead, check the user object attached to the event to see if a new user has signed in and update your application's UI.
32027   *     - This event can fire very frequently depending on the number of tabs open in your application.
32028   *   - `SIGNED_OUT`
32029   *     - Emitted when the user signs out. This can be after:
32030   *       - A call to `supabase.auth.signOut()`.
32031   *       - After the user's session has expired for any reason:
32032   *         - User has signed out on another device.
32033   *         - The session has reached its timebox limit or inactivity timeout.
32034   *         - User has signed in on another device with single session per user enabled.
32035   *         - Check the [User Sessions](/docs/guides/auth/sessions) docs for more information.
32036   *     - Use this to clean up any local storage your application has associated with the user.
32037   *   - `TOKEN_REFRESHED`
32038   *     - Emitted each time a new access and refresh token are fetched for the signed in user.
32039   *     - It's best practice and highly recommended to extract the access token (JWT) and store it in memory for further use in your application.
32040   *       - Avoid frequent calls to `supabase.auth.getSession()` for the same purpose.
32041   *     - There is a background process that keeps track of when the session should be refreshed so you will always receive valid tokens by listening to this event.
32042   *     - The frequency of this event is related to the JWT expiry limit configured on your project.
32043   *   - `USER_UPDATED`
32044   *     - Emitted each time the `supabase.auth.updateUser()` method finishes successfully. Listen to it to update your application's UI based on new profile information.
32045   *   - `PASSWORD_RECOVERY`
32046   *     - Emitted instead of the `SIGNED_IN` event when the user lands on a page that includes a password recovery link in the URL.
32047   *     - Use it to show a UI to the user where they can [reset their password](/docs/guides/auth/passwords#resetting-a-users-password-forgot-password).
32048   *
32049   * @example Listen to auth changes
32050   * ```js
32051   * const { data } = supabase.auth.onAuthStateChange((event, session) => {
32052   *   console.log(event, session)
32053   *
32054   *   if (event === 'INITIAL_SESSION') {
32055   *     // handle initial session
32056   *   } else if (event === 'SIGNED_IN') {
32057   *     // handle sign in event
32058   *   } else if (event === 'SIGNED_OUT') {
32059   *     // handle sign out event
32060   *   } else if (event === 'PASSWORD_RECOVERY') {
32061   *     // handle password recovery event
32062   *   } else if (event === 'TOKEN_REFRESHED') {
32063   *     // handle token refreshed event
32064   *   } else if (event === 'USER_UPDATED') {
32065   *     // handle user updated event
32066   *   }
32067   * })
32068   *
32069   * // call unsubscribe to remove the callback
32070   * data.subscription.unsubscribe()
32071   * ```
32072   *
32073   * @exampleDescription Listen to sign out
32074   * Make sure you clear out any local data, such as local and session storage, after the client library has detected the user's sign out.
32075   *
32076   * @example Listen to sign out
32077   * ```js
32078   * supabase.auth.onAuthStateChange((event, session) => {
32079   *   if (event === 'SIGNED_OUT') {
32080   *     console.log('SIGNED_OUT', session)
32081   *
32082   *     // clear local and session storage
32083   *     [
32084   *       window.localStorage,
32085   *       window.sessionStorage,
32086   *     ].forEach((storage) => {
32087   *       Object.entries(storage)
32088   *         .forEach(([key]) => {
32089   *           storage.removeItem(key)
32090   *         })
32091   *     })
32092   *   }
32093   * })
32094   * ```
32095   *
32096   * @exampleDescription Store OAuth provider tokens on sign in
32097   * When using [OAuth (Social Login)](/docs/guides/auth/social-login) you sometimes wish to get access to the provider's access token and refresh token, in order to call provider APIs in the name of the user.
32098   *
32099   * For example, if you are using [Sign in with Google](/docs/guides/auth/social-login/auth-google) you may want to use the provider token to call Google APIs on behalf of the user. Supabase Auth does not keep track of the provider access and refresh token, but does return them for you once, immediately after sign in. You can use the `onAuthStateChange` method to listen for the presence of the provider tokens and store them in local storage. You can further send them to your server's APIs for use on the backend.
32100   *
32101   * Finally, make sure you remove them from local storage on the `SIGNED_OUT` event. If the OAuth provider supports token revocation, make sure you call those APIs either from the frontend or schedule them to be called on the backend.
32102   *
32103   * @example Store OAuth provider tokens on sign in
32104   * ```js
32105   * // Register this immediately after calling createClient!
32106   * // Because signInWithOAuth causes a redirect, you need to fetch the
32107   * // provider tokens from the callback.
32108   * supabase.auth.onAuthStateChange((event, session) => {
32109   *   if (session && session.provider_token) {
32110   *     window.localStorage.setItem('oauth_provider_token', session.provider_token)
32111   *   }
32112   *
32113   *   if (session && session.provider_refresh_token) {
32114   *     window.localStorage.setItem('oauth_provider_refresh_token', session.provider_refresh_token)
32115   *   }
32116   *
32117   *   if (event === 'SIGNED_OUT') {
32118   *     window.localStorage.removeItem('oauth_provider_token')
32119   *     window.localStorage.removeItem('oauth_provider_refresh_token')
32120   *   }
32121   * })
32122   * ```
32123   *
32124   * @exampleDescription Use React Context for the User's session
32125   * Instead of relying on `supabase.auth.getSession()` within your React components, you can use a [React Context](https://react.dev/reference/react/createContext) to store the latest session information from the `onAuthStateChange` c
32125allback and access it that way.
32126   *
32127   * @example Use React Context for the User's session
32128   * ```js
32129   * const SessionContext = React.createContext(null)
32130   *
32131   * function main() {
32132   *   const [session, setSession] = React.useState(null)
32133   *
32134   *   React.useEffect(() => {
32135   *     const {data: { subscription }} = supabase.auth.onAuthStateChange(
32136   *       (event, session) => {
32137   *         if (event === 'SIGNED_OUT') {
32138   *           setSession(null)
32139   *         } else if (session) {
32140   *           setSession(session)
32141   *         }
32142   *       })
32143   *
32144   *     return () => {
32145   *       subscription.unsubscribe()
32146   *     }
32147   *   }, [])
32148   *
32149   *   return (
32150   *     <SessionContext.Provider value={session}>
32151   *       <App />
32152   *     </SessionContext.Provider>
32153   *   )
32154   * }
32155   * ```
32156   *
32157   * @example Listen to password recovery events
32158   * ```js
32159   * supabase.auth.onAuthStateChange((event, session) => {
32160   *   if (event === 'PASSWORD_RECOVERY') {
32161   *     console.log('PASSWORD_RECOVERY', session)
32162   *     // show screen to update user's password
32163   *     showPasswordResetScreen(true)
32164   *   }
32165   * })
32166   * ```
32167   *
32168   * @example Listen to sign in
32169   * ```js
32170   * supabase.auth.onAuthStateChange((event, session) => {
32171   *   if (event === 'SIGNED_IN') console.log('SIGNED_IN', session)
32172   * })
32173   * ```
32174   *
32175   * @example Listen to token refresh
32176   * ```js
32177   * supabase.auth.onAuthStateChange((event, session) => {
32178   *   if (event === 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session)
32179   * })
32180   * ```
32181   *
32182   * @example Listen to user updates
32183   * ```js
32184   * supabase.auth.onAuthStateChange((event, session) => {
32185   *   if (event === 'USER_UPDATED') console.log('USER_UPDATED', session)
32186   * })
32187   * ```
32188   */
32189  onAuthStateChange(e) {
32190    const s = Ih(), r = {
32191      id: s,
32192      callback: e,
32193      unsubscribe: () => {
32194        this._debug("#unsubscribe()", "state change callback with id removed", s), this.stateChangeEmitters.delete(s);
32195      }
32196    };
32197    return this._debug("#onAuthStateChange()", "registered callback with id", s), this.stateChangeEmitters.set(s, r), (async () => (await this.initializePromise, this.lock != null ? await this._acquireLock(this.lockAcquireTimeout, async () => {
32198      this._emitInitialSession(s);
32199    }) : await this._emitInitialSession(s)))(), { data: { subscription: r } };
32200  }
32201  async _emitInitialSession(e) {
32202    return await this._useSession(async (s) => {
32203      var r, n;
32204      try {
32205        const { data: { session: o }, error: L } = s;
32206        if (L)
32207          throw L;
32208        await ((r = this.stateChangeEmitters.get(e)) === null || r === void 0 ? void 0 : r.callback("INITIAL_SESSION", o)), this._debug("INITIAL_SESSION", "callback id", e, "session", o);
32209      } catch (o) {
32210        if (await ((n = this.stateChangeEmitters.get(e)) === null || n === void 0 ? void 0 : n.callback("INITIAL_SESSION", null)), this._debug("INITIAL_SESSION", "callback id", e, "error", o), d6(o))
32211          return;
32212        O2(o) || Z2(o) || L6(o) && (o.code === "refresh_token_not_found" || o.code === "refresh_token_already_used" || o.code === "session_expired") ? console.warn(o) : console.error(o);
32213      }
32214    });
32215  }
32216  /**
32217   * Sends a password reset request to an email address. This method supports the PKCE flow.
32218   *
32219   * @param email The email address of the user.
32220   * @param options.redirectTo The URL to send the user to after they click the password reset link.
32221   * @param options.captchaToken Verification token received when the user completes the captcha on the site.
32222   *
32223   * @category Auth
32224   *
32225   * @remarks
32226   * - The password reset flow consist of 2 broad steps: (i) Allow the user to login via the password reset link; (ii) Update the user's password.
32227   * - The `resetPasswordForEmail()` only sends a password reset link to the user's email.
32228   * To update the user's password, see [`updateUser()`](/docs/reference/javascript/auth-updateuser).
32229   * - A `PASSWORD_RECOVERY` event will be emitted when the password recovery link is clicked.
32230   * You can use [`onAuthStateChange()`](/docs/reference/javascript/auth-onauthstatechange) to listen and invoke a callback function on these events.
32231   * - When the user clicks the reset link in the email they are redirected back to your application.
32232   * You can configure the URL that the user is redirected to with the `redirectTo` parameter.
32233   * See [redirect URLs and wildcards](/docs/guides/auth/redirect-urls#use-wildcards-in-redirect-urls) to add additional redirect URLs to your project.
32234   * - After the user has been redirected successfully, prompt them for a new password and call `updateUser()`:
32235   * ```js
32236   * const { data, error } = await supabase.auth.updateUser({
32237   *   password: new_password
32238   * })
32239   * ```
32240   *
32241   * @example Reset password
32242   * ```js
32243   * const { data, error } = await supabase.auth.resetPasswordForEmail(email, {
32244   *   redirectTo: 'https://example.com/update-password',
32245   * })
32246   * ```
32247   *
32248   * @exampleResponse Reset password
32249   * ```json
32250   * {
32251   *   data: {}
32252   *   error: null
32253   * }
32254   * ```
32255   *
32256   * @example Reset password (React)
32257   * ```js
32258   * /**
32259   *  * Step 1: Send the user an email to get a password reset token.
32260   *  * This email contains a link which sends the user back to your application.
32261   *  *\/
32262   * const { data, error } = await supabase.auth
32263   *   .resetPasswordForEmail('[email protected]')
32264   *
32265   * /**
32266   *  * Step 2: Once the user is redirected back to your application,
32267   *  * ask the user to reset their password.
32268   *  *\/
32269   *  useEffect(() => {
32270   *    supabase.auth.onAuthStateChange(async (event, session) => {
32271   *      if (event == "PASSWORD_RECOVERY") {
32272   *        const newPassword = prompt("What would you like your new password to be?");
32273   *        const { data, error } = await supabase.auth
32274   *          .updateUser({ password: newPassword })
32275   *
32276   *        if (data) alert("Password updated successfully!")
32277   *        if (error) alert("There was an error updating your password.")
32278   *      }
32279   *    })
32280   *  }, [])
32281   * ```
32282   */
32283  async resetPasswordForEmail(e, s = {}) {
32284    let r = null, n = null, o = null;
32285    this.flowType === "pkce" && ([r, n, o] = await this._getCodeChallengeAndMethod(
32286      !0
32287      // isPasswordRecovery
32288    ));
32289    try {
32290      return await N(this.fetch, "POST", `${this.url}/recover`, {
32291        body: {
32292          email: e,
32293          code_challenge: r,
32294          code_challenge_method: n,
32295          gotrue_meta_security: { captcha_token: s.captchaToken }
32296        },
32297        headers: this.headers,
32298        redirectTo: this._maybeAppendFlowIdToRedirect(s.redirectTo, o)
32299      });
32300    } catch (L) {
32301      if (await He(this.storage, this.storageKey, o), B(L))
32302        return this._returnResult({ data: null, error: L });
32303      throw L;
32304    }
32305  }
32306  /**
32307   * Gets all the identities linked to a user.
32308   *
32309   * @category Auth
32310   *
32311   * @remarks
32312   * - The user needs to be signed in to call `getUserIdentities()`.
32313   *
32314   * @example Returns a list of identities linked to the user
32315   * ```js
32316   * const { data, error } = await supabase.auth.getUserIdentities()
32317   * ```
32318   *
32319   * @exampleResponse Returns a list of identities linked to the user
32320   * ```json
32321   * {
32322   *   "data": {
32323   *     "identities": [
32324   *       {
32325   *         "identity_id": "22222222-2222-2222-2222-222222222222",
32326   *         "id": "2024-01-01T00:00:00Z",
32327   *         "user_id": "2024-01-01T00:00:00Z",
32328   *         "identity_data": {
32329   *           "email": "[email protected]",
32330   *           "email_verified": false,
32331   *           "phone_verified": false,
32332   *           "sub": "11111111-1111-1111-1111-111111111111"
32333   *         },
32334   *         "provider": "email",
32335   *         "last_sign_in_at": "2024-01-01T00:00:00Z",
32336   *         "created_at": "2024-01-01T00:00:00Z",
32337   *         "updated_at": "2024-01-01T00:00:00Z",
32338   *         "email": "[email protected]"
32339   *       }
32340   *     ]
32341   *   },
32342   *   "error": null
32343   * }
32344   * ```
32345   */
32346  async getUserIdentities() {
32347    var e;
32348    try {
32349      const { data: s, error: r } = await this.getUser();
32350      if (r)
32351        throw r;
32352      return this._returnResult({ data: { identities: (e = s.user.identities) !== null && e !== void 0 ? e : [] }, error: null });
32353    } catch (s) {
32354      if (B(s))
32355        return this._returnResult({ data: null, error: s });
32356      throw s;
32357    }
32358  }
32359  /**  *
32360   * @category Auth
32361   *
32362   * @remarks
32363   * - The **Enable Manual Linking** option must be enabled from your [project's authentication settings](/dashboard/project/_/auth/providers).
32364   * - The user needs to be signed in to call `linkIdentity()`.
32365   * - If the candidate identity is already linked to the existing user or another user, `linkIdentity()` will fail.
32366   * - If `linkIdentity` is run in the browser, the user is automatically redirected to the returned URL. On the server, you should handle the redirect.
32367   *
32368   * @example Link an identity to a user
32369   * ```js
32370   * const { data, error } = await supabase.auth.linkIdentity({
32371   *   provider: 'github'
32372   * })
32373   * ```
32374   *
32375   * @exampleResponse Link an identity to a user
32376   * ```json
32377   * {
32378   *   data: {
32379   *     provider: 'github',
32380   *     url: <PROVIDER_URL_TO_REDIRECT_TO>,
32381   *     flowId: <PKCE_FLOW_ID_OR_NULL>
32382   *   },
32383   *   error: null
32384   * }
32385   * ```
32386   */
32387  async linkIdentity(e) {
32388    return "token" in e ? this.linkIdentityIdToken(e) : this.linkIdentityOAuth(e);
32389  }
32390  async linkIdentityOAuth(e) {
32391    var s;
32392    let r = null;
32393    try {
32394      const { data: n, error: o } = await this._useSession(async (L) => {
32395        var d, l, g, f, p;
32396        const { data: M, error: u } = L;
32397        if (u)
32398          throw u;
32399        const { url: h, flowId: x } = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, e.provider, {
32400          redirectTo: (d = e.options) === null || d === void 0 ? void 0 : d.redirectTo,
32401          scopes: (l = e.options) === null || l === void 0 ? void 0 : l.scopes,
32402          queryParams: (g = e.options) === null || g === void 0 ? void 0 : g.queryParams,
32403          skipBrowserRedirect: !0
32404        });
32405        return r = x, await N(this.fetch, "GET", h, {
32406          headers: this.headers,
32407          jwt: (p = (f = M.session) === null || f === void 0 ? void 0 : f.access_token) !== null && p !== void 0 ? p : void 0
32408        });
32409      });
32410      if (o)
32411        throw o;
32412      return _e() && !(!((s = e.options) === null || s === void 0) && s.skipBrowserRedirect) && window.location.assign(n?.url), this._returnResult({
32413        data: { provider: e.provider, url: n?.url, flowId: r },
32414        error: null
32415      });
32416    } catch (n) {
32417      if (B(n))
32418        return this._returnResult({
32419          data: { provider: e.provider, url: null, flowId: r },
32420          error: n
32421        });
32422      throw n;
32423    }
32424  }
32425  async linkIdentityIdToken(e) {
32426    return await this._useSession(async (s) => {
32427      var r;
32428      try {
32429        const { error: n, data: { session: o } } = s;
32430        if (n)
32431          throw n;
32432        const { options: L, provider: d, token: l, access_token: g, nonce: f } = e, p = await N(this.fetch, "POST", `${this.url}/token?grant_type=id_token`, {
32433          headers: this.headers,
32434          jwt: (r = o?.access_token) !== null && r !== void 0 ? r : void 0,
32435          body: {
32436            provider: d,
32437            id_token: l,
32438            access_token: g,
32439            nonce: f,
32440            link_identity: !0,
32441            gotrue_meta_security: { captcha_token: L?.captchaToken }
32442          },
32443          xform: De
32444        }), { data: M, error: u } = p;
32445        return u ? this._returnResult({ data: { user: null, session: null }, error: u }) : !M || !M.session || !M.user ? this._returnResult({
32446          data: { user: null, session: null },
32447          error: new et()
32448        }) : (M.session && (await this._saveSession(M.session), await this._notifyAllSubscribers("USER_UPDATED", M.session)), this._returnResult({ data: M, error: u }));
32449      } catch (n) {
32450        if (await He(this.storage, this.storageKey, null), B(n))
32451          return this._returnResult({ data: { user: null, session: null }, error: n });
32452        throw n;
32453      }
32454    });
32455  }
32456  /**
32457   * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.
32458   *
32459   * @category Auth
32460   *
32461   * @remarks
32462   * - The **Enable Manual Linking** option must be enabled from your [project's authentication settings](/dashboard/project/_/auth/providers).
32463   * - The user needs to be signed in to call `unlinkIdentity()`.
32464   * - The user must have at least 2 identities in order to unlink an identity.
32465   * - The identity to be unlinked must belong to the user.
32466   *
32467   * @example Unlink an identity
32468   * ```js
32469   * // retrieve all identities linked to a user
32470   * const identities = await supabase.auth.getUserIdentities()
32471   *
32472   * // find the google identity
32473   * const googleIdentity = identities.find(
32474   *   identity => identity.provider === 'google'
32475   * )
32476   *
32477   * // unlink the google identity
32478   * const { error } = await supabase.auth.unlinkIdentity(googleIdentity)
32479   * ```
32480   */
32481  async unlinkIdentity(e) {
32482    try {
32483      return await this._useSession(async (s) => {
32484        var r, n;
32485        const { data: o, error: L } = s;
32486        if (L)
32487          throw L;
32488        return await N(this.fetch, "DELETE", `${this.url}/user/identities/${e.identity_id}`, {
32489          headers: this.headers,
32490          jwt: (n = (r = o.session) === null || r === void 0 ? void 0 : r.access_token) !== null && n !== void 0 ? n : void 0
32491        });
32492      });
32493    } catch (s) {
32494      if (B(s))
32495        return this._returnResult({ data: null, error: s });
32496      throw s;
32497    }
32498  }
32499  /**
32500   * Generates a new JWT.
32501   * @param refreshToken A valid refresh token that was returned on login.
32502   */
32503  async _refreshAccessToken(e) {
32504    const s = "#_refreshAccessToken()";
32505    this._debug(s, "begin");
32506    try {
32507      const r = Date.now();
32508      return await Fh(async (n) => (n > 0 && await Ch(200 * Math.pow(2, n - 1)), this._debug(s, "refreshing attempt", n), await N(this.fetch, "POST", `${this.url}/token?grant_type=refresh_token`, {
32509        body: { refresh_token: e },
32510        headers: this.headers,
32511        xform: De
32512      })), (n, o) => {
32513        const L = 200 * Math.pow(2, n);
32514        return o && Z2(o) && // retryable only if the request can be sent before the backoff overflows the tick duration
32515        Date.now() + L - r < f1;
32516      });
32517    } catch (r) {
32518      if (this._debug(s, "error", r), B(r))
32519        return this._returnResult({ data: { session: null, user: null }, error: r });
32520      throw r;
32521    } finally {
32522      this._debug(s, "end");
32523    }
32524  }
32525  _isValidSession(e) {
32526    return typeof e == "object" && e !== null && "access_token" in e && "refresh_token" in e && "expires_at" in e;
32527  }
32528  async _handleProviderSignIn(e, s) {
32529    const { url: r, flowId: n } = await this._getUrlForProvider(`${this.url}/authorize`, e, {
32530      redirectTo: s.redirectTo,
32531      scopes: s.scopes,
32532      queryParams: s.queryParams
32533    });
32534    return this._debug("#_handleProviderSignIn()", "provider", e, "options", s, "url", r), _e() && !s.skipBrowserRedirect && window.location.assign(r), { data: { provider: e, url: r, flowId: n }, error: null };
32535  }
32536  /**
32537   * Recovers the session from LocalStorage and refreshes the token
32538   * Note: this method is async to accommodate for AsyncStorage e.g. in React native.
32539   */
32540  async _recoverAndRefresh() {
32541    var e, s;
32542    const r = "#_recoverAndRefresh()";
32543    this._debug(r, "begin");
32544    try {
32545      const n = await be(this.storage, this.storageKey);
32546      if (n && this.userStorage) {
32547        let L = await be(this.userStorage, this.storageKey + "-user");
32548        !this.storage.isServer && Object.is(this.storage, this.userStorage) && !L && (L = { user: n.user }, await p1(this.userStorage, this.storageKey + "-user", L)), n.user = (e = L?.user) !== null && e !== void 0 ? e : _4();
32549      } else if (n && !n.user && !n.user) {
32550        const L = await be(this.storage, this.storageKey + "-user");
32551        L && L?.user ? (n.user = L.user, await ke(this.storage, this.storageKey + "-user"), await p1(this.storage, this.storageKey, n)) : n.user = _4();
32552      }
32553      if (this._debug(r, "session from storage", n), !this._isValidSession(n)) {
32554        this._debug(r, "session is not valid"), n !== null && await this._removeSession();
32555        return;
32556      }
32557      const o = ((s = n.expires_at) !== null && s !== void 0 ? s : 1 / 0) * 1e3 - Date.now() < x4;
32558      if (this._debug(r, `session has${o ? "" : " not"} expired with margin of ${x4}s`), o) {
32559        if (this.autoRefreshToken && n.refresh_token) {
32560          const { error: L } = await this._callRefreshToken(n.refresh_token);
32561          L && (d6(L) ? this._debug(r, "refresh discarded by commit guard", L) : this._debug(r, "refresh failed", L));
32562        }
32563      } else if (n.user && n.user.__isUserNotAvailableProxy === !0)
32564        try {
32565          const { data: L, error: d } = await this._getUser(n.access_token);
32566          !d && L?.user ? (n.user = L.user, await this._saveSession(n), await this._notifyAllSubscribers("SIGNED_IN", n)) : this._debug(r, "could not get user data, skipping SIGNED_IN notification");
32567        } catch (L) {
32568          console.error("Error getting user data:", L), this._debug(r, "error getting user data, skipping SIGNED_IN notification", L);
32569        }
32570      else
32571        await this._notifyAllSubscribers("SIGNED_IN", n);
32572    } catch (n) {
32573      this._debug(r, "error", n), Z2(n) ? console.warn(n) : console.error(n);
32574      return;
32575    } finally {
32576      this._debug(r, "end");
32577    }
32578  }
32579  async _callRefreshToken(e) {
32580    var s, r;
32581    if (!e)
32582      throw new he();
32583    if (this.refreshingDeferred)
32584      return this.refreshingDeferred.promise;
32585    if (this.lastRefreshFailure && this.lastRefreshFailure.refreshToken === e && Date.now() < this.lastRefreshFailure.expiresAt)
32586      return this._debug("#_callRefreshToken()", "returning cached failure (cooldown active)"), this.lastRefreshFailure.result;
32587    const n = "#_callRefreshToken()";
32588    this._debug(n, "begin");
32589    try {
32590      this.refreshingDeferred = new H3(), this.refreshingDeferred.promise.then(void 0, () => {
32591      });
32592      const o = await be(this.storage, this.storageKey), { data: L, error: d } = await this._refreshAccessToken(e);
32593      if (d)
32594        throw d;
32595      if (!L.session)
32596        throw new he();
32597      const l = await be(this.storage, this.storageKey);
32598      if (o !== null && (l === null || l.refresh_token !== o.refresh_token)) {
32599        this._debug(n, "commit guard: storage changed since refresh started, discarding rotated tokens", {
32600          // Presence indicators only — never log refresh token fragments,
32601          // even partial. Logs may be forwarded to third-party services.
32602          startedWith: "present",
32603          nowHolds: l ? "replaced" : "cleared"
32604        });
32605        const M = {
32606          data: null,
32607          error: new l6()
32608        };
32609        return this.refreshingDeferred.resolve(M), M;
32610      }
32611      const f = this._sessionRemovalEpoch;
32612      if (await this._saveSession(L.session), this._sessionRemovalEpoch !== f) {
32613        this._debug(n, "commit guard (post-save): _removeSession ran during _saveSession, undoing write"), await ke(this.storage, this.storageKey), this.userStorage && await ke(this.userStorage, this.storageKey + "-user");
32614        const M = {
32615          data: null,
32616          error: new l6()
32617        };
32618        return this.refreshingDeferred.resolve(M), M;
32619      }
32620      await this._notifyAllSubscribers("TOKEN_REFRESHED", L.session);
32621      const p = { data: L.session, error: null };
32622      return this.lastRefreshFailure = null, this.refreshingDeferred.resolve(p), p;
32623    } catch (o) {
32624      if (this._debug(n, "error", o), B(o)) {
32625        const L = { data: null, error: o };
32626        if (!Z2(o)) {
32627          const d = await be(this.storage, this.storageKey);
32628          !!(d?.expires_at && d.expires_at * 1e3 > Date.now()) ? this._debug(n, "proactive refresh failed, access token still valid — preserving session") : await this._removeSession();
32629        }
32630        return this.lastRefreshFailure = {
32631          refreshToken: e,
32632          result: L,
32633          expiresAt: Date.now() + uh
32634        }, (s = this.refreshingDeferred) === null || s === void 0 || s.resolve(L), L;
32635      }
32636      throw (r = this.refreshingDeferred) === null || r === void 0 || r.reject(o), o;
32637    } finally {
32638      this.refreshingDeferred = null, this._debug(n, "end");
32639    }
32640  }
32641  async _notifyAllSubscribers(e, s, r = !0) {
32642    if (this._pendingInitNotifications !== null && r) {
32643      this._pendingInitNotifications.push({ event: e, session: s, broadcast: r });
32644      return;
32645    }
32646    const n = `#_notifyAllSubscribers(${e})`;
32647    this._debug(n, "begin", s, `broadcast = ${r}`);
32648    try {
32649      this.broadcastChannel && r && this.broadcastChannel.postMessage({ event: e, session: s });
32650      const o = [], L = Array.from(this.stateChangeEmitters.values()).map(async (d) => {
32651        try {
32652          await d.callback(e, s);
32653        } catch (l) {
32654          o.push(l);
32655        }
32656      });
32657      if (await Promise.all(L), o.length > 0) {
32658        for (let d = 0; d < o.length; d += 1)
32659          console.error(o[d]);
32660        throw o[0];
32661      }
32662    } finally {
32663      this._debug(n, "end");
32664    }
32665  }
32666  /**
32667   * set currentSession and currentUser
32668   * process to _startAutoRefreshToken if possible
32669   */
32670  async _saveSession(e) {
32671    this._debug("#_saveSession()", e), this.suppressGetSessionWarning = !0;
32672    const s = Object.assign({}, e), r = s.user && s.user.__isUserNotAvailableProxy === !0;
32673    if (this.userStorage) {
32674      !r && s.user && await p1(this.userStorage, this.storageKey + "-user", {
32675        user: s.user
32676      });
32677      const n = Object.assign({}, s);
32678      delete n.user;
32679      const o = h6(n);
32680      await p1(this.storage, this.storageKey, o);
32681    } else {
32682      const n = h6(s);
32683      await p1(this.storage, this.storageKey, n);
32684    }
32685  }
32686  async _removeSession() {
32687    this._sessionRemovalEpoch += 1, this._debug("#_removeSession()"), this.lastRefreshFailure = null, this.suppressGetSessionWarning = !1, await ke(this.storage, this.storageKey), await Hh(this.storage, this.storageKey), await ke(this.storage, this.storageKey + "-user"), this.userStorage && await ke(this.userStorage, this.storageKey + "-user"), await this._notifyAllSubscribers("SIGNED_OUT", null);
32688  }
32689  /**
32690   * Removes any registered visibilitychange callback.
32691   *
32692   * {@link GoTrueClient.startAutoRefresh}
32693   * {@link GoTrueClient.stopAutoRefresh}
32694   */
32695  _removeVisibilityChangedCallback() {
32696    this._debug("#_removeVisibilityChangedCallback()");
32697    const e = this.visibilityChangedCallback;
32698    this.visibilityChangedCallback = null;
32699    try {
32700      e && _e() && window?.removeEventListener && window.removeEventListener("visibilitychange", e);
32701    } catch (s) {
32702      console.error("removing visibilitychange callback failed", s);
32703    }
32704  }
32705  /**
32706   * This is the private implementation of {@link GoTrueClient.startAutoRefresh}. Use this
32707   * within the library.
32708   */
32709  async _startAutoRefresh() {
32710    await this._stopAutoRefresh(), this._debug("#_startAutoRefresh()");
32711    const e = setInterval(() => this._autoRefreshTokenTick(), f1);
32712    this.autoRefreshTicker = e, e && typeof e == "object" && typeof e.unref == "function" ? e.unref() : typeof Deno < "u" && typeof Deno.unrefTimer == "function" && Deno.unrefTimer(e);
32713    const s = setTimeout(async () => {
32714      await this.initializePromise, await this._autoRefreshTokenTick();
32715    }, 0);
32716    this.autoRefreshTickTimeout = s, s && typeof s == "object" && typeof s.unref == "function" ? s.unref() : typeof Deno < "u" && typeof Deno.unrefTimer == "function" && Deno.unrefTimer(s);
32717  }
32718  /**
32719   * This is the private implementation of {@link GoTrueClient.stopAutoRefresh}. Use this
32720   * within the library.
32721   */
32722  async _stopAutoRefresh() {
32723    this._debug("#_stopAutoRefresh()");
32724    const e = this.autoRefreshTicker;
32725    this.autoRefreshTicker = null, e && clearInterval(e);
32726    const s = this.autoRefreshTickTimeout;
32727    this.autoRefreshTickTimeout = null, s && clearTimeout(s);
32728  }
32729  /**
32730   * Starts an auto-refresh process in the background. The session is checked
32731   * every few seconds. Close to the time of expiration a process is started to
32732   * refresh the session. If refreshing fails it will be retried for as long as
32733   * necessary.
32734   *
32735   * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need
32736   * to call this function, it will be called for you.
32737   *
32738   * On browsers the refresh process works only when the tab/window is in the
32739   * foreground to conserve resources as well as prevent race conditions and
32740   * flooding auth with requests. If you call this method any managed
32741   * visibility change callback will be removed and you must manage visibility
32742   * changes on your own.
32743   *
32744   * On non-browser platforms the refresh process works *continuously* in the
32745   * background, which may not be desirable. You should hook into your
32746   * platform's foreground indication mechanism and call these methods
32747   * appropriately to conserve resources.
32748   *
32749   * {@link GoTrueClient.stopAutoRefresh}
32750   *
32751   * @category Auth
32752   *
32753   * @remarks
32754   * - Only useful in non-browser environments such as React Native or Electron.
32755   * - The Supabase Auth library automatically starts and stops proactively refreshing the session when a tab is focused or not.
32756   * - On non-browser platforms, such as mobile or desktop apps built with web technologies, the library is not able to effectively determine whether the application is _focused_ or not.
32757   * - To give this hint to the application, you should be calling this method when the app is in focus and calling `supabase.auth.stopAutoRefresh()` when it's out of focus.
32758   *
32759   * @example Start and stop auto refresh in React Native
32760   * ```js
32761   * import { AppState } from 'react-native'
32762   *
32763   * // make sure you register this only once!
32764   * AppState.addEventListener('change', (state) => {
32765   *   if (state === 'active') {
32766   *     supabase.auth.startAutoRefresh()
32767   *   } else {
32768   *     supabase.auth.stopAutoRefresh()
32769   *   }
32770   * })
32771   * ```
32772   */
32773  async startAutoRefresh() {
32774    this._removeVisibilityChangedCallback(), await this._startAutoRefresh();
32775  }
32776  /**
32777   * Stops an active auto refresh process running in the background (if any).
32778   *
32779   * If you call this method any managed visibility change callback will be
32780   * removed and you must manage visibility changes on your own.
32781   *
32782   * See {@link GoTrueClient.startAutoRefresh} for more details.
32783   *
32784   * @category Auth
32785   *
32786   * @remarks
32787   * - Only useful in non-browser environments such as React Native or Electron.
32788   * - The Supabase Auth library automatically starts and stops proactively refreshing the session when a tab is focused or not.
32789   * - On non-browser platforms, such as mobile or desktop apps built with web technologies, the library is not able to effectively determine whether the application is _focused_ or not.
32790   * - When your application goes in the background or out of focus, call this method to stop the proactive refreshing of the session.
32791   *
32792   * @example Start and stop auto refresh in React Native
32793   * ```js
32794   * import { AppState } from 'react-native'
32795   *
32796   * // make sure you register this only once!
32797   * AppState.addEventListener('change', (state) => {
32798   *   if (state === 'active') {
32799   *     supabase.auth.startAutoRefresh()
32800   *   } else {
32801   *     supabase.auth.stopAutoRefresh()
32802   *   }
32803   * })
32804   * ```
32805   */
32806  async stopAutoRefresh() {
32807    this._removeVisibilityChangedCallback(), await this._stopAutoRefresh();
32808  }
32809  /**
32810   * Tears down the client's background work: stops the auto-refresh interval,
32811   * removes the `visibilitychange` listener, closes the cross-tab
32812   * `BroadcastChannel`, and clears registered `onAuthStateChange` subscribers.
32813   *
32814   * Call this from cleanup hooks when the client is being replaced before
32815   * its JS realm is destroyed. React Strict Mode and HMR are the common
32816   * cases. Any in-flight `fetch` calls continue to completion and may still
32817   * write to storage; dispose doesn't abort them or erase storage.
32818   *
32819   * Lifecycle caveat: because in-flight refreshes are not aborted, a
32820   * disposed instance can still persist a rotated session to storage after
32821   * `dispose()` returns. A subsequent `createClient` against the same
32822   * `storageKey` will pick up that session on its next read. If you need
32823   * strict isolation between client lifecycles, await any pending auth
32824   * operation before calling `dispose()` (or change the `storageKey` for
32825   * the replacement client).
32826   *
32827   * Safe to call repeatedly.
32828   *
32829   * @category Auth
32830   *
32831   * @example Cleanup on React unmount
32832   * ```ts
32833   * useEffect(() => {
32834   *   const client = createClient(...)
32835   *   return () => { client.auth.dispose() }
32836   * }, [])
32837   * ```
32838   */
32839  async dispose() {
32840    var e;
32841    this._removeVisibilityChangedCallback(), await this._stopAutoRefresh(), (e = this.broadcastChannel) === null || e === void 0 || e.close(), this.broadcastChannel = null, this.stateChangeEmitters.clear();
32842  }
32843  /**
32844   * Runs the auto refresh token tick.
32845   */
32846  async _autoRefreshTokenTick() {
32847    if (this._debug("#_autoRefreshTokenTick()", "begin"), this.lock != null) {
32848      try {
32849        await this._acquireLock(0, async () => {
32850          try {
32851            const e = Date.now();
32852            try {
32853              return await this._useSession(async (s) => {
32854                const { data: { session: r } } = s;
32855                if (!r || !r.refresh_token || !r.expires_at) {
32856                  this._debug("#_autoRefreshTokenTick()", "no session");
32857                  return;
32858                }
32859                const n = Math.floor((r.expires_at * 1e3 - e) / f1);
32860                this._debug("#_autoRefreshTokenTick()", `access token expires in ${n} ticks, a tick lasts ${f1}ms, refresh threshold is ${Zt} ticks`), n <= Zt && await this._callRefreshToken(r.refresh_token);
32861              });
32862            } catch (s) {
32863              console.error("Auto refresh tick failed with error. This is likely a transient error.", s);
32864            }
32865          } finally {
32866            this._debug("#_autoRefreshTokenTick()", "end");
32867          }
32868        });
32869      } catch (e) {
32870        if (e instanceof sm)
32871          this._debug("auto refresh token tick lock not available");
32872        else
32873          throw e;
32874      }
32875      return;
32876    }
32877    if (this.refreshingDeferred !== null) {
32878      this._debug("#_autoRefreshTokenTick()", "refresh already in flight, skipping");
32879      return;
32880    }
32881    try {
32882      const e = Date.now();
32883      try {
32884        await this._useSession(async (s) => {
32885          const { data: { session: r } } = s;
32886          if (!r || !r.refresh_token || !r.expires_at) {
32887            this._debug("#_autoRefreshTokenTick()", "no session");
32888            return;
32889          }
32890          const n = Math.floor((r.expires_at * 1e3 - e) / f1);
32891          this._debug("#_autoRefreshTokenTick()", `access token expires in ${n} ticks, a tick lasts ${f1}ms, refresh threshold is ${Zt} ticks`), n <= Zt && await this._callRefreshToken(r.refresh_token);
32892        });
32893      } catch (s) {
32894        console.error("Auto refresh tick failed with error. This is likely a transient error.", s);
32895      }
32896    } finally {
32897      this._debug("#_autoRefreshTokenTick()", "end");
32898    }
32899  }
32900  /**
32901   * Registers callbacks on the browser / platform, which in-turn run
32902   * algorithms when the browser window/tab are in foreground. On non-browser
32903   * platforms it assumes always foreground.
32904   */
32905  async _handleVisibilityChange() {
32906    if (this._debug("#_handleVisibilityChange()"), !_e() || !window?.addEventListener)
32907      return this.autoRefreshToken && this.startAutoRefresh(), !1;
32908    try {
32909      this.visibilityChangedCallback = async () => {
32910        try {
32911          await this._onVisibilityChanged(!1);
32912        } catch (e) {
32913          this._debug("#visibilityChangedCallback", "error", e);
32914        }
32915      }, window?.addEventListener("visibilitychange", this.visibilityChangedCallback), await this._onVisibilityChanged(!0);
32916    } catch (e) {
32917      console.error("_handleVisibilityChange", e);
32918    }
32919  }
32920  /**
32921   * Callback registered with `window.addEventListener('visibilitychange')`.
32922   */
32923  async _onVisibilityChanged(e) {
32924    const s = `#_onVisibilityChanged(${e})`;
32925    if (this._debug(s, "visibilityState", document.visibilityState), document.visibilityState === "visible") {
32926      if (this.autoRefreshToken && this._startAutoRefresh(), !e)
32927        if (await this.initializePromise, this.lock != null)
32928          await this._acquireLock(this.lockAcquireTimeout, async () => {
32929            if (document.visibilityState !== "visible") {
32930              this._debug(s, "acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");
32931              return;
32932            }
32933            await this._recoverAndRefresh();
32934          });
32935        else {
32936          if (document.visibilityState !== "visible") {
32937            this._debug(s, "visibilityState is no longer visible, skipping recovery");
32938            return;
32939          }
32940          await this._recoverAndRefresh();
32941        }
32942    } else document.visibilityState === "hidden" && this.autoRefreshToken && this._stopAutoRefresh();
32943  }
32944  /**
32945   * Generates the relevant login URL for a third-party provider.
32946   * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.
32947   * @param options.scopes A space-separated list of scopes granted to the OAuth application.
32948   * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.
32949   */
32950  async _getUrlForProvider(e, s, r) {
32951    let n = r?.redirectTo, o = null, L = null, d = null;
32952    this.flowType === "pkce" && ([o, L, d] = await this._getCodeChallengeAndMethod(), n = this._maybeAppendFlowIdToRedirect(n, d));
32953    const l = [`provider=${encodeURIComponent(s)}`];
32954    if (n && l.push(`redirect_to=${encodeURIComponent(n)}`), r?.scopes && l.push(`scopes=${encodeURIComponent(r.scopes)}`), o != null && L != null) {
32955      const g = new URLSearchParams({
32956        code_challenge: `${encodeURIComponent(o)}`,
32957        code_challenge_method: `${encodeURIComponent(L)}`
32958      });
32959      l.push(g.toString());
32960    }
32961    if (r?.queryParams) {
32962      const g = new URLSearchParams(r.queryParams);
32963      l.push(g.toString());
32964    }
32965    return r?.skipBrowserRedirect && l.push(`skip_http_redirect=${r.skipBrowserRedirect}`), { url: `${e}?${l.join("&")}`, flowId: d };
32966  }
32967  /**
32968   * Appends the reserved flow id parameter to a redirect URL so the callback
32969   * can be matched to the verifier stored for its flow. Opt-in via
32970   * `experimental.appendPkceFlowIdToRedirects`: redirect URLs are validated
32971   * against the project's allow list including the query string, so an extra
32972   * parameter can stop exact (non-wildcard) entries from matching.
32973   */
32974  _maybeAppendFlowIdToRedirect(e, s) {
32975    return !e || !s || !this.experimental.appendPkceFlowIdToRedirects ? e ?? void 0 : Zh(e, s);
32976  }
32977  /**
32978   * Generates and stores a PKCE challenge/verifier pair for a new flow,
32979   * logging any pending verifier the bounded slot ring evicts.
32980   */
32981  async _getCodeChallengeAndMethod(e = !1) {
32982    return Wh(this.storage, this.storageKey, e, (s) => this._debug("#_getCodeChallengeAndMethod()", "evicted oldest pending PKCE verifier slot", s));
32983  }
32984  async _unenroll(e) {
32985    try {
32986      return await this._useSession(async (s) => {
32987        var r;
32988        const { data: n, error: o } = s;
32989        return o ? this._returnResult({ data: null, error: o }) : await N(this.fetch, "DELETE", `${this.url}/factors/${e.factorId}`, {
32990          headers: this.headers,
32991          jwt: (r = n?.session) === null || r === void 0 ? void 0 : r.access_token
32992        });
32993      });
32994    } catch (s) {
32995      if (B(s))
32996        return this._returnResult({ data: null, error: s });
32997      throw s;
32998    }
32999  }
33000  async _enroll(e) {
33001    try {
33002      return await this._useSession(async (s) => {
33003        var r, n;
33004        const { data: o, error: L } = s;
33005        if (L)
33006          return this._returnResult({ data: null, error: L });
33007        const d = Object.assign({ friendly_name: e.friendlyName, factor_type: e.factorType }, e.factorType === "phone" ? { phone: e.phone } : e.factorType === "totp" ? { issuer: e.issuer } : {}), { data: l, error: g } = await N(this.fetch, "POST", `${this.url}/factors`, {
33008          body: d,
33009          headers: this.headers,
33010          jwt: (r = o?.session) === null || r === void 0 ? void 0 : r.access_token
33011        });
33012        return g ? this._returnResult({ data: null, error: g }) : (e.factorType === "totp" && l.type === "totp" && (!((n = l?.totp) === null || n === void 0) && n.qr_code) && (l.totp.qr_code = `data:image/svg+xml;utf-8,${l.totp.qr_code}`), this._returnResult({ data: l, error: null }));
33013      });
33014    } catch (s) {
33015      if (B(s))
33016        return this._returnResult({ data: null, error: s });
33017      throw s;
33018    }
33019  }
33020  async _verify(e) {
33021    const s = async () => {
33022      try {
33023        return await this._useSession(async (r) => {
33024          var n;
33025          const { data: o, error: L } = r;
33026          if (L)
33027            return this._returnResult({ data: null, error: L });
33028          const d = Object.assign({ challenge_id: e.challengeId }, "webauthn" in e ? {
33029            webauthn: Object.assign(Object.assign({}, e.webauthn), { credential_response: e.webauthn.type === "create" ? T6(e.webauthn.credential_response) : S6(e.webauthn.credential_response) })
33030          } : { code: e.code }), { data: l, error: g } = await N(this.fetch, "POST", `${this.url}/factors/${e.factorId}/verify`, {
33031            body: d,
33032            headers: this.headers,
33033            jwt: (n = o?.session) === null || n === void 0 ? void 0 : n.access_token
33034          });
33035          return g ? this._returnResult({ data: null, error: g }) : (await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1e3) + l.expires_in }, l)), await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED", l), this._returnResult({ data: l, error: g }));
33036        });
33037      } catch (r) {
33038        if (B(r))
33039          return this._returnResult({ data: null, error: r });
33040        throw r;
33041      }
33042    };
33043    return this.lock != null ? this._acquireLock(this.lockAcquireTimeout, s) : s();
33044  }
33045  async _challenge(e) {
33046    const s = async () => {
33047      try {
33048        return await this._useSession(async (r) => {
33049          var n;
33050          const { data: o, error: L } = r;
33051          if (L)
33052            return this._returnResult({ data: null, error: L });
33053          const d = await N(this.fetch, "POST", `${this.url}/factors/${e.factorId}/challenge`, {
33054            body: e,
33055            headers: this.headers,
33056            jwt: (n = o?.session) === null || n === void 0 ? void 0 : n.access_token
33057          });
33058          if (d.error)
33059            return d;
33060          const { data: l } = d;
33061          if (l.type !== "webauthn")
33062            return { data: l, error: null };
33063          switch (l.webauthn.type) {
33064            case "create":
33065              return {
33066                data: Object.assign(Object.assign({}, l), { webauthn: Object.assign(Object.assign({}, l.webauthn), { credential_options: Object.assign(Object.assign({}, l.webauthn.credential_options), { publicKey: y6(l.webauthn.credential_options.publicKey) }) }) }),
33067                error: null
33068              };
33069            case "request":
33070              return {
33071                data: Object.assign(Object.assign({}, l), { webauthn: Object.assign(Object.assign({}, l.webauthn), { credential_options: Object.assign(Object.assign({}, l.webauthn.credential_options), { publicKey: w6(l.webauthn.credential_options.publicKey) }) }) }),
33072                error: null
33073              };
33074          }
33075        });
33076      } catch (r) {
33077        if (B(r))
33078          return this._returnResult({ data: null, error: r });
33079        throw r;
33080      }
33081    };
33082    return this.lock != null ? this._acquireLock(this.lockAcquireTimeout, s) : s();
33083  }
33084  /**
33085   * {@link GoTrueMFAApi#challengeAndVerify}
33086   */
33087  async _challengeAndVerify(e) {
33088    const { data: s, error: r } = await this._challenge({
33089      factorId: e.factorId
33090    });
33091    return r ? this._returnResult({ data: null, error: r }) : await this._verify({
33092      factorId: e.factorId,
33093      challengeId: s.id,
33094      code: e.code
33095    });
33096  }
33097  /**
33098   * {@link GoTrueMFAApi#listFactors}
33099   */
33100  async _listFactors() {
33101    var e;
33102    const { data: { user: s }, error: r } = await this.getUser();
33103    if (r)
33104      return { data: null, error: r };
33105    const n = {
33106      all: [],
33107      phone: [],
33108      totp: [],
33109      webauthn: [],
33110      recovery_code: []
33111    };
33112    for (const o of (e = s?.factors) !== null && e !== void 0 ? e : [])
33113      n.all.push(o), o.status === "verified" && o.factor_type in n && Array.isArray(n[o.factor_type]) && n[o.factor_type].push(o);
33114    return {
33115      data: n,
33116      error: null
33117    };
33118  }
33119  /**
33120   * {@link GoTrueMFAApi#getAuthenticatorAssuranceLevel}
33121   */
33122  async _getAuthenticatorAssuranceLevel(e) {
33123    var s, r, n, o;
33124    if (e)
33125      try {
33126        const { payload: u } = W2(e);
33127        let h = null;
33128        u.aal && (h = u.aal);
33129        let x = h;
33130        const { data: { user: _ }, error: v } = await this.getUser(e);
33131        if (v)
33132          return this._returnResult({ data: null, error: v });
33133        ((r = (s = _?.factors) === null || s === void 0 ? void 0 : s.filter((S) => S.status === "verified")) !== null && r !== void 0 ? r : []).length > 0 && (x = "aal2");
33134        const b = u.amr || [];
33135        return { data: { currentLevel: h, nextLevel: x, currentAuthenticationMethods: b }, error: null };
33136      } catch (u) {
33137        if (B(u))
33138          return this._returnResult({ data: null, error: u });
33139        throw u;
33140      }
33141    const { data: { session: L }, error: d }
33141 = await this.getSession();
33142    if (d)
33143      return this._returnResult({ data: null, error: d });
33144    if (!L)
33145      return {
33146        data: { currentLevel: null, nextLevel: null, currentAuthenticationMethods: [] },
33147        error: null
33148      };
33149    const { payload: l } = W2(L.access_token);
33150    let g = null;
33151    l.aal && (g = l.aal);
33152    let f = g;
33153    ((o = (n = L.user.factors) === null || n === void 0 ? void 0 : n.filter((u) => u.status === "verified")) !== null && o !== void 0 ? o : []).length > 0 && (f = "aal2");
33154    const M = l.amr || [];
33155    return { data: { currentLevel: g, nextLevel: f, currentAuthenticationMethods: M }, error: null };
33156  }
33157  /**
33158   * {@link AuthMFARecoveryCodesApi#getStatus}
33159   */
33160  async _getRecoveryCodesStatus() {
33161    zt(this.experimental);
33162    try {
33163      return await this._useSession(async (e) => {
33164        var s;
33165        const { data: r, error: n } = e;
33166        if (n)
33167          return this._returnResult({ data: null, error: n });
33168        const { data: o, error: L } = await N(this.fetch, "GET", `${this.url}/factors/recovery-codes`, {
33169          headers: this.headers,
33170          jwt: (s = r?.session) === null || s === void 0 ? void 0 : s.access_token
33171        });
33172        return L ? this._returnResult({ data: null, error: L }) : this._returnResult({ data: o, error: null });
33173      });
33174    } catch (e) {
33175      if (B(e))
33176        return this._returnResult({ data: null, error: e });
33177      throw e;
33178    }
33179  }
33180  /**
33181   * {@link AuthMFARecoveryCodesApi#generate}
33182   */
33183  async _generateRecoveryCodes(e) {
33184    zt(this.experimental);
33185    try {
33186      return await this._useSession(async (s) => {
33187        var r;
33188        const { data: n, error: o } = s;
33189        if (o)
33190          return this._returnResult({ data: null, error: o });
33191        const { data: L, error: d } = await N(this.fetch, "POST", `${this.url}/factors/recovery-codes`, {
33192          // The body is optional server-side; only send one when a name was given.
33193          body: e?.friendlyName ? { friendly_name: e.friendlyName } : void 0,
33194          headers: this.headers,
33195          jwt: (r = n?.session) === null || r === void 0 ? void 0 : r.access_token
33196        });
33197        return d ? this._returnResult({ data: null, error: d }) : this._returnResult({ data: L, error: null });
33198      });
33199    } catch (s) {
33200      if (B(s))
33201        return this._returnResult({ data: null, error: s });
33202      throw s;
33203    }
33204  }
33205  /**
33206   * {@link AuthMFARecoveryCodesApi#verify}
33207   */
33208  async _verifyRecoveryCode(e) {
33209    zt(this.experimental);
33210    const s = async () => {
33211      try {
33212        return await this._useSession(async (r) => {
33213          var n;
33214          const { data: o, error: L } = r;
33215          if (L)
33216            return this._returnResult({ data: null, error: L });
33217          const { data: d, error: l } = await N(this.fetch, "POST", `${this.url}/factors/recovery-codes/verify`, {
33218            body: { code: e.code },
33219            headers: this.headers,
33220            jwt: (n = o?.session) === null || n === void 0 ? void 0 : n.access_token
33221          });
33222          if (l)
33223            return this._returnResult({ data: null, error: l });
33224          const g = Object.assign({ expires_at: Bi(d.expires_in) }, d);
33225          return await this._saveSession(g), await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED", g), this._returnResult({ data: d, error: null });
33226        });
33227      } catch (r) {
33228        if (B(r))
33229          return this._returnResult({ data: null, error: r });
33230        throw r;
33231      }
33232    };
33233    return this.lock != null ? this._acquireLock(this.lockAcquireTimeout, s) : s();
33234  }
33235  /**
33236   * {@link AuthMFARecoveryCodesApi#regenerate}
33237   */
33238  async _regenerateRecoveryCodes() {
33239    zt(this.experimental);
33240    try {
33241      return await this._useSession(async (e) => {
33242        var s;
33243        const { data: r, error: n } = e;
33244        if (n)
33245          return this._returnResult({ data: null, error: n });
33246        const { data: o, error: L } = await N(this.fetch, "POST", `${this.url}/factors/recovery-codes/regenerate`, {
33247          headers: this.headers,
33248          jwt: (s = r?.session) === null || s === void 0 ? void 0 : s.access_token
33249        });
33250        return L ? this._returnResult({ data: null, error: L }) : this._returnResult({ data: o, error: null });
33251      });
33252    } catch (e) {
33253      if (B(e))
33254        return this._returnResult({ data: null, error: e });
33255      throw e;
33256    }
33257  }
33258  /**
33259   * {@link AuthMFARecoveryCodesApi#unenroll}
33260   */
33261  async _unenrollRecoveryCodes() {
33262    zt(this.experimental);
33263    try {
33264      return await this._useSession(async (e) => {
33265        var s;
33266        const { data: r, error: n } = e;
33267        if (n)
33268          return this._returnResult({ data: null, error: n });
33269        const { data: o, error: L }
33269 = await N(this.fetch, "DELETE", `${this.url}/factors/recovery-codes`, {
33270          headers: this.headers,
33271          jwt: (s = r?.session) === null || s === void 0 ? void 0 : s.access_token
33272        });
33273        return L ? this._returnResult({ data: null, error: L }) : this._returnResult({ data: o, error: null });
33274      });
33275    } catch (e) {
33276      if (B(e))
33277        return this._returnResult({ data: null, error: e });
33278      throw e;
33279    }
33280  }
33281  /**
33282   * Retrieves details about an OAuth authorization request.
33283   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
33284   *
33285   * Returns authorization details including client info, scopes, and user information.
33286   * If the response includes only a redirect_url field, it means consent was already given - the caller
33287   * should handle the redirect manually if needed.
33288   */
33289  async _getAuthorizationDetails(e) {
33290    try {
33291      return await this._useSession(async (s) => {
33292        const { data: { session: r }, error: n } = s;
33293        return n ? this._returnResult({ data: null, error: n }) : r ? await N(this.fetch, "GET", `${this.url}/oauth/authorizations/${e}`, {
33294          headers: this.headers,
33295          jwt: r.access_token,
33296          xform: (o) => ({ data: o, error: null })
33297        }) : this._returnResult({ data: null, error: new he() });
33298      });
33299    } catch (s) {
33300      if (B(s))
33301        return this._returnResult({ data: null, error: s });
33302      throw s;
33303    }
33304  }
33305  /**
33306   * Approves an OAuth authorization request.
33307   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
33308   */
33309  async _approveAuthorization(e, s) {
33310    try {
33311      return await this._useSession(async (r) => {
33312        const { data: { session: n }, error: o } = r;
33313        if (o)
33314          return this._returnResult({ data: null, error: o });
33315        if (!n)
33316          return this._returnResult({ data: null, error: new he() });
33317        const L = await N(this.fetch, "POST", `${this.url}/oauth/authorizations/${e}/consent`, {
33318          headers: this.headers,
33319          jwt: n.access_token,
33320          body: { action: "approve" },
33321          xform: (d) => ({ data: d, error: null })
33322        });
33323        return L.data && L.data.redirect_url && _e() && !s?.skipBrowserRedirect && window.location.assign(L.data.redirect_url), L;
33324      });
33325    } catch (r) {
33326      if (B(r))
33327        return this._returnResult({ data: null, error: r });
33328      throw r;
33329    }
33330  }
33331  /**
33332   * Denies an OAuth authorization request.
33333   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
33334   */
33335  async _denyAuthorization(e, s) {
33336    try {
33337      return await this._useSession(async (r) => {
33338        const { data: { session: n }, error: o } = r;
33339        if (o)
33340          return this._returnResult({ data: null, error: o });
33341        if (!n)
33342          return this._returnResult({ data: null, error: new he() });
33343        const L = await N(this.fetch, "POST", `${this.url}/oauth/authorizations/${e}/consent`, {
33344          headers: this.headers,
33345          jwt: n.access_token,
33346          body: { action: "deny" },
33347          xform: (d) => ({ data: d, error: null })
33348        });
33349        return L.data && L.data.redirect_url && _e() && !s?.skipBrowserRedirect && window.location.assign(L.data.redirect_url), L;
33350      });
33351    } catch (r) {
33352      if (B(r))
33353        return this._returnResult({ data: null, error: r });
33354      throw r;
33355    }
33356  }
33357  /**
33358   * Lists all OAuth grants that the authenticated user has authorized.
33359   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
33360   */
33361  async _listOAuthGrants() {
33362    try {
33363      return await this._useSession(async (e) => {
33364        const { data: { session: s }, error: r } = e;
33365        return r ? this._returnResult({ data: null, error: r }) : s ? await N(this.fetch, "GET", `${this.url}/user/oauth/grants`, {
33366          headers: this.headers,
33367          jwt: s.access_token,
33368          xform: (n) => ({ data: n, error: null })
33369        }) : this._returnResult({ data: null, error: new he() });
33370      });
33371    } catch (e) {
33372      if (B(e))
33373        return this._returnResult({ data: null, error: e });
33374      throw e;
33375    }
33376  }
33377  /**
33378   * Revokes a user's OAuth grant for a specific client.
33379   * Only relevant when the OAuth 2.1 server is enabled in Supabase Auth.
33380   */
33381  async _revokeOAuthGrant(e) {
33382    try {
33383      return await this._useSession(async (s) => {
33384        const { data: { session: r }, error: n } = s;
33385        return n ? this._returnResult({ data: null, error: n }
33385) : r ? (await N(this.fetch, "DELETE", `${this.url}/user/oauth/grants`, {
33386          headers: this.headers,
33387          jwt: r.access_token,
33388          query: { client_id: e.clientId },
33389          noResolveJson: !0
33390        }), { data: {}, error: null }) : this._returnResult({ data: null, error: new he() });
33391      });
33392    } catch (s) {
33393      if (B(s))
33394        return this._returnResult({ data: null, error: s });
33395      throw s;
33396    }
33397  }
33398  async fetchJwk(e, s = { keys: [] }) {
33399    let r = s.keys.find((d) => d.kid === e);
33400    if (r)
33401      return r;
33402    const n = Date.now();
33403    if (r = this.jwks.keys.find((d) => d.kid === e), r && this.jwks_cached_at + vh > n)
33404      return r;
33405    const { data: o, error: L } = await N(this.fetch, "GET", `${this.url}/.well-known/jwks.json`, {
33406      headers: this.headers
33407    });
33408    if (L)
33409      throw L;
33410    return !o.keys || o.keys.length === 0 || (this.jwks = o, this.jwks_cached_at = n, r = o.keys.find((d) => d.kid === e), !r) ? null : r;
33411  }
33412  /**
33413   * Extracts the JWT claims present in the access token by first verifying the
33414   * JWT against the server's JSON Web Key Set endpoint
33415   * `/.well-known/jwks.json` which is often cached, resulting in significantly
33416   * faster responses. Prefer this method over {@link GoTrueClient.getUser} which always
33417   * sends a request to the Auth server for each JWT.
33418   *
33419   * If the project is not using an asymmetric JWT signing key (like ECC or
33420   * RSA) it always sends a request to the Auth server (similar to
33421   * {@link GoTrueClient.getUser}) to verify the JWT.
33422   *
33423   * @param jwt An optional specific JWT you wish to verify, not the one you
33424   *            can obtain from {@link GoTrueClient.getSession}.
33425   * @param options Various additional options that allow you to customize the
33426   *                behavior of this method.
33427   *
33428   * @category Auth
33429   *
33430   * @remarks
33431   * - Parses the user's [access token](/docs/guides/auth/sessions#access-token-jwt-claims) as a [JSON Web Token (JWT)](/docs/guides/auth/jwts) and returns its components if valid and not expired.
33432   * - If your project is using asymmetric JWT signing keys, then the verification is done locally usually without a network request using the [WebCrypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API).
33433   * - A network request is sent to your project's JWT signing key discovery endpoint `https://project-id.supabase.co/auth/v1/.well-known/jwks.json`, which is cached locally. If your environment is ephemeral, such as a Lambda function that is destroyed after every request, a network request will be sent for each new invocation. Supabase provides a network-edge cache providing fast responses for these situations.
33434   * - If the user's access token is about to expire when calling this function, the user's session will first be refreshed before validating the JWT.
33435   * - If your project is using a symmetric secret to sign the JWT, it always sends a request similar to `getUser()` to validate the JWT at the server before returning the decoded token. This is also used if the WebCrypto API is not available in the environment. Make sure you polyfill it in such situations.
33436   * - The returned claims can be customized per project using the [Custom Access Token Hook](/docs/guides/auth/auth-hooks/custom-access-token-hook).
33437   *
33438   * @example Get JWT claims, header and signature
33439   * ```js
33440   * const { data, error } = await supabase.auth.getClaims()
33441   * ```
33442   *
33443   * @exampleResponse Get JWT claims, header and signature
33444   * ```json
33445   * {
33446   *   "data": {
33447   *     "claims": {
33448   *       "aal": "aal1",
33449   *       "amr": [{
33450   *         "method": "email",
33451   *         "timestamp": 1715766000
33452   *       }],
33453   *       "app_metadata": {},
33454   *       "aud": "authenticated",
33455   *       "email": "[email protected]",
33456   *       "exp": 1715769600,
33457   *       "iat": 1715766000,
33458   *       "is_anonymous": false,
33459   *       "iss": "https://project-id.supabase.co/auth/v1",
33460   *       "phone": "+13334445555",
33461   *       "role": "authenticated",
33462   *       "session_id": "11111111-1111-1111-1111-111111111111",
33463   *       "sub": "11111111-1111-1111-1111-111111111111",
33464   *       "user_metadata": {}
33465   *     },
33466   *     "header": {
33467   *       "alg": "RS256",
33468   *       "typ": "JWT",
33469   *       "kid": "11111111-1111-1111-1111-111111111111"
33470   *     },
33471   *     "signature": [/** Uint8Array *\/],
33472   *   },
33473   *   "error": null
33474   * }
33475   * ```
33476   */
33477  async getClaims(e, s = {}) {
33478    try {
33479      let r = e;
33480      if (!r) {
33481        const { data: u, error: h }
33481 = await this.getSession();
33482        if (h || !u.session)
33483          return this._returnResult({ data: null, error: h });
33484        r = u.session.access_token;
33485      }
33486      const { header: n, payload: o, signature: L, raw: { header: d, payload: l } } = W2(r);
33487      if (!s?.allowExpired)
33488        try {
33489          Uh(o.exp);
33490        } catch (u) {
33491          throw new f3(u instanceof Error ? u.message : "JWT validation failed");
33492        }
33493      const g = !n.alg || n.alg.startsWith("HS") || !n.kid || !("crypto" in globalThis && "subtle" in globalThis.crypto) ? null : await this.fetchJwk(n.kid, s?.keys ? { keys: s.keys } : s?.jwks);
33494      if (!g) {
33495        const { error: u } = await this.getUser(r);
33496        if (u)
33497          throw u;
33498        return {
33499          data: {
33500            claims: o,
33501            header: n,
33502            signature: L
33503          },
33504          error: null
33505        };
33506      }
33507      const f = Gh(n.alg), p = await crypto.subtle.importKey("jwk", g, f, !0, [
33508        "verify"
33509      ]);
33510      if (!await crypto.subtle.verify(f, p, L, Nh(`${d}.${l}`)))
33511        throw new f3("Invalid JWT signature");
33512      return {
33513        data: {
33514          claims: o,
33515          header: n,
33516          signature: L
33517        },
33518        error: null
33519      };
33520    } catch (r) {
33521      if (B(r))
33522        return this._returnResult({ data: null, error: r });
33523      throw r;
33524    }
33525  }
33526  // --- Passkey Methods ---
33527  /**
33528   * Sign in with a passkey. Handles the full WebAuthn ceremony:
33529   * 1. Fetches authentication challenge from server
33530   * 2. Prompts user via navigator.credentials.get()
33531   * 3. Verifies credential with server and creates session
33532   *
33533   * Pass `options.mediation: 'conditional'` to use WebAuthn Conditional UI
33534   * (passkey autofill) instead of the modal picker; the value is forwarded to
33535   * `navigator.credentials.get()` unchanged.
33536   *
33537   * The challenge fetched in step 1 expires after the server's
33538   * GOTRUE_WEBAUTHN_CHALLENGE_EXPIRY_DURATION (5 minutes by default). With
33539   * `mediation: 'conditional'` the autofill prompt can stay pending for longer
33540   * than that: the browser ceremony then still succeeds, but verification fails
33541   * with `error_code: "webauthn_challenge_expired"`. Recover by calling
33542   * `signInWithPasskey()` again. It fetches a fresh challenge and, unless you
33543   * passed your own `options.signal`, cancels the pending ceremony first, so
33544   * the browser never sees two concurrent WebAuthn requests; the earlier call
33545   * resolves with a `WebAuthnError` whose code is `ERROR_CEREMONY_ABORTED`. If
33546   * you pass your own `signal`, abort it before retrying.
33547   *
33548   * @category Auth
33549   *
33550   * @example Sign in with Conditional UI (passkey autofill)
33551   * ```js
33552   * // <input autocomplete="username webauthn" /> somewhere on the page
33553   * const { data, error } = await supabase.auth.signInWithPasskey({
33554   *   options: {
33555   *     mediation: 'conditional'
33556   *   }
33557   * });
33558   * ```
33559   */
33560  async signInWithPasskey(e) {
33561    var s, r, n, o;
33562    try {
33563      if (!u3())
33564        return this._returnResult({
33565          data: null,
33566          error: new $e("Browser does not support WebAuthn", null)
33567        });
33568      const { data: L, error: d } = await this._startPasskeyAuthentication({
33569        options: { captchaToken: (s = e?.options) === null || s === void 0 ? void 0 : s.captchaToken }
33570      });
33571      if (d || !L)
33572        return this._returnResult({ data: null, error: d });
33573      const l = w6(L.options), g = (n = (r = e?.options) === null || r === void 0 ? void 0 : r.signal) !== null && n !== void 0 ? n : r5.createNewAbortSignal(), { data: f, error: p } = await Fi({
33574        publicKey: l,
33575        signal: g,
33576        mediation: (o = e?.options) === null || o === void 0 ? void 0 : o.mediation
33577      });
33578      if (p || !f)
33579        return this._returnResult({
33580          data: null,
33581          error: p ?? new $e("WebAuthn ceremony failed", null)
33582        });
33583      const M = S6(f);
33584      return this._verifyPasskeyAuthentication({
33585        challengeId: L.challenge_id,
33586        credential: M
33587      });
33588    } catch (L) {
33589      if (B(L))
33590        return this._returnResult({ data: null, error: L });
33591      throw L;
33592    }
33593  }
33594  /**
33595   * Register a passkey for the current authenticated user. Handles the full WebAuthn ceremony:
33596   * 1. Fetches registration challenge from server
33597   * 2. Prompts user via navigator.credentials.create()
33598   * 3. Verifies credential with server
33599   *
33600   * Requires an active session.
33601   *
33602   * @category Auth
33603   */
33604  async registerPasskey(e) {
33605    var s, r;
33606    try {
33607      if (!u3())
33608        return this._returnResult({
33609          data: null,
33610          error: new $e("Browser does not support WebAuthn", null)
33611        });
33612      const { data: n, error: o } = await this._startPasskeyRegistration();
33613      if (o || !n)
33614        return this._returnResult({ data: null, error: o });
33615      const L = y6(n.options), d = (r = (s = e?.options) === null || s === void 0 ? void 0 : s.signal) !== null && r !== void 0 ? r : r5.createNewAbortSignal(), { data: l, error: g } = await Ci({
33616        publicKey: L,
33617        signal: d
33618      });
33619      if (g || !l)
33620        return this._returnResult({
33621          data: null,
33622          error: g ?? new $e("WebAuthn ceremony failed", null)
33623        });
33624      const f = T6(l);
33625      return this._verifyPasskeyRegistration({
33626        challengeId: n.challenge_id,
33627        credential: f
33628      });
33629    } catch (n) {
33630      if (B(n))
33631        return this._returnResult({ data: null, error: n });
33632      throw n;
33633    }
33634  }
33635  /**
33636   * Start passkey registration for the current authenticated user.
33637   * Returns WebAuthn credential creation options to pass to navigator.credentials.create().
33638   */
33639  async _startPasskeyRegistration() {
33640    try {
33641      return await this._useSession(async (e) => {
33642        const { data: { session: s }, error: r } = e;
33643        if (r)
33644          return this._returnResult({ data: null, error: r });
33645        if (!s)
33646          return this._returnResult({ data: null, error: new he() });
33647        const { data: n, error: o } = await N(this.fetch, "POST", `${this.url}/passkeys/registration/options`, {
33648          headers: this.headers,
33649          jwt: s.access_token,
33650          body: {}
33651        });
33652        return o ? this._returnResult({ data: null, error: o }) : this._returnResult({ data: n, error: null });
33653      });
33654    } catch (e) {
33655      if (B(e))
33656        return this._returnResult({ data: null, error: e });
33657      throw e;
33658    }
33659  }
33660  /**
33661   * Verify passkey registration with the credential response.
33662   * The credentialResponse should be the serialized output of navigator.credentials.create().
33663   */
33664  async _verifyPasskeyRegistration(e) {
33665    try {
33666      return await this._useSession(async (s) => {
33667        const { data: { session: r }, error: n } = s;
33668        if (n)
33669          return this._returnResult({ data: null, error: n });
33670        if (!r)
33671          return this._returnResult({ data: null, error: new he() });
33672        const { data: o, error: L } = await N(this.fetch, "POST", `${this.url}/passkeys/registration/verify`, {
33673          headers: this.headers,
33674          jwt: r.access_token,
33675          body: {
33676            challenge_id: e.challengeId,
33677            credential: e.credential
33678          }
33679        });
33680        return L ? this._returnResult({ data: null, error: L }) : this._returnResult({ data: o, error: null });
33681      });
33682    } catch (s) {
33683      if (B(s))
33684        return this._returnResult({ data: null, error: s });
33685      throw s;
33686    }
33687  }
33688  /**
33689   * Start passkey authentication.
33690   * Returns WebAuthn credential request options to pass to navigator.credentials.get().
33691   */
33692  async _startPasskeyAuthentication(e) {
33693    var s;
33694    try {
33695      const { data: r, error: n } = await N(this.fetch, "POST", `${this.url}/passkeys/authentication/options`, {
33696        headers: this.headers,
33697        body: {
33698          gotrue_meta_security: { captcha_token: (s = e?.options) === null || s === void 0 ? void 0 : s.captchaToken }
33699        }
33700      });
33701      return n ? this._returnResult({ data: null, error: n }) : this._returnResult({ data: r, error: null });
33702    } catch (r) {
33703      if (B(r))
33704        return this._returnResult({ data: null, error: r });
33705      throw r;
33706    }
33707  }
33708  /**
33709   * Verify passkey authentication and create a session.
33710   * The credential should be the serialized output of navigator.credentials.get().
33711   */
33712  async _verifyPasskeyAuthentication(e) {
33713    try {
33714      const { data: s, error: r }
33714 = await N(this.fetch, "POST", `${this.url}/passkeys/authentication/verify`, {
33715        headers: this.headers,
33716        body: {
33717          challenge_id: e.challengeId,
33718          credential: e.credential
33719        },
33720        xform: De
33721      });
33722      return r ? this._returnResult({ data: null, error: r }) : (s.session && (await this._saveSession(s.session), await this._notifyAllSubscribers("SIGNED_IN", s.session)), this._returnResult({ data: s, error: null }));
33723    } catch (s) {
33724      if (B(s))
33725        return this._returnResult({ data: null, error: s });
33726      throw s;
33727    }
33728  }
33729  /**
33730   * List all passkeys for the current user.
33731   */
33732  async _listPasskeys() {
33733    try {
33734      return await this._useSession(async (e) => {
33735        const { data: { session: s }, error: r } = e;
33736        if (r)
33737          return this._returnResult({ data: null, error: r });
33738        if (!s)
33739          return this._returnResult({ data: null, error: new he() });
33740        const { data: n, error: o } = await N(this.fetch, "GET", `${this.url}/passkeys`, {
33741          headers: this.headers,
33742          jwt: s.access_token,
33743          xform: (L) => ({ data: L, error: null })
33744        });
33745        return o ? this._returnResult({ data: null, error: o }) : this._returnResult({ data: n, error: null });
33746      });
33747    } catch (e) {
33748      if (B(e))
33749        return this._returnResult({ data: null, error: e });
33750      throw e;
33751    }
33752  }
33753  /**
33754   * Update a passkey.
33755   */
33756  async _updatePasskey(e) {
33757    try {
33758      return await this._useSession(async (s) => {
33759        const { data: { session: r }, error: n } = s;
33760        if (n)
33761          return this._returnResult({ data: null, error: n });
33762        if (!r)
33763          return this._returnResult({ data: null, error: new he() });
33764        const { data: o, error: L } = await N(this.fetch, "PATCH", `${this.url}/passkeys/${e.passkeyId}`, {
33765          headers: this.headers,
33766          jwt: r.access_token,
33767          body: { friendly_name: e.friendlyName }
33768        });
33769        return L ? this._returnResult({ data: null, error: L }) : this._returnResult({ data: o, error: null });
33770      });
33771    } catch (s) {
33772      if (B(s))
33773        return this._returnResult({ data: null, error: s });
33774      throw s;
33775    }
33776  }
33777  /**
33778   * Delete a passkey.
33779   */
33780  async _deletePasskey(e) {
33781    try {
33782      return await this._useSession(async (s) => {
33783        const { data: { session: r }, error: n } = s;
33784        if (n)
33785          return this._returnResult({ data: null, error: n });
33786        if (!r)
33787          return this._returnResult({ data: null, error: new he() });
33788        const { error: o } = await N(this.fetch, "DELETE", `${this.url}/passkeys/${e.passkeyId}`, {
33789          headers: this.headers,
33790          jwt: r.access_token,
33791          noResolveJson: !0
33792        });
33793        return o ? this._returnResult({ data: null, error: o }) : this._returnResult({ data: null, error: null });
33794      });
33795    } catch (s) {
33796      if (B(s))
33797        return this._returnResult({ data: null, error: s });
33798      throw s;
33799    }
33800  }
33801}
33802l2.nextInstanceID = {};
33803const hm = l2, mm = "2.117.2";
33804let Wt = "", m3;
33805if (typeof Deno < "u") {
33806  var v4;
33807  Wt = "deno", m3 = (v4 = Deno.version) === null || v4 === void 0 ? void 0 : v4.deno;
33808} else if (typeof document < "u") Wt = "web";
33809else if (typeof navigator < "u" && navigator.product === "ReactNative") Wt = "react-native";
33810else {
33811  var y4;
33812  Wt = "node";
33813  const t = globalThis.process;
33814  m3 = t == null || (y4 = t.version) === null || y4 === void 0 ? void 0 : y4.replace(/^v/, "");
33815}
33816const Ei = [`runtime=${Wt}`];
33817m3 && Ei.push(`runtime-version=${m3}`);
33818const xm = { "X-Client-Info": `supabase-js/${mm}; ${Ei.join("; ")}` }, _m = { headers: xm }, bm = { schema: "public" }, vm = {
33819  autoRefreshToken: !0,
33820  persistSession: !0,
33821  detectSessionInUrl: !0,
33822  flowType: "implicit"
33823}, ym = {}, wm = {
33824  enabled: !1,
33825  respectSamplingDecision: !0
33826};
33827function Tm(t) {
33828  if (!t || typeof t != "string") return null;
33829  const e = t.split("-");
33830  if (e.length !== 4) return null;
33831  const [s, r, n, o] = e;
33832  if (s.length !== 2 || r.length !== 32 || n.length !== 16 || o.length !== 2) return null;
33833  const L = /^[0-9a-f]+$/i;
33834  return !L.test(s) || !L.test(r) || !L.test(n) || !L.test(o) || r === "00000000000000000000000000000000" || n === "0000000000000000" ? null : {
33835    version: s,
33836    traceId: r,
33837    parentId: n,
33838    traceFlags: o,
33839    isSampled: (parseInt(o, 16) & 1) === 1
33840  };
33841}
33842function Sm(t, e) {
33843  if (!t || !e || e.length === 0) return !1;
33844  let s;
33845  if (t instanceof URL) s = t;
33846  else try {
33847    s = new URL(t);
33848  } catch {
33849    return !1;
33850  }
33851  for (const r of e) try {
33852    if (typeof r == "string") {
33853      if (Bm(s.hostname, r)) return !0;
33854    } else if (r instanceof RegExp) {
33855      if (r.test(s.hostname)) return !0;
33856    } else if (typeof r == "function" && r(s))
33857      return !0;
33858  } catch {
33859    continue;
33860  }
33861  return !1;
33862}
33863function Bm(t, e) {
33864  if (e === t) return !0;
33865  if (e.startsWith("*.")) {
33866    const s = e.slice(2);
33867    if (t.endsWith(s) && (t === s || t.endsWith("." + s)))
33868      return !0;
33869  }
33870  return !1;
33871}
33872function km(t) {
33873  const e = [];
33874  try {
33875    const s = new URL(t);
33876    e.push(s.hostname);
33877  } catch {
33878  }
33879  return e.push("*.supabase.co", "*.supabase.in"), e.push("localhost", "127.0.0.1", "[::1]"), e;
33880}
33881function d2(t) {
33882  "@babel/helpers - typeof";
33883  return d2 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
33884    return typeof e;
33885  }
33885 : function(e) {
33886    return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
33887  }, d2(t);
33888}
33889function Am(t, e) {
33890  if (d2(t) != "object" || !t) return t;
33891  var s = t[Symbol.toPrimitive];
33892  if (s !== void 0) {
33893    var r = s.call(t, e);
33894    if (d2(r) != "object") return r;
33895    throw new TypeError("@@toPrimitive must return a primitive value.");
33896  }
33897  return (e === "string" ? String : Number)(t);
33898}
33899function Nm(t) {
33900  var e = Am(t, "string");
33901  return d2(e) == "symbol" ? e : e + "";
33902}
33903function Im(t, e, s) {
33904  return (e = Nm(e)) in t ? Object.defineProperty(t, e, {
33905    value: s,
33906    enumerable: !0,
33907    configurable: !0,
33908    writable: !0
33909  }) : t[e] = s, t;
33910}
33911function k6(t, e) {
33912  var s = Object.keys(t);
33913  if (Object.getOwnPropertySymbols) {
33914    var r = Object.getOwnPropertySymbols(t);
33915    e && (r = r.filter(function(n) {
33916      return Object.getOwnPropertyDescriptor(t, n).enumerable;
33917    })), s.push.apply(s, r);
33918  }
33919  return s;
33920}
33921function re(t) {
33922  for (var e = 1; e < arguments.length; e++) {
33923    var s = arguments[e] != null ? arguments[e] : {};
33924    e % 2 ? k6(Object(s), !0).forEach(function(r) {
33925      Im(t, r, s[r]);
33926    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(s)) : k6(Object(s)).forEach(function(r) {
33927      Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(s, r));
33928    });
33929  }
33930  return t;
33931}
33932const Pm = (t) => t ? (...e) => t(...e) : (...e) => fetch(...e), Cm = () => Headers, Ri = (t) => t.startsWith("sb_publishable_") || t.startsWith("sb_secret_"), Fm = "sb_temp_", A6 = /* @__PURE__ */ new Set(), Em = (t) => {
33933  var e, s;
33934  if (!t.startsWith("sb_") || Ri(t) || t.startsWith(Fm)) return;
33935  const r = (e = (s = t.match(/^sb_[a-zA-Z0-9]+_/)) === null || s === void 0 ? void 0 : s[0]) !== null && e !== void 0 ? e : "unknown";
33936  A6.has(r) || (A6.add(r), console.warn("@supabase/supabase-js: Unrecognized Supabase API key format. The client will proceed and send this key as-is; if you see authentication errors you may need to upgrade @supabase/supabase-js to a version that recognizes this key type."));
33937}, N6 = (t, e, s, r, n, o) => {
33938  const L = Pm(r), d = Cm(), l = n?.enabled === !0, g = n?.respectSamplingDecision !== !1, f = l ? km(e) : null, p = !(o?.omitApiKeyAsBearer && Ri(t));
33939  return async (M, u) => {
33940    const h = await s();
33941    let x = new d(u?.headers);
33942    if (x.has("apikey") || x.set("apikey", t), !x.has("Authorization")) {
33943      const _ = h ?? (p ? t : null);
33944      _ && x.set("Authorization", `Bearer ${_}`);
33945    }
33946    if (f) {
33947      const _ = Rm(M, f, g);
33948      _ && (_.traceparent && !x.has("traceparent") && x.set("traceparent", _.traceparent), _.tracestate && !x.has("tracestate") && x.set("tracestate", _.tracestate), _.baggage && !x.has("baggage") && x.set("baggage", _.baggage));
33949    }
33950    return L(M, re(re({}, u), {}, { headers: x }));
33951  };
33952};
33953let I6 = !1, P6 = !1;
33954function Rm(t, e, s) {
33955  const r = FM();
33956  if (!r)
33957    return I6 || (I6 = !0, console.warn("@supabase/supabase-js: tracePropagation is enabled but the tracing runtime is not loaded, so trace headers will not be attached. Add `import '@supabase/supabase-js/tracing'` at your application entry point (requires the OpenTelemetry API package to be installed). The CDN/UMD build does not support trace propagation.")), null;
33958  if (!Sm(typeof t == "string" || t instanceof URL ? t : t.url, e)) return null;
33959  const n = r();
33960  if (!n || !n.traceparent) {
33961    var o;
33962    if (!(n == null || (o = n.carrierKeys) === null || o === void 0) && o.length && !P6) {
33963      P6 = !0;
33964      const L = n.carrierKeys.includes("sentry-trace") ? " Sentry detected: set `propagateTraceparent: true` in Sentry.init() to emit it." : " Configure your tracing SDK to emit W3C trace context on outgoing requests.";
33965      console.warn(`@supabase/supabase-js: tracePropagation is enabled and a tracing SDK is active, but its propagator wrote [${n.carrierKeys.join(", ")}] and no W3C traceparent header, so trace headers will not be attached.` + L);
33966    }
33967    return null;
33968  }
33969  if (s) {
33970    const L = Tm(n.traceparent);
33971    if (L && !L.isSampled) return { traceparent: n.traceparent };
33972  }
33973  return n;
33974}
33975function C6(t) {
33976  return typeof t == "boolean" ? { enabled: t } : t;
33977}
33978function Dm(t) {
33979  return t.endsWith("/") ? t : t + "/";
33980}
33981let F6 = !1;
33982function zm(t) {
33983  F6 || typeof t != "object" || t === null || !("schema" in t) || t.schema === void 0 || (F6 = !0, console.warn(`@
33983supabase/supabase-js: The "schema" option must be nested under "db", e.g. createClient(url, key, { db: { schema: 'myschema' } }). A top-level "schema" is ignored and queries go to the default schema.`));
33984}
33985function jm(t, e) {
33986  var s, r, n, o, L, d;
33987  const { db: l, auth: g, realtime: f, global: p } = t, { db: M, auth: u, realtime: h, global: x } = e, _ = C6(t.tracePropagation), v = C6(e.tracePropagation), y = {
33988    db: re(re({}, M), l),
33989    auth: re(re({}, u), g),
33990    realtime: re(re({}, h), f),
33991    storage: {},
33992    global: re(re(re({}, x), p), {}, { headers: re(re({}, (s = x?.headers) !== null && s !== void 0 ? s : {}), (r = p?.headers) !== null && r !== void 0 ? r : {}) }),
33993    tracePropagation: {
33994      enabled: (n = (o = _?.enabled) !== null && o !== void 0 ? o : v?.enabled) !== null && n !== void 0 ? n : !1,
33995      respectSamplingDecision: (L = (d = _?.respectSamplingDecision) !== null && d !== void 0 ? d : v?.respectSamplingDecision) !== null && L !== void 0 ? L : !0
33996    },
33997    accessToken: async () => ""
33998  };
33999  return t.accessToken ? y.accessToken = t.accessToken : delete y.accessToken, y;
34000}
34001function Om(t) {
34002  const e = t?.trim();
34003  if (!e) throw new Error("supabaseUrl is required.");
34004  if (!e.match(/^https?:\/\//i)) throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");
34005  try {
34006    return new URL(Dm(e));
34007  } catch {
34008    throw Error("Invalid supabaseUrl: Provided URL is malformed.");
34009  }
34010}
34011var Vm = class extends hm {
34012  constructor(t) {
34013    super(t);
34014  }
34015}, Hm = class {
34016  /**
34017  * Create a new client for use in the browser.
34018  *
34019  * @category Initializing
34020  *
34021  * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.
34022  * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.
34023  * @param options Optional configuration for the client:
34024  * - `db.schema` — You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.
34025  * - `auth.autoRefreshToken` — Set to `true` if you want to automatically refresh the token before expiring.
34026  * - `auth.persistSession` — Set to `true` if you want to automatically save the user session into local storage.
34027  * - `auth.detectSessionInUrl` — Set to `true` if you want to automatically detect OAuth grants in the URL and sign in the user.
34028  * - `realtime` — Options passed along to the realtime-js constructor.
34029  * - `storage` — Options passed along to the storage-js constructor.
34030  * - `global.fetch` — A custom fetch implementation.
34031  * - `global.headers` — Any additional headers to send with each network request.
34032  *
34033  * @example Creating a client
34034  * ```js
34035  * import { createClient } from '@supabase/supabase-js'
34036  *
34037  * // Create a single supabase client for interacting with your database
34038  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
34039  * ```
34040  *
34041  * @example With a custom domain
34042  * ```js
34043  * import { createClient } from '@supabase/supabase-js'
34044  *
34045  * // Use a custom domain as the supabase URL
34046  * const supabase = createClient('https://my-custom-domain.com', 'your-publishable-key')
34047  * ```
34048  *
34049  * @example With additional parameters
34050  * ```js
34051  * import { createClient } from '@supabase/supabase-js'
34052  *
34053  * const options = {
34054  *   db: {
34055  *     schema: 'public',
34056  *   },
34057  *   auth: {
34058  *     autoRefreshToken: true,
34059  *     persistSession: true,
34060  *     detectSessionInUrl: true
34061  *   },
34062  *   global: {
34063  *     headers: { 'x-my-custom-header': 'my-app-name' },
34064  *   },
34065  * }
34066  * const supabase = createClient("https://xyzcompany.supabase.co", "your-publishable-key", options)
34067  * ```
34068  *
34069  * @exampleDescription With custom schemas
34070  * By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard.
34071  * Go to [Settings > API > Exposed schemas](/dashboard/project/_/settings/api) and add the schema which you want to expose to the API.
34072  *
34073  * Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema.
34074  *
34075  * @example With custom schemas
34076  * ```js
34077  * import { createClient } from '@supabase/supabase-js'
34078  *
34079  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {
34080  *   // Provide a custom schema. Defaults to "public".
34081  *   db: { schema: 'other_schema' }
34082  * })
34083  * ```
34084  *
34085  * @exampleDescription Custom fetch implementation
34086  * `supabase-js` uses the runtime's global `fetch` to make HTTP requests,
34087  * but an alternative `fetch` implementation can be provided as an option.
34088  * This is useful in environments where the global `fetch` is unavailable or where you want to customize request behavior.
34089  *
34090  * @example Custom fetch implementation
34091  * ```js
34092  * import { createClient } from '@supabase/supabase-js'
34093  *
34094  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {
34095  *   global: { fetch: fetch.bind(globalThis) }
34096  * })
34097  * ```
34098  *
34099  * @exampleDescription React Native options with AsyncStorage
34100  * For React Native we recommend using `AsyncStorage` as the storage implementation for Supabase Auth.
34101  *
34102  * @example React Native options with AsyncStorage
34103  * ```js
34104  * import 'react-native-url-polyfill/auto'
34105  * import { createClient } from '@supabase/supabase-js'
34106  * import AsyncStorage from "@react-native-async-storage/async-storage";
34107  *
34108  * const supabase = createClient("https://xyzcompany.supabase.co", "your-publishable-key", {
34109  *   auth: {
34110  *     storage: AsyncStorage,
34111  *     autoRefreshToken: true,
34112  *     persistSession: true,
34113  *     detectSessionInUrl: false,
34114  *   },
34115  * });
34116  * ```
34117  *
34118  * @exampleDescription React Native options with Expo SecureStore
34119  * If you wish to encrypt the user's session information, you can use `aes-js` and store the encryption key in Expo SecureStore.
34120  * The `aes-js` library, a reputable JavaScript-only implementation of the AES encryption algorithm in CTR mode.
34121  * A new 256-bit encryption key is generated using the `react-native-get-random-values` library.
34122  * This key is stored inside Expo's SecureStore, while the value is encrypted and placed inside AsyncStorage.
34123  *
34124  * Please make sure that:
34125  * - You keep the `expo-secure-store`, `aes-js` and `react-native-get-random-values` libraries up-to-date.
34126  * - Choose the correct [`SecureStoreOptions`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestoreoptions) for your app's needs.
34127  *   E.g. [`SecureStore.WHEN_UNLOCKED`](https://docs.expo.dev/versions/latest/sdk/securestore/#securestorewhen_unlocked) regulates when the data can be accessed.
34128  * - Carefully consider optimizations or other modifications to the above example, as those can lead to introducing subtle security vulnerabilities.
34129  *
34130  * @example React Native options with Expo SecureStore
34131  * ```ts
34132  * import 'react-native-url-polyfill/auto'
34133  * import { createClient } from '@supabase/supabase-js'
34134  * import AsyncStorage from '@react-native-async-storage/async-storage';
34135  * import * as SecureStore from 'expo-secure-store';
34136  * import * as aesjs from 'aes-js';
34137  * import 'react-native-get-random-values';
34138  *
34139  * // As Expo's SecureStore does not support values larger than 2048
34140  * // bytes, an AES-256 key is generated and stored in SecureStore, while
34141  * // it is used to encrypt/decrypt values stored in AsyncStorage.
34142  * class LargeSecureStore {
34143  *   private async _encrypt(key: string, value: string) {
34144  *     const encryptionKey = crypto.getRandomValues(new Uint8Array(256 / 8));
34145  *
34146  *     const cipher = new aesjs.ModeOfOperation.ctr(encryptionKey, new aesjs.Counter(1));
34147  *     const encryptedBytes = cipher.encrypt(aesjs.utils.utf8.toBytes(value));
34148  *
34149  *     await SecureStore.setItemAsync(key, aesjs.utils.hex.fromBytes(encryptionKey));
34150  *
34151  *     return aesjs.utils.hex.fromBytes(encryptedBytes);
34152  *   }
34153  *
34154  *   private async _decrypt(key: string, value: string) {
34155  *     const encryptionKeyHex = await SecureStore.getItemAsync(key);
34156  *     if (!encryptionKeyHex) {
34157  *       return encryptionKeyHex;
34158  *     }
34159  *
34160  *     const cipher = new aesjs.ModeOfOperation.ctr(aesjs.utils.hex.toBytes(encryptionKeyHex), new aesjs.Counter(1));
34161  *     const decryptedBytes = cipher.decrypt(aesjs.utils.hex.toBytes(value));
34162  *
34163  *     return aesjs.utils.utf8.fromBytes(decryptedBytes);
34164  *   }
34165  *
34166  *   async getItem(key: string) {
34167  *     const encrypted = await AsyncStorage.getItem(key);
34168  *     if (!encrypted) { return encrypted; }
34169  *
34170  *     return await this._decrypt(key, encrypted);
34171  *   }
34172  *
34173  *   async removeItem(key: string) {
34174  *     await AsyncStorage.removeItem(key);
34175  *     await SecureStore.deleteItemAsync(key);
34176  *   }
34177  *
34178  *   async setItem(key: string, value: string) {
34179  *     const encrypted = await this._encrypt(key, value);
34180  *
34181  *     await AsyncStorage.setItem(key, encrypted);
34182  *   }
34183  * }
34184  *
34185  * const supabase = createClient("https://xyzcompany.supabase.co", "your-publishable-key", {
34186  *   auth: {
34187  *     storage: new LargeSecureStore(),
34188  *     autoRefreshToken: true,
34189  *     persistSession: true,
34190  *     detectSessionInUrl: false,
34191  *   },
34192  * });
34193  * ```
34194  *
34195  * @example With a database query
34196  * ```ts
34197  * import { createClient } from '@supabase/supabase-js'
34198  *
34199  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key')
34200  *
34201  * const { data } = await supabase.from('profiles').select('*')
34202  * ```
34203  *
34204  * @exampleDescription With OpenTelemetry tracing
34205  * Opt in to W3C trace context propagation so the `trace_id` from your
34206  * client-side spans is attached to Supabase requests and appears in API
34207  * Gateway and Edge Function logs. Requires `@opentelemetry/api` to be
34208  * installed in your application and the tracing runtime to be loaded via
34209  * `import '@supabase/supabase-js/tracing'`. See [Tracing with the JS SDK](https://supabase.com/docs/guides/telemetry/client-side-tracing).
34210  *
34211  * @example With OpenTelemetry tracing
34212  * ```ts
34213  * import '@supabase/supabase-js/tracing'
34214  * import { createClient } from '@supabase/supabase-js'
34215  * import { trace } from '@opentelemetry/api'
34216  *
34217  * const supabase = createClient('https://xyzcompany.supabase.co', 'your-publishable-key', {
34218  *   tracePropagation: true,
34219  * })
34220  *
34221  * const tracer = trace.getTracer('my-app')
34222  *
34223  * await tracer.startActiveSpan('fetch-users', async (span) => {
34224  *   // Outgoing request carries the active trace context.
34225  *   const { data, error } = await supabase.from('users').select('*')
34226  *   span.end()
34227  * })
34228  * ```
34229  */
34230  constructor(t, e, s) {
34231    var r, n;
34232    this.supabaseUrl = t, this.supabaseKey = e;
34233    const o = Om(t);
34234    if (!e) throw new Error("supabaseKey is required.");
34235    Em(e), zm(s), this.realtimeUrl = new URL("realtime/v1", o), this.realtimeUrl.protocol = this.realtimeUrl.protocol.replace("http", "ws"), this.authUrl = new URL("auth/v1", o), this.storageUrl = new URL("storage/v1", o), this.functionsUrl = new URL("functions/v1", o);
34236    const L = `sb-${o.hostname.split(".")[0]}-auth-token`, d = {
34237      db: bm,
34238      realtime: ym,
34239      auth: re(re({}, vm), {}, { storageKey: L }),
34240      global: _m,
34241      tracePropagation: wm
34242    }, l = jm(s ?? {}, d);
34243    if (this.settings = l, this.storageKey = (r = l.auth.storageKey) !== null && r !== void 0 ? r : "", this.headers = (n = l.global.headers) !== null && n !== void 0 ? n : {}, l.accessToken)
34244      this.accessToken = l.accessToken, this.auth = new Proxy({}, { get: (f, p) => {
34245        throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(p)} is not possible`);
34246      } });
34247    else {
34248      var g;
34249      this.auth = this._initSupabaseAuthClient((g = l.auth) !== null && g !== void 0 ? g : {}, this.headers, l.global.fetch);
34250    }
34251    this.fetch = N6(e, t, this._getSessionToken.bind(this), l.global.fetch, l.tracePropagation), this.functionsFetch = 
34251N6(e, t, this._getSessionToken.bind(this), l.global.fetch, l.tracePropagation, { omitApiKeyAsBearer: !0 }), this.realtime = this._initRealtimeClient(re({
34252      headers: this.headers,
34253      accessToken: this._getAccessToken.bind(this),
34254      fetch: this.fetch
34255    }, l.realtime)), this.accessToken && Promise.resolve(this.accessToken()).then((f) => this.realtime.setAuth(f)).catch((f) => console.warn("Failed to set initial Realtime auth token:", f)), this.rest = new GM(new URL("rest/v1", o).href, {
34256      headers: this.headers,
34257      schema: l.db.schema,
34258      fetch: this.fetch,
34259      timeout: l.db.timeout,
34260      urlLengthLimit: l.db.urlLengthLimit,
34261      retry: l.db.retry
34262    }), this.storage = new Mh(this.storageUrl.href, this.headers, this.fetch, s?.storage), l.accessToken || this._listenForAuthEvents();
34263  }
34264  /**
34265  * Supabase Functions allows you to deploy and invoke edge functions.
34266  */
34267  get functions() {
34268    return new zM(this.functionsUrl.href, {
34269      headers: this.headers,
34270      customFetch: this.functionsFetch
34271    });
34272  }
34273  /**
34274  * Perform a query on a table or a view.
34275  *
34276  * @param relation - The table or view name to query
34277  */
34278  from(t) {
34279    return this.rest.from(t);
34280  }
34281  /**
34282  * Select a schema to query or perform an function (rpc) call.
34283  *
34284  * The schema needs to be on the list of exposed schemas inside Supabase.
34285  *
34286  * @param schema - The schema to query
34287  */
34288  schema(t) {
34289    return this.rest.schema(t);
34290  }
34291  /**
34292  * Fetch the OpenAPI description PostgREST publishes for this client's schema.
34293  *
34294  * The document lists only the tables, views and functions the caller's role
34295  * holds privileges on. The request carries the same `apikey` and
34296  * `Authorization` headers as every other query, so the description is scoped
34297  * to the signed-in user. Call `.schema()` first to describe a schema other
34298  * than the client default.
34299  *
34300  * @example
34301  * ```ts
34302  * const { data, error } = await supabase.getOpenApiSpec()
34303  * ```
34304  */
34305  getOpenApiSpec() {
34306    return this.rest.getOpenApiSpec();
34307  }
34308  /**
34309  * Perform a function call.
34310  *
34311  * @param fn - The function name to call
34312  * @param args - The arguments to pass to the function call
34313  * @param options - Named parameters
34314  * @param options.head - When set to `true`, `data` will not be returned.
34315  * Useful if you only need the count.
34316  * @param options.get - When set to `true`, the function will be called with
34317  * read-only access mode.
34318  * @param options.count - Count algorithm to use to count rows returned by the
34319  * function. Only applicable for [set-returning
34320  * functions](https://www.postgresql.org/docs/current/functions-srf.html).
34321  *
34322  * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the
34323  * hood.
34324  *
34325  * `"planned"`: Approximated but fast count algorithm. Uses the Postgres
34326  * statistics under the hood.
34327  *
34328  * `"estimated"`: Uses exact count for low numbers and planned count for high
34329  * numbers.
34330  */
34331  rpc(t, e = {}, s = {
34332    head: !1,
34333    get: !1,
34334    count: void 0
34335  }) {
34336    return this.rest.rpc(t, e, s);
34337  }
34338  /**
34339  * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.
34340  *
34341  * @param {string} name - The name of the Realtime channel.
34342  * @param {Object} opts - The options to pass to the Realtime channel.
34343  *
34344  * @category Realtime
34345  */
34346  channel(t, e = { config: {} }) {
34347    return this.realtime.channel(t, e);
34348  }
34349  /**
34350  * Returns all Realtime channels.
34351  *
34352  * @category Realtime
34353  *
34354  * @example Get all channels
34355  * ```js
34356  * const channels = supabase.getChannels()
34357  * ```
34358  */
34359  getChannels() {
34360    return this.realtime.getChannels();
34361  }
34362  /**
34363  * Unsubscribes and removes Realtime channel from Realtime client.
34364  *
34365  * @param {RealtimeChannel} channel - The name of the Realtime channel.
34366  *
34367  *
34368  * @category Realtime
34369  *
34370  * @remarks
34371  * - Removing a channel is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.
34372  *
34373  * @example Removes a channel
34374  * ```js
34375  * supabase.removeChannel(myChannel)
34376  * ```
34377  */
34378  removeChannel(t) {
34379    return this.realtime.removeChannel(t);
34380  }
34381  /**
34382  * Unsubscribes and removes all Realtime channels from Realtime client.
34383  *
34384  * @category Realtime
34385  *
34386  * @remarks
34387  * - Removing channels is a great way to maintain the performance of your project's Realtime service as well as your database if you're listening to Postgres changes. Supabase will automatically handle cleanup 30 seconds after a client is disconnected, but unused channels may cause degradation as more clients are simultaneously subscribed.
34388  *
34389  * @example Remove all channels
34390  * ```js
34391  * supabase.removeAllChannels()
34392  * ```
34393  */
34394  removeAllChannels() {
34395    return this.realtime.removeAllChannels();
34396  }
34397  /**
34398  * The raw session token — the custom `accessToken` result or the signed-in user's JWT —
34399  * or `null` when there is no session. Unlike {@link _getAccessToken} it does not fall back
34400  * to `supabaseKey`, so callers can distinguish "no session" from "has session".
34401  */
34402  async _getSessionToken() {
34403    var t = this, e, s;
34404    if (t.accessToken) return await t.accessToken();
34405    const { data: r } = await t.auth.getSession();
34406    return (e = (s = r.session) === null || s === void 0 ? void 0 : s.access_token) !== null && e !== void 0 ? e : null;
34407  }
34408  async _getAccessToken() {
34409    var t = this, e;
34410    return (e = await t._getSessionToken()) !== null && e !== void 0 ? e : t.supabaseKey;
34411  }
34412  _initSupabaseAuthClient({ autoRefreshToken: t, persistSession: e, detectSessionInUrl: s, storage: r, userStorage: n, storageKey: o, flowType: L, lock: d, debug: l, throwOnError: g, experimental: f, lockAcquireTimeout: p, skipAutoInitialize: M }, u, h) {
34413    const x = {
34414      Authorization: `Bearer ${this.supabaseKey}`,
34415      apikey: `${this.supabaseKey}`
34416    };
34417    return new Vm({
34418      url: this.authUrl.href,
34419      headers: re(re({}, x), u),
34420      storageKey: o,
34421      autoRefreshToken: t,
34422      persistSession: e,
34423      detectSessionInUrl: s,
34424      storage: r,
34425      userStorage: n,
34426      flowType: L,
34427      lock: d,
34428      debug: l,
34429      throwOnError: g,
34430      experimental: f,
34431      fetch: h,
34432      lockAcquireTimeout: p,
34433      skipAutoInitialize: M,
34434      hasCustomAuthorizationHeader: Object.keys(this.headers).some((_) => _.toLowerCase() === "authorization")
34435    });
34436  }
34437  _initRealtimeClient(t) {
34438    return new ju(this.realtimeUrl.href, re(re({}, t), {}, { params: re(re({}, { apikey: this.supabaseKey }), t?.params) }));
34439  }
34440  _listenForAuthEvents() {
34441    return this.auth.onAuthStateChange((t, e) => {
34442      this._handleTokenChanged(t, "CLIENT", e?.access_token);
34443    });
34444  }
34445  _handleTokenChanged(t, e, s) {
34446    (t === "TOKEN_REFRESHED" || t === "SIGNED_IN" || t === "INITIAL_SESSION") && this.changedAccessToken !== s ? (this.changedAccessToken = s, this.realtime.setAuth(s)) : t === "SIGNED_OUT" && (this.realtime.setAuth(), e == "STORAGE" && this.auth.signOut(), this.changedAccessToken = void 0);
34447  }
34448};
34449const Zm = (t, e, s) => new Hm(t, e, s);
34450function Wm() {
34451  if (typeof window < "u" || globalThis.Deno !== void 0) return !1;
34452  const t = globalThis.process;
34453  if (!t) return !1;
34454  const e = t.version;
34455  if (e == null) return !1;
34456  const s = e.match(/^v(\d+)\./);
34457  return s ? parseInt(s[1], 10) <= 20 : !1;
34458}
34459Wm() && console.warn("⚠️  Node.js 20 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 22 or later. For more information, visit: https://github.com/orgs/supabase/discussions/45715");
34460const $m = "https://ipwhxhtupjjhyqoccody.supabase.co", qm = "sb_publishable_VsSjL2Tn8xW3dax-6UYH_Q_1ROL4ohI";
34461let $2 = null;
34462function Um() {
34463  return $2 || ($2 = Zm($m, qm), $2);
34464}
34465const E6 = {
34466  first_name: "",
34467  last_name: "",
34468  email: "",
34469  phone: "",
34470  organization: "",
34471  message: ""
34472};
34473function Gm() {
34474  const [t, e] = j(E6), [s, r] = j("idle"), [n, o] = j(""), L = (f) => {
34475    e((p) => ({ ...p, [f.target.name]: f.target.value }));
34476  }, d = async (f) => {
34477    f.preventDefault(), r("submitting"), o("");
34478    try {
34479      const p = Um(), { error: M } = await p.from("contact_submissions").insert([{ ...t, submitted_at: (/* @__PURE__ */ new Date()).toISOString() }]);
34480      if (M) throw M;
34481      r("success"), e(E6);
34482    } catch (p) {
34483      console.error("Contact form error:", p);
34484      const M = p instanceof Error ? p.message : typeof p == "object" && p !== null && "message" in p ? String(p.message) : "Something went wrong. Please try again or email us directly.";
34485      o(M), r("error");
34486    }
34487  }, l = "w-full px-4 py-3 rounded-xl border border-slate-200 bg-slate-50 text-[#0a1628] placeholder:text-slate-400 focus:outline-none focus:border-[#EFBB0F] focus:ring-2 focus:ring-[#EFBB0F]/20 transition-all text-sm", g = "block text-[#0a1628] text-sm mb-1.5";
34488  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "c8cu0", _fgB: 1790697589440, _fgD: !0, className: "min-h-screen bg-white", "data-fg-c8cu0": ":0:/src/app/pages/ContactPage.tsx:73:5:2313:12528:e:main:xtetxtete:1", children: [
34489    /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "c8cu2", _fgB: 1790697589440, className: "relative pt-32 pb-16 bg-gradient-to-br from-[#0a1628] via-[#0f2035] to-[#0a1628] overflow-hidden", "data-fg-c8cu2": ":0:/src/app/pages/ContactPage.tsx:75:7:2387:1510:e:section:ete", children: [
34490      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu3", _fgB: 1790697589440, className: "absolute inset-0 opacity-10", "data-fg-c8cu3": ":0:/src/app/pages/ContactPage.tsx:76:9:2514:270:e:div:ete", children: [
34491        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu4", _fgB: 1790697589440, className: "absolute top-20 left-10 w-72 h-72 bg-[#EFBB0F] rounded-full blur-[120px]", "data-fg-c8cu4": ":0:/src/app/pages/ContactPage.tsx:77:11:2570:92:e:div" }),
34492        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu5", _fgB: 1790697589440, className: "absolute bottom-10 right-20 w-96 h-96 bg-[#EFBB0F] rounded-full blur-[150px]", "data-fg-c8cu5": ":0:/src/app/pages/ContactPage.tsx:78:11:2673:96:e:div" })
34493      ] }),
34494      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu6", _fgB: 1790697589440, className: "max-w-7xl mx-auto px-6 relative z-10 text-center", "data-fg-c8cu6": ":0:/src/app/pages/ContactPage.tsx:80:9:2793:1087:e:div:etete", children: [
34495        /* @__PURE__ */ i(
34496          a,
34497          {
34498            _fgT: m.p,
34499            _fgS: "c8cu7",
34500            _fgB: 1790697589440,
34501            initial: { opacity: 0, y: 20 },
34502            animate: { opacity: 1, y: 0 },
34503            transition: { duration: 0.5 },
34504            className: "text-[#EFBB0F] text-sm uppercase tracking-widest mb-4",
34505            style: { fontWeight: 600 },
34506            "data-fg-c8cu7": ":0:/src/app/pages/ContactPage.tsx:81:11:2870:316:e:motion.p:t",
34507            children: "Get In Touch"
34508          }
34509        ),
34510        /* @__PURE__ */ i(
34511          a,
34512          {
34513            _fgT: m.h1,
34514            _fgS: "c8cu9",
34515            _fgB: 1790697589440,
34516            initial: { opacity: 0, y: 20 },
34517            animate: { opacity: 1, y: 0 },
34518            transition: { duration: 0.5, delay: 0.1 },
34519            className: "text-white mb-4",
34520            "data-fg-c8cu9": ":0:/src/app/pages/ContactPage.tsx:90:11:3197:250:e:motion.h1:t",
34521            children: "Contact Us"
34522          }
34523        ),
34524        /* @__PURE__ */ c(
34525          a,
34526          {
34527            _fgT: m.p,
34528            _fgS: "c8cu11",
34529            _fgB: 1790697589440,
34530            initial: { opacity: 0, y: 20 },
34531            animate: { opacity: 1, y: 0 },
34532            transition: { duration: 0.5, delay: 0.2 },
34533            className: "text-white/60 max-w-2xl mx-auto",
34534            "data-fg-c8cu11": ":0:/src/app/pages/ContactPage.tsx:98:11:3458:407:e:motion.p:tst",
34535            children: [
34536              "Have questions about our transit technology solutions? We'd love to hear from you.",
34537              " ",
34538              "Reach out and our team will get back to you promptly."
34539            ]
34540          }
34541        )
34542      ] })
34543    ] }),
34544    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "c8cu16", _fgB: 1790697589440, className: "py-20", "data-fg-c8cu16": ":0:/src/app/pages/ContactPage.tsx:111:7:3935:10876:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu17", _fgB: 1790697589440, className: "max-w-7xl mx-auto px-6", "data-fg-c8cu17": ":0:/src/app/pages/ContactPage.tsx:112:9:3971:10823:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu18", _fgB: 1790697589440, className: "grid lg:grid-cols-5 gap-16", "data-fg-c8cu18": ":0:/src/app/pages/ContactPage.tsx:113:11:4022:10757:e:div:xtetxte", children: [
34545      /* @__PURE__ */ c(
34546        a,
34547        {
34548          _fgT: m.div,
34549          _fgS: "c8cu20",
34550          _fgB: 1790697589440,
34551          initial: { opacity: 0, x: -30 },
34552          animate: { opacity: 1, x: 0 },
34553          transition: { duration: 0.6, delay: 0.2 },
34554          className: "lg:col-span-2 flex flex-col gap-8",
34555          "data-fg-c8cu20": ":0:/src/app/pages/ContactPage.tsx:115:13:4120:3024:e:motion.div:etxtetxtetxte",
34556          children: [
34557            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu21", _fgB: 1790697589440, "data-fg-c8cu21": ":0:/src/app/pages/ContactPage.tsx:121:15:4369:315:e:div:ete", children: [
34558              /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "c8cu22", _fgB: 1790697589440, className: "text-[#0a1628] mb-2", "data-fg-c8cu22": ":0:/src/app/pages/ContactPage.tsx:122:17:4391:51:e:h2:t", children: "Let's Talk" }),
34559              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu24", _fgB: 1790697589440, className: "text-slate-500", "data-fg-c8cu24": ":0:/src/app/pages/ContactPage.tsx:123:17:4459:204:e:p:t", children: "Whether you're looking to modernize your transit operations or explore our AI-powered solutions, we're here to help." })
34560            ] }),
34561            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu27", _fgB: 1790697589440, className: "flex items-start gap-4 p-6 bg-slate-50 rounded-2xl border border-slate-100", "data-fg-c8cu27": ":0:/src/app/pages/ContactPage.tsx:130:15:4728:807:e:div:ete", children: [
34562              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu28", _fgB: 1790697589440, className: "w-12 h-12 rounded-xl bg-[#EFBB0F]/10 flex items-center justify-center flex-shrink-0", "data-fg-c8cu28": ":0:/src/app/pages/ContactPage.tsx:131:17:4837:189:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "c8cu29", _fgB: 1790697589440, className: "text-[#EFBB0F]", size: 22, "data-fg-c8cu29": ":0:node_modules/lucide-react:132:19:4957:46:e:Phone::::::DmpI" }) }),
34563              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu30", _fgB: 1790697589440, "data-fg-c8cu30": ":0:/src/app/pages/ContactPage.tsx:134:17:5043:471:e:div:etete", children: [
34564                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu31", _fgB: 1790697589440, className: "text-[#0a1628] mb-1", style: { fontWeight: 600 }, "data-fg-c8cu31": ":0:/src/app/pages/ContactPage.tsx:135:19:5067:74:e:p:t", children: "Call Us" }),
34565                /* @__PURE__ */ i(
34566                  a,
34567                  {
34568                    _fgT: "a",
34569                    _fgS: "c8cu33",
34570                    _fgB: 1790697589440,
34571                    href: "tel:+13012082222",
34572                    className: "text-[#EFBB0F] hover:underline text-lg",
34573                    style: { fontWeight: 700 },
34574                    "data-fg-c8cu33": ":0:/src/app/pages/ContactPage.tsx:136:19:5160:241:e:a:t",
34575                    children: "301-208-2222"
34576                  }
34577                ),
34578                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu35", _fgB: 1790697589440, className: "text-slate-400 text-sm mt-1", "data-fg-c8cu35": ":0:/src/app/pages/ContactPage.tsx:143:19:5420:71:e:p:t", children: "Mon – Fri, 8am – 6pm EST" })
34579              ] })
34580            ] }),
34581            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu38", _fgB: 1790697589440, className: "flex items-start gap-4 p-6 bg-slate-50 rounded-2xl border border-slate-100", "data-fg-c8cu38": ":0:/src/app/pages/ContactPage.tsx:148:15:5579:817:e:div:ete", children: [
34582              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu39", _fgB: 1790697589440, className: "w-12 h-12 rounded-xl bg-[#EFBB0F]/10 flex items-center justify-center flex-shrink-0", "data-fg-c8cu39": ":0:/src/app/pages/ContactPage.tsx:149:17:5688:188:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "c8cu40", _fgB: 1790697589440, className: "text-[#EFBB0F]", size: 22, "data-fg-c8cu40": ":0:node_modules/lucide-react:150:19:5808:45:e:Mail::::::D4VR" }) }),
34583              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu41", _fgB: 1790697589440, "data-fg-c8cu41": ":0:/src/app/pages/ContactPage.tsx:152:17:5893:482:e:div:etete", children: [
34584                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu42", _fgB: 1790697589440, className: "text-[#0a1628] mb-1", style: { fontWeight: 600 }, "data-fg-c8cu42": ":0:/src/app/pages/ContactPage.tsx:153:19:5917:75:e:p:t", children: "Email Us" }),
34585                /* @__PURE__ */ i(
34586                  a,
34587                  {
34588                    _fgT: "a",
34589                    _fgS: "c8cu44",
34590                    _fgB: 1790697589440,
34591                    href: "mailto:[email protected]",
34592                    className: "text-[#EFBB0F] hover:underline",
34593                    style: { fontWeight: 600 },
34594                    "data-fg-c8cu44": ":0:/src/app/pages/ContactPage.tsx:154:19:6011:246:e:a:t",
34595                    children: "[email protected]"
34596                  }
34597                ),
34598                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu46", _fgB: 1790697589440, className: "text-slate-400 text-sm mt-1", "data-fg-c8cu46": ":0:/src/app/pages/ContactPage.tsx:161:19:6276:76:e:p:t", children: "We'll respond within 24 hours" })
34599              ] })
34600            ] }),
34601            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu49", _fgB: 1790697589440, className: "flex items-start gap-4 p-6 bg-slate-50 rounded-2xl border border-slate-100", "data-fg-c8cu49": ":0:/src/app/pages/ContactPage.tsx:166:15:6442:676:e:div:ete", children: [
34602              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu50", _fgB: 1790697589440, className: "w-12 h-12 rounded-xl bg-[#EFBB0F]/10 flex items-center justify-center flex-shrink-0", "data-fg-c8cu50": ":0:/src/app/pages/ContactPage.tsx:167:17:6551:190:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Pt, _fgS: "c8cu51", _fgB: 1790697589440, className: "text-[#EFBB0F]", size: 22, "data-fg-c8cu51": ":0:node_modules/lucide-react:168:19:6671:47:e:MapPin::::::BveZ" }) }),
34603              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu52", _fgB: 1790697589440, "data-fg-c8cu52": ":0:/src/app/pages/ContactPage.tsx:170:17:6758:339:e:div:ete", children: [
34604                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu53", _fgB: 1790697589440, className: "text-[#0a1628] mb-1", style: { fontWeight: 600 }, "data-fg-c8cu53": ":0:/src/app/pages/ContactPage.tsx:171:19:6782:75:e:p:t", children: "Visit Us" }),
34605                /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "c8cu55", _fgB: 1790697589440, className: "text-slate-500", "data-fg-c8cu55": ":0:/src/app/pages/ContactPage.tsx:172:19:6876:198:e:p:tetet", children: [
34606                  "IT Curves Headquarters",
34607                  /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c8cu57", _fgB: 1790697589440, "data-fg-c8cu57": ":0:/src/app/pages/ContactPage.tsx:173:43:6949:6:e:br" }),
34608                  "8201 Snouffer School Road,",
34609                  /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "c8cu59", _fgB: 1790697589440, "data-fg-c8cu59": ":0:/src/app/pages/ContactPage.tsx:174:47:7002:6:e:br" }),
34610                  "Gaithersburg, MD 20879"
34611                ] })
34612              ] })
34613            ] })
34614          ]
34615        }
34616      ),
34617      /* @__PURE__ */ i(
34618        a,
34619        {
34620          _fgT: m.div,
34621          _fgS: "c8cu62",
34622          _fgB: 1790697589440,
34623          initial: { opacity: 0, x: 30 },
34624          animate: { opacity: 1, x: 0 },
34625          transition: { duration: 0.6, delay: 0.3 },
34626          className: "lg:col-span-3",
34627          "data-fg-c8cu62": ":0:/src/app/pages/ContactPage.tsx:182:13:7191:7571:e:motion.div:e",
34628          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu63", _fgB: 1790697589440, className: "bg-white rounded-3xl border border-slate-200 p-8 md:p-10 shadow-sm", "data-fg-c8cu63": ":0:/src/app/pages/ContactPage.tsx:188:15:7419:7317:e:div:etetxtx", children: [
34629            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "c8cu64", _fgB: 1790697589440, className: "text-[#0a1628] mb-1", "data-fg-c8cu64": ":0:/src/app/pages/ContactPage.tsx:189:17:7520:58:e:h3:t", children: "Send Us a Message" }),
34630            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu66", _fgB: 1790697589440, className: "text-slate-400 mb-8 text-sm", "data-fg-c8cu66": ":0:/src/app/pages/ContactPage.tsx:190:17:7595:153:e:p:t", children: "Fill out the form below and we'll get back to you as soon as possible." }),
34631            s === "success" ? /* @__PURE__ */ c(
34632              a,
34633              {
34634                _fgT: m.div,
34635                _fgS: "c8cu70",
34636                _fgB: 1790697589440,
34637                initial: { opacity: 0, scale: 0.95 },
34638                animate: { opacity: 1, scale: 1 },
34639                className: "flex flex-col items-center justify-center py-16 gap-4 text-center",
34640                "data-fg-c8cu70": ":0:/src/app/pages/ContactPage.tsx:196:19:7851:1153:e:motion.div:etete",
34641                children: [
34642                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu71", _fgB: 1790697589440, className: "w-16 h-16 rounded-full bg-green-50 flex items-center justify-center", "data-fg-c8cu71": ":0:/src/app/pages/ContactPage.tsx:201:21:8114:187:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: b2, _fgS: "c8cu72", _fgB: 1790697589440, className: "text-green-500", size: 32, "data-fg-c8cu72": ":0:node_modules/lucide-react:202:23:8222:52:e:CheckCircle::::::C4Wc" }) }),
34643                  /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu73", _fgB: 1790697589440, "data-fg-c8cu73": ":0:/src/app/pages/ContactPage.tsx:204:21:8322:340:e:div:ete", children: [
34644                    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu74", _fgB: 1790697589440, className: "text-[#0a1628] mb-1", style: { fontWeight: 600 }, "data-fg-c8cu74": ":0:/src/app/pages/ContactPage.tsx:205:23:8350:80:e:p:t", children: "Message Sent!" }),
34645                    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu76", _fgB: 1790697589440, className: "text-slate-500 text-sm max-w-xs", "data-fg-c8cu76": ":0:/src/app/pages/ContactPage.tsx:206:23:8453:182:e:p:t", children: "Thank you for reaching out. A member of our team will be in touch with you shortly." })
34646                  ] }),
34647                  /* @__PURE__ */ i(
34648                    a,
34649                    {
34650                      _fgT: "button",
34651                      _fgS: "c8cu78",
34652                      _fgB: 1790697589440,
34653                      onClick: () => r("idle"),
34654                      className: "mt-2 text-[#EFBB0F] text-sm hover:underline",
34655                      style: { fontWeight: 600 },
34656                      "data-fg-c8cu78": ":0:/src/app/pages/ContactPage.tsx:210:21:8683:289:e:button:t",
34657                      children: "Send another message"
34658                    }
34659                  )
34660                ]
34661              }
34662            ) : /* @__PURE__ */ c(a, { _fgT: "form", _fgS: "c8cu80", _fgB: 1790697589440, onSubmit: d, className: "flex flex-col gap-5", "data-fg-c8cu80": ":0:/src/app/pages/ContactPage.tsx:219:19:9045:5651:e:form:xtetxtetxtetxtetxtetxtxtxte", children: [
34663              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu82", _fgB: 1790697589440, className: "grid sm:grid-cols-2 gap-4", "data-fg-c8cu82": ":0:/src/app/pages/ContactPage.tsx:221:21:9165:1442:e:div:ete", children: [
34664                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu83", _fgB: 1790697589440, "data-fg-c8cu83": ":0:/src/app/pages/ContactPage.tsx:222:23:9231:665:e:div:ete", children: [
34665                  /* @__PURE__ */ c(a, { _fgT: "label", _fgS: "c8cu84", _fgB: 1790697589440, htmlFor: "first_name", className: g, style: { fontWeight: 500 }, "data-fg-c8cu84": ":0:/src/app/pages/ContactPage.tsx:223:25:9261:191:e:label:te", children: [
34666                    "First Name ",
34667                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c8cu86", _fgB: 1790697589440, className: "text-[#EFBB0F]", "data-fg-c8cu86": ":0:/src/app/pages/ContactPage.tsx:224:38:9378:41:e:span:t", children: "*" })
34668                  ] }),
34669                  /* @__PURE__ */ i(
34670                    a,
34671                    {
34672                      _fgT: "input",
34673                      _fgS: "c8cu88",
34674                      _fgB: 1790697589440,
34675                      id: "first_name",
34676                      name: "first_name",
34677                      type: "text",
34678                      required: !0,
34679                      value: t.first_name,
34680                      onChange: L,
34681                      placeholder: "Jane",
34682                      className: l,
34683                      "data-fg-c8cu88": ":0:/src/app/pages/ContactPage.tsx:226:25:9477:390:e:input"
34684                    }
34685                  )
34686                ] }),
34687                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu89", _fgB: 1790697589440, "data-fg-c8cu89": ":0:/src/app/pages/ContactPage.tsx:237:23:9919:661:e:div:ete", children: [
34688                  /* @__PURE__ */ c(a, { _fgT: "label", _fgS: "c8cu90", _fgB: 1790697589440, htmlFor: "last_name", className: g, style: { fontWeight: 500 }, "data-fg-c8cu90": ":0:/src/app/pages/ContactPage.tsx:238:25:9949:189:e:label:te", children: [
34689                    "Last Name ",
34690                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c8cu92", _fgB: 1790697589440, className: "text-[#EFBB0F]", "data-fg-c8cu92": ":0:/src/app/pages/ContactPage.tsx:239:37:10064:41:e:span:t", children: "*" })
34691                  ] }),
34692                  /* @__PURE__ */ i(
34693                    a,
34694                    {
34695                      _fgT: "input",
34696                      _fgS: "c8cu94",
34697                      _fgB: 1790697589440,
34698                      id: "last_name",
34699                      name: "last_name",
34700                      type: "text",
34701                      required: !0,
34702                      value: t.last_name,
34703                      onChange: L,
34704                      placeholder: "Smith",
34705                      className: l,
34706                      "data-fg-c8cu94": ":0:/src/app/pages/ContactPage.tsx:241:25:10163:388:e:input"
34707                    }
34708                  )
34709                ] })
34710              ] }),
34711              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu96", _fgB: 1790697589440, "data-fg-c8cu96": ":0:/src/app/pages/ContactPage.tsx:255:21:10663:636:e:div:ete", children: [
34712                /* @__PURE__ */ c(a, { _fgT: "label", _fgS: "c8cu97", _fgB: 1790697589440, htmlFor: "email", className: g, style: { fontWeight: 500 }, "data-fg-c8cu97": ":0:/src/app/pages/ContactPage.tsx:256:23:10691:185:e:label:te", children: [
34713                  "Email Address ",
34714                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c8cu99", _fgB: 1790697589440, className: "text-[#EFBB0F]", "data-fg-c8cu99": ":0:/src/app/pages/ContactPage.tsx:257:39:10804:41:e:span:t", children: "*" })
34715                ] }),
34716                /* @__PURE__ */ i(
34717                  a,
34718                  {
34719                    _fgT: "input",
34720                    _fgS: "c8cu101",
34721                    _fgB: 1790697589440,
34722                    id: "email",
34723                    name: "email",
34724                    type: "email",
34725                    required: !0,
34726                    value: t.email,
34727                    onChange: L,
34728                    placeholder: "[email protected]",
34729                    className: l,
34730                    "data-fg-c8cu101": ":0:/src/app/pages/ContactPage.tsx:259:23:10899:373:e:input"
34731                  }
34732                )
34733              ] }),
34734              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu103", _fgB: 1790697589440, "data-fg-c8cu103": ":0:/src/app/pages/ContactPage.tsx:272:21:11355:553:e:div:ete", children: [
34735                /* @__PURE__ */ i(a, { _fgT: "label", _fgS: "c8cu104", _fgB: 1790697589440, htmlFor: "phone", className: g, style: { fontWeight: 500 }, "data-fg-c8cu104": ":0:/src/app/pages/ContactPage.tsx:273:23:11383:142:e:label:t", children: "Phone Number" }),
34736                /* @__PURE__ */ i(
34737                  a,
34738                  {
34739                    _fgT: "input",
34740                    _fgS: "c8cu106",
34741                    _fgB: 1790697589440,
34742                    id: "phone",
34743                    name: "phone",
34744                    type: "tel",
34745                    value: t.phone,
34746                    onChange: L,
34747                    placeholder: "(301) 555-0100",
34748                    className: l,
34749                    "data-fg-c8cu106": ":0:/src/app/pages/ContactPage.tsx:276:23:11548:333:e:input"
34750                  }
34751                )
34752              ] }),
34753              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu108", _fgB: 1790697589440, "data-fg-c8cu108": ":0:/src/app/pages/ContactPage.tsx:288:21:11971:598:e:div:ete", children: [
34754                /* @__PURE__ */ i(a, { _fgT: "label", _fgS: "c8cu109", _fgB: 1790697589440, htmlFor: "organization", className: g, style: { fontWeight: 500 }, "data-fg-c8cu109": ":0:/src/app/pages/ContactPage.tsx:289:23:11999:149:e:label:t", children: "Organization" }),
34755                /* @__PURE__ */ i(
34756                  a,
34757                  {
34758                    _fgT: "input",
34759                    _fgS: "c8cu111",
34760                    _fgB: 1790697589440,
34761                    id: "organization",
34762                    name: "organization",
34763                    type: "text",
34764                    value: t.organization,
34765                    onChange: L,
34766                    placeholder: "Your transit agency or company",
34767                    className: l,
34768                    "data-fg-c8cu111": ":0:/src/app/pages/ContactPage.tsx:292:23:12171:371:e:input"
34769                  }
34770                )
34771              ] }),
34772              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu113", _fgB: 1790697589440, "data-fg-c8cu113": ":0:/src/app/pages/ContactPage.tsx:304:21:12627:676:e:div:ete", children: [
34773                /* @__PURE__ */ c(a, { _fgT: "label", _fgS: "c8cu114", _fgB: 1790697589440, htmlFor: "message", className: g, style: { fontWeight: 500 }, "data-fg-c8cu114": ":0:/src/app/pages/ContactPage.tsx:305:23:12655:181:e:label:te", children: [
34774                  "Message ",
34775                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "c8cu116", _fgB: 1790697589440, className: "text-[#EFBB0F]", "data-fg-c8cu116": ":0:/src/app/pages/ContactPage.tsx:306:33:12764:41:e:span:t", children: "*" })
34776                ] }),
34777                /* @__PURE__ */ i(
34778                  a,
34779                  {
34780                    _fgT: "textarea",
34781                    _fgS: "c8cu118",
34782                    _fgB: 1790697589440,
34783                    id: "message",
34784                    name: "message",
34785                    required: !0,
34786                    rows: 5,
34787                    value: t.message,
34788                    onChange: L,
34789                    placeholder: "Tell us about your project or question...",
34790                    className: `${l} resize-none`,
34791                    "data-fg-c8cu118": ":0:/src/app/pages/ContactPage.tsx:308:23:12859:417:e:textarea"
34792                  }
34793                )
34794              ] }),
34795              s === "error" && /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "c8cu121", _fgB: 1790697589440, className: "flex items-start gap-3 p-4 bg-red-50 border border-red-100 rounded-xl", "data-fg-c8cu121": ":0:/src/app/pages/ContactPage.tsx:322:23:13417:291:e:div:ete", children: [
34796                /* @__PURE__ */ i(a, { _fgT: Y5, _fgS: "c8cu122", _fgB: 1790697589440, className: "text-red-500 flex-shrink-0 mt-0.5", size: 16, "data-fg-c8cu122": ":0:node_modules/lucide-react:323:25:13529:71:e:AlertCircle::::::fAY" }),
34797                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "c8cu123", _fgB: 1790697589440, className: "text-red-600 text-sm", "data-fg-c8cu123": ":0:/src/app/pages/ContactPage.tsx:324:25:13625:54:e:p:x", children: n })
34798              ] }),
34799              /* @__PURE__ */ i(
34800                a,
34801                {
34802                  _fgT: "button",
34803                  _fgS: "c8cu126",
34804                  _fgB: 1790697589440,
34805                  type: "submit",
34806                  disabled: s === "submitting",
34807                  className: "flex items-center justify-center gap-2 w-full py-3.5 px-6 rounded-xl bg-[#EFBB0F] text-[#0a1628] transition-all hover:bg-[#d4a50d] disabled:opacity-60 disabled:cursor-not-allowed",
34808                  style: { fontWeight: 700 },
34809                  "data-fg-c8cu126": ":0:/src/app/pages/ContactPage.tsx:329:21:13788:882:e:button:x",
34810                  children: s === "submitting" ? /* @__PURE__ */ c(C, { children: [
34811                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "c8cu129", _fgB: 1790697589440, className: "w-4 h-4 border-2 border-[#0a1628]/30 border-t-[#0a1628] rounded-full animate-spin", "data-fg-c8cu129": ":0:/src/app/pages/ContactPage.tsx:337:27:14284:101:e:div" }),
34812                    "Sending…"
34813                  ] }) : /* @__PURE__ */ c(C, { children: [
34814                    /* @__PURE__ */ i(a, { _fgT: ti, _fgS: "c8cu132", _fgB: 1790697589440, size: 16, "data-fg-c8cu132": ":0:node_modules/lucide-react:342:27:14530:18:e:Send::::::dtm" }),
34815                    "Send Message"
34816                  ] })
34817                }
34818              )
34819            ] })
34820          ] })
34821        }
34822      )
34823    ] }) }) }),
34824    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "c8cu134", _fgB: 1790697589440, "data-fg-c8cu134": ":0:/src/app/pages/ContactPage.tsx:355:7:14819:10:e:Footer::::::B1Vv" })
34825  ] });
34826}
34827const R6 = "#0B1B2B", c1 = "#EFBB0F";
34828function Jm() {
34829  return /* @__PURE__ */ c(C, { children: [
34830    /* @__PURE__ */ c(
34831      a,
34832      {
34833        _fgT: "section",
34834        _fgS: "cmy2",
34835        _fgB: 1790697589449,
34836        className: "relative pt-32 pb-16 text-white overflow-hidden",
34837        style: { background: `linear-gradient(135deg, ${R6} 0%, #132B44 100%)` },
34838        "data-fg-cmy2": ":0:/src/app/pages/BookMeetingPage.tsx:12:7:287:1568:e:section:ete",
34839        children: [
34840          /* @__PURE__ */ i(
34841            a,
34842            {
34843              _fgT: "div",
34844              _fgS: "cmy3",
34845              _fgB: 1790697589449,
34846              className: "absolute -top-32 -right-32 w-96 h-96 rounded-full opacity-10",
34847              style: { background: `radial-gradient(circle, ${c1} 0%, transparent 70%)` },
34848              "data-fg-cmy3": ":0:/src/app/pages/BookMeetingPage.tsx:16:9:464:187:e:div"
34849            }
34850          ),
34851          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cmy4", _fgB: 1790697589449, className: "max-w-4xl mx-auto px-6 text-center relative z-10", "data-fg-cmy4": ":0:/src/app/pages/BookMeetingPage.tsx:20:9:660:1178:e:div:e", children: /* @__PURE__ */ c(
34852            a,
34853            {
34854              _fgT: m.div,
34855              _fgS: "cmy5",
34856              _fgB: 1790697589449,
34857              initial: { opacity: 0, y: 20 },
34858              animate: { opacity: 1, y: 0 },
34859              transition: { duration: 0.5 },
34860              "data-fg-cmy5": ":0:/src/app/pages/BookMeetingPage.tsx:21:11:737:1086:e:motion.div:etete",
34861              children: [
34862                /* @__PURE__ */ c(
34863                  a,
34864                  {
34865                    _fgT: "div",
34866                    _fgS: "cmy6",
34867                    _fgB: 1790697589449,
34868                    className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full mb-6",
34869                    style: { backgroundColor: `${c1}20`, border: `1px solid ${c1}40` },
34870                    "data-fg-cmy6": ":0:/src/app/pages/BookMeetingPage.tsx:26:13:903:389:e:div:ete",
34871                    children: [
34872                      /* @__PURE__ */ i(a, { _fgT: i2, _fgS: "cmy7", _fgB: 1790697589449, size: 14, style: { color: c1 }, "data-fg-cmy7": ":0:node_modules/lucide-react:30:15:1109:46:e:Calendar::::::Bbz4" }),
34873                      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cmy8", _fgB: 1790697589449, className: "text-sm", style: { color: c1 }, "data-fg-cmy8": ":0:/src/app/pages/BookMeetingPage.tsx:31:15:1170:103:e:span:t", children: "Book a Meeting" })
34874                    ]
34875                  }
34876                ),
34877                /* @__P
34877URE__ */ c(a, { _fgT: "h1", _fgS: "cmy10", _fgB: 1790697589449, className: "font-[Space_Grotesk] text-4xl md:text-5xl mb-4", "data-fg-cmy10": ":0:/src/app/pages/BookMeetingPage.tsx:35:13:1305:262:e:h1:tste", children: [
34878                  "Let's Talk About Your",
34879                  " ",
34880                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cmy13", _fgB: 1790697589449, className: "italic font-[Playfair_Display]", style: { color: c1 }, "data-fg-cmy13": ":0:/src/app/pages/BookMeetingPage.tsx:37:15:1424:125:e:span:t", children: "Transit Needs" })
34881                ] }),
34882                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cmy15", _fgB: 1790697589449, className: "text-white/70 max-w-2xl mx-auto text-lg", "data-fg-cmy15": ":0:/src/app/pages/BookMeetingPage.tsx:41:13:1580:219:e:p:t", children: "Schedule a personalized demo and see how IT Curves can transform your transit operations with our all-in-one platform." })
34883              ]
34884            }
34885          ) })
34886        ]
34887      }
34888    ),
34889    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cmy18", _fgB: 1790697589449, className: "py-16 bg-slate-50", "data-fg-cmy18": ":0:/src/app/pages/BookMeetingPage.tsx:50:7:1890:4696:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cmy19", _fgB: 1790697589449, className: "max-w-6xl mx-auto px-6", "data-fg-cmy19": ":0:/src/app/pages/BookMeetingPage.tsx:51:9:1938:4631:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy20", _fgB: 1790697589449, className: "grid grid-cols-1 lg:grid-cols-3 gap-10", "data-fg-cmy20": ":0:/src/app/pages/BookMeetingPage.tsx:52:11:1989:4565:e:div:xtetxte", children: [
34890      /* @__PURE__ */ c(
34891        a,
34892        {
34893          _fgT: m.div,
34894          _fgS: "cmy22",
34895          _fgB: 1790697589449,
34896          initial: { opacity: 0, x: -20 },
34897          animate: { opacity: 1, x: 0 },
34898          transition: { duration: 0.5, delay: 0.2 },
34899          className: "lg:col-span-1 flex flex-col gap-6",
34900          "data-fg-cmy22": ":0:/src/app/pages/BookMeetingPage.tsx:54:13:2091:2829:e:motion.div:ete",
34901          children: [
34902            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy23", _fgB: 1790697589449, className: "bg-white rounded-2xl p-6 shadow-sm border border-slate-100", "data-fg-cmy23": ":0:/src/app/pages/BookMeetingPage.tsx:60:15:2340:1141:e:div:ete", children: [
34903              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cmy24", _fgB: 1790697589449, className: "font-[Space_Grotesk] text-lg text-slate-900 mb-4", "data-fg-cmy24": ":0:/src/app/pages/BookMeetingPage.tsx:61:17:2433:120:e:h3:t", children: "What to Expect" }),
34904              /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "cmy26", _fgB: 1790697589449, className: "space-y-4 text-sm text-slate-600", "data-fg-cmy26": ":0:/src/app/pages/BookMeetingPage.tsx:64:17:2570:890:e:ul:x", children: [
34905                "A 30-minute personalized walkthrough of our platform",
34906                "Live demo using scenarios relevant to your operations",
34907                "Q&A with our transit technology experts",
34908                "No obligation — just a conversation about your needs"
34909              ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "cmy28", _fgB: 1790697589449, className: "flex items-start gap-3", "data-fg-cmy28": ":0:/src/app/pages/BookMeetingPage.tsx:71:21:2992:424:e:li:ete", children: [
34910                /* @__PURE__ */ i(
34911                  a,
34912                  {
34913                    _fgT: "div",
34914                    _fgS: "cmy29",
34915                    _fgB: 1790697589449,
34916                    className: "w-5 h-5 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 text-xs",
34917                    style: { backgroundColor: `${c1}20`, color: c1 },
34918                    "data-fg-cmy29": ":0:/src/app/pages/BookMeetingPage.tsx:72:23:3062:286:e:div:x",
34919                    children: e + 1
34920                  }
34921                ),
34922                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cmy31", _fgB: 1790697589449, "data-fg-cmy31": ":0:/src/app/pages/BookMeetingPage.tsx:78:23:3371:19:e:span:x", children: t })
34923              ] }, e)) })
34924            ] }),
34925            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy33", _fgB: 1790697589449, className: "bg-white rounded-2xl p-6 shadow-sm border border-slate-100", "data-fg-cmy33": ":0:/src/app/pages/BookMeetingPage.tsx:84:15:3497:1397:e:div:ete", children: [
34926              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cmy34", _fgB: 1790697589449, className: "font-[Space_Grotesk] text-lg text-slate-900 mb-4", "data-fg-cmy34": ":0:/src/app/pages/BookMeetingPage.tsx:85:17:3590:118:e:h3:t", children: "Contact Info" }),
34927              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy36", _fgB: 1790697589449, className: "space-y-3 text-sm text-slate-600", "data-fg-cmy36": ":0:/src/app/pages/BookMeetingPage.tsx:88:17:3725:1148:e:div:etetete", children: [
34928                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy37", _fgB: 1790697589449, className: "flex items-center gap-3", "data-fg-cmy37": ":0:/src/app/pages/BookMeetingPage.tsx:89:19:3794:182:e:div:ete", children: [
34929                  /* @__PURE__ */ i(a, { _fgT: J1, _fgS: "cmy38", _fgB: 1790697589449, size: 16, className: "text-slate-400", "data-fg-cmy38": ":0:node_modules/lucide-react:90:21:3856:46:e:Globe::::::Cyd3" }),
34930                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cmy39", _fgB: 1790697589449, "data-fg-cmy39": ":0:/src/app/pages/BookMeetingPage.tsx:91:21:3923:28:e:span:t", children: "www.ITCurves.AI" })
34931                ] }),
34932                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy41", _fgB: 1790697589449, className: "flex items-center gap-3", "data-fg-cmy41": ":0:/src/app/pages/BookMeetingPage.tsx:93:19:3995:291:e:div:ete", children: [
34933                  /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cmy42", _fgB: 1790697589449, size: 16, className: "text-slate-400", "data-fg-cmy42": ":0:node_modules/lucide-react:94:21:4057:46:e:Phone::::::DmpI" }),
34934                  /* @__PURE__ */ i(a, { _fgT: "a", _fgS: "cmy43", _fgB: 1790697589449, href: "tel:+13012082222", className: "hover:text-blue-600 transition-colors", "data-fg-cmy43": ":0:/src/app/pages/BookMeetingPage.tsx:95:21:4124:137:e:a:t", children: "301-208-2222" })
34935                ] }),
34936                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy45", _fgB: 1790697589449, className: "flex items-center gap-3", "data-fg-cmy45": ":0:/src/app/pages/BookMeetingPage.tsx:99:19:4305:301:e:div:ete", children: [
34937                  /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "cmy46", _fgB: 1790697589449, size: 16, className: "text-slate-400", "data-fg-cmy46": ":0:node_modules/lucide-react:100:21:4367:45:e:Mail::::::D4VR" }),
34938                  /* @__PURE__ */ i(a, { _fgT: "a", _fgS: "cmy47", _fgB: 1790697589449, href: "mailto:[email protected]", className: "hover:text-blue-600 transition-colors", "data-fg-cmy47": ":0:/src/app/pages/BookMeetingPage.tsx:101:21:4433:148:e:a:t", children: "[email protected]" })
34939                ] }),
34940                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy49", _fgB: 1790697589449, className: "flex items-start gap-3", "data-fg-cmy49": ":0:/src/app/pages/BookMeetingPage.tsx:105:19:4625:225:e:div:ete", children: [
34941                  /* @__PURE__ */ i(a, { _fgT: Pt, _fgS: "cmy50", _fgB: 1790697589449, size: 16, className: "text-slate-400 mt-0.5", "data-fg-cmy50": ":0:node_modules/lucide-react:106:21:4686:54:e:MapPin::::::BveZ" }),
34942                  /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "cmy51", _fgB: 1790697589449, "data-fg-cmy51": ":0:/src/app/pages/BookMeetingPage.tsx:107:21:4761:64:e:span:tet", children: [
34943                    "8201 Snouffer School Rd",
34944                    /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "cmy53", _fgB: 1790697589449, "data-fg-cmy53": ":0:/src/app/pages/BookMeetingPage.tsx:107:50:4790:6:e:br" }),
34945                    "Gaithersburg, MD 20879"
34946                  ] })
34947                ] })
34948              ] })
34949            ] })
34950          ]
34951        }
34952      ),
34953      /* @__PURE__ */ i(
34954        a,
34955        {
34956          _fgT: m.div,
34957          _fgS: "cmy56",
34958          _fgB: 1790697589449,
34959          initial: { opacity: 0, x: 20 },
34960          animate: { opacity: 1, x: 0 },
34961          transition: { duration: 0.5, delay: 0.3 },
34962          className: "lg:col-span-2",
34963          "data-fg-cmy56": ":0:/src/app/pages/BookMeetingPage.tsx:114:13:4977:1560:e:motion.div:e",
34964          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cmy57", _fgB: 1790697589449, className: "bg-white rounded-2xl shadow-sm border border-slate-100 overflow-hidden", "data-fg-cmy57": ":0:/src/app/pages/BookMeetingPage.tsx:120:15:5205:1306:e:div:ete", children: [
34965            /* @__PURE__ */ c(
34966              a,
34967              {
34968                _fgT: "div",
34969                _fgS: "cmy58",
34970                _fgB: 1790697589449,
34971                className: "px-6 py-4 border-b border-slate-100 flex items-center gap-3",
34972                style: { backgroundColor: `${R6}08` },
34973                "data-fg-cmy58": ":0:/src/app/pages/BookMeetingPage.tsx:121:17:5310:395:e:div:ete",
34974                children: [
34975                  /* @__PURE__ */ i(a, { _fgT: i2, _fgS: "cmy59", _fgB: 1790697589449, size: 18, style: { color: c1 }, "data-fg-cmy59": ":0:node_modules/lucide-react:125:19:5500:46:e:Calendar::::::Bbz4" }),
34976                  /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cmy60", _fgB: 1790697589449, className: "font-[Space_Grotesk] text-slate-900", "data-fg-cmy60": ":0:/src/app/pages/BookMeetingPage.tsx:126:19:5565:117:e:h2:t", children: "Choose a Date & Time" })
34977                ]
34978              }
34979            ),
34980            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cmy62", _fgB: 1790697589449, className: "p-4 sm:p-6", "data-fg-cmy62": ":0:/src/app/pages/BookMeetingPage.tsx:130:17:5722:768:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cmy63", _fgB: 1790697589449, className: "relative w-full", style: { minHeight: "700px" }, "data-fg-cmy63": ":0:/src/app/pages/BookMeetingPage.tsx:131:19:5769:698:e:div:e", children: /* @__PURE__ */ i(
34981              a,
34982              {
34983                _fgT: "iframe",
34984                _fgS: "cmy64",
34985                _fgB: 1790697589449,
34986                src: "https://meetings.hubspot.com/itcurves/sales-meeting?embed=true",
34987                width: "100%",
34988                height: "700",
34989                frameBorder: "0",
34990                scrolling: "yes",
34991                allow: "fullscreen",
34992                style: {
34993                  border: "none",
34994                  minHeight: "700px",
34995                  width: "1px",
34996                  minWidth: "100%"
34997                },
34998                title: "Book a Meeting with IT Curves",
34999                "data-fg-cmy64": ":0:/src/app/pages/BookMeetingPage.tsx:132:21:5854:588:e:iframe"
35000              }
35001            ) }) })
35002          ] })
35003        }
35004      )
35005    ] }) }) }),
35006    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "cmy65", _fgB: 1790697589449, "data-fg-cmy65": ":0:/src/app/pages/BookMeetingPage.tsx:155:7:6594:10:e:Footer::::::B1Vv" })
35007  ] });
35008}
35009function Km() {
35010  const [t, e] = j(1), s = H(null), r = 5e3, [n, o] = j(0), L = H(null), d = H(Date.now()), l = Ge(() => {
35011    s.current && clearInterval(s.current), L.current && cancelAnimationFrame(L.current), d.current = Date.now(), o(0);
35012    const p = () => {
35013      const M = Date.now() - d.current, u = Math.min(M / r, 1);
35014      o(u), u < 1 && (L.current = requestAnimationFrame(p));
35015    };
35016    L.current = requestAnimationFrame(p), s.current = setInterval(() => {
35017      e((u) => u >= 4 ? 1 : u + 1), d.current = Date.now(), o(0), L.current && cancelAnimationFrame(L.current);
35018      const M = () => {
35019        const u = Date.now() - d.current, h = Math.min(u / r, 1);
35020        o(h), h < 1 && (L.current = requestAnimationFrame(M));
35021      };
35022      L.current = requestAnimationFrame(M);
35023    }, r);
35024  }, []);
35025  q(() => (l(), () => {
35026    s.current && clearInterval(s.current), L.current && cancelAnimationFrame(L.current);
35027  }), [l]);
35028  const g = (p) => {
35029    e(p), l();
35030  };
35031  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "sn30", _fgB: 1790697590815, _fgD: !0, className: "py-24 px-6 bg-[#F8FAFC] font-['DM_Sans']", "data-fg-sn30": ":0:/src/app/components/ai/AIHowItWorks.tsx:88:5:2976:4332:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn31", _fgB: 1790697590815, className: "max-w-[1280px] mx-auto", "data-fg-sn31": ":0:/src/app/components/ai/AIHowItWorks.tsx:89:7:3045:4248:e:div:ete", children: [
35032    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn32", _fgB: 1790697590815, className: "text-center mb-16", "data-fg-sn32": ":0:/src/app/components/ai/AIHowItWorks.tsx:90:9:3094:564:e:div:etete", children: [
35033      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn33", _fgB: 1790697590815, className: "text-[#2B7AE8] text-xs font-bold tracking-[2.5px] uppercase mb-4", "data-fg-sn33": ":0:/src/app/components/ai/AIHowItWorks.tsx:91:11:3140:100:e:div:t", children: "HOW IT WORKS" }),
35034      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "sn35", _fgB: 1790697590815, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-[#0B1B2B] mb-4", "data-fg-sn35": ":0:/src/app/components/ai/AIHowItWorks.tsx:92:11:3251:229:e:h2:te", children: [
35035        "A Rider Calls. ",
35036        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn37", _fgB: 1790697590815, className: "text-[#EFBB0F] italic", "data-fg-sn37": ":0:/src/app/components/ai/AIHowItWorks.tsx:93:28:3397:67:e:span:t", children: "Here's What Happens." })
35037      ] }),
35038      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn39", _fgB: 1790697590815, className: "text-[17px] text-[#5A6A80] max-w-[600px] mx-auto", "data-fg-sn39": ":0:/src/app/components/ai/AIHowItWorks.tsx:95:11:3491:152:e:p:t", children: "From first ring to resolution, with or without a live agent." })
35039    ] }),
35040    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn311", _fgB: 1790697590815, className: "grid lg:grid-cols-12 gap-12 items-start", "data-fg-sn311": ":0:/src/app/components/ai/AIHowItWorks.tsx:100:9:3668:3612:e:div:xtetxte", children: [
35041      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn313", _fgB: 1790697590815, className: "lg:col-span-5 flex flex-col gap-6 relative", "data-fg-sn313": ":0:/src/app/components/ai/AIHowItWorks.tsx:102:11:3776:2270:e:div:xtetx", children: [
35042        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn315", _fgB: 1790697590815, className: "absolute left-[23px] top-8 bottom-8 w-[2px] bg-[#E2E8F0] z-0", "data-fg-sn315": ":0:/src/app/components/ai/AIHowItWorks.tsx:104:13:3886:80:e:div" }),
35043        [
35044          {
35045            id: 1,
35046            title: "Rider Calls In",
35047            description: "AI answers instantly. No hold time, no phone tree, no voicemail."
35048          },
35049          {
35050            id: 2,
35051            title: "Intent Detected",
35052            description: "32+ trained categories identify why the rider is calling within seconds."
35053          },
35054          {
35055            id: 3,
35056            title: "Resolved or Routed",
35057            description: "Routine questions answered on the spot. Complex issues transferred with full context."
35058          },
35059          {
35060            id: 4,
35061            title: "Data Captured",
35062            description: "Every interaction logged. Topics, sentiment, and outcomes feed your dashboards."
35063          }
35064        ].map((p) => /* @__PURE__ */ c(
35065          a,
35066          {
35067            _fgT: "button",
35068            _fgS: "sn317",
35069            _fgB: 1790697590815,
35070            onClick: () => g(p.id),
35071            className: `relative z-10 text-left p-6 rounded-2xl border-2 transition-all duration-300 group overflow-hidden ${t === p.id ? "bg-white border-[#2B7AE8] shadow-lg scale-[1.02]" : "bg-[#F1F5F9] border-transparent hover:bg-white hover:border-[#E2E8F0]"}`,
35072            "data-fg-sn317": ":0:/src/app/components/ai/AIHowItWorks.tsx:107:15:4017:1996:e:button:xtxte",
35073            children: [
35074              t === p.id && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn320", _fgB: 1790697590815, className: "absolute bottom-0 left-0 right-0 h-[3px] bg-[#2B7AE8]/10", "data-fg-sn320": ":0:/src/app/components/ai/AIHowItWorks.tsx:118:19:4601:279:e:div:e", children: /* @__PURE__ */ i(
35075                a,
35076                {
35077                  _fgT: "div",
35078                  _fgS: "sn321",
35079                  _fgB: 1790697590815,
35080                  className: "h-full bg-[#2B7AE8] transition-none",
35081                  style: { width: `${n * 100}%` },
35082                  "data-fg-sn321": ":0:/src/app/components/ai/AIHowItWorks.tsx:119:21:4696:159:e:div"
35083                }
35084              ) }),
35085              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn322", _fgB: 1790697590815, className: "flex gap-5 items-start", "data-fg-sn322": ":0:/src/app/components/ai/AIHowItWorks.tsx:125:17:4916:1073:e:div:ete", children: [
35086                /* @__PURE__ */ i(
35087                  a,
35088                  {
35089                    _fgT: "div",
35090                    _fgS: "sn323",
35091                    _fgB: 1790697590815,
35092                    className: `w-12 h-12 rounded-full flex items-center justify-center text-lg font-bold shrink-0 transition-colors duration-300 ${t === p.id ? "bg-[#2B7AE8] text-white" : "bg-[#CBD5E1] text-[#64748B] group-hover:bg-[#94A3B8] group-hover:text-white"}`,
35093                    "data-fg-sn323": ":0:/src/app/components/ai/AIHowItWorks.tsx:126:19:4975:453:e:div:x",
35094                    children: p.id
35095                  }
35096                ),
35097                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn325", _fgB: 1790697590815, "data-fg-sn325": ":0:/src/app/components/ai/AIHowItWorks.tsx:135:19:5447:519:e:div:ete", children: [
35098                  /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "sn326", _fgB: 1790697590815, className: `text-lg font-bold mb-1 transition-colors ${t === p.id ? "text-[#0B1B2B]" : "text-[#64748B]"}`, "data-fg-sn326": ":0:/src/app/components/ai/AIHowItWorks.tsx:136:21:5473:230:e:h3:x", children: p.title }),
35099                  /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn328", _fgB: 1790697590815, className: `text-sm leading-relaxed ${t === p.id ? "text-[#5A6A80]" : "text-[#94A3B8]"}`, "data-fg-sn328": ":0:/src/app/components/ai/AIHowItWorks.tsx:141:21:5724:217:e:p:x", children: p.description })
35100                ] })
35101              ] })
35102            ]
35103          },
35104          p.id
35105        ))
35106      ] }),
35107      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn331", _fgB: 1790697590815, className: "lg:col-span-7", "data-fg-sn331": ":0:/src/app/components/ai/AIHowItWorks.tsx:153:11:6102:1163:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn332", _fgB: 1790697590815, className: "bg-[#0B1B2B] rounded-3xl p-8 min-h-[520px] relative overflow-hidden flex items-center justify-center border border-[#1E293B] shadow-2xl", "data-fg-sn332": ":0:/src/app/components/ai/AIHowItWorks.tsx:154:13:6146:1102:e:div:xtete", children: [
35108        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn334", _fgB: 1790697590815, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-[radial-gradient(circle,rgba(43,122,232,0.15)_0%,transparent_70%)] pointer-events-none", "data-fg-sn334": ":0:/src/app/components/ai/AIHowItWorks.tsx:156:15:6348:189:e:div" }),
35109        /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "sn335", _fgB: 1790697590815, mode: "wait", "data-fg-sn335": ":0:node_modules/motion:158:15:6567:662:e:AnimatePresence:e:::::DAs4", children: /* @__PURE__ */ c(
35110          a,
35111          {
35112            _fgT: m.div,
35113            _fgS: "sn336",
35114            _fgB: 1790697590815,
35115            initial: { opacity: 0, y: 20 },
35116            animate: { opacity: 1, y: 0 },
35117            exit: { opacity: 0, y: -20 },
35118            transition: { duration: 0.3 },
35119            className: "w-full max-w-[500px] relative z-10",
35120            "data-fg-sn336": ":0:/src/app/components/ai/AIHowItWorks.tsx:159:17:6613:583:e:motion.div:xtxtxtx",
35121            children: [
35122              t === 1 && /* @__PURE__ */ i(a, { _fgT: Ym, _fgS: "sn338", _fgB: 1790697590815, "data-fg-sn338": ":0:/src/app/components/ai/AIHowItWorks.tsx:167:40:6978:16:e:Step1Content::::::gwJ" }),
35123              t === 2 && /* @__PURE__ */ i(a, { _fgT: Xm, _fgS: "sn340", _fgB: 1790697590815, "data-fg-sn340": ":0:/src/app/components/ai/AIHowItWorks.tsx:168:40:7035:16:e:Step2Content::::::DGhK" }),
35124              t === 3 && /* @__PURE__ */ i(a, { _fgT: Qm, _fgS: "sn342", _fgB: 1790697590815, "data-fg-sn342": ":0:/src/app/components/ai/AIHowItWorks.tsx:169:40:7092:16:e:Step3Content::::::BeJJ" }),
35125              t === 4 && /* @__PURE__ */ i(a, { _fgT: ex, _fgS: "sn344", _fgB: 1790697590815, "data-fg-sn344": ":0:/src/app/components/ai/AIHowItWorks.tsx:170:40:7149:16:e:Step4Content::::::ED4K" })
35126            ]
35127          },
35128          t
35129        ) })
35130      ] }) })
35131    ] })
35132  ] }) });
35133}
35134function Ym() {
35135  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn345", _fgB: 1790697590815, _fgD: !0, className: "text-center", "data-fg-sn345": ":0:/src/app/components/ai/AIHowItWorks.tsx:183:5:7358:1168:e:div:etete:1", children: [
35136    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn346", _fgB: 1790697590815, className: "relative w-24 h-24 mx-auto mb-8", "data-fg-sn346": ":0:/src/app/components/ai/AIHowItWorks.tsx:184:7:7394:476:e:div:etete", children: [
35137      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn347", _fgB: 1790697590815, className: "absolute inset-0 bg-[#2B7AE8]/20 rounded-full animate-ping", "data-fg-sn347": ":0:/src/app/components/ai/AIHowItWorks.tsx:185:9:7452:78:e:div" }),
35138      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn348", _fgB: 1790697590815, className: "absolute inset-0 bg-[#2B7AE8]/10 rounded-full animate-pulse delay-75", "data-fg-sn348": ":0:/src/app/components/ai/AIHowItWorks.tsx:186:9:7539:88:e:div" }),
35139      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn349", _fgB: 1790697590815, className: "relative w-full h-full bg-[#2B7AE8] rounded-full flex items-center justify-center text-white shadow-[0_0_40px_rgba(43,122,232,0.6)]", "data-fg-sn349": ":0:/src/app/components/ai/AIHowItWorks.tsx:187:9:7636:221:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "sn350", _fgB: 1790697590815, size: 40, className: "animate-bounce", "data-fg-sn350": ":0:node_modules/lucide-react:188:11:7796:46:e:Phone::::::DmpI" }) })
35140    ] }),
35141    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn351", _fgB: 1790697590815, className: "mb-8", "data-fg-sn351": ":0:/src/app/components/ai/AIHowItWorks.tsx:192:7:7884:325:e:div:ete", children: [
35142      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn352", _fgB: 1790697590815, className: "text-[#EFBB0F] font-bold tracking-widest uppercase text-xs mb-2", "data-fg-sn352": ":0:/src/app/components/ai/AIHowItWorks.tsx:193:9:7915:106:e:div:t", children: "TransitAI Answering" }),
35143      /* @__PURE__ */ c(a, { _fgT: "h3", _fgS: "sn354", _fgB: 1790697590815, className: "text-2xl font-light text-white font-['DM_Serif_Display']", "data-fg-sn354": ":0:/src/app/components/ai/AIHowItWorks.tsx:194:9:8030:166:e:h3:tet", children: [
35144        '"Thank you for calling Metro Transit.',
35145        /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "sn356", _fgB: 1790697590815, "data-fg-sn356": ":0:/src/app/components/ai/AIHowItWorks.tsx:195:48:8151:5:e:br" }),
35146        'How can I help you today?"'
35147      ] })
35148    ] }),
35149    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn358", _fgB: 1790697590815, className: "grid grid-cols-3 gap-4 border-t border-white/10 pt-8", "data-fg-sn358": ":0:/src/app/components/ai/AIHowItWorks.tsx:199:7:8217:298:e:div:etete", children: [
35150      /* @__PURE__ */ i(a, { _fgT: w4, _fgS: "sn359", _fgB: 1790697590815, label: "Answer Time", value: "<1s", color: "text-[#22C55E]", "data-fg-sn359": ":0:/src/app/components/ai/AIHowItWorks.tsx:200:9:8296:63:e:Stat::::::RSJ" }),
35151      /* @__PURE__ */ i(a, { _fgT: w4, _fgS: "sn360", _fgB: 1790697590815, label: "Hold Queue", value: "0", color: "text-[#22C55E]", "data-fg-sn360": ":0:/src/app/components/ai/AIHowItWorks.tsx:201:9:8368:60:e:Stat::::::RSJ" }),
35152      /* @__PURE__ */ i(a, { _fgT: w4, _fgS: "sn361", _fgB: 1790697590815, label: "Availability", value: "24/7", color: "text-[#22C55E]", "data-fg-sn361": ":0:/src/app/components/ai/AIHowItWorks.tsx:202:9:8437:65:e:Stat::::::RSJ" })
35153    ] })
35154  ] });
35155}
35156function Xm() {
35157  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn362", _fgB: 1790697590815, _fgD: !0, className: "space-y-6", "data-fg-sn362": ":0:/src/app/components/ai/AIHowItWorks.tsx:210:5:8576:2288:e:div:xtetxte:1", children: [
35158    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn364", _fgB: 1790697590815, className: "bg-[#1E293B] rounded-xl p-5 border border-white/5 shadow-lg", "data-fg-sn364": ":0:/src/app/components/ai/AIHowItWorks.tsx:212:7:8635:598:e:div:ete", children: [
35159      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn365", _fgB: 1790697590815, className: "flex items-center gap-3 mb-3 border-b border-white/5 pb-3", "data-fg-sn365": ":0:/src/app/components/ai/AIHowItWorks.tsx:213:9:8721:386:e:div:etete", children: [
35160        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn366", _fgB: 1790697590815, className: "w-8 h-8 rounded-full bg-[#64748B] flex items-center justify-center text-white", "data-fg-sn366": ":0:/src/app/components/ai/AIHowItWorks.tsx:214:11:8807:143:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: v2, _fgS: "sn367", _fgB: 1790697590815, size: 16, "data-fg-sn367": ":0:node_modules/lucide-react:215:13:8915:18:e:User::::::wpV" }) }),
35161        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn368", _fgB: 1790697590815, className: "text-sm font-bold text-white", "data-fg-sn368": ":0:/src/app/components/ai/AIHowItWorks.tsx:217:11:8961:59:e:span:t", children: "Rider" }),
35162        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn370", _fgB: 1790697590815, className: "text-xs text-[#64748B] ml-auto", "data-fg-sn370": ":0:/src/app/components/ai/AIHowItWorks.tsx:218:11:9031:61:e:span:t", children: "00:04" })
35163      ] }),
35164      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn372", _fgB: 1790697590815, className: "text-lg text-white/90", "data-fg-sn372": ":0:/src/app/components/ai/AIHowItWorks.tsx:220:9:9116:104:e:p:t", children: '"When does the 42 bus come to MLK and 5th?"' })
35165    ] }),
35166    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn375", _fgB: 1790697590815, className: "space-y-3 pl-4 border-l-2 border-[#2B7AE8]/30", "data-fg-sn375": ":0:/src/app/components/ai/AIHowItWorks.tsx:226:7:9275:1578:e:div:etetete", children: [
35167      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn376", _fgB: 1790697590815, className: "text-xs font-bold text-[#64748B] uppercase tracking-wider mb-2", "data-fg-sn376": ":0:/src/app/components/ai/AIHowItWorks.tsx:227:9:9347:107:e:div:t", children: "Intent Classification" }),
35168      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn378", _fgB: 1790697590815, className: "flex items-center justify-between bg-[#2B7AE8]/10 border border-[#2B7AE8] rounded-lg p-3", "data-fg-sn378": ":0:/src/app/components/ai/AIHowItWorks.tsx:229:9:9472:446:e:div:ete", children: [
35169        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn379", _fgB: 1790697590815, className: "flex items-center gap-3", "data-fg-sn379": ":0:/src/app/components/ai/AIHowItWorks.tsx:230:11:9589:206:e:div:ete", children: [
35170          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn380", _fgB: 1790697590815, className: "w-2.5 h-2.5 rounded-full bg-[#2B7AE8]", "data-fg-sn380": ":0:/src/app/components/ai/AIHowItWorks.tsx:231:13:9643:58:e:span" }),
35171          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn381", _fgB: 1790697590815, className: "text-white font-medium", "data-fg-sn381": ":0:/src/app/components/ai/AIHowItWorks.tsx:232:13:9714:64:e:span:t", children: "Schedule Inquiry" })
35172        ] }),
35173        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn383", _fgB: 1790697590815, className: "text-[#22C55E] font-bold text-sm bg-[#22C55E]/10 px-2 py-0.5 rounded", "data-fg-sn383": ":0:/src/app/components/ai/AIHowItWorks.tsx:234:11:9806:97:e:span:t", children: "94%" })
35174      ] }),
35175      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn385", _fgB: 1790697590815, className: "flex items-center justify-between bg-[#1E293B] border border-white/5 rounded-lg p-3 opacity-60", "data-fg-sn385": ":0:/src/app/components/ai/AIHowItWorks.tsx:237:9:9928:453:e:div:ete", children: [
35176        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn386", _fgB: 1790697590815, className: "flex items-center gap-3", "data-fg-sn386": ":0:/src/app/components/ai/AIHowItWorks.tsx:238:11:10051:207:e:div:ete", children: [
35177          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn387", _fgB: 1790697590815, className: "w-2.5 h-2.5 rounded-full bg-[#EFBB0F]", "data-fg-sn387": ":0:/src/app/components/ai/AIHowItWorks.tsx:239:13:10105:58:e:span" }),
35178          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn388", _fgB: 1790697590815, className: "text-white font-medium", "data-fg-sn388": ":0:/src/app/components/ai/AIHowItWorks.tsx:240:13:10176:65:e:span:t", children: "Route Information" })
35179        ] }),
35180        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn390", _fgB: 1790697590815, className: "text-[#EFBB0F] font-bold text-sm bg-[#EFBB0F]/10 px-2 py-0.5 rounded", "data-fg-sn390": ":0:/src/app/components/ai/AIHowItWorks.tsx:242:11:10269:97:e:span:t", children: "78%" })
35181      ] }),
35182      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn392", _fgB: 1790697590815, className: "flex items-center justify-between bg-[#1E293B] border border-white/5 rounded-lg p-3 opacity-40", "data-fg-sn392": ":0:/src/app/components/ai/AIHowItWorks.tsx:245:9:10391:449:e:div:ete", children: [
35183        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn393", _fgB: 1790697590815, className: "flex items-center gap-3", "data-fg-sn393": ":0:/src/app/components/ai/AIHowItWorks.tsx:246:11:10514:203:e:div:ete", children: [
35184          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn394", _fgB: 1790697590815, className: "w-2.5 h-2.5 rounded-full bg-[#64748B]", "data-fg-sn394": ":0:/src/app/components/ai/AIHowItWorks.tsx:247:13:10568:58:e:span" }),
35185          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn395", _fgB: 1790697590815, className: "text-white font-medium", "data-fg-sn395": ":0:/src/app/components/ai/AIHowItWorks.tsx:248:13:10639:61:e:span:t", children: "Stop Location" })
35186        ] }),
35187        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn397", _fgB: 1790697590815, className: "text-[#94A3B8] font-bold text-sm bg-[#94A3B8]/10 px-2 py-0.5 rounded", "data-fg-sn397": ":0:/src/app/components/ai/AIHowItWorks.tsx:250:11:10728:97:e:span:t", children: "45%" })
35188      ] })
35189    ] })
35190  ] });
35191}
35192function Qm() {
35193  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn399", _fgB: 1790697590815, _fgD: !0, className: "space-y-4", "data-fg-sn399": ":0:/src/app/components/ai/AIHowItWorks.tsx:259:5:10914:1953:e:div:etxte:1", children: [
35194    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3100", _fgB: 1790697590815, className: "flex flex-col gap-4", "data-fg-sn3100": ":0:/src/app/components/ai/AIHowItWorks.tsx:260:7:10948:1166:e:div:xtetxtetxtetxte", children: [
35195      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3102", _fgB: 1790697590815, className: "self-end max-w-[90%] bg-[#1E293B] text-white/90 p-4 rounded-2xl rounded-tr-sm border border-white/5", "data-fg-sn3102": ":0:/src/app/components/ai/AIHowItWorks.tsx:262:9:11023:207:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn3103", _fgB: 1790697590815, className: "text-sm", "data-fg-sn3103": ":0:/src/app/components/ai/AIHowItWorks.tsx:263:11:11151:64:e:p:t", children: "When does the 42 come to MLK and 5th?" }) }),
35196      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3106", _fgB: 1790697590815, className: "self-start max-w-[90%] bg-[#2B7AE8] text-white p-4 rounded-2xl rounded-tl-sm shadow-lg shadow-blue-900/20", "data-fg-sn3106": ":0:/src/app/components/ai/AIHowItWorks.tsx:267:9:11266:264:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn3107", _fgB: 1790697590815, className: "text-sm", "data-fg-sn3107": ":0:/src/app/components/ai/AIHowItWorks.tsx:268:11:11400:115:e:p:t", children: "The next Route 42 at MLK & 5th is at 3:15 PM, about 8 minutes from now. Running on time." }) }),
35197      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3110", _fgB: 1790697590815, className: "self-end max-w-[90%] bg-[#1E293B] text-white/90 p-4 rounded-2xl rounded-tr-sm border border-white/5", "data-fg-sn3110": ":0:/src/app/components/ai/AIHowItWorks.tsx:272:9:11569:202:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn3111", _fgB: 1790697590815, className: "text-sm", "data-fg-sn3111": ":0:/src/app/components/ai/AIHowItWorks.tsx:273:11:11697:59:e:p:t", children: "I also need to file a complaint." }) }),
35198      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3114", _fgB: 1790697590815, className: "self-start max-w-[90%] bg-[#2B7AE8] text-white p-4 rounded-2xl rounded-tl-sm shadow-lg shadow-blue-900/20", "data-fg-sn3114": ":0:/src/app/components/ai/AIHowItWorks.tsx:277:10:11809:292:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "sn3115", _fgB: 1790697590815, className: "text-sm", "data-fg-sn3115": ":0:/src/app/components/ai/AIHowItWorks.tsx:278:11:11943:143:e:p:t", children: "Let me connect you with a representative. I'll send them our full conversation so you don't have to repeat anything." }) })
35199    ] }),
35200    /* @__PURE__ */ c(
35201      a,
35202      {
35203        _fgT: m.div,
35204        _fgS: "sn3118",
35205        _fgB: 1790697590815,
35206        initial: { opacity: 0, scale: 0.95 },
35207        animate: { opacity: 1, scale: 1 },
35208        transition: { delay: 0.5 },
35209        className: "bg-[#EFBB0F]/10 border border-[#EFBB0F] rounded-xl p-4 flex items-center gap-4 mt-6",
35210        "data-fg-sn3118": ":0:/src/app/components/ai/AIHowItWorks.tsx:283:7:12150:706:e:motion.div:ete",
35211        children: [
35212          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3119", _fgB: 1790697590815, className: "w-10 h-10 rounded-full bg-[#EFBB0F]/20 flex items-center justify-center text-[#EFBB0F] shrink-0", "data-fg-sn3119": ":0:/src/app/components/ai/AIHowItWorks.tsx:289:9:12408:163:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: D, _fgS: "sn3120", _fgB: 1790697590815, size: 20, "data-fg-sn3120": ":0:node_modules/lucide-react:290:11:12532:24:e:ArrowRight::::::s5N" }) }),
35213          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3121", _fgB: 1790697590815, "data-fg-sn3121": ":0:/src/app/components/ai/AIHowItWorks.tsx:292:9:12580:256:e:div:ete", children: [
35214            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3122", _fgB: 1790697590815, className: "text-[#EFBB0F] text-xs font-bold uppercase tracking-wider mb-1", "data-fg-sn3122": ":0:/src/app/components/ai/AIHowItWorks.tsx:293:11:12596:112:e:div:t", children: "Transferring to Live Agent" }),
35215            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3124", _fgB: 1790697590815, className: "text-white/70 text-xs", "data-fg-sn3124": ":0:/src/app/components/ai/AIHowItWorks.tsx:294:11:12719:102:e:div:t", children: "Full transcript, intent tags, and rider history attached." })
35216          ] })
35217        ]
35218      }
35219    )
35220  ] });
35221}
35222function ex() {
35223  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3126", _fgB: 1790697590815, _fgD: !0, "data-fg-sn3126": ":0:/src/app/components/ai/AIHowItWorks.tsx:303:5:12917:1592:e:div:xtetxte:1", children: [
35224    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3128", _fgB: 1790697590815, className: "grid grid-cols-3 gap-4 mb-8", "data-fg-sn3128": ":0:/src/app/components/ai/AIHowItWorks.tsx:305:7:12955:887:e:div:etete", children: [
35225      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3129", _fgB: 1790697590815, className: "bg-[#1E293B] rounded-xl p-4 border border-white/5 text-center", "data-fg-sn3129": ":0:/src/app/components/ai/AIHowItWorks.tsx:306:9:13009:268:e:div:ete", children: [
35226        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3130", _fgB: 1790697590815, className: "text-2xl font-bold text-[#2B7AE8] mb-1", "data-fg-sn3130": ":0:/src/app/components/ai/AIHowItWorks.tsx:307:11:13099:67:e:div:t", children: "1,247" }),
35227        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3132", _fgB: 1790697590815, className: "text-[10px] text-[#94A3B8] uppercase tracking-wide", "data-fg-sn3132": ":0:/src/app/components/ai/AIHowItWorks.tsx:308:11:13177:85:e:div:t", children: "Calls Today" })
35228      ] }),
35229      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3134", _fgB: 1790697590815, className: "bg-[#1E293B] rounded-xl p-4 border border-white/5 text-center", "data-fg-sn3134": ":0:/src/app/components/ai/AIHowItWorks.tsx:310:9:13286:266:e:div:ete", children: [
35230        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3135", _fgB: 1790697590815, className: "text-2xl font-bold text-[#22C55E] mb-1", "data-fg-sn3135": ":0:/src/app/components/ai/AIHowItWorks.tsx:311:11:13376:65:e:div:t", children: "83%" }),
35231        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3137", _fgB: 1790697590815, className: "text-[10px] text-[#94A3B8] uppercase tracking-wide", "data-fg-sn3137": ":0:/src/app/components/ai/AIHowItWorks.tsx:312:11:13452:85:e:div:t", children: "AI Resolved" })
35232      ] }),
35233      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3139", _fgB: 1790697590815, className: "bg-[#1E293B] rounded-xl p-4 border border-white/5 text-center", "data-fg-sn3139": ":0:/src/app/components/ai/AIHowItWorks.tsx:314:9:13561:268:e:div:ete", children: [
35234        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3140", _fgB: 1790697590815, className: "text-2xl font-bold text-[#EFBB0F] mb-1", "data-fg-sn3140": ":0:/src/app/components/ai/AIHowItWorks.tsx:315:11:13651:66:e:div:t", children: "2.1s" }),
35235        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3142", _fgB: 1790697590815, className: "text-[10px] text-[#94A3B8] uppercase tracking-wide", "data-fg-sn3142": ":0:/src/app/components/ai/AIHowItWorks.tsx:316:11:13728:86:e:div:t", children: "Avg Response" })
35236      ] })
35237    ] }),
35238    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3145", _fgB: 1790697590815, className: "bg-[#1E293B] rounded-xl p-6 border border-white/5", "data-fg-sn3145": ":0:/src/app/components/ai/AIHowItWorks.tsx:321:7:13875:623:e:div:ete", children: [
35239      /* @__PURE__ */ c(a, { _fgT: "h4", _fgS: "sn3146", _fgB: 1790697590815, className: "text-white font-bold text-sm mb-6 flex items-center gap-2", "data-fg-sn3146": ":0:/src/app/components/ai/AIHowItWorks.tsx:322:9:13951:171:e:h4:et", children: [
35240        /* @__PURE__ */ i(a, { _fgT: N3, _fgS: "sn3147", _fgB: 1790697590815, size: 16, className: "text-[#2B7AE8]", "data-fg-sn3147": ":0:node_modules/lucide-react:323:11:14036:49:e:Activity::::::Y0P" }),
35241        " Top Rider Topics Today"
35242      ] }),
35243      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3149", _fgB: 1790697590815, className: "space-y-5", "data-fg-sn3149": ":0:/src/app/components/ai/AIHowItWorks.tsx:326:9:14140:345:e:div:etetete", children: [
35244        /* @__PURE__ */ i(a, { _fgT: q2, _fgS: "sn3150", _fgB: 1790697590815, label: "Schedules", percentage: 34, color: "bg-[#2B7AE8]", "data-fg-sn3150": ":0:/src/app/components/ai/AIHowItWorks.tsx:327:11:14178:66:e:BarItem::::::BTup" }),
35245        /* @__PURE__ */ i(a, { _fgT: q2, _fgS: "sn3151", _fgB: 1790697590815, label: "Detours", percentage: 23, color: "bg-[#EFBB0F]", "data-fg-sn3151": ":0:/src/app/components/ai/AIHowItWorks.tsx:328:11:14255:64:e:BarItem::::::BTup" }),
35246        /* @__PURE__ */ i(a, { _fgT: q2, _fgS: "sn3152", _fgB: 1790697590815, label: "Fares", percentage: 15, color: "bg-[#22C55E]", "data-fg-sn3152": ":0:/src/app/components/ai/AIHowItWorks.tsx:329:11:14330:62:e:BarItem::::::BTup" }),
35247        /* @__PURE__ */ i(a, { _fgT: q2, _fgS: "sn3153", _fgB: 1790697590815, label: "Complaints", percentage: 11, color: "bg-[#8B5CF6]", "data-fg-sn3153": ":0:/src/app/components/ai/AIHowItWorks.tsx:330:11:14403:67:e:BarItem::::::BTup" })
35248      ] })
35249    ] })
35250  ] });
35251}
35252function w4({ label: t, value: e, color: s }) {
35253  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3154", _fgB: 1790697590815, _fgD: !0, className: "flex flex-col items-center", "data-fg-sn3154": ":0:/src/app/components/ai/AIHowItWorks.tsx:339:5:14623:220:e:div:ete:1", children: [
35254    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn3155", _fgB: 1790697590815, className: `text-2xl font-bold mb-1 ${s}`, "data-fg-sn3155": ":0:/src/app/components/ai/AIHowItWorks.tsx:340:7:14674:67:e:span:x", children: e }),
35255    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn3157", _fgB: 1790697590815, className: "text-[10px] text-[#94A3B8] uppercase tracking-wider", "data-fg-sn3157": ":0:/src/app/components/ai/AIHowItWorks.tsx:341:7:14748:84:e:span:x", children: t })
35256  ] });
35257}
35258function q2({ label: t, percentage: e, color: s }) {
35259  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3159", _fgB: 1790697590815, _fgD: !0, "data-fg-sn3159": ":0:/src/app/components/ai/AIHowItWorks.tsx:348:5:14970:477:e:div:ete:1", children: [
35260    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "sn3160", _fgB: 1790697590815, className: "flex justify-between text-xs text-[#94A3B8] mb-2", "data-fg-sn3160": ":0:/src/app/components/ai/AIHowItWorks.tsx:349:7:14982:143:e:div:ete", children: [
35261      /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "sn3161", _fgB: 1790697590815, "data-fg-sn3161": ":0:/src/app/components/ai/AIHowItWorks.tsx:350:9:15057:20:e:span:x", children: t }),
35262      /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "sn3163", _fgB: 1790697590815, "data-fg-sn3163": ":0:/src/app/components/ai/AIHowItWorks.tsx:351:9:15086:26:e:span:xt", children: [
35263        e,
35264        "%"
35265      ] })
35266    ] }),
35267    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "sn3166", _fgB: 1790697590815, className: "h-2 w-full bg-white/5 rounded-full overflow-hidden", "data-fg-sn3166": ":0:/src/app/components/ai/AIHowItWorks.tsx:353:7:15132:304:e:div:e", children: /* @__PURE__ */ i(
35268      a,
35269      {
35270        _fgT: m.div,
35271        _fgS: "sn3167",
35272        _fgB: 1790697590815,
35273        initial: { width: 0 },
35274        animate: { width: `${e}%` },
35275        transition: { duration: 1, ease: "easeOut" },
35276        className: `h-full rounded-full ${s}`,
35277        "data-fg-sn3167": ":0:/src/app/components/ai/AIHowItWorks.tsx:354:9:15209:214:e:motion.div"
35278      }
35279    ) })
35280  ] });
35281}
35282const D6 = [
35283  { type: "rider", text: "When does the Route 42 come to MLK and 5th?" },
35284  { type: "ai", text: "The next Route 42 bus at MLK & 5th St is scheduled for 3:15 PM, about 8 minutes from now. It's currently running on time." },
35285  { type: "rider", text: "Is that one wheelchair accessible?" },
35286  { type: "ai", text: "Yes, all Route 42 vehicles are wheelchair accessible with ramp boarding. The operator will assist you at the stop." },
35287  { type: "rider", text: "I need to file a complaint about yesterday's driver." },
35288  { type: "ai", text: "I understand. Let me connect you with a customer service representative who can help with that. I'll pass along everything we've discussed so you don't have to repeat yourself." }
35289];
35290function tx() {
35291  const [t, e] = j([]), [s, r] = j(!1), [n, o] = j(!1), L = H(null), d = H(0), l = H(null), g = () => {
35292    e([]), r(!1), o(!1), d.current = 0, l.current && clearTimeout(l.current);
35293    const f = () => {
35294      const p = d.current;
35295      if (p >= D6.length) {
35296        l.current = setTimeout(() => {
35297          o(!0);
35298        }, 1e3);
35299        return;
35300      }
35301      const M = D6[p];
35302      M.type === "rider" ? l.current = setTimeout(() => {
35303        e((u) => [...u, M]), d.current++, f();
35304      }, 1200) : l.current = setTimeout(() => {
35305        r(!0), l.current = setTimeout(() => {
35306          r(!1), e((u) => [...u, M]), d.current++, f();
35307        }, 1800);
35308      }, 600);
35309    };
35310    l.current = setTimeout(f, 500);
35311  };
35312  return q(() => (g(), () => {
35313    l.current && clearTimeout(l.current);
35314  }), []), q(() => {
35315    L.current && (L.current.scrollTop = L.current.scrollHeight);
35316  }, [t, s, n]), /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "eaqv0", _fgB: 1790697590841, _fgD: !0, className: "py-24 px-6 bg-[#0B1B2B] relative overflow-hidden font-['DM_Sans']", "data-fg-eaqv0": ":0:/src/app/components/ai/AIDemo.tsx:92:5:3112:5541:e:section:xtete:1", children: [
35317    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv2", _fgB: 1790697590841, className: "absolute -top-[200px] -right-[200px] w-[600px] h-[600px] rounded-full bg-[radial-gradient(circle,rgba(43,122,232,0.08)_0%,transparent_70%)] pointer-events-none", "data-fg-eaqv2": ":0:/src/app/components/ai/AIDemo.tsx:94:7:3241:179:e:div" }),
35318    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv3", _fgB: 1790697590841, className: "max-w-[1280px] mx-auto grid grid-cols-1 lg:grid-cols-2 gap-20 items-center relative z-10", "data-fg-eaqv3": ":0:/src/app/components/ai/AIDemo.tsx:96:7:3428:5210:e:div:xtetxte", children: [
35319      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv5", _fgB: 1790697590841, "data-fg-eaqv5": ":0:/src/app/components/ai/AIDemo.tsx:99:9:3581:1283:e:div:etetetete", children: [
35320        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv6", _fgB: 1790697590841, className: "text-[#EFBB0F] text-xs font-bold tracking-[2.5px] uppercase mb-5", "data-fg-eaqv6": ":0:/src/app/components/ai/AIDemo.tsx:100:11:3597:107:e:div:t", children: "RIDER SUPPORT AGENT" }),
35321        /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "eaqv8", _fgB: 1790697590841, className: "font-['DM_Serif_Display'] text-[40px] leading-[1.2] text-white mb-5", "data-fg-eaqv8": ":0:/src/app/components/ai/AIDemo.tsx:101:11:3715:138:e:h2:t", children: "See a Real Call in Action" }),
35322        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "eaqv10", _fgB: 1790697590841, className: "text-base leading-[1.7] text-[#8B9BB5] mb-8", "data-fg-eaqv10": ":0:/src/app/components/ai/AIDemo.tsx:104:11:3864:285:e:p:t", children: "The Rider Support Agent handles the most common call types your center deals with every day. When it can't resolve something, it hands off to your staff with the full conversation already on screen." }),
35323        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv12", _fgB: 1790697590841, className: "p-7 pl-7 border-l-[3px] border-[#EFBB0F] bg-white/5 rounded-r-[10px] mb-8", "data-fg-eaqv12": ":0:/src/app/components/ai/AIDemo.tsx:108:11:4171:422:e:div:ete", children: [
35324          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "eaqv13", _fgB: 1790697590841, className: "text-[15px] italic text-white/70 mb-3", "data-fg-eaqv13": ":0:/src/app/components/ai/AIDemo.tsx:109:13:4275:190:e:p:t", children: '"We reduced our call handling staff from 8 to 3. Wait times dropped from 12 minutes to under 30 seconds."' }),
35325          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv15", _fgB: 1790697590841, className: "text-[13px] font-bold text-[#EFBB0F] not-italic", "data-fg-eaqv15": ":0:/src/app/components/ai/AIDemo.tsx:112:13:4478:98:e:div:t", children: "— Challenger Transportation" })
35326        ] }),
35327        /* @__PURE__ */ c(
35328          a,
35329          {
35330            _fgT: "button",
35331            _fgS: "eaqv17",
35332            _fgB: 1790697590841,
35333            onClick: g,
35334            className: "flex items-center gap-2 text-sm font-semibold text-[#2B7AE8] hover:text-[#3D8EF7] transition-colors",
35335            "data-fg-eaqv17": ":0:/src/app/components/ai/AIDemo.tsx:115:11:4605:244:e:button:et",
35336            children: [
35337              /* @__PURE__ */ i(a, { _fgT: ei, _fgS: "eaqv18", _fgB: 1790697590841, size: 16, "data-fg-eaqv18": ":0:node_modules/lucide-react:119:13:4794:23:e:RotateCcw::::::D1GU" }),
35338              " Replay Demo"
35339            ]
35340          }
35341        )
35342      ] }),
35343      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv21", _fgB: 1790697590841, className: "flex justify-center", "data-fg-eaqv21": ":0:/src/app/components/ai/AIDemo.tsx:124:9:4909:3716:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv22", _fgB: 1790697590841, className: "w-[320px] bg-[#0F172A] rounded-[32px] border-[4px] border-[#1E293B] p-4 shadow-[0_24px_80px_rgba(0,0,0,0.6)] overflow-hidden flex flex-col h-[640px]", "data-fg-eaqv22": ":0:/src/app/components/ai/AIDemo.tsx:125:11:4957:3653:e:div:xtetxte", children: [
35344        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv24", _fgB: 1790697590841, className: "text-center pb-4 border-b border-[#1E293B]/50 mb-4 z-20 relative bg-[#0F172A]", "data-fg-eaqv24": ":0:/src/app/components/ai/AIDemo.tsx:127:13:5169:839:e:div:etete", children: [
35345          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv25", _fgB: 1790697590841, className: "w-12 h-12 rounded-full bg-[#2B7AE8] flex items-center justify-center mx-auto mb-3 text-white shadow-lg shadow-blue-900/30 animate-pulse", "data-fg-eaqv25": ":0:/src/app/components/ai/AIDemo.tsx:128:15:5279:230:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "eaqv26", _fgB: 1790697590841, size: 24, fill: "currentColor", "data-fg-eaqv26": ":0:node_modules/lucide-react:129:17:5449:39:e:Phone::::::DmpI" }) }),
35346          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv27", _fgB: 1790697590841, className: "text-sm font-bold text-white mb-1.5", "data-fg-eaqv27": ":0:/src/app/components/ai/AIDemo.tsx:131:15:5524:74:e:div:t", children: "TransitAI Agent" }),
35347          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv29", _fgB: 1790697590841, className: "text-[10px] font-semibold text-[#22C55E] flex items-center justify-center gap-1.5 bg-[#22C55E]/10 py-1 px-3 rounded-full w-fit mx-auto tracking-wide", "data-fg-eaqv29": ":0:/src/app/components/ai/AIDemo.tsx:132:15:5613:376:e:div:etx", children: [
35348            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "eaqv30", _fgB: 1790697590841, className: "w-1.5 h-1.5 bg-[#22C55E] rounded-full animate-pulse", "data-fg-eaqv30": ":0:/src/app/components/ai/AIDemo.tsx:133:17:5796:72:e:span" }),
35349            "Active call • 00:",
35350            Math.floor(t.length * 3.5).toString().padStart(2, "0")
35351          ] })
35352        ] }),
35353        /* @__PURE__ */ c(
35354          a,
35355          {
35356            _fgT: "div",
35357            _fgS: "eaqv34",
35358            _fgB: 1790697590841,
35359            ref: L,
35360            className: "flex-1 flex flex-col gap-4 overflow-y-auto pr-1 pb-4 scrollbar-hide scroll-smooth",
35361            style: { scrollbarWidth: "none", msOverflowStyle: "none" },
35362            "data-fg-eaqv34": ":0:/src/app/components/ai/AIDemo.tsx:139:13:6066:2527:e:div:etxtxtxte",
35363            children: [
35364              /* @__PURE__ */ i(a, { _fgT: pe, _fgS: "eaqv35", _fgB: 1790697590841, mode: "popLayout", "data-fg-eaqv35": ":0:node_modules/motion:144:15:6312:201:e:AnimatePresence:x:::::DAs4", children: t.map((f, p) => /* @__PURE__ */ i(a, { _fgT: Di, _fgS: "eaqv37", _fgB: 1790697590841, type: f.type, text: f.text, "data-fg-eaqv37": ":0:/src/app/components/ai/AIDemo.tsx:146:19:6409:51:e:Message::::::Dy5Q" }, p)) }),
35365              s && /* @__PURE__ */ c(
35366                a,
35367                {
35368                  _fgT: m.div,
35369                  _fgS: "eaqv39",
35370                  _fgB: 1790697590841,
35371                  initial: { opacity: 0, y: 10, scale: 0.9 },
35372                  animate: { opacity: 1, y: 0, scale: 1 },
35373                  exit: { opacity: 0, scale: 0.9 },
35374                  className: "bg-[#2B7AE8] self-start rounded-2xl rounded-bl-md p-4 w-16 h-10 flex items-center justify-center gap-1 shrink-0 ml-1",
35375                  "data-fg-eaqv39": ":0:/src/app/components/ai/AIDemo.tsx:151:17:6576:1137:e:motion.div:etete",
35376                  children: [
35377                    /* @__PURE__ */ i(
35378                      a,
35379                      {
35380                        _fgT: m.span,
35381                        _fgS: "eaqv40",
35382                        _fgB: 1790697590841,
35383                        animate: { y: [0, -4, 0] },
35384                        transition: { duration: 0.6, repeat: 1 / 0, delay: 0 },
35385                        className: "w-1.5 h-1.5 bg-white/70 rounded-full",
35386                        "data-fg-eaqv40": ":0:/src/app/components/ai/AIDemo.tsx:157:19:6945:232:e:motion.span"
35387                      }
35388                    ),
35389                    /* @__PURE__ */ i(
35390                      a,
35391                      {
35392                        _fgT: m.span,
35393                        _fgS: "eaqv41",
35394                        _fgB: 1790697590841,
35395                        animate: { y: [0, -4, 0] },
35396                        transition: { duration: 0.6, repeat: 1 / 0, delay: 0.2 },
35397                        className: "w-1.5 h-1.5 bg-white/70 rounded-full",
35398                        "data-fg-eaqv41": ":0:/src/app/components/ai/AIDemo.tsx:162:19:7196:234:e:motion.span"
35399                      }
35400                    ),
35401                    /* @__PURE__ */ i(
35402                      a,
35403                      {
35404                        _fgT: m.span,
35405                        _fgS: "eaqv42",
35406                        _fgB: 1790697590841,
35407                        animate: { y: [0, -4, 0] },
35408                        transition: { duration: 0.6, repeat: 1 / 0, delay: 0.4 },
35409                        className: "w-1.5 h-1.5 bg-white/70 rounded-full",
35410                        "data-fg-eaqv42": ":0:/src/app/components/ai/AIDemo.tsx:167:19:7449:234:e:motion.span"
35411                      }
35412                    )
35413                  ]
35414                }
35415              ),
35416              n && /* @__PURE__ */ c(
35417                a,
35418                {
35419                  _fgT: m.div,
35420                  _fgS: "eaqv44",
35421                  _fgB: 1790697590841,
35422                  initial: { opacity: 0, y: 10 },
35423                  animate: { opacity: 1, y: 0 },
35424                  className: "mt-2 p-4 bg-[#1E293B] border border-[#EFBB0F]/20 rounded-xl text-center shrink-0 mx-1 shadow-lg",
35425                  "data-fg-eaqv44": ":0:/src/app/components/ai/AIDemo.tsx:176:17:7781:647:e:motion.div:ete",
35426                  children: [
35427                    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "eaqv45", _fgB: 1790697590841, className: "text-[10px] font-bold text-[#EFBB0F] uppercase tracking-[1.5px] mb-1.5 flex items-center justify-center gap-2", "data-fg-eaqv45": ":0:/src/app/components/ai/AIDemo.tsx:181:19:8055:242:e:div:et", children: [
35428                      /* @__PURE__ */ i(a, { _fgT: fc, _fgS: "eaqv46", _fgB: 1790697590841, size: 12, className: "text-[#EFBB0F]", "data-fg-eaqv46": ":0:node_modules/lucide-react:182:21:8203:53:e:ArrowUpRight::::::CDfy" }),
35429                      " TRANSFERRING..."
35430                    ] }),
35431                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv48", _fgB: 1790697590841, className: "text-xs font-medium text-slate-400", "data-fg-eaqv48": ":0:/src/app/components/ai/AIDemo.tsx:184:19:8316:82:e:div:t", children: "Connecting to live agent" })
35432                  ]
35433                }
35434              ),
35435              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "eaqv51", _fgB: 1790697590841, className: "h-4 w-full shrink-0", "data-fg-eaqv51": ":0:/src/app/components/ai/AIDemo.tsx:189:15:8535:39:e:div" })
35436            ]
35437          }
35438        )
35439      ] }) })
35440    ] })
35441  ] });
35442}
35443const Di = Tt(({ type: t, text: e }, s) => {
35444  const r = t === "rider";
35445  return /* @__PURE__ */ i(
35446    a,
35447    {
35448      _fgT: m.div,
35449      _fgS: "eaqv52",
35450      _fgB: 1790697590841,
35451      ref: s,
35452      layout: !0,
35453      initial: { opacity: 0, y: 20, scale: 0.95 },
35454      animate: { opacity: 1, y: 0, scale: 1 },
35455      transition: { duration: 0.4, type: "spring" },
35456      className: `max-w-[85%] p-4 rounded-2xl text-[13px] leading-[1.5] shadow-md ${r ? "bg-[#1E293B] text-slate-200 self-end rounded-br-md mr-1" : "bg-[#2B7AE8] text-white self-start rounded-bl-md ml-1"}`,
35457      "data-fg-eaqv52": ":0:/src/app/components/ai/AIDemo.tsx:201:5:8812:479:e:motion.div:x",
35458      children: e
35459    }
35460  );
35461});
35462Di.displayName = "Message";
35463function ax() {
35464  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "cnte0", _fgB: 1790697589459, _fgD: !0, className: "min-h-screen bg-white relative", "data-fg-cnte0": ":0:/src/app/pages/VoiceAIPage.tsx:10:5:425:217:e:main:etetetetetete:1", children: [
35465    /* @__PURE__ */ i(a, { _fgT: sx, _fgS: "cnte1", _fgB: 1790697589459, "data-fg-cnte1": ":0:/src/app/pages/VoiceAIPage.tsx:11:7:481:15:e:VoiceAIHero::::::C6xa" }),
35466    /* @__PURE__ */ i(a, { _fgT: ix, _fgS: "cnte2", _fgB: 1790697589459, "data-fg-cnte2": ":0:/src/app/pages/VoiceAIPage.tsx:12:7:503:19:e:VoiceAIOverview::::::BvZN" }),
35467    /* @__PURE__ */ i(a, { _fgT: Km, _fgS: "cnte3", _fgB: 1790697589459, "data-fg-cnte3": ":0:/src/app/pages/VoiceAIPage.tsx:13:7:529:16:e:AIHowItWorks::::::360" }),
35468    /* @__PURE__ */ i(a, { _fgT: tx, _fgS: "cnte4", _fgB: 1790697589459, "data-fg-cnte4": ":0:/src/app/pages/VoiceAIPage.tsx:14:7:552:10:e:AIDemo::::::HHO" }),
35469    /* @__PURE__ */ i(a, { _fgT: rx, _fgS: "cnte5", _fgB: 1790697589459, "data-fg-cnte5": ":0:/src/app/pages/VoiceAIPage.tsx:15:7:569:23:e:VoiceAICapabilities::::::CFOk" }),
35470    /* @__PURE__ */ i(a, { _fgT: nx, _fgS: "cnte6", _fgB: 1790697589459, "data-fg-cnte6": ":0:/src/app/pages/VoiceAIPage.tsx:16:7:599:14:e:VoiceAICTA::::::DtEm" }),
35471    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "cnte7", _fgB: 1790697589459, "data-fg-cnte7": ":0:/src/app/pages/VoiceAIPage.tsx:17:7:620:10:e:Footer::::::B1Vv" })
35472  ] });
35473}
35474function sx() {
35475  const { openContactModal: t } = Z();
35476  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cnte8", _fgB: 1790697589459, _fgD: !0, className: "relative min-h-[85vh] flex items-center overflow-hidden bg-[#0B1A2E] font-['DM_Sans']", "data-fg-cnte8": ":0:/src/app/pages/VoiceAIPage.tsx:27:5:761:5662:e:section:xtete:1", children: [
35477    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte10", _fgB: 1790697589459, className: "absolute inset-0 z-0", "data-fg-cnte10": ":0:/src/app/pages/VoiceAIPage.tsx:29:7:911:667:e:div:etete", children: [
35478      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte11", _fgB: 1790697589459, className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_at_center,black_40%,transparent_80%)]", "data-fg-cnte11": ":0:/src/app/pages/VoiceAIPage.tsx:30:9:958:261:e:div" }),
35479      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte12", _fgB: 1790697589459, className: "absolute -top-[20%] -right-[10%] w-[900px] h-[900px] bg-[#2B7AE8] opacity-[0.06] blur-[120px] rounded-full pointer-events-none mix-blend-screen", "data-fg-cnte12": ":0:/src/app/pages/VoiceAIPage.tsx:31:9:1228:163:e:div" }),
35480      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte13", _fgB: 1790697589459, className: "absolute -bottom-[20%] -left-[10%] w-[600px] h-[600px] bg-[#EFBB0F] opacity-[0.04] blur-[100px] rounded-full pointer-events-none mix-blend-screen", "data-fg-cnte13": ":0:/src/app/pages/VoiceAIPage.tsx:32:9:1400:165:e:div" })
35481    ] }),
35482    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte14", _fgB: 1790697589459, className: "relative z-10 max-w-[1280px] mx-auto px-6 py-32 grid lg:grid-cols-2 gap-16 items-center w-full", "data-fg-cnte14": ":0:/src/app/pages/VoiceAIPage.tsx:35:7:1586:4822:e:div:xtetxte", children: [
35483      /* @__PURE__ */ c(
35484        a,
35485        {
35486          _fgT: m.div,
35487          _fgS: "cnte16",
35488          _fgB: 1790697589459,
35489          initial: { opacity: 0, y: 30 },
35490          animate: { opacity: 1, y: 0 },
35491          transition: { duration: 0.7 },
35492          "data-fg-cnte16": ":0:/src/app/pages/VoiceAIPage.tsx:37:9:1733:1845:e:motion.div:etetete",
35493          children: [
35494            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte17", _fgB: 1790697589459, className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-6", "data-fg-cnte17": ":0:/src/app/pages/VoiceAIPage.tsx:42:11:1889:339:e:div:ete", children: [
35495              /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cnte18", _fgB: 1790697589459, size: 14, className: "text-[#EFBB0F]", "data-fg-cnte18": ":0:node_modules/lucide-react:43:13:2023:46:e:Phone::::::DmpI" }),
35496              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnte19", _fgB: 1790697589459, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-cnte19": ":0:/src/app/pages/VoiceAIPage.tsx:44:13:2082:129:e:span:t", children: "Voice AI Agent" })
35497            ] }),
35498            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "cnte21", _fgB: 1790697589459, className: "font-['DM_Serif_Display'] text-[36px] sm:text-[44px] md:text-[56px] leading-[1.1] text-white mb-6", "data-fg-cnte21": ":0:/src/app/pages/VoiceAIPage.tsx:49:11:2240:244:e:h1:tste", children: [
35499              "Your 24/7 AI-Powered",
35500              " ",
35501              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnte24", _fgB: 1790697589459, className: "text-[#E8872B] italic", "data-fg-cnte24": ":0:/src/app/pages/VoiceAIPage.tsx:51:13:2405:63:e:span:t", children: "Rider Call Agent" })
35502            ] }),
35503            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnte26", _fgB: 1790697589459, className: "text-[17px] md:text-[19px] text-[#8B9BB5] leading-relaxed mb-10 max-w-[540px]", "data-fg-cnte26": ":0:/src/app/pages/VoiceAIPage.tsx:54:11:2496:286:e:p:t", children: "Handles inbound rider calls around the clock -- booking trips, answering schedule questions, and resolving common issues without a single agent picking up the phone." }),
35504            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte28", _fgB: 1790697589459, className: "flex flex-wrap gap-4", "data-fg-cnte28": ":0:/src/app/pages/VoiceAIPage.tsx:58:11:2794:762:e:div:ete", children: [
35505              /* @__PURE__ */ c(
35506                a,
35507                {
35508                  _fgT: "button",
35509                  _fgS: "cnte29",
35510                  _fgB: 1790697589459,
35511                  onClick: t,
35512                  className: "inline-flex items-center gap-2.5 px-8 py-4 bg-[#E8872B] text-white rounded-xl text-[15px] font-bold hover:bg-[#D4771F] transition-all shadow-lg hover:shadow-orange-500/25 hover:-translate-y-0.5 duration-300 cursor-pointer",
35513                  "data-fg-cnte29": ":0:/src/app/pages/VoiceAIPage.tsx:59:13:2845:387:e:button:et",
35514                  children: [
35515                    /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cnte30", _fgB: 1790697589459, size: 18, "data-fg-cnte30": ":0:node_modules/lucide-react:63:15:3170:19:e:Phone::::::DmpI" }),
35516                    " Schedule a Call Demo"
35517                  ]
35518                }
35519              ),
35520              /* @__PURE__ */ c(
35521                a,
35522                {
35523                  _fgT: "a",
35524                  _fgS: "cnte32",
35525                  _fgB: 1790697589459,
35526                  href: "#how-it-works",
35527                  className: "inline-flex items-center gap-2 px-8 py-4 border border-white/15 text-white rounded-xl text-[15px] font-semibold hover:bg-white/5 transition-all",
35528                  "data-fg-cnte32": ":0:/src/app/pages/VoiceAIPage.tsx:65:13:3245:294:e:a:te",
35529                  children: [
35530                    "See How It Works ",
35531                    /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cnte34", _fgB: 1790697589459, size: 16, "data-fg-cnte34": ":0:node_modules/lucide-react:69:32:3498:24:e:ArrowRight::::::s5N" })
35532                  ]
35533                }
35534              )
35535            ] })
35536          ]
35537        }
35538      ),
35539      /* @__PURE__ */ i(
35540        a,
35541        {
35542          _fgT: m.div,
35543          _fgS: "cnte36",
35544          _fgB: 1790697589459,
35545          initial: { opacity: 0, scale: 0.9 },
35546          animate: { opacity: 1, scale: 1 },
35547          transition: { duration: 0.8, delay: 0.3 },
35548          className: "hidden lg:flex justify-center",
35549          "data-fg-cnte36": ":0:/src/app/pages/VoiceAIPage.tsx:75:9:3643:2752:e:motion.div:e",
35550          children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte37", _fgB: 1790697589459, className: "relative", "data-fg-cnte37": ":0:/src/app/pages/VoiceAIPage.tsx:81:11:3872:2501:e:div:xtetetxtetxtete", children: [
35551            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte39", _fgB: 1790697589459, className: "absolute inset-0 flex items-center justify-center", "data-fg-cnte39": ":0:/src/app/pages/VoiceAIPage.tsx:83:13:3943:343:e:div:e", children: /* @__PURE__ */ i(
35552              a,
35553              {
35554                _fgT: m.div,
35555                _fgS: "cnte40",
35556                _fgB: 1790697589459,
35557                className: "w-64 h-64 rounded-full border border-[#2B7AE8]/20",
35558                animate: { scale: [1, 1.3, 1], opacity: [0.3, 0, 0.3] },
35559                transition: { duration: 3, repeat: 1 / 0 },
35560                "data-fg-cnte40": ":0:/src/app/pages/VoiceAIPage.tsx:84:15:4025:242:e:motion.div"
35561              }
35562            ) }),
35563            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte41", _fgB: 1790697589459, className: "absolute inset-0 flex items-center justify-center", "data-fg-cnte41": ":0:/src/app/pages/VoiceAIPage.tsx:90:13:4299:357:e:div:e", children: /* @__PURE__ */ i(
35564              a,
35565              {
35566                _fgT: m.div,
35567                _fgS: "cnte42",
35568                _fgB: 1790697589459,
35569                className: "w-48 h-48 rounded-full border border-[#2B7AE8]/30",
35570                animate: { scale: [1, 1.2, 1], opacity: [0.4, 0.1, 0.4] },
35571                transition: { duration: 3, repeat: 1 / 0, delay: 0.5 },
35572                "data-fg-cnte42": ":0:/src/app/pages/VoiceAIPage.tsx:91:15:4381:256:e:motion.div"
35573              }
35574            ) }),
35575            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte44", _fgB: 1790697589459, className: "relative w-40 h-40 flex items-center justify-center", "data-fg-cnte44": ":0:/src/app/pages/VoiceAIPage.tsx:99:13:4702:610:e:div:ete", children: [
35576              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte45", _fgB: 1790697589459, className: "absolute inset-0 bg-[#2B7AE8]/20 rounded-full blur-2xl", "data-fg-cnte45": ":0:/src/app/pages/VoiceAIPage.tsx:100:15:4786:74:e:div" }),
35577              /* @__PURE__ */ i(
35578                a,
35579                {
35580                  _fgT: m.div,
35581                  _fgS: "cnte46",
35582                  _fgB: 1790697589459,
35583                  className: "relative w-28 h-28 bg-gradient-to-br from-[#2B7AE8] to-[#1A5EC4] rounded-full flex items-center justify-center shadow-[0_0_60px_rgba(43,122,232,0.4)]",
35584                  animate: { y: [0, -8, 0] },
35585                  transition: { duration: 3, repeat: 1 / 0, ease: "easeInOut" },
35586                  "data-fg-cnte46": ":0:/src/app/pages/VoiceAIPage.tsx:101:15:4875:418:e:motion.div:e",
35587                  children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cnte47", _fgB: 1790697589459, size: 48, className: "text-white", "data-fg-cnte47": ":0:node_modules/lucide-react:106:17:5223:42:e:Phone::::::DmpI" })
35588                }
35589              )
35590            ] }),
35591            /* @__PURE__ */ c(
35592              a,
35593              {
35594                _fgT: m.div,
35595                _fgS: "cnte49",
35596                _fgB: 1790697589459,
35597                className: "absolute -top-4 -right-8 bg-[#0F2340] border border-[#2B7AE8]/30 rounded-xl px-4 py-3 shadow-xl",
35598                animate: { y: [0, -6, 0] },
35599                transition: { duration: 4, repeat: 1 / 0, ease: "easeInOut" },
35600                "data-fg-cnte49": ":0:/src/app/pages/VoiceAIPage.tsx:111:13:5366:481:e:motion.div:ete",
35601                children: [
35602                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte50", _fgB: 1790697589459, className: "text-[10px] text-[#64748B] uppercase tracking-wider mb-1", "data-fg-cnte50": ":0:/src/app/pages/VoiceAIPage.tsx:116:15:5650:91:e:div:t", children: "Answer Time" }),
35603                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte52", _fgB: 1790697589459, className: "text-lg font-bold text-[#22C55E]", "data-fg-cnte52": ":0:/src/app/pages/VoiceAIPage.tsx:117:15:5756:65:e:div:t", children: "<1 sec" })
35604                ]
35605              }
35606            ),
35607            /* @__PURE__ */ c(
35608              a,
35609              {
35610                _fgT: m.div,
35611                _fgS: "cnte54",
35612                _fgB: 1790697589459,
35613                className: "absolute -bottom-4 -left-12 bg-[#0F2340] border border-[#E8872B]/30 rounded-xl px-4 py-3 shadow-xl",
35614                animate: { y: [0, 6, 0] },
35615                transition: { duration: 4, repeat: 1 / 0, ease: "easeInOut", delay: 1 },
35616                "data-fg-cnte54": ":0:/src/app/pages/VoiceAIPage.tsx:120:13:5861:495:e:motion.div:ete",
35617                children: [
35618                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte55", _fgB: 1790697589459, className: "text-[10px] text-[#64748B] uppercase tracking-wider mb-1", "data-fg-cnte55": ":0:/src/app/pages/VoiceAIPage.tsx:125:15:6157:93:e:div:t", children: "Calls Handled" }),
35619                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte57", _fgB: 1790697589459, className: "text-lg font-bold text-[#E8872B]", "data-fg-cnte57": ":0:/src/app/pages/VoiceAIPage.tsx:126:15:6265:65:e:div:t", children: "83% by AI" })
35620                ]
35621              }
35622            )
35623          ] })
35624        }
35625      )
35626    ] })
35627  ] });
35628}
35629function ix() {
35630  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cnte59", _fgB: 1790697589459, _fgD: !0, className: "py-24 px-6 bg-[#F7F9FC] font-['DM_Sans']", "data-fg-cnte59": ":0:/src/app/pages/VoiceAIPage.tsx:171:5:7848:1923:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte60", _fgB: 1790697589459, className: "max-w-[1280px] mx-auto", "data-fg-cnte60": ":0:/src/app/pages/VoiceAIPage.tsx:172:7:7917:1839:e:div:ete", children: [
35631    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte61", _fgB: 1790697589459, className: "text-center mb-16", "data-fg-cnte61": ":0:/src/app/pages/VoiceAIPage.tsx:173:9:7966:662:e:div:etete", children: [
35632      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte62", _fgB: 1790697589459, className: "text-[#2B7AE8] text-xs font-bold tracking-[2.5px] uppercase mb-4", "data-fg-cnte62": ":0:/src/app/pages/VoiceAIPage.tsx:174:11:8012:124:e:div:t", children: "WHAT IT DOES" }),
35633      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cnte64", _fgB: 1790697589459, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-[#0B1B2B] mb-4", "data-fg-cnte64": ":0:/src/app/pages/VoiceAIPage.tsx:177:11:8147:224:e:h2:te", children: [
35634        "Built for ",
35635        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnte66", _fgB: 1790697589459, className: "text-[#E8872B] italic", "data-fg-cnte66": ":0:/src/app/pages/VoiceAIPage.tsx:178:23:8288:67:e:span:t", children: "Transit Call Centers" })
35636      ] }),
35637      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnte68", _fgB: 1790697589459, className: "text-[17px] text-[#5A6A80] max-w-[600px] mx-auto leading-relaxed", "data-fg-cnte68": ":0:/src/app/pages/VoiceAIPage.tsx:180:11:8382:231:e:p:t", children: "Not a generic chatbot bolted onto a phone line. Every capability is purpose-built for demand-responsive transit operations." })
35638    ] }),
35639    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte70", _fgB: 1790697589459, className: "grid sm:grid-cols-2 lg:grid-cols-3 gap-6", "data-fg-cnte70": ":0:/src/app/pages/VoiceAIPage.tsx:185:9:8638:1105:e:div:x", children: [
35640      {
35641        icon: Il,
35642        title: "Natural Language Understanding",
35643        description: "Understands rider intent in natural speech across 32+ trained categories -- scheduling, complaints, detours, fare questions, and more."
35644      },
35645      {
35646        icon: It,
35647        title: "Zero Hold Time, 24/7",
35648        description: "Every call is answered instantly. No phone trees, no voicemail, no staffing gaps on nights, weekends, or holidays."
35649      },
35650      {
35651        icon: h1,
35652        title: "Caller ID Recognition",
35653        description: "Pulls up rider history, standing trips, and preferences before the conversation starts so every call feels personal."
35654      },
35655      {
35656        icon: rd,
35657        title: "Seamless Live Agent Handoff",
35658        description: "When the AI can't resolve an issue, it transfers to your staff with the full transcript, intent tags, and rider profile attached."
35659      },
35660      {
35661        icon: Te,
35662        title: "Direct Dispatch Integration",
35663        description: "Books, cancels, and reschedules trips in real time by connecting directly to your dispatch and scheduling system."
35664      },
35665      {
35666        icon: dl,
35667        title: "Multilingual Support",
35668        description: "Serves riders in English and Spanish out of the box, with additional language support available for your service area."
35669      }
35670    ].map((e, s) => {
35671      const r = e.icon;
35672      return /* @__PURE__ */ c(
35673        a,
35674        {
35675          _fgT: m.div,
35676          _fgS: "cnte72",
35677          _fgB: 1790697589459,
35678          initial: { opacity: 0, y: 20 },
35679          whileInView: { opacity: 1, y: 0 },
35680          viewport: { once: !0 },
35681          transition: { duration: 0.5, delay: s * 0.08 },
35682          className: "bg-white rounded-2xl p-7 border border-[#E2E8F0] hover:border-[#2B7AE8]/30 hover:shadow-lg transition-all duration-300 group",
35683          "data-fg-cnte72": ":0:/src/app/pages/VoiceAIPage.tsx:189:15:8813:886:e:motion.div:etete",
35684          children: [
35685            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte73", _fgB: 1790697589459, className: "w-12 h-12 rounded-xl bg-[#2B7AE8]/10 flex items-center justify-center mb-5 group-hover:bg-[#2B7AE8]/20 transition-colors", "data-fg-cnte73": ":0:/src/app/pages/VoiceAIPage.tsx:197:17:9251:225:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: r, _fgS: "cnte74", _fgB: 1790697589459, size: 22, className: "text-[#2B7AE8]", "data-fg-cnte74": ":0:/src/app/pages/VoiceAIPage.tsx:198:19:9408:45:e:Icon" }) }),
35686            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "cnte75", _fgB: 1790697589459, className: "text-[18px] font-bold text-[#0B1B2B] mb-2", "data-fg-cnte75": ":0:/src/app/pages/VoiceAIPage.tsx:200:17:9493:78:e:h3:x", children: e.title }),
35687            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnte77", _fgB: 1790697589459, className: "text-[15px] text-[#5A6A80] leading-relaxed", "data-fg-cnte77": ":0:/src/app/pages/VoiceAIPage.tsx:201:17:9588:83:e:p:x", children: e.description })
35688          ]
35689        },
35690        e.title
35691      );
35692    }) })
35693  ] }) });
35694}
35695function rx() {
35696  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "cnte79", _fgB: 1790697589459, _fgD: !0, className: "py-24 px-6 bg-white font-['DM_Sans']", "data-fg-cnte79": ":0:/src/app/pages/VoiceAIPage.tsx:221:5:10218:2405:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte80", _fgB: 1790697589459, className: "max-w-[1280px] mx-auto", "data-fg-cnte80": ":0:/src/app/pages/VoiceAIPage.tsx:222:7:10283:2325:e:div:etetxte", children: [
35697    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte81", _fgB: 1790697589459, className: "text-center mb-16", "data-fg-cnte81": ":0:/src/app/pages/VoiceAIPage.tsx:223:9:10332:431:e:div:ete", children: [
35698      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte82", _fgB: 1790697589459, className: "text-[#E8872B] text-xs font-bold tracking-[2.5px] uppercase mb-4", "data-fg-cnte82": ":0:/src/app/pages/VoiceAIPage.tsx:224:11:10378:126:e:div:t", children: "BY THE NUMBERS" }),
35699      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cnte84", _fgB: 1790697589459, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-[#0B1B2B] mb-4", "data-fg-cnte84": ":0:/src/app/pages/VoiceAIPage.tsx:227:11:10515:233:e:h2:te", children: [
35700        "Real Results from ",
35701        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnte86", _fgB: 1790697589459, className: "text-[#E8872B] italic", "data-fg-cnte86": ":0:/src/app/pages/VoiceAIPage.tsx:228:31:10664:68:e:span:t", children: "Real Transit Agencies" })
35702      ] })
35703    ] }),
35704    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte88", _fgB: 1790697589459, className: "grid grid-cols-2 lg:grid-cols-4 gap-6", "data-fg-cnte88": ":0:/src/app/pages/VoiceAIPage.tsx:232:9:10773:684:e:div:x", children: [
35705      { value: "83%", label: "Calls Fully Resolved by AI", color: "text-[#2B7AE8]" },
35706      { value: "<1s", label: "Average Answer Time", color: "text-[#22C55E]" },
35707      { value: "32+", label: "Trained Intent Categories", color: "text-[#E8872B]" },
35708      { value: "$240K", label: "Avg. Annual Savings", color: "text-[#8B5CF6]" }
35709    ].map((e, s) => /* @__PURE__ */ c(
35710      a,
35711      {
35712        _fgT: m.div,
35713        _fgS: "cnte90",
35714        _fgB: 1790697589459,
35715        initial: { opacity: 0, y: 20 },
35716        whileInView: { opacity: 1, y: 0 },
35717        viewport: { once: !0 },
35718        transition: { delay: s * 0.1 },
35719        className: "bg-[#F7F9FC] rounded-2xl p-8 text-center border border-[#E2E8F0]",
35720        "data-fg-cnte90": ":0:/src/app/pages/VoiceAIPage.tsx:234:13:10877:551:e:motion.div:ete",
35721        children: [
35722          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte91", _fgB: 1790697589459, className: `text-[40px] md:text-[52px] font-bold mb-2 ${e.color}`, "data-fg-cnte91": ":0:/src/app/pages/VoiceAIPage.tsx:242:15:11220:93:e:div:x", children: e.value }),
35723          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte93", _fgB: 1790697589459, className: "text-[14px] text-[#5A6A80] font-medium", "data-fg-cnte93": ":0:/src/app/pages/VoiceAIPage.tsx:243:15:11328:74:e:div:x", children: e.label })
35724        ]
35725      },
35726      e.label
35727    )) }),
35728    /* @__PURE__ */ c(
35729      a,
35730      {
35731        _fgT: m.div,
35732        _fgS: "cnte96",
35733        _fgB: 1790697589459,
35734        initial: { opacity: 0, y: 20 },
35735        whileInView: { opacity: 1, y: 0 },
35736        viewport: { once: !0 },
35737        className: "mt-16 bg-[#0B1B2B] rounded-3xl p-10 md:p-14 text-center relative overflow-hidden",
35738        "data-fg-cnte96": ":0:/src/app/pages/VoiceAIPage.tsx:249:9:11495:1100:e:motion.div:ete",
35739        children: [
35740          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte97", _fgB: 1790697589459, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[300px] bg-[radial-gradient(ellipse,rgba(43,122,232,0.08)_0%,transparent_70%)] pointer-events-none", "data-fg-cnte97": ":0:/src/app/pages/VoiceAIPage.tsx:255:11:11753:190:e:div" }),
35741          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte98", _fgB: 1790697589459, className: "relative z-10", "data-fg-cnte98": ":0:/src/app/pages/VoiceAIPage.tsx:256:11:11954:619:e:div:etete", children: [
35742            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnte99", _fgB: 1790697589459, className: "text-[20px] md:text-[24px] text-white/90 italic leading-relaxed max-w-[700px] mx-auto mb-6 font-['DM_Serif_Display']", "data-fg-cnte99": ":0:/src/app/pages/VoiceAIPage.tsx:257:13:11998:302:e:p:t", children: `"We went from 8 full-time call agents to 3. Wait times dropped from 12 minutes to under 30 seconds, and we're saving $240,000 every year."` }),
35743            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte101", _fgB: 1790697589459, className: "text-[#E8872B] font-bold text-[15px]", "data-fg-cnte101": ":0:/src/app/pages/VoiceAIPage.tsx:260:13:12313:105:e:div:t", children: "Jared Gabrilowitz" }),
35744            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte103", _fgB: 1790697589459, className: "text-[#64748B] text-[13px]", "data-fg-cnte103": ":0:/src/app/pages/VoiceAIPage.tsx:263:13:12431:125:e:div:t", children: "Director of Operations, Gotham Regional Transit" })
35745          ] })
35746        ]
35747      }
35748    )
35749  ] }) });
35750}
35751function nx() {
35752  const { openContactModal: t } = Z();
35753  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "cnte105", _fgB: 1790697589459, _fgD: !0, className: "py-24 px-6 bg-[#0B1B2B] text-center relative overflow-hidden font-['DM_Sans']", "data-fg-cnte105": ":0:/src/app/pages/VoiceAIPage.tsx:278:5:12753:1461:e:section:ete:1", children: [
35754    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte106", _fgB: 1790697589459, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[400px] bg-[radial-gradient(ellipse,rgba(232,135,43,0.08)_0%,transparent_70%)] pointer-events-none", "data-fg-cnte106": ":0:/src/app/pages/VoiceAIPage.tsx:279:7:12859:190:e:div" }),
35755    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cnte107", _fgB: 1790697589459, className: "max-w-[800px] mx-auto relative z-10", "data-fg-cnte107": ":0:/src/app/pages/VoiceAIPage.tsx:281:7:13057:1142:e:div:etetete", children: [
35756      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cnte108", _fgB: 1790697589459, className: "w-20 h-20 rounded-full bg-[#E8872B]/10 border border-[#E8872B]/25 flex items-center justify-center mx-auto mb-8", "data-fg-cnte108": ":0:/src/app/pages/VoiceAIPage.tsx:282:9:13119:201:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cnte109", _fgB: 1790697589459, size: 36, className: "text-[#E8872B]", "data-fg-cnte109": ":0:node_modules/lucide-react:283:11:13259:46:e:Phone::::::DmpI" }) }),
35757      /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "cnte110", _fgB: 1790697589459, className: "font-['DM_Serif_Display'] text-[32px] sm:text-[38px] md:text-[44px] leading-[1.2] text-white mb-6", "data-fg-cnte110": ":0:/src/app/pages/VoiceAIPage.tsx:286:9:13330:220:e:h2:te", children: [
35758        "Hear It Handle ",
35759        /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "cnte112", _fgB: 1790697589459, className: "text-[#E8872B] italic", "data-fg-cnte112": ":0:/src/app/pages/VoiceAIPage.tsx:287:26:13470:66:e:span:t", children: "Your Riders' Calls." })
35760      ] }),
35761      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cnte114", _fgB: 1790697589459, className: "text-[17px] text-[#8B9BB5] mb-10 max-w-[600px] mx-auto", "data-fg-cnte114": ":0:/src/app/pages/VoiceAIPage.tsx:289:9:13559:229:e:p:t", children: "We'll run a live call demo using your actual routes, schedules, and rider scenarios. No slides, no scripts -- just a real conversation." }),
35762      /* @__PURE__ */ c(
35763        a,
35764        {
35765          _fgT: "button",
35766          _fgS: "cnte116",
35767          _fgB: 1790697589459,
35768          onClick: t,
35769          className: "inline-flex items-center gap-2.5 px-8 py-4 bg-[#E8872B] text-white rounded-xl text-[15px] font-bold hover:bg-[#D4771F] transition-all shadow-lg hover:shadow-orange-500/25 hover:-translate-y-0.5 duration-300 cursor-pointer",
35770          "data-fg-cnte116": ":0:/src/app/pages/VoiceAIPage.tsx:293:9:13798:388:e:button:ete",
35771          children: [
35772            /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "cnte117", _fgB: 1790697589459, size: 18, "data-fg-cnte117": ":0:node_modules/lucide-react:297:11:14107:19:e:Phone::::::DmpI" }),
35773            " Book a Call Demo ",
35774            /* @__PURE__ */ i(a, { _fgT: D, _fgS: "cnte119", _fgB: 1790697589459, size: 18, "data-fg-cnte119": ":0:node_modules/lucide-react:297:48:14144:24:e:ArrowRight::::::s5N" })
35775          ]
35776        }
35777      )
35778    ] })
35779  ] });
35780}
35781function ox() {
35782  return /* @__PURE__ */ c(a, { _fgT: "main", _fgS: "bi7v0", _fgB: 1790697589506, _fgD: !0, className: "min-h-screen bg-white relative", "data-fg-bi7v0": ":0:/src/app/pages/AIWorkshopPage.tsx:12:5:401:328:e:main:etetetetetetetetetete:1", children: [
35783    /* @__PURE__ */ i(a, { _fgT: Lx, _fgS: "bi7v1", _fgB: 1790697589506, "data-fg-bi7v1": ":0:/src/app/pages/AIWorkshopPage.tsx:13:7:457:16:e:WorkshopHero::::::BX0" }),
35784    /* @__PURE__ */ i(a, { _fgT: cx, _fgS: "bi7v2", _fgB: 1790697589506, "data-fg-bi7v2": ":0:/src/app/pages/AIWorkshopPage.tsx:14:7:480:19:e:ApproachSection::::::DYU0" }),
35785    /* @__PURE__ */ i(a, { _fgT: dx, _fgS: "bi7v3", _fgB: 1790697589506, "data-fg-bi7v3": ":0:/src/app/pages/AIWorkshopPage.tsx:15:7:506:16:e:WorkshopMenu::::::oGb" }),
35786    /* @__PURE__ */ i(a, { _fgT: gx, _fgS: "bi7v4", _fgB: 1790697589506, "data-fg-bi7v4": ":0:/src/app/pages/AIWorkshopPage.tsx:16:7:529:19:e:WalkAwaySection::::::EDfX" }),
35787    /* @__PURE__ */ i(a, { _fgT: px, _fgS: "bi7v5", _fgB: 1790697589506, "data-fg-bi7v5": ":0:/src/app/pages/AIWorkshopPage.tsx:17:7:555:19:e:FoundationsPath::::::BvZa" }),
35788    /* @__PURE__ */ i(a, { _fgT: ux, _fgS: "bi7v6", _fgB: 1790697589506, "data-fg-bi7v6": ":0:/src/app/pages/AIWorkshopPage.tsx:18:7:581:20:e:AudiencesSection::::::BGV5" }),
35789    /* @__PURE__ */ i(a, { _fgT: mx, _fgS: "bi7v7", _fgB: 1790697589506, "data-fg-bi7v7": ":0:/src/app/pages/AIWorkshopPage.tsx:19:7:608:21:e:IndustriesSection::::::zIE" }),
35790    /* @__PURE__ */ i(a, { _fgT: xx, _fgS: "bi7v8", _fgB: 1790697589506, "data-fg-bi7v8": ":0:/src/app/pages/AIWorkshopPage.tsx:20:7:636:21:e:HowItWorksSection::::::MfD" }),
35791    /* @__PURE__ */ i(a, { _fgT: bx, _fgS: "bi7v9", _fgB: 1790697589506, "data-fg-bi7v9": ":0:/src/app/pages/AIWorkshopPage.tsx:21:7:664:14:e:FAQSection::::::B9Cw" }),
35792    /* @__PURE__ */ i(a, { _fgT: vx, _fgS: "bi7v10", _fgB: 1790697589506, "data-fg-bi7v10": ":0:/src/app/pages/AIWorkshopPage.tsx:22:7:685:15:e:WorkshopCTA::::::B2IA" }),
35793    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "bi7v11", _fgB: 1790697589506, "data-fg-bi7v11": ":0:/src/app/pages/AIWorkshopPage.tsx:23:7:707:10:e:Footer::::::B1Vv" })
35794  ] });
35795}
35796function Lx() {
35797  const { openContactModal: t } = Z();
35798  return /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "bi7v12", _fgB: 1790697589506, _fgD: !0, className: "relative min-h-[80vh] flex items-center overflow-hidden bg-[#0B1A2E] font-['DM_Sans']", "data-fg-bi7v12": ":0:/src/app/pages/AIWorkshopPage.tsx:33:5:849:3269:e:section:ete:1", children: [
35799    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v13", _fgB: 1790697589506, className: "absolute inset-0 z-0", "data-fg-bi7v13": ":0:/src/app/pages/AIWorkshopPage.tsx:34:7:963:633:e:div:etete", children: [
35800      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v14", _fgB: 1790697589506, className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_at_center,black_40%,transparent_80%)]", "data-fg-bi7v14": ":0:/src/app/pages/AIWorkshopPage.tsx:35:9:1010:261:e:div" }),
35801      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v15", _fgB: 1790697589506, className: "absolute -top-[20%] -right-[10%] w-[800px] h-[800px] bg-[#EFBB0F] opacity-[0.05] blur-[120px] rounded-full pointer-events-none", "data-fg-bi7v15": ":0:/src/app/pages/AIWorkshopPage.tsx:36:9:1280:146:e:div" }),
35802      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v16", _fgB: 1790697589506, className: "absolute -bottom-[20%] -left-[10%] w-[600px] h-[600px] bg-[#2B7AE8] opacity-[0.05] blur-[100px] rounded-full pointer-events-none", "data-fg-bi7v16": ":0:/src/app/pages/AIWorkshopPage.tsx:37:9:1435:148:e:div" })
35803    ] }),
35804    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v17", _fgB: 1790697589506, className: "relative z-10 max-w-[1280px] mx-auto px-6 py-32 w-full", "data-fg-bi7v17": ":0:/src/app/pages/AIWorkshopPage.tsx:40:7:1604:2499:e:div:etxte", children: [
35805      /* @__PURE__ */ c(
35806        a,
35807        {
35808          _fgT: m.div,
35809          _fgS: "bi7v18",
35810          _fgB: 1790697589506,
35811          initial: { opacity: 0, y: 30 },
35812          animate: { opacity: 1, y: 0 },
35813          transition: { duration: 0.7 },
35814          className: "max-w-[760px]",
35815          "data-fg-bi7v18": ":0:/src/app/pages/AIWorkshopPage.tsx:41:9:1685:1516:e:motion.div:etetete",
35816          children: [
35817            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v19", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-6", "data-fg-bi7v19": ":0:/src/app/pages/AIWorkshopPage.tsx:47:11:1877:340:e:div:ete", children: [
35818              /* @__PURE__ */ i(a, { _fgT: Z7, _fgS: "bi7v20", _fgB: 1790697589506, size: 14, className: "text-[#EFBB0F]", "data-fg-bi7v20": ":0:node_modules/lucide-react:48:13:2011:49:e:BookOpen::::::BP4H" }),
35819              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v21", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v21": ":0:/src/app/pages/AIWorkshopPage.tsx:49:13:2073:127:e:span:t", children: "AI Workshops" })
35820            ] }),
35821            /* @__PURE__ */ c(a, { _fgT: "h1", _fgS: "bi7v23", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[38px] sm:text-[48px] md:text-[60px] leading-[1.08] text-white mb-6", "data-fg-bi7v23": ":0:/src/app/pages/AIWorkshopPage.tsx:54:11:2229:259:e:h1:tste", children: [
35822              "AI Workshops for Teams,",
35823              " ",
35824              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v26", _fgB: 1790697589506, className: "text-[#EFBB0F] italic", "data-fg-bi7v26": ":0:/src/app/pages/AIWorkshopPage.tsx:56:13:2398:74:e:span:t", children: "Leaders, and Pilot Planning" })
35825            ] }),
35826            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v28", _fgB: 1790697589506, className: "text-[18px] md:text-[20px] text-[#8B9BB5] leading-relaxed mb-10 max-w-[620px]", "data-fg-bi7v28": ":0:/src/app/pages/AIWorkshopPage.tsx:59:11:2500:286:e:p:t", children: "Practical AI workshops that help organizations build AI fluency, assess readiness, prioritize real use cases, launch low-risk pilots, and move toward implementation." }),
35827            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v30", _fgB: 1790697589506, className: "flex flex-wrap gap-4", "data-fg-bi7v30": ":0:/src/app/pages/AIWorkshopPage.tsx:63:11:2798:381:e:div:e", children: /* @__PURE__ */ c(
35828              a,
35829              {
35830                _fgT: "button",
35831                _fgS: "bi7v31",
35832                _fgB: 1790697589506,
35833                onClick: t,
35834                className: "inline-flex items-center gap-2 px-7 py-3.5 bg-[#EFBB0F] text-[#0B1A2E] rounded-lg font-bold text-[15px] hover:bg-[#d9a80d] transition-colors",
35835                "data-fg-bi7v31": ":0:/src/app/pages/AIWorkshopPage.tsx:64:13:2849:313:e:button:te",
35836                children: [
35837                  "Schedule an Intro Call ",
35838                  /* @__PURE__ */ i(a, { _fgT: D, _fgS: "bi7v33", _fgB: 1790697589506, size: 16, "data-fg-bi7v33": ":0:node_modules/lucide-react:68:38:3116:24:e:ArrowRight::::::s5N" })
35839                ]
35840              }
35841            ) })
35842          ]
35843        }
35844      ),
35845      /* @__PURE__ */ i(
35846        a,
35847        {
35848          _fgT: m.div,
35849          _fgS: "bi7v35",
35850          _fgB: 1790697589506,
35851          initial: { opacity: 0, y: 20 },
35852          animate: { opacity: 1, y: 0 },
35853          transition: { duration: 0.7, delay: 0.3 },
35854          className: "mt-20 grid grid-cols-2 md:grid-cols-4 gap-8 border-t border-white/10 pt-12",
35855          "data-fg-bi7v35": ":0:/src/app/pages/AIWorkshopPage.tsx:74:9:3237:853:e:motion.div:x",
35856          children: [
35857            { value: "4", label: "Workshop formats" },
35858            { value: "Virtual & Onsite", label: "Delivery options" },
35859            { value: "Custom", label: "Tailored to your workflows" },
35860            { value: "Action-Oriented", label: "Real outcomes, not theory" }
35861          ].map((e) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v37", _fgB: 1790697589506, "data-fg-bi7v37": ":0:/src/app/pages/AIWorkshopPage.tsx:86:13:3818:236:e:div:ete", children: [
35862            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v38", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[24px] font-bold font-['DM_Serif_Display'] mb-1", "data-fg-bi7v38": ":0:/src/app/pages/AIWorkshopPage.tsx:87:15:3855:103:e:div:x", children: e.value }),
35863            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v40", _fgB: 1790697589506, className: "text-[#8B9BB5] text-[13px]", "data-fg-bi7v40": ":0:/src/app/pages/AIWorkshopPage.tsx:88:15:3973:62:e:div:x", children: e.label })
35864          ] }, e.label))
35865        }
35866      )
35867    ] })
35868  ] });
35869}
35870function cx() {
35871  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v42", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-white font-['DM_Sans']", "data-fg-bi7v42": ":0:/src/app/pages/AIWorkshopPage.tsx:100:5:4198:2607:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v43", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v43": ":0:/src/app/pages/AIWorkshopPage.tsx:101:7:4258:2532:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v44", _fgB: 1790697589506, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-bi7v44": ":0:/src/app/pages/AIWorkshopPage.tsx:102:9:4312:2465:e:div:ete", children: [
35872    /* @__PURE__ */ c(
35873      a,
35874      {
35875        _fgT: m.div,
35876        _fgS: "bi7v45",
35877        _fgB: 1790697589506,
35878        initial: { opacity: 0, x: -30 },
35879        whileInView: { opacity: 1, x: 0 },
35880        viewport: { once: !0 },
35881        transition: { duration: 0.6 },
35882        "data-fg-bi7v45": ":0:/src/app/pages/AIWorkshopPage.tsx:103:11:4380:1281:e:motion.div:etetete",
35883        children: [
35884          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v46", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v46": ":0:/src/app/pages/AIWorkshopPage.tsx:109:13:4589:252:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v47", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v47": ":0:/src/app/pages/AIWorkshopPage.tsx:110:15:4723:99:e:span:t", children: "Our Approach" }) }),
35885          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v49", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] leading-[1.1] text-[#0B1A2E] mb-6", "data-fg-bi7v49": ":0:/src/app/pages/AIWorkshopPage.tsx:112:13:4854:180:e:h2:t", children: "Practical AI workshops, not generic training" }),
35886          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v51", _fgB: 1790697589506, className: "text-[17px] text-slate-600 leading-relaxed mb-8", "data-fg-bi7v51": ":0:/src/app/pages/AIWorkshopPage.tsx:115:13:5047:348:e:p:t", children: "A lot of AI education stops at definitions, demos, and inspiration. That is not enough. Our workshops are built to help organizations make progress through practical examples, real workflow conversations, structured prioritization, and clear next steps." }),
35887          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v53", _fgB: 1790697589506, className: "text-[17px] text-slate-600 leading-relaxed", "data-fg-bi7v53": ":0:/src/app/pages/AIWorkshopPage.tsx:118:13:5408:229:e:p:t", children: "Participants leave with stronger AI skills, better judgment about where AI fits, and a clearer path forward for their team or organization." })
35888        ]
35889      }
35890    ),
35891    /* @__PURE__ */ i(
35892      a,
35893      {
35894        _fgT: m.div,
35895        _fgS: "bi7v55",
35896        _fgB: 1790697589506,
35897        initial: { opacity: 0, x: 30 },
35898        whileInView: { opacity: 1, x: 0 },
35899        viewport: { once: !0 },
35900        transition: { duration: 0.6, delay: 0.1 },
35901        className: "space-y-4",
35902        "data-fg-bi7v55": ":0:/src/app/pages/AIWorkshopPage.tsx:123:11:5673:1089:e:motion.div:x",
35903        children: [
35904          "Every session starts with practical foundations and moves toward action",
35905          "Workshops are tailored to your workflows, roles, and priorities",
35906          "We focus on real business use cases, not abstract theory",
35907          "Leaders and teams can build shared understanding from the same starting point",
35908          "Workshops can lead directly into pilot planning, governance work, and implementation support"
35909        ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v57", _fgB: 1790697589506, className: "flex items-start gap-3 p-4 rounded-xl bg-slate-50 border border-slate-100", "data-fg-bi7v57": ":0:/src/app/pages/AIWorkshopPage.tsx:137:15:6426:296:e:div:ete", children: [
35910          /* @__PURE__ */ i(a, { _fgT: b2, _fgS: "bi7v58", _fgB: 1790697589506, size: 18, className: "text-[#EFBB0F] mt-0.5 shrink-0", "data-fg-bi7v58": ":0:node_modules/lucide-react:138:17:6542:68:e:CheckCircle::::::C4Wc" }),
35911          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v59", _fgB: 1790697589506, className: "text-[15px] text-slate-700 leading-relaxed", "data-fg-bi7v59": ":0:/src/app/pages/AIWorkshopPage.tsx:139:17:6627:74:e:span:x", children: t })
35912        ] }, e))
35913      }
35914    )
35915  ] }) }) });
35916}
35917const lx = [
35918  {
35919    tag: "Introductory",
35920    title: "AI Essentials for Work",
35921    audience: "All-staff sessions · Leadership overviews · Department kickoffs · Conferences",
35922    description: "A focused introduction to how AI can support everyday work. Designed for organizations that need a strong starting point. Participants leave with practical skills, better habits, and a clearer sense of where to go next.",
35923    listHeading: "Participants Will Learn",
35924    items: [
35925      "What AI is good at today and where it falls short",
35926      "Practical ways to use AI for writing, research, summaries, and reports",
35927      "How to get better results through clearer prompting",
35928      "How to use AI more safely and responsibly at work"
35929    ],
35930    outcomes: ["Shared team language around AI", "Immediate day one productivity wins", "Better habits and stronger confidence with approved tools"],
35931    icon: /* @__PURE__ */ i(a, { _fgT: Z7, _fgS: "bi7v61", _fgB: 1790697589506, size: 22, "data-fg-bi7v61": ":0:node_modules/lucide-react:165:11:7752:22:e:BookOpen::::::BP4H" }),
35932    accent: "#EFBB0F"
35933  },
35934  {
35935    tag: "Hands On",
35936    title: "Practical AI Foundations Workshop",
35937    audience: "Cross-functional teams · Department leaders · Operations teams · Internal AI rollouts",
35938    description: "A hands-on workshop for teams that want to move beyond awareness and start using AI more effectively in real workflows. Goes deeper than an overview, with role-based examples and practical skill building.",
35939    listHeading: "Participants Will Work Through",
35940    items: [
35941      "Practical prompting and workflow improvement",
35942      "Drafting, summarization, and research support",
35943      "Documentation, communication, and knowledge work examples",
35944      "Common mistakes, limitations, and risk considerations"
35945    ],
35946    outcomes: ["Stronger individual AI usage and workflow fit", "More confidence using AI in real work", "A stronger foundation for team-level opportunity mapping"],
35947    icon: /* @__PURE__ */ i(a, { _fgT: h1, _fgS: "bi7v62", _fgB: 1790697589506, size: 22, "data-fg-bi7v62": ":0:node_modules/lucide-react:182:11:8697:19:e:Users::::::DV8M" }),
35948    accent: "#2B7AE8"
35949  },
35950  {
35951    tag: "Strategic",
35952    title: "AI Readiness Workshop",
35953    audience: "Executive teams · Transformation leaders · Department heads · Public sector",
35954    description: "A structured working session to understand where your organization stands today and what is needed to move forward responsibly. Built for leaders who want clarity before pushing further into adoption.",
35955    listHeading: "We Cover",
35956    items: [
35957      "Current-state AI usage and maturity",
35958      "Team capabilities and adoption blockers",
35959      "Governance and policy gaps",
35960      "Readiness across workflows, data, and decision-making"
35961    ],
35962    outcomes: ["Readiness snapshot with priority gaps and blockers", "Stronger alignment across stakeholders", "Recommended next steps and a clearer basis for pilot planning"],
35963    icon: /* @__PURE__ */ i(a, { _fgT: xd, _fgS: "bi7v63", _fgB: 1790697589506, size: 22, "data-fg-bi7v63": ":0:node_modules/lucide-react:199:11:9557:20:e:Target::::::DxzD" }),
35964    accent: "#16A085"
35965  },
35966  {
35967    tag: "Action-Oriented",
35968    title: "AI Opportunity Workshop",
35969    audience: "Leadership teams · Operations leaders · Innovation groups · Partner engagements",
35970    description: "A collaborative working session to identify, score, and prioritize the AI use cases most worth pursuing. This is where interest turns into a practical pipeline with real ownership and clear next steps.",
35971    listHeading: "We Work Through",
35972    items: [
35973      "Identifying workflows where AI can create real value",
35974      "Scoring opportunities by value, feasibility, risk, and ownership",
35975      "Separating useful ideas from low-impact noise",
35976      "Deciding what to pilot first"
35977    ],
35978    outcomes: ["Prioritized use case list with a value vs risk view", "Pilot shortlist with stronger alignment on where to start", "A roadmap for next-step planning or implementation"],
35979    icon: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "bi7v64", _fgB: 1790697589506, size: 22, "data-fg-bi7v64": ":0:node_modules/lucide-react:216:11:10483:17:e:Zap::::::Cp7" }),
35980    accent: "#8B5CF6"
35981  }
35982];
35983function dx() {
35984  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v65", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-[#0B1A2E] font-['DM_Sans']", "data-fg-bi7v65": ":0:/src/app/pages/AIWorkshopPage.tsx:223:5:10575:3430:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v66", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v66": ":0:/src/app/pages/AIWorkshopPage.tsx:224:7:10639:3351:e:div:ete", children: [
35985    /* @__PURE__ */ c(
35986      a,
35987      {
35988        _fgT: m.div,
35989        _fgS: "bi7v67",
35990        _fgB: 1790697589506,
35991        initial: { opacity: 0, y: 20 },
35992        whileInView: { opacity: 1, y: 0 },
35993        viewport: { once: !0 },
35994        transition: { duration: 0.6 },
35995        className: "text-center mb-16",
35996        "data-fg-bi7v67": ":0:/src/app/pages/AIWorkshopPage.tsx:225:9:10693:904:e:motion.div:etete",
35997        children: [
35998          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v68", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v68": ":0:/src/app/pages/AIWorkshopPage.tsx:232:11:10929:249:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v69", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v69": ":0:/src/app/pages/AIWorkshopPage.tsx:233:13:11061:100:e:span:t", children: "Workshop Menu" }) }),
35999          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v71", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-white mb-4", "data-fg-bi7v71": ":0:/src/app/pages/AIWorkshopPage.tsx:235:11:11189:156:e:h2:t", children: "Four workshop formats. One practical goal." }),
36000          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v73", _fgB: 1790697589506, className: "text-[17px] text-[#8B9BB5] max-w-[600px] mx-auto", "data-fg-bi7v73": ":0:/src/app/pages/AIWorkshopPage.tsx:238:11:11356:219:e:p:t", children: "Each workshop is designed for a specific audience and outcome. Choose the format that matches where your organization is today." })
36001        ]
36002      }
36003    ),
36004    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v75", _fgB: 1790697589506, className: "grid md:grid-cols-2 gap-8", "data-fg-bi7v75": ":0:/src/app/pages/AIWorkshopPage.tsx:243:9:11607:2370:e:div:x", children: lx.map((t, e) => /* @__PURE__ */ c(
36005      a,
36006      {
36007        _fgT: m.div,
36008        _fgS: "bi7v77",
36009        _fgB: 1790697589506,
36010        initial: { opacity: 0, y: 24 },
36011        whileInView: { opacity: 1, y: 0 },
36012        viewport: { once: !0 },
36013        transition: { duration: 0.5, delay: e * 0.1 },
36014        className: "bg-white/5 border border-white/10 rounded-2xl p-8 flex flex-col gap-5 hover:border-white/20 transition-colors",
36015        "data-fg-bi7v77": ":0:/src/app/pages/AIWorkshopPage.tsx:245:13:11700:2248:e:motion.div:etetetete",
36016        children: [
36017          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v78", _fgB: 1790697589506, className: "flex items-start gap-4", "data-fg-bi7v78": ":0:/src/app/pages/AIWorkshopPage.tsx:253:15:12100:551:e:div:ete", children: [
36018            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v79", _fgB: 1790697589506, className: "p-3 rounded-xl", style: { background: `${t.accent}18`, color: t.accent }, "data-fg-bi7v79": ":0:/src/app/pages/AIWorkshopPage.tsx:254:17:12157:139:e:div:x", children: t.icon }),
36019            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v81", _fgB: 1790697589506, "data-fg-bi7v81": ":0:/src/app/pages/AIWorkshopPage.tsx:257:17:12313:317:e:div:ete", children: [
36020              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v82", _fgB: 1790697589506, className: "text-[11px] font-bold tracking-[2px] uppercase mb-1 block", style: { color: t.accent }, "data-fg-bi7v82": ":0:/src/app/pages/AIWorkshopPage.tsx:258:19:12337:158:e:span:x", children: t.tag }),
36021              /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bi7v84", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[22px] text-white leading-tight", "data-fg-bi7v84": ":0:/src/app/pages/AIWorkshopPage.tsx:261:19:12514:93:e:h3:x", children: t.title })
36022            ] })
36023          ] }),
36024          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v86", _fgB: 1790697589506, className: "text-[12px] text-[#8B9BB5] italic", "data-fg-bi7v86": ":0:/src/app/pages/AIWorkshopPage.tsx:265:15:12667:65:e:p:x", children: t.audience }),
36025          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v88", _fgB: 1790697589506, className: "text-[15px] text-[#A8B8CC] leading-relaxed", "data-fg-bi7v88": ":0:/src/app/pages/AIWorkshopPage.tsx:266:15:12747:77:e:p:x", children: t.description }),
36026          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v90", _fgB: 1790697589506, "data-fg-bi7v90": ":0:/src/app/pages/AIWorkshopPage.tsx:268:15:12840:520:e:div:ete", children: [
36027            /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "bi7v91", _fgB: 1790697589506, className: "text-[13px] font-semibold text-white mb-3", "data-fg-bi7v91": ":0:/src/app/pages/AIWorkshopPage.tsx:269:17:12862:77:e:p:xt", children: [
36028              t.listHeading,
36029              ":"
36030            ] }),
36031            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bi7v94", _fgB: 1790697589506, className: "space-y-2", "data-fg-bi7v94": ":0:/src/app/pages/AIWorkshopPage.tsx:270:17:12956:383:e:ul:x", children: t.items.map((s) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bi7v96", _fgB: 1790697589506, className: "flex items-start gap-2 text-[14px] text-[#A8B8CC]", "data-fg-bi7v96": ":0:/src/app/pages/AIWorkshopPage.tsx:272:21:13046:249:e:li:etx", children: [
36032              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v97", _fgB: 1790697589506, className: "mt-1.5 w-1.5 h-1.5 rounded-full shrink-0", style: { background: t.accent }, "data-fg-bi7v97": ":0:/src/app/pages/AIWorkshopPage.tsx:273:23:13146:94:e:span" }),
36033              s
36034            ] }, s)) })
36035          ] }),
36036          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v99", _fgB: 1790697589506, className: "border-t border-white/10 pt-4", "data-fg-bi7v99": ":0:/src/app/pages/AIWorkshopPage.tsx:280:15:13376:546:e:div:ete", children: [
36037            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v100", _fgB: 1790697589506, className: "text-[13px] font-semibold text-white mb-3", "data-fg-bi7v100": ":0:/src/app/pages/AIWorkshopPage.tsx:281:17:13440:78:e:p:t", children: "Typical Outcomes:" }),
36038            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bi7v102", _fgB: 1790697589506, className: "space-y-1.5", "data-fg-bi7v102": ":0:/src/app/pages/AIWorkshopPage.tsx:282:17:13535:366:e:ul:x", children: t.outcomes.map((s) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bi7v104", _fgB: 1790697589506, className: "flex items-start gap-2 text-[13px] text-[#A8B8CC]", "data-fg-bi7v104": ":0:/src/app/pages/AIWorkshopPage.tsx:284:21:13627:230:e:li:etx", children: [
36039              /* @__PURE__ */ i(a, { _fgT: b2, _fgS: "bi7v105", _fgB: 1790697589506, size: 13, className: "mt-0.5 shrink-0", style: { color: t.accent }, "data-fg-bi7v105": ":0:node_modules/lucide-react:285:23:13724:81:e:CheckCircle::::::C4Wc" }),
36040              s
36041            ] }, s)) })
36042          ] })
36043        ]
36044      },
36045      t.title
36046    )) })
36047  ] }) });
36048}
36049function gx() {
36050  const t = [
36051    "Stronger AI skills for real day-to-day work",
36052    "Better prompting and workflow habits",
36053    "A shared understanding of what AI can and cannot do well",
36054    "A readiness snapshot and clearer view of current gaps",
36055    "A prioritized list of use cases worth pursuing",
36056    "Pilot candidates with clearer ownership and value",
36057    "Governance starter points and decision criteria",
36058    "A practical next-step roadmap your team can act on"
36059  ];
36060  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v107", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-white font-['DM_Sans']", "data-fg-bi7v107": ":0:/src/app/pages/AIWorkshopPage.tsx:313:5:14553:1636:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v108", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v108": ":0:/src/app/pages/AIWorkshopPage.tsx:314:7:14613:1561:e:div:ete", children: [
36061    /* @__PURE__ */ c(
36062      a,
36063      {
36064        _fgT: m.div,
36065        _fgS: "bi7v109",
36066        _fgB: 1790697589506,
36067        initial: { opacity: 0, y: 20 },
36068        whileInView: { opacity: 1, y: 0 },
36069        viewport: { once: !0 },
36070        className: "text-center mb-14",
36071        "data-fg-bi7v109": ":0:/src/app/pages/AIWorkshopPage.tsx:315:9:14667:803:e:motion.div:etete",
36072        children: [
36073          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v110", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v110": ":0:/src/app/pages/AIWorkshopPage.tsx:321:11:14862:244:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v111", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v111": ":0:/src/app/pages/AIWorkshopPage.tsx:322:13:14994:95:e:span:t", children: "Outcomes" }) }),
36074          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v113", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-[#0B1A2E] mb-4", "data-fg-bi7v113": ":0:/src/app/pages/AIWorkshopPage.tsx:324:11:15117:150:e:h2:t", children: "What participants walk away with" }),
36075          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v115", _fgB: 1790697589506, className: "text-[17px] text-slate-500 max-w-[560px] mx-auto", "data-fg-bi7v115": ":0:/src/app/pages/AIWorkshopPage.tsx:327:11:15278:170:e:p:t", children: "Every workshop is designed to produce practical outcomes, not just discussion." })
36076        ]
36077      }
36078    ),
36079    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v117", _fgB: 1790697589506, className: "grid sm:grid-cols-2 lg:grid-cols-4 gap-4", "data-fg-bi7v117": ":0:/src/app/pages/AIWorkshopPage.tsx:332:9:15480:681:e:div:x", children: t.map((e, s) => /* @__PURE__ */ c(
36080      a,
36081      {
36082        _fgT: m.div,
36083        _fgS: "bi7v119",
36084        _fgB: 1790697589506,
36085        initial: { opacity: 0, y: 16 },
36086        whileInView: { opacity: 1, y: 0 },
36087        viewport: { once: !0 },
36088        transition: { duration: 0.4, delay: s * 0.07 },
36089        className: "flex items-start gap-3 p-5 rounded-xl bg-slate-50 border border-slate-100",
36090        "data-fg-bi7v119": ":0:/src/app/pages/AIWorkshopPage.tsx:334:13:15590:542:e:motion.div:ete",
36091        children: [
36092          /* @__PURE__ */ i(a, { _fgT: b2, _fgS: "bi7v120", _fgB: 1790697589506, size: 18, className: "text-[#EFBB0F] mt-0.5 shrink-0", "data-fg-bi7v120": ":0:node_modules/lucide-react:342:15:15949:68:e:CheckCircle::::::C4Wc" }),
36093          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v121", _fgB: 1790697589506, className: "text-[14px] text-slate-700 leading-relaxed", "data-fg-bi7v121": ":0:/src/app/pages/AIWorkshopPage.tsx:343:15:16032:74:e:span:x", children: e })
36094        ]
36095      },
36096      s
36097    )) })
36098  ] }) });
36099}
36100const fx = [
36101  { step: "01", title: "Foundations", desc: "Build shared understanding of what AI does and where it fits" },
36102  { step: "02", title: "Readiness", desc: "Assess gaps, blockers, governance, and use-case maturity" },
36103  { step: "03", title: "Prioritization", desc: "Score opportunities, find quick wins, decide what to pilot" },
36104  { step: "04", title: "Implementation", desc: "Pilot design, governance, workflow automation, delivery" }
36105];
36106function px() {
36107  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v123", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-[#0B1A2E] font-['DM_Sans']", "data-fg-bi7v123": ":0:/src/app/pages/AIWorkshopPage.tsx:362:5:16730:2482:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v124", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v124": ":0:/src/app/pages/AIWorkshopPage.tsx:363:7:16794:2403:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v125", _fgB: 1790697589506, className: "grid lg:grid-cols-2 gap-16 items-center", "data-fg-bi7v125": ":0:/src/app/pages/AIWorkshopPage.tsx:364:9:16848:2336:e:div:ete", children: [
36108    /* @__PURE__ */ c(
36109      a,
36110      {
36111        _fgT: m.div,
36112        _fgS: "bi7v126",
36113        _fgB: 1790697589506,
36114        initial: { opacity: 0, x: -30 },
36115        whileInView: { opacity: 1, x: 0 },
36116        viewport: { once: !0 },
36117        transition: { duration: 0.6 },
36118        "data-fg-bi7v126": ":0:/src/app/pages/AIWorkshopPage.tsx:365:11:16916:1448:e:motion.div:etetete",
36119        children: [
36120          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v127", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v127": ":0:/src/app/pages/AIWorkshopPage.tsx:371:13:17125:262:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v128", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v128": ":0:/src/app/pages/AIWorkshopPage.tsx:372:15:17259:109:e:span:t", children: "Why Foundations Matter" }) }),
36121          /* @__PURE__ */ c(a, { _fgT: "h2", _fgS: "bi7v130", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-white mb-6 leading-[1.1]", "data-fg-bi7v130": ":0:/src/app/pages/AIWorkshopPage.tsx:374:13:17400:237:e:h2:tste", children: [
36122            "Start with foundations.",
36123            " ",
36124            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v133", _fgB: 1790697589506, className: "text-[#EFBB0F] italic", "data-fg-bi7v133": ":0:/src/app/pages/AIWorkshopPage.tsx:376:15:17557:62:e:span:t", children: "Then go deeper." })
36125          ] }),
36126          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v135", _fgB: 1790697589506, className: "text-[17px] text-[#8B9BB5] leading-relaxed mb-5", "data-fg-bi7v135": ":0:/src/app/pages/AIWorkshopPage.tsx:378:13:17650:244:e:p:t", children: "The basics still matter. Most organizations need a shared starting point before they can make good decisions about pilots, policy, or implementation." }),
36127          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v137", _fgB: 1790697589506, className: "text-[17px] text-[#8B9BB5] leading-relaxed", "data-fg-bi7v137": ":0:/src/app/pages/AIWorkshopPage.tsx:381:13:17907:433:e:p:t", children: "Every workshop starts with practical AI foundations. Teams need to understand what AI actually does well, how to use it effectively, where the risks are, and how it fits into the work they already do. From that common foundation, organizations can move into readiness, prioritization, governance, and pilot planning with much better alignment." })
36128        ]
36129      }
36130    ),
36131    /* @__PURE__ */ i(
36132      a,
36133      {
36134        _fgT: m.div,
36135        _fgS: "bi7v139",
36136        _fgB: 1790697589506,
36137        initial: { opacity: 0, x: 30 },
36138        whileInView: { opacity: 1, x: 0 },
36139        viewport: { once: !0 },
36140        transition: { duration: 0.6, delay: 0.1 },
36141        className: "space-y-4",
36142        "data-fg-bi7v139": ":0:/src/app/pages/AIWorkshopPage.tsx:386:11:18376:793:e:motion.div:x",
36143        children: fx.map((t, e) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v141", _fgB: 1790697589506, className: "flex items-start gap-5 p-5 rounded-xl bg-white/5 border border-white/10", "data-fg-bi7v141": ":0:/src/app/pages/AIWorkshopPage.tsx:394:15:18671:458:e:div:ete", children: [
36144          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v142", _fgB: 1790697589506, className: "text-[#EFBB0F] font-['DM_Serif_Display'] text-[28px] leading-none w-12 shrink-0", "data-fg-bi7v142": ":0:/src/app/pages/AIWorkshopPage.tsx:395:17:18790:111:e:div:x", children: t.step }),
36145          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v144", _fgB: 1790697589506, "data-fg-bi7v144": ":0:/src/app/pages/AIWorkshopPage.tsx:396:17:18918:190:e:div:ete", children: [
36146            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v145", _fgB: 1790697589506, className: "text-white font-semibold text-[16px] mb-1", "data-fg-bi7v145": ":0:/src/app/pages/AIWorkshopPage.tsx:397:19:18942:70:e:p:x", children: t.title }),
36147            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v147", _fgB: 1790697589506, className: "text-[#8B9BB5] text-[14px]", "data-fg-bi7v147": ":0:/src/app/pages/AIWorkshopPage.tsx:398:19:19031:54:e:p:x", children: t.desc })
36148          ] })
36149        ] }, t.step))
36150      }
36151    )
36152  ] }) }) });
36153}
36154const Mx = [
36155  {
36156    icon: /* @__PURE__ */ i(a, { _fgT: W7, _fgS: "bi7v149", _fgB: 1790697589506, size: 20, "data-fg-bi7v149": ":0:node_modules/lucide-react:412:11:19279:23:e:Briefcase::::::uh8" }),
36157    label: "For Leaders",
36158    desc: "Build alignment around AI readiness, governance, use case priorities, and next-step planning. Leaders need to make decisions, not just attend training."
36159  },
36160  {
36161    icon: /* @__PURE__ */ i(a, { _fgT: h1, _fgS: "bi7v150", _fgB: 1790697589506, size: 20, "data-fg-bi7v150": ":0:node_modules/lucide-react:417:11:19514:19:e:Users::::::DV8M" }),
36162    label: "For Teams",
36163    desc: "Improve day-to-day AI usage, workflow fit, and confidence using AI for real work. Teams need practical skills they can apply the same week."
36164  },
36165  {
36166    icon: /* @__PURE__ */ i(a, { _fgT: k1, _fgS: "bi7v151", _fgB: 1790697589506, size: 20, "data-fg-bi7v151": ":0:node_modules/lucide-react:422:11:19731:23:e:Building2::::::DOEu" }),
36167    label: "For Departments",
36168    desc: "Identify where AI can reduce friction, improve speed, support service delivery, and create measurable value within a specific function or unit."
36169  },
36170  {
36171    icon: /* @__PURE__ */ i(a, { _fgT: J1, _fgS: "bi7v152", _fgB: 1790697589506, size: 20, "data-fg-bi7v152": ":0:node_modules/lucide-react:427:11:19962:19:e:Globe::::::Cyd3" }),
36172    label: "For Associations & Conferences",
36173    desc: "Deliver practical AI sessions that move audiences beyond hype and into responsible action. Structured for engaged, mixed-experience attendees."
36174  },
36175  {
36176    icon: /* @__PURE__ */ i(a, { _fgT: xl, _fgS: "bi7v153", _fgB: 1790697589506, size: 20, "data-fg-bi7v153": ":0:node_modules/lucide-react:432:11:20203:23:e:Lightbulb::::::DclZ" }),
36177    label: "For Partners",
36178    desc: "Offer co-branded or partner-led workshops that open the door to advisory, pilot, and implementation work. A natural entry point for consulting relationships."
36179  }
36180];
36181function ux() {
36182  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v154", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-white font-['DM_Sans']", "data-fg-bi7v154": ":0:/src/app/pages/AIWorkshopPage.tsx:440:5:20480:1621:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v155", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v155": ":0:/src/app/pages/AIWorkshopPage.tsx:441:7:20540:1546:e:div:ete", children: [
36183    /* @__PURE__ */ c(
36184      a,
36185      {
36186        _fgT: m.div,
36187        _fgS: "bi7v156",
36188        _fgB: 1790697589506,
36189        initial: { opacity: 0, y: 20 },
36190        whileInView: { opacity: 1, y: 0 },
36191        viewport: { once: !0 },
36192        className: "text-center mb-14",
36193        "data-fg-bi7v156": ":0:/src/app/pages/AIWorkshopPage.tsx:442:9:20594:636:e:motion.div:ete",
36194        children: [
36195          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v157", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v157": ":0:/src/app/pages/AIWorkshopPage.tsx:448:11:20789:252:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v158", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v158": ":0:/src/app/pages/AIWorkshopPage.tsx:449:13:20921:103:e:span:t", children: "Who We Work With" }) }),
36196          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v160", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-[#0B1A2E] mb-4", "data-fg-bi7v160": ":0:/src/app/pages/AIWorkshopPage.tsx:451:11:21052:156:e:h2:t", children: "Built for leaders, teams, and partners" })
36197        ]
36198      }
36199    ),
36200    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v162", _fgB: 1790697589506, className: "grid sm:grid-cols-2 lg:grid-cols-3 gap-6", "data-fg-bi7v162": ":0:/src/app/pages/AIWorkshopPage.tsx:456:9:21240:833:e:div:x", children: Mx.map((t, e) => /* @__PURE__ */ c(
36201      a,
36202      {
36203        _fgT: m.div,
36204        _fgS: "bi7v164",
36205        _fgB: 1790697589506,
36206        initial: { opacity: 0, y: 20 },
36207        whileInView: { opacity: 1, y: 0 },
36208        viewport: { once: !0 },
36209        transition: { duration: 0.5, delay: e * 0.08 },
36210        className: "p-7 rounded-2xl border border-slate-100 bg-slate-50 hover:border-[#EFBB0F]/30 hover:shadow-md transition-all",
36211        "data-fg-bi7v164": ":0:/src/app/pages/AIWorkshopPage.tsx:458:13:21348:696:e:motion.div:etete",
36212        children: [
36213          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v165", _fgB: 1790697589506, className: "p-3 rounded-xl bg-[#EFBB0F]/10 text-[#EFBB0F] inline-flex mb-4", "data-fg-bi7v165": ":0:/src/app/pages/AIWorkshopPage.tsx:466:15:21748:94:e:div:x", children: t.icon }),
36214          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bi7v167", _fgB: 1790697589506, className: "font-semibold text-[#0B1A2E] text-[16px] mb-2", "data-fg-bi7v167": ":0:/src/app/pages/AIWorkshopPage.tsx:467:15:21857:76:e:h3:x", children: t.label }),
36215          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v169", _fgB: 1790697589506, className: "text-[14px] text-slate-600 leading-relaxed", "data-fg-bi7v169": ":0:/src/app/pages/AIWorkshopPage.tsx:468:15:21948:70:e:p:x", children: t.desc })
36216        ]
36217      },
36218      t.label
36219    )) })
36220  ] }) });
36221}
36222const hx = [
36223  {
36224    name: "Transit & Transportation",
36225    tags: ["Rider communications", "Incident summaries", "SOP search", "Reporting", "Maintenance knowledge"],
36226    desc: "Built from direct experience with transit agency AI adoption. Covers rider communications, incident summaries, SOP and policy search, reporting, maintenance knowledge access, and operational support workflows."
36227  },
36228  {
36229    name: "Public Sector",
36230    tags: ["Constituent comms", "Policy search", "Meeting summaries", "Grant support", "Procurement"],
36231    desc: "Constituent communications, policy and document search, meeting summaries, grant support, procurement support, and internal admin workflows. Includes considerations for compliance and governance in regulated environments."
36232  },
36233  {
36234    name: "Operations & Service Teams",
36235    tags: ["Documentation", "Status reporting", "Knowledge retrieval", "Process handoffs"],
36236    desc: "Documentation, recurring updates, status reporting, task coordination, knowledge retrieval, and process handoffs. Focus on reducing friction in the work that happens every day."
36237  },
36238  {
36239    name: "Finance & Administrative",
36240    tags: ["Report drafting", "Research support", "Analysis support", "Process standardization"],
36241    desc: "Report drafting, research support, recurring documentation, internal communications, analysis support, and process standardization. Practical application in the workflows CFOs and finance teams already own."
36242  }
36243];
36244function mx() {
36245  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v171", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-[#0B1A2E] font-['DM_Sans']", "data-fg-bi7v171": ":0:/src/app/pages/AIWorkshopPage.tsx:503:5:23656:2050:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v172", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v172": ":0:/src/app/pages/AIWorkshopPage.tsx:504:7:23720:1971:e:div:ete", children: [
36246    /* @__PURE__ */ c(
36247      a,
36248      {
36249        _fgT: m.div,
36250        _fgS: "bi7v173",
36251        _fgB: 1790697589506,
36252        initial: { opacity: 0, y: 20 },
36253        whileInView: { opacity: 1, y: 0 },
36254        viewport: { once: !0 },
36255        className: "text-center mb-14",
36256        "data-fg-bi7v173": ":0:/src/app/pages/AIWorkshopPage.tsx:505:9:23774:842:e:motion.div:etete",
36257        children: [
36258          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v174", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v174": ":0:/src/app/pages/AIWorkshopPage.tsx:511:11:23969:250:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v175", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v175": ":0:/src/app/pages/AIWorkshopPage.tsx:512:13:24101:101:e:span:t", children: "Industry Focus" }) }),
36259          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v177", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-white mb-4", "data-fg-bi7v177": ":0:/src/app/pages/AIWorkshopPage.tsx:514:11:24230:153:e:h2:t", children: "Tailored to your industry and workflows" }),
36260          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v179", _fgB: 1790697589506, className: "text-[17px] text-[#8B9BB5] max-w-[560px] mx-auto", "data-fg-bi7v179": ":0:/src/app/pages/AIWorkshopPage.tsx:517:11:24394:200:e:p:t", children: "Generic examples do not stick. We tailor workshops to the workflows and challenges your team actually faces." })
36261        ]
36262      }
36263    ),
36264    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v181", _fgB: 1790697589506, className: "grid md:grid-cols-2 gap-6", "data-fg-bi7v181": ":0:/src/app/pages/AIWorkshopPage.tsx:522:9:24626:1052:e:div:x", children: hx.map((t, e) => /* @__PURE__ */ c(
36265      a,
36266      {
36267        _fgT: m.div,
36268        _fgS: "bi7v183",
36269        _fgB: 1790697589506,
36270        initial: { opacity: 0, y: 20 },
36271        whileInView: { opacity: 1, y: 0 },
36272        viewport: { once: !0 },
36273        transition: { duration: 0.5, delay: e * 0.1 },
36274        className: "p-7 rounded-2xl bg-white/5 border border-white/10 hover:border-[#EFBB0F]/30 transition-colors",
36275        "data-fg-bi7v183": ":0:/src/app/pages/AIWorkshopPage.tsx:524:13:24722:927:e:motion.div:etete",
36276        children: [
36277          /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bi7v184", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[22px] text-white mb-3", "data-fg-bi7v184": ":0:/src/app/pages/AIWorkshopPage.tsx:532:15:25107:85:e:h3:x", children: t.name }),
36278          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v186", _fgB: 1790697589506, className: "text-[14px] text-[#8B9BB5] leading-relaxed mb-5", "data-fg-bi7v186": ":0:/src/app/pages/AIWorkshopPage.tsx:533:15:25207:77:e:p:x", children: t.desc }),
36279          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v188", _fgB: 1790697589506, className: "flex flex-wrap gap-2", "data-fg-bi7v188": ":0:/src/app/pages/AIWorkshopPage.tsx:534:15:25299:324:e:div:x", children: t.tags.map((s) => /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v190", _fgB: 1790697589506, className: "px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/20 text-[#EFBB0F] text-[12px] font-medium", "data-fg-bi7v190": ":0:/src/app/pages/AIWorkshopPage.tsx:536:19:25397:185:e:span:x", children: s }, s)) })
36280        ]
36281      },
36282      t.name
36283    )) })
36284  ] }) });
36285}
36286const z6 = [
36287  {
36288    num: "01",
36289    title: "Assess the Current State",
36290    desc: "Start with an AI readiness assessment, a discovery conversation, or a focused intake process to understand where your organization is today."
36291  },
36292  {
36293    num: "02",
36294    title: "Run the Workshop",
36295    desc: "We tailor the session to your audience, priorities, workflows, and maturity level. Every workshop ends with clear outputs participants can act on."
36296  },
36297  {
36298    num: "03",
36299    title: "Prioritize the Next Moves",
36300    desc: "We identify what matters most now, what should wait, and what is worth piloting. You leave with a clearer picture of where to invest effort next."
36301  },
36302  {
36303    num: "04",
36304    title: "Move Into Pilots or Implementation",
36305    desc: "When the organization is ready, workshops lead into pilot design, governance work, workflow automation planning, or full implementation support."
36306  }
36307];
36308function xx() {
36309  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v192", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-white font-['DM_Sans']", "data-fg-bi7v192": ":0:/src/app/pages/AIWorkshopPage.tsx:575:5:26694:2637:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v193", _fgB: 1790697589506, className: "max-w-[1280px] mx-auto px-6", "data-fg-bi7v193": ":0:/src/app/pages/AIWorkshopPage.tsx:576:7:26754:2562:e:div:etete", children: [
36310    /* @__PURE__ */ c(
36311      a,
36312      {
36313        _fgT: m.div,
36314        _fgS: "bi7v194",
36315        _fgB: 1790697589506,
36316        initial: { opacity: 0, y: 20 },
36317        whileInView: { opacity: 1, y: 0 },
36318        viewport: { once: !0 },
36319        className: "text-center mb-16",
36320        "data-fg-bi7v194": ":0:/src/app/pages/AIWorkshopPage.tsx:577:9:26808:640:e:motion.div:ete",
36321        children: [
36322          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v195", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v195": ":0:/src/app/pages/AIWorkshopPage.tsx:583:11:27003:248:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v196", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v196": ":0:/src/app/pages/AIWorkshopPage.tsx:584:13:27135:99:e:span:t", children: "How It Works" }) }),
36323          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v198", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-[#0B1A2E] mb-4", "data-fg-bi7v198": ":0:/src/app/pages/AIWorkshopPage.tsx:586:11:27262:164:e:h2:t", children: "A clear path from first conversation to action" })
36324        ]
36325      }
36326    ),
36327    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v200", _fgB: 1790697589506, className: "grid md:grid-cols-2 lg:grid-cols-4 gap-6", "data-fg-bi7v200": ":0:/src/app/pages/AIWorkshopPage.tsx:591:9:27458:1016:e:div:x", children: z6.map((t, e) => /* @__PURE__ */ c(
36328      a,
36329      {
36330        _fgT: m.div,
36331        _fgS: "bi7v202",
36332        _fgB: 1790697589506,
36333        initial: { opacity: 0, y: 20 },
36334        whileInView: { opacity: 1, y: 0 },
36335        viewport: { once: !0 },
36336        transition: { duration: 0.5, delay: e * 0.1 },
36337        className: "relative",
36338        "data-fg-bi7v202": ":0:/src/app/pages/AIWorkshopPage.tsx:593:13:27562:883:e:motion.div:xte",
36339        children: [
36340          e < z6.length - 1 && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v204", _fgB: 1790697589506, className: "hidden lg:block absolute top-8 left-full w-6 h-px bg-[#EFBB0F]/30 z-10", "data-fg-bi7v204": ":0:/src/app/pages/AIWorkshopPage.tsx:602:17:27902:90:e:div" }),
36341          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v205", _fgB: 1790697589506, className: "p-7 rounded-2xl bg-slate-50 border border-slate-100 h-full", "data-fg-bi7v205": ":0:/src/app/pages/AIWorkshopPage.tsx:604:15:28024:395:e:div:etete", children: [
36342            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v206", _fgB: 1790697589506, className: "text-[#EFBB0F] font-['DM_Serif_Display'] text-[40px] leading-none mb-4", "data-fg-bi7v206": ":0:/src/app/pages/AIWorkshopPage.tsx:605:17:28117:101:e:div:x", children: t.num }),
36343            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "bi7v208", _fgB: 1790697589506, className: "font-semibold text-[#0B1A2E] text-[16px] mb-3", "data-fg-bi7v208": ":0:/src/app/pages/AIWorkshopPage.tsx:606:17:28235:76:e:h3:x", children: t.title }),
36344            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v210", _fgB: 1790697589506, className: "text-[14px] text-slate-600 leading-relaxed", "data-fg-bi7v210": ":0:/src/app/pages/AIWorkshopPage.tsx:607:17:28328:70:e:p:x", children: t.desc })
36345          ] })
36346        ]
36347      },
36348      t.num
36349    )) }),
36350    /* @__PURE__ */ c(
36351      a,
36352      {
36353        _fgT: m.div,
36354        _fgS: "bi7v212",
36355        _fgB: 1790697589506,
36356        initial: { opacity: 0, y: 16 },
36357        whileInView: { opacity: 1, y: 0 },
36358        viewport: { once: !0 },
36359        transition: { duration: 0.5, delay: 0.4 },
36360        className: "mt-12 p-6 rounded-xl bg-[#EFBB0F]/8 border border-[#EFBB0F]/20 text-center",
36361        "data-fg-bi7v212": ":0:/src/app/pages/AIWorkshopPage.tsx:613:9:28484:819:e:motion.div:ete",
36362        children: [
36363          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v213", _fgB: 1790697589506, className: "text-[16px] text-slate-700 italic mb-5", "data-fg-bi7v213": ":0:/src/app/pages/AIWorkshopPage.tsx:620:11:28789:212:e:p:t", children: '"Not sure where to start? A 30-minute discovery conversation is enough to figure out the right entry point for your organization."' }),
36364          /* @__PURE__ */ c(
36365            a,
36366            {
36367              _fgT: "a",
36368              _fgS: "bi7v215",
36369              _fgB: 1790697589506,
36370              href: "/meet",
36371              className: "inline-flex items-center gap-2 px-6 py-3 bg-[#EFBB0F] text-[#0B1A2E] rounded-lg font-bold text-[14px] hover:bg-[#d9a80d] transition-colors",
36372              "data-fg-bi7v215": ":0:/src/app/pages/AIWorkshopPage.tsx:623:11:29012:269:e:a:te",
36373              children: [
36374                "Book a Meeting ",
36375                /* @__PURE__ */ i(a, { _fgT: D, _fgS: "bi7v217", _fgB: 1790697589506, size: 14, "data-fg-bi7v217": ":0:node_modules/lucide-react:627:28:29242:24:e:ArrowRight::::::s5N" })
36376              ]
36377            }
36378          )
36379        ]
36380      }
36381    )
36382  ] }) });
36383}
36384const _x = [
36385  {
36386    q: "What is the difference between an AI workshop and AI training?",
36387    a: "Training usually focuses on knowledge transfer. A workshop is more practical and action oriented. Our workshops still teach the foundations, but they are built to help teams apply what they learn, identify opportunities, and decide what comes next. The goal is progress, not just awareness."
36388  },
36389  {
36390    q: "Are these workshops customized?",
36391    a: "Yes. We tailor examples, exercises, and discussion points to the audience, industry, and workflows involved. The structure stays consistent, but the content reflects your organization's actual work. Generic examples do not stick."
36392  },
36393  {
36394    q: "Are workshops available virtually or onsite?",
36395    a: "Yes. Format depends on the workshop type, goals, and audience. Both virtual and onsite options are available. We discuss what works best during discovery."
36396  },
36397  {
36398    q: "Who should attend?",
36399    a: "That depends on the session. Some workshops are designed for all staff or departmental groups. Others are better suited for leaders, cross-functional stakeholders, or organizations evaluating next step pilots. We help you figure out the right audience during intake."
36400  },
36401  {
36402    q: "Do we need to be advanced in AI already?",
36403    a: "No. Many organizations start with foundational sessions. The point is to meet your team where it is and build from there. We have worked with organizations ranging from no prior AI usage to teams actively deploying tools."
36404  },
36405  {
36406    q: "What happens after the workshop?",
36407    a: "Some organizations stop after the workshop. Others move into assessments, governance planning, pilot design, or implementation support. We can help with that next phase when needed, but there is no obligation to continue."
36408  },
36409  {
36410    q: "Can these be offered through partners or associations?",
36411    a: "Yes. Workshops can be delivered directly, co-branded, or structured as part of a broader partner relationship. We work with consultants, agencies, associations, and platform partners looking to offer practical AI education to their clients or members."
36412  }
36413];
36414function bx() {
36415  const [t, e] = j(null);
36416  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v218", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-[#0B1A2E] font-['DM_Sans']", "data-fg-bi7v218": ":0:/src/app/pages/AIWorkshopPage.tsx:671:5:31614:1944:e:section:e:1", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v219", _fgB: 1790697589506, className: "max-w-[860px] mx-auto px-6", "data-fg-bi7v219": ":0:/src/app/pages/AIWorkshopPage.tsx:672:7:31678:1865:e:div:ete", children: [
36417    /* @__PURE__ */ c(
36418      a,
36419      {
36420        _fgT: m.div,
36421        _fgS: "bi7v220",
36422        _fgB: 1790697589506,
36423        initial: { opacity: 0, y: 20 },
36424        whileInView: { opacity: 1, y: 0 },
36425        viewport: { once: !0 },
36426        className: "text-center mb-14",
36427        "data-fg-bi7v220": ":0:/src/app/pages/AIWorkshopPage.tsx:673:9:31731:602:e:motion.div:ete",
36428        children: [
36429          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v221", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-5", "data-fg-bi7v221": ":0:/src/app/pages/AIWorkshopPage.tsx:679:11:31926:239:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v222", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v222": ":0:/src/app/pages/AIWorkshopPage.tsx:680:13:32058:90:e:span:t", children: "FAQ" }) }),
36430          /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v224", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[44px] text-white", "data-fg-bi7v224": ":0:/src/app/pages/AIWorkshopPage.tsx:682:11:32176:135:e:h2:t", children: "Frequently asked questions" })
36431        ]
36432      }
36433    ),
36434    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v226", _fgB: 1790697589506, className: "space-y-3", "data-fg-bi7v226": ":0:/src/app/pages/AIWorkshopPage.tsx:687:9:32343:1187:e:div:x", children: _x.map((s, r) => /* @__PURE__ */ c(
36435      a,
36436      {
36437        _fgT: m.div,
36438        _fgS: "bi7v228",
36439        _fgB: 1790697589506,
36440        initial: { opacity: 0, y: 12 },
36441        whileInView: { opacity: 1, y: 0 },
36442        viewport: { once: !0 },
36443        transition: { duration: 0.4, delay: r * 0.05 },
36444        className: "bg-white/5 border border-white/10 rounded-xl overflow-hidden",
36445        "data-fg-bi7v228": ":0:/src/app/pages/AIWorkshopPage.tsx:689:13:32417:1084:e:motion.div:etx",
36446        children: [
36447          /* @__PURE__ */ c(
36448            a,
36449            {
36450              _fgT: "button",
36451              _fgS: "bi7v229",
36452              _fgB: 1790697589506,
36453              onClick: () => e(t === r ? null : r),
36454              className: "w-full flex items-center justify-between px-6 py-5 text-left gap-4",
36455              "data-fg-bi7v229": ":0:/src/app/pages/AIWorkshopPage.tsx:697:15:32763:504:e:button:ete",
36456              children: [
36457                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v230", _fgB: 1790697589506, className: "text-[15px] text-white font-medium", "data-fg-bi7v230": ":0:/src/app/pages/AIWorkshopPage.tsx:701:17:32971:67:e:span:x", children: s.q }),
36458                /* @__PURE__ */ i(
36459                  a,
36460                  {
36461                    _fgT: t3,
36462                    _fgS: "bi7v232",
36463                    _fgB: 1790697589506,
36464                    size: 18,
36465                    className: `text-[#EFBB0F] shrink-0 transition-transform duration-300 ${t === r ? "rotate-180" : ""}`,
36466                    "data-fg-bi7v232": ":0:node_modules/lucide-react:702:17:33055:188:e:ChevronDown::::::Ddn3"
36467                  }
36468                )
36469              ]
36470            }
36471          ),
36472          t === r && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v234", _fgB: 1790697589506, className: "px-6 pb-5", "data-fg-bi7v234": ":0:/src/app/pages/AIWorkshopPage.tsx:708:17:33320:138:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v235", _fgB: 1790697589506, className: "text-[14px] text-[#8B9BB5] leading-relaxed", "data-fg-bi7v235": ":0:/src/app/pages/AIWorkshopPage.tsx:709:19:33366:69:e:p:x", children: s.a }) })
36473        ]
36474      },
36475      r
36476    )) })
36477  ] }) });
36478}
36479function vx() {
36480  const { openContactModal: t } = Z();
36481  return /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "bi7v237", _fgB: 1790697589506, _fgD: !0, className: "py-24 bg-white font-['DM_Sans']", "data-fg-bi7v237": ":0:/src/app/pages/AIWorkshopPage.tsx:725:5:33676:1129:e:section:e:1", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bi7v238", _fgB: 1790697589506, className: "max-w-[860px] mx-auto px-6 text-center", "data-fg-bi7v238": ":0:/src/app/pages/AIWorkshopPage.tsx:726:7:33736:1054:e:div:e", children: /* @__PURE__ */ c(
36482    a,
36483    {
36484      _fgT: m.div,
36485      _fgS: "bi7v239",
36486      _fgB: 1790697589506,
36487      initial: { opacity: 0, y: 24 },
36488      whileInView: { opacity: 1, y: 0 },
36489      viewport: { once: !0 },
36490      transition: { duration: 0.6 },
36491      "data-fg-bi7v239": ":0:/src/app/pages/AIWorkshopPage.tsx:727:9:33801:976:e:motion.div:etete",
36492      children: [
36493        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bi7v240", _fgB: 1790697589506, className: "inline-flex items-center gap-2 px-3 py-1 rounded-full bg-[#EFBB0F]/10 border border-[#EFBB0F]/25 mb-6", "data-fg-bi7v240": ":0:/src/app/pages/AIWorkshopPage.tsx:733:11:33997:311:e:div:ete", children: [
36494          /* @__PURE__ */ i(a, { _fgT: E3, _fgS: "bi7v241", _fgB: 1790697589506, size: 13, className: "text-[#EFBB0F]", "data-fg-bi7v241": ":0:node_modules/lucide-react:734:13:34129:51:e:TrendingUp::::::tM8" }),
36495          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bi7v242", _fgB: 1790697589506, className: "text-[#EFBB0F] text-[11px] font-bold tracking-[2px] uppercase", "data-fg-bi7v242": ":0:/src/app/pages/AIWorkshopPage.tsx:735:13:34193:98:e:span:t", children: "Get Started" })
36496        ] }),
36497        /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "bi7v244", _fgB: 1790697589506, className: "font-['DM_Serif_Display'] text-[36px] md:text-[48px] text-[#0B1A2E] mb-6 leading-[1.1]", "data-fg-bi7v244": ":0:/src/app/pages/AIWorkshopPage.tsx:737:11:34319:171:e:h2:t", children: "Ready to move from curiosity to action?" }),
36498        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bi7v246", _fgB: 1790697589506, className: "text-[17px] text-slate-600 leading-relaxed mb-10 max-w-[560px] mx-auto", "data-fg-bi7v246": ":0:/src/app/pages/AIWorkshopPage.tsx:740:11:34501:254:e:p:t", children: "A 30-minute discovery conversation is all it takes to figure out the right workshop format, audience, and entry point for your organization." })
36499      ]
36500    }
36501  ) }) });
36502}
36503const yx = "go-time-annapolis", wx = "Go! Time: Two Years of On-Demand Transit in Maryland's Capital", Tx = "go-time-annapolis", Sx = "Dr. Hesam Rashidi", Bx = "Deployment Notes", kx = "2026-09-01", Ax = "go-time-annapolis-hero", Nx = "How Annapolis replaced two fixed bus routes with on-demand service, expanded walkable transit access by close to a square mile, and what two years of human-centered automated dispatch actually changed.", Ix = "", Px = [], Cx = {
36504  id: yx,
36505  title: wx,
36506  slug: Tx,
36507  author: Sx,
36508  category: Bx,
36509  publishedDate: kx,
36510  headerImage: Ax,
36511  excerpt: Nx,
36512  content: Ix,
36513  downloads: Px
36514}, Fx = "optimizing-dial-a-ride-services-in-maryland", Ex = "Optimizing Dial-a-Ride Services in Maryland", Rx = "optimizing-dial-a-ride-services-in-maryland", Dx = "Nikola Marković, Rahul Nair, Paul Schonfeld, Elise Miller-Hooks (University of Maryland / IBM Research) and Matthew Mohebbi (IT Curves)", zx = "Research", jx = "2021-07-20", Ox = "figma:asset/6a2dfe6e9364f4cd1dadae79a87d992c4d16a57c.png", Vx = "This paper reports on a system developed to address the dial-a-ride problem and an implementation for Maryland where real-world practical constraints are considered. The Mobile Resource Management System (MRMS), developed jointly by IT Curves and the University of Maryland, was deployed at Regency Taxi — yielding an estimated annual cost reduction of $0.82 million (approximately 18% of total operating expense). Preprint submitted to Transportation Research Part C: Emerging Technologies, January 2015.", Hx = `<p><em>Preprint submitted to Transportation Research Part C: Emerging Technologies, January 2015</em></p>
36515
36516<h2>Key Results</h2>
36517
36518<p>Annual operational expense reduction of <strong>$0.82 million</strong> (approximately <strong>18% of total operating expense</strong>) with improved service quality and environmental benefits.</p>
36519
36520<ul>
36521<li><strong>12.8% reduction</strong> in routes, <strong>22.4% decrease</strong> in vehicle-kilometers</li>
36522<li><strong>7-minute computation</strong> for 450 daily requests</li>
36523<li>Fleet optimization: 35-45 vehicles depending on constraints</li>
36524<li>Dynamic optimization handles both pre-scheduled and real-time requests</li>
36525</ul>
36526
36527<p><em>Comprehensive journal paper with mathematical formulations, benchmark testing, and strategic planning insights for dial-a-ride operations.</em></p>`, Zx = [{ title: "Download Full Article (PDF)", url: "https://theorangegraphics.com/designsamples/itc/wp-content/uploads/2021/08/optimal_dial_a_ride-.pdf", type: "PDF" }], Wx = {
36528  id: Fx,
36529  title: Ex,
36530  slug: Rx,
36531  author: Dx,
36532  category: zx,
36533  publishedDate: jx,
36534  headerImage: Ox,
36535  excerpt: Vx,
36536  content: Hx,
36537  downloads: Zx
36538}, $x = "dial-a-ride-solution", qx = "Dial-a-Ride Solution", Ux = "dial-a-ride-solution", Gx = "Nikola Marković, Rahul Nair, Paul Schonfeld, Elise Miller-Hooks (University of Maryland / IBM Research) and Matthew Mohebbi (IT Curves)", Jx = "Research", Kx = "2021-07-20", Yx = "figma:asset/288b299000b5556d9cc09c77679be47935703a53.png", Xx = "This paper describes the development and implementation of a computerized system — the Mobile Resource Management System (MRMS) — for managing shared-ride prescheduled door-to-door transportation services for elderly and disabled passengers. A joint project between IT Curves and the University of Maryland, the MRMS was implemented at Regency Taxi, yielding an estimated annual cost reduction of $0.82 million (approximately 17% of total operating expense).", Qx = `<p><strong>Authors:</strong> Nikola Marković, Rahul Nair, Paul Schonfeld, Elise Miller-Hooks (University of Maryland / IBM Research) and Matthew Mohebbi (IT Curves)</p>
36539
36540<h2>Key Results</h2>
36541
36542<p>Switching from manual to MRMS computerized vehicle routing and scheduling yielded Regency Taxi many benefits with an estimated annual operational expense reduction of <strong>$0.82 million</strong>, or about <strong>17% of total annual expense</strong>.</p>
36543
36544<ul>
36545<li><strong>12.8% reduction</strong> in number of routes</li>
36546<li><strong>22.4% decrease</strong> in vehicle-kilometers traveled</li>
36547<li><strong>
365477-minute computation time</strong> for 450 daily requests</li>
36548<li><strong>12 dispatcher-hours saved</strong> per day in manual route planning</li>
36549<li>Fleet optimization: 35-45 vehicles depending on time window constraints</li>
36550</ul>
36551
36552<p><em>This comprehensive research paper includes detailed mathematical formulations, algorithm descriptions, benchmark testing results, and extensive business analytics demonstrating the MRMS system's effectiveness in real-world operations at Regency Taxi, one of Maryland's largest dial-a-ride service providers.</em></p>`, e_ = [{ title: "Download Full Article (PDF)", url: "https://theorangegraphics.com/designsamples/itc/wp-content/uploads/2021/08/dial_a_ride_solution.pdf", type: "PDF" }], t_ = {
36553  id: $x,
36554  title: qx,
36555  slug: Ux,
36556  author: Gx,
36557  category: Jx,
36558  publishedDate: Kx,
36559  headerImage: Yx,
36560  excerpt: Xx,
36561  content: Qx,
36562  downloads: e_
36563}, a_ = "airport-shuttle-exact-solution", s_ = "Airport Shuttle – Exact Solution", i_ = "airport-shuttle-exact-solution", r_ = "Lei Feng, Elise Miller-Hooks, Paul Schonfeld (University of Maryland) and Matthew Mohebbi (IT Curves / Supreme Airport Shuttle, Inc.)", n_ = "Research", o_ = "2021-08-10", L_ = "figma:asset/67b6ef54d2d1b0506ea9402d781c39b82ca7968e.png", c_ = "A peer-reviewed paper addressing the problem of optimally routing and scheduling airport shuttle vehicles through ridesharing. Formulated as a mixed integer program, with an exact constraint programming solution and two heuristic approaches evaluated on real-world data from Washington Dulles International Airport. Originally submitted to the 2014 Transportation Research Board 93rd Annual Meeting.", l_ = `<p><strong>Submitted for presentation at the 2014 Transportation Research Board 93rd Annual Meeting</strong></p>
36564
36565<p><strong>Authors:</strong> Lei Feng, Elise Miller-Hooks, Paul Schonfeld (University of Maryland) and Matthew Mohebbi (IT Curves / Supreme Airport Shuttle, Inc.)</p>
36566
36567<h2>Abstract</h2>
36568
36569<p>This paper addresses the problem of optimally routing and scheduling airport shuttle vehicles that offer pickup and drop-off services to customers through ridesharing. This problem, which is a version of the Dial-A-Ride Problem (DARP), is formulated as a mixed integer program. An exact solution approach applying constraint programming within a column generation framework is proposed, as well as adaptations of two existing heuristics, for its solution.</p>
36570
36571<figure class="my-8">
36572  <img src="figma:asset/e464cb82891e9b87225eb11cd56eebe5bba7fb05.png" alt="Distribution of pickup and dropoff locations" width="492" class="rounded-xl shadow-lg mx-auto" />
36573</figure>
36574
36575<p>Performance of the proposed approaches in terms of computational requirements and solution quality is evaluated on a real-world case study involving service records for one service day out of Washington Dulles International Airport provided by an actual airport shuttle service provider. Results show that the heuristics provide good approximations to the exact solution.</p>
36576
36577<h3>Key Findings:</h3>
36578<ul>
36579<li><strong>60% improvement</strong> in vehicle utilization (17 vehicles vs. 37 in manual operations)</li>
36580<li>Jaw's algorithm within 7% of exact solution with 1/1200 computation time</li>
36581<li>Three operational policies tested: separate handling, simultaneous handling, and clustered backhauls</li>
36582<li>Real-world validation with 164 outbound and 22 inbound requests from Washington Dulles (IAD)</li>
36583</ul>
36584
36585<p><em>This peer-reviewed research demonstrates practical applications for passenger feeder problems, school bus routing, carpooling, and reverse logistics operations.</em></p>`, d_ = [{ title: "Download Full Article (PDF)", url: "https://theorangegraphics.com/designsamples/itc/wp-content/uploads/2021/08/airport_shuttle_exact_solution.pdf", type: "PDF" }], g_ = {
36586  id: a_,
36587  title: s_,
36588  slug: i_,
36589  author: r_,
36590  category: n_,
36591  publishedDate: o_,
36592  headerImage: L_,
36593  excerpt: c_,
36594  content: l_,
36595  downloads: d_
36596}, f_ = "management-system-for-dial-a-ride-operations", p_ = "Management System for Dial-a-Ride Operations", M_ = "management-system-for-dial-a-ride-operations", u_ = "Matthew Mohebbi (IT Curves) with Elise Miller-Hooks and Paul Schonfeld (University of Maryland); Student Researchers: Nikola Marković, Bing Qi, Lei Feng", h_ = "Research", m_ = "2021-08-10", x_ = "figma:asset/383cc9a4347b75a8a63583ada4c3071702bde6a7.png", __ = "Objective of our MIPS Project: Develop a commercially successful fleet management tool to supp
36596ort paratransit operations as part of the Mobile Resources Management System (MRMS)", b_ = `<p><strong>Industry partner:</strong> IT Curves | <strong>Lead:</strong> Matthew Mohebbi<br /><strong>Academic partner:</strong> Dept. of Civil and Env. Eng., University of Maryland<br /><strong>Co-PIs:</strong> Elise Miller-Hooks and Paul Schonfeld<br /><strong>Student Researchers:</strong> Nikola Marković, Bing Qi, and Lei Feng</p>
36597
36598<p><strong>Objective of our MIPS Project</strong></p>
36599
36600<p>Develop a commercially successful fleet management tool to support paratransit operations as part of the Mobile Resources Management System (MRMS)</p>
36601
36602<figure class="my-8"><img src="figma:asset/118ddc7b2211104bb2ded959b514bd71a27f22f0.png" alt="MIPS Project objective diagram" width="446" height="284" class="rounded-xl shadow-lg mx-auto" /></figure>
36603
36604<p>Include algorithms within the MRMS to enable paratransit operators to efficiently schedule and route vehicles while satisfying various service constraints</p>
36605
36606<p><strong>Paratransit: Dial-a-Ride</strong></p>
36607
36608<p>Better accessibility to public transportation has become an important objective for many transit systems across the world</p>
36609
36610<p>This objective has been partially achieved by installing elevators in metro stations, introducing low-floor buses, and implementing higher platforms</p>
36611
36612<figure class="my-8"><img src="figma:asset/83bf4411a547dc144586c9c4e8719aa68c9f7156.png" alt="Paratransit accessibility" width="440" height="173" class="rounded-xl shadow-lg mx-auto" /></figure>
36613
36614<p>Some handicapped or elderly people need additional help, may find the closest stop to be too far away, or the headway too long to wait</p>
36615
36616<p>Washington Metropolitan Area Transit Authority (WMATA) offers these people a special door-to-door transportation which is often referred to as dial-a-ride (DAR) service</p>
36617
36618<p><strong>Ridership and Eligibility</strong></p>
36619
36620<p>WMATA started providing DAR service in 1994, and since that time the annual ridership has grown from 200,000 to over 2.4 million passengers, making this the sixth largest U.S. DAR operation.</p>
36621
36622<p>WMATA staff determines eligibility to use the service in response to written applications, based on the recommendations from Americans with Disability Act (ADA) from 1990.</p>
36623
36624<figure class="my-8"><img src="figma:asset/c3bdcb20fc965d58d19337b4ee6417e79126e306.png" alt="ADA logo" width="112" height="110" class="rounded-xl shadow-lg mx-auto" /></figure>
36625
36626<p>ADA defines three categories of people who are eligible for paratransit. They include persons who:</p>
36627<ol>
36628<li>Are unable to get on, ride, or get off an accessible public transit vehicle due to a physical or mental impairment</li>
36629<li>Need the assistance of a wheelchair lift or other boarding assistance device, BUT such a vehicle is not available on the route when the individual wants to travel</li>
36630<li>Have a specific impairment-related condition which prevents travel to or from a station or stop on the system</li>
36631</ol>
36632
36633<p><strong>Subsidies</strong></p>
36634
36635<p>Riders pay twice the quickest fixed-route transit fare – up to a maximum of $7 per ride. This does not cover the cost of a trip. To cover the remainder, the local jurisdiction pays WMATA $45 for each trip!</p>
36636
36637<figure class="my-8"><img src="figma:asset/6d0c304e7a41fba46779283a4a397d8eba0957c6.png" alt="WMATA service area map" width="543" height="305" class="rounded-xl shadow-lg mx-auto" /></figure>
36638
36639<p>WMATA does not provide these services directly, but instead contracts the work out to private companies like Challenger Transportation.</p>
36640
36641<p><strong>Trip Requests</strong></p>
36642
36643<p>Customers schedule a trip by specifying:</p>
36644<ul>
36645<li>Pickup and drop-off address</li>
36646<li>Desired pickup or drop-off time</li>
36647</ul>
36648<p>Based on desired pickup or drop-off time the operator can design related time windows.</p>
36649
36650<p><strong>Future Trends in Paratransit</strong></p>
36651
36652<p>Dial-a-Ride service is the fastest growing part of WMATA's budget: Paratransit ridership growth of more than 10% per year is reported for 2006 through 2009, and this trend is expected to continue. This implies that any efficie
36652ncy gained in current operations of Challenger Transportation will only increase in the future.</p>
36653
36654<figure class="my-8"><img src="figma:asset/96ea3096b56acecc1f9d3c48cc9d2a6f5d79fbb5.png" alt="Paratransit growth trends" width="734" height="228" class="rounded-xl shadow-lg mx-auto" /></figure>
36655
36656<p>Similar trends are observed in other paratransit operations: Metro Council of St. Paul, Minnesota warned that paratransit ridership may grow by as much as 6% per year for the next 10 years.</p>
36657
36658<p>In response to these trends, other DAR companies are looking for opportunities to switch to computerized vehicle routing and scheduling:</p>
36659<ol>
36660<li>To reduce manual effort</li>
36661<li>Increase operational efficiency</li>
36662<li>Improve responsiveness to customer needs</li>
36663</ol>
36664
36665<p><strong>Dial-a-Ride Problem (DARP)</strong></p>
36666
36667<p>The dial-a-ride (paratransit) operator seeks to design routes and schedules that:</p>
36668
36669<figure class="my-8"><img src="figma:asset/2d3f1eaa012e05015df2f859cde1c91ab17a2d28.png" alt="DARP problem formulation" width="1024" height="452" class="rounded-xl shadow-lg mx-auto" /></figure>
36670
36671<p>We should distinguish between static and dynamic DARP. In static DARP all the requests are made at least a day in advance and the operator typically allows his dispatchers several hours to design routes and schedules.</p>
36672
36673<figure class="my-8"><img src="figma:asset/cac31caf4fdd22fe83d150c1b5d42af03d07365f.png" alt="Static vs dynamic DARP" width="639" height="202" class="rounded-xl shadow-lg mx-auto" /></figure>
36674
36675<p>In dynamic DARP additional requests may be received on short notice, after some vehicles are already providing service and the operator must quickly assign new requests while considering previously built routes and schedules.</p>
36676
36677<p><strong>Static DARP: Solution Methods</strong></p>
36678
36679<p>Exact methods:</p>
36680<ul>
36681<li>Dynamic programming</li>
36682<li>Mathematical optimization using: Branch &amp; Cut, Branch &amp; Price or integer L-shaped method</li>
36683</ul>
36684
36685<figure class="my-8"><img src="figma:asset/71bba80b8d465ac757ab1f18f22cda23cc52f428.png" alt="Exact solution methods" width="826" height="230" class="rounded-xl shadow-lg mx-auto" /></figure>
36686
36687<p>Heuristic methods:</p>
36688<ul>
36689<li>Cluster first, chain second</li>
36690<li>Insertion heuristic</li>
36691</ul>
36692
36693<figure class="my-8"><img src="figma:asset/dd25b5b4c2c834e524a7c1a58ff1b6d5988afa71.png" alt="Heuristic methods" width="719" height="91" class="rounded-xl shadow-lg mx-auto" /></figure>
36694
36695<p>Metaheuristic methods:</p>
36696<ul>
36697<li>Tabu search</li>
36698<li>Simulated annealing</li>
36699<li>Genetic algorithms</li>
36700<li>Variable neighborhood search</li>
36701<li>Ant colony optimization</li>
36702</ul>
36703
36704<figure class="my-8"><img src="figma:asset/e9f0e79e1481968744d01c0eb5e060ee48914343.png" alt="Metaheuristic methods" width="1004" height="368" class="rounded-xl shadow-lg mx-auto" /></figure>
36705
36706<p><strong>Selecting a Solution Method</strong></p>
36707
36708<p>Company's requirements regarding solution method for static DARP:</p>
36709<ol>
36710<li>To provide feasible solution to problems involving up to 5000 requests</li>
36711<li>To yield a feasible solution within less than 5 hrs of computation time</li>
36712</ol>
36713
36714<figure class="my-8"><img src="figma:asset/e5bb79093872c972eb2a284ddea020d2669baf2c.png" alt="Solution method selection" width="676" height="198" class="rounded-xl shadow-lg mx-auto" /></figure>
36715
36716<p>Based on company's requirements an insertion heuristic was devised. The Parallel Insertion Heuristic (Jaw et al. 1986) was identified as the most promising core algorithm on which to build.</p>
36717
36718<p><strong>Parallel Insertion Heuristic (PIN)</strong></p>
36719
36720<p>Sort all customers by the earliest pickup time (or other criteria). Starting with the first customer and one vehicle:</p>
36721<ol>
36722<li>Insert the customer in vehicle route that has the lowest cost</li>
36723<li>If no vehicle can serve this customer, add vehicle to fleet, and assign this new vehicle to serve the customer</li>
36724</ol>
36725
36726<figure class="my-8"><img src="figma:asset/0685852f870466c2eb8721c4f59b5de75c3d2641.png" alt="Parallel Insertion Heuristic" width="804" height="204" class="rounded-xl shadow-lg mx-auto" /></figure>
36727
36728<p><strong>Modifications</strong></p>
36729
36730<p>Our insertion algorithm differs from the classic PIN in the following ways:</p>
36731<ol>
36732<li>Blocks and Locked Blocks</li>
36733<li>Outlier Procedures</li>
36734<li>Additional Performance Measures</li>
36735<li>Improvement Procedure</li>
36736<li>Rejected-Reinsertion Operator</li>
36737<li>Objective Function(s)</li>
36738<li>Drop-off and Mixed Pick-up/Drop-off Modes</li>
36739</ol>
36740
36741<figure class="my-8"><img src="figma:asset/05cae524ee189cde0b3fcf35a2b212d968d4fd64.png" alt="Algorithm modifications diagram" width="304" height="234" class="rounded-xl shadow-lg mx-auto" /></figure>
36742
36743<p>The above features enabled a state-of-the-art algorithm to be applied in the daily operations of Challenger Transportation.</p>
36744
36745<figure class="my-8"><img src="figma:asset/095a5767fce0eb57c82a67a919adea882102cc40.png" alt="Algorithm in practice" width="259" height="218" class="rounded-xl shadow-lg mx-auto" /></figure>
36746
36747<p><strong>Challenger Case Study</strong></p>
36748
36749<p>The parallel insertion heuristic was tested on real-world data coming from Challenger Transportation.</p>
36750
36751<figure class="my-8"><img src="figma:asset/cc9f3b5eb774dfe7bd59d800688742b3ec5f336d.png" alt="Challenger Transportation case study" width="713" height="215" class="rounded-xl shadow-lg mx-auto" /></figure>
36752
36753<p>Challenger Transportation receives about 450 requests that need to be served on the following day (static DARP). The common time window for specified pickup is 60 min, the maximum route duration is 12 hours, and vehicle capacity is 7 passengers.</p>
36754
36755<p>The parallel insertion algorithm took about 7 min to build a feasible solution.</p>
36756
36757<figure class="my-8"><img src="figma:asset/fef00d5077678e16ccb75269a5c7e5b5be6f0508.png" alt="Algorithm results" width="852" height="343" class="rounded-xl shadow-lg mx-auto" /></figure>
36758
36759<p>We compared the MRMS-based routes with manually built route manifest and concluded that the number of routes and vehicle-km decreased by 12.8% and 22.4%, respectively.</p>
36760
36761<figure class="my-8"><img src="figma:asset/c4276f67b7de01d07887ca24acab55551c2126fd.png" alt="Route comparison results" width="1024" height="368" class="rounded-xl shadow-lg mx-auto" /></figure>
36762
36763<p>Any additional savings?</p>
36764
36765<p>The effects of time windows and route duration limit on fleet size:</p>
36766
36767<figure class="my-8"><img src="figma:asset/007c5c3cf2ef96da72614391f7eb1f36ee139ce9.png" alt="Fleet size effects" width="816" height="385" class="rounded-xl shadow-lg mx-auto" /></figure>
36768
36769<p>
36769Thus, fewer vehicles are needed as the time windows and route duration limits are relaxed.</p>
36770
36771<p>The effects of time windows and route duration limit on operator's cost:</p>
36772
36773<figure class="my-8"><img src="figma:asset/97644761193d90c6610a5d54e016e18b15790a22.png" alt="Operator cost effects" width="816" height="385" class="rounded-xl shadow-lg mx-auto" /></figure>
36774
36775<p>Thus, the operator's cost decreases as the time windows and route duration limits are relaxed.</p>
36776
36777<p>The tool allows for further study to gain insights. For example:</p>
36778
36779<figure class="my-8"><img src="figma:asset/fe04e25ad98773fd9709fb006efd33ec10803093.png" alt="Demand pattern analysis" width="816" height="407" class="rounded-xl shadow-lg mx-auto" /></figure>
36780
36781<p>Steadier demand reduces the fleet and operator costs needed to serve all requests.</p>
36782
36783<p>The effects of vehicle capacity on fleet size:</p>
36784
36785<figure class="my-8"><img src="figma:asset/00bfe9c0798b22764ac6462fc2edf7f5885f492c.png" alt="Vehicle capacity effects" width="651" height="329" class="rounded-xl shadow-lg mx-auto" /></figure>
36786
36787<p>The effects of time windows on system performance measures:</p>
36788
36789<figure class="my-8"><img src="figma:asset/03994b5ed20e6ad599da99fec7340f2c492cded7.png" alt="System performance measures" width="860" height="493" class="rounded-xl shadow-lg mx-auto" /></figure>
36790
36791<p><strong>Dynamic DARP</strong></p>
36792
36793<p>The vast majority (about 90%) of DAR requests are prescheduled; however, new requests can be made for the same day. The operator needs to insert these requests relatively quickly considering previously built routes and current GPS locations of vehicles.</p>
36794
36795<figure class="my-8"><img src="figma:asset/020fea9a518e519770187e0f1c66266fe94c3559.png" alt="Dynamic DARP overview" width="788" height="168" class="rounded-xl shadow-lg mx-auto" /></figure>
36796
36797<p>The Online Insertion Heuristic (Luo 2006), a dynamic extension of the PIN heuristic, was implemented.</p>
36798
36799<p>The logic behind the Online Insertion Heuristic is straightforward. Main ideas:</p>
36800<ol>
36801<li>Freezing the current schedule</li>
36802<li>Inserting the trip into the best position while considering the current vehicle locations</li>
36803</ol>
36804
36805<figure class="my-8"><img src="figma:asset/70f80de0fb6690f509f46e76a5a4f9d09548d9cd.png" alt="Online Insertion Heuristic" width="732" height="265" class="rounded-xl shadow-lg mx-auto" /></figure>
36806
36807<p>Reason for selection:</p>
36808<ol>
36809<li>Computational efficiency</li>
36810<li>Can exploit functions previously coded for the PIN algorithm</li>
36811</ol>
36812<p>Straightforward and easy to explain to customers.</p>
36813
36814<p>The required input for the Online Insertion Heuristic:</p>
36815<ol>
36816<li>General info on the newly requested trips (O/D and time windows)</li>
36817<li>List of stops that were already visited</li>
36818<li>Current GPS positions of vehicles</li>
36819</ol>
36820
36821<figure class="my-8"><img src="figma:asset/674c52b9f71c9c4195751908053db3622c67412c.png" alt="Online Insertion Heuristic input" width="562" height="187" class="rounded-xl shadow-lg mx-auto" /></figure>
36822
36823<p>Dynamic requests were generated for preliminary tests of the algorithm. Other test elements:</p>
36824<ol>
36825<li>Visited stops noted at time of dynamic request</li>
36826<li>Current GPS positions of vehicles – assumed that vehicles were located at the last stop visited prior to receipt of dynamic request</li>
36827</ol>
36828
36829<p>Tests using data provided by Challenger Transportation will be completed by end of project. Missing practical requirements will be identified and addressed.</p>
36830
36831<p><strong>Summary</strong></p>
36832
36833<p>We coded, adapted and tested heuristics for static and dynamic DARP. The algorithms were implemented into the Mobile Resources Management System (MRMS).</p>
36834
36835<figure class="my-8"><img src="figma:asset/85720b196f82dde1bc0243d088be26fb9387d0fa.png" alt="MRMS summary" width="758" height="237" class="rounded-xl shadow-lg mx-auto" /></figure>
36836
36837<p>The MRMS is currently being tested at Challenger Transportation. Challenger Transportation is planning to switch to MRMS based routing and scheduling in upcoming months.</p>
36838
36839<p><strong>Future of MRMS</strong></p>
36840
36841<p>We hope that MRMS will achieve commercial success and become a widely used tool for managing paratransit operations.</p>
36842
36843<figure class="my-8"><img src="figma:asset/85720b196f82dde1bc0243d088be26fb9387d0fa.png" alt="Future of MRMS" width="758" height="237" class="rounded-xl shadow-lg mx-auto" /></figure>
36844
36845<p>We hope that UMD students will continue improving optimization algorithms built into MRMS, making this tool even more effective and powerful.</p>
36846
36847<p><strong>Extensions of MRMS</strong></p>
36848
36849<p>The MRMS can be improved by enhancing the current optimization algorithms and by adding more features. Current algorithms may be improved by:</p>
36850<ol>
36851<li>Building a metaheuristic on top of the current insertion-based heuristic</li>
36852<li>Parallelization of the algorithms (or some of their routines) for speed-up</li>
36853<li>Computing additional measures of effectiveness</li>
36854</ol>
36855
36856<figure class="my-8"><img src="figma:asset/c5197892554312cfa87e06c8ce2ab64e43fd64e2.png" alt="MRMS extensions" width="742" height="169" class="rounded-xl shadow-lg mx-auto" /></figure>
36857
36858<p>Expected new features in a proposed new project include:</p>
36859
36860<p><strong>Phase 1</strong></p>
36861<ol>
36862<li>Continuous optimization of routes in real-time</li>
36863<li>Integrated management of taxi and ridesharing services</li>
36864<li>Multiple categories of users and alternative combinations of price and service levels</li>
36865<li>
36865Improved estimates of travel times through congested regions</li>
36866<li>Reassigning trips among vehicles when some vehicles deviate from their schedules</li>
36867<li>Multiple "depots", including driver homes</li>
36868<li>More detailed labor work rules, cost rates and revenue formulas</li>
36869<li>Responding to trip cancellations, no-shows, vehicle breakdowns and other surprises</li>
36870</ol>
36871
36872<p><strong>Phase 2</strong></p>
36873<ol>
36874<li>Managing transfers among ridesharing vehicles, taxis and other modes</li>
36875<li>Heterogeneous ridesharing vehicles and optimized fleet mix</li>
36876<li>Predicting near-term traffic conditions and demand and preparing accordingly (e.g. by efficiently inserting, removing or repositioning vehicles)</li>
36877<li>Seeking robust solutions that perform well over the range of uncertain future conditions</li>
36878</ol>
36879
36880<p>Improvements attained through this second project will enable even greater efficiencies in paratransit operations, like Challenger Transportation, and the competitiveness of the proposed MRMS management system.</p>
36881
36882<p><strong>Dynamic Dial-A-Ride in the Literature</strong></p>
36883
36884<figure class="my-8"><img src="figma:asset/d3663a41ff2886882507e2fe2397494b6d8b56b2.png" alt="Literature review table 1" width="1024" height="617" class="rounded-xl shadow-lg mx-auto" /></figure>
36885
36886<figure class="my-8"><img src="figma:asset/9a5847f94aee8ed4dd1c105db3d21cc6131345cf.png" alt="Literature review table 2" width="1024" height="626" class="rounded-xl shadow-lg mx-auto" /></figure>
36887
36888<figure class="my-8"><img src="figma:asset/781ad1e00368e8e8cef759a09f8f0c4e82fe59cd.png" alt="Literature review table 3" width="1024" height="620" class="rounded-xl shadow-lg mx-auto" /></figure>
36889
36890<p><strong>Dynamic DARP</strong></p>
36891
36892<figure class="my-8"><img src="figma:asset/7510c30c7cad7f788da02b9e308c6465e2bc465a.png" alt="Dynamic DARP diagram 1" width="1024" height="447" class="rounded-xl shadow-lg mx-auto" /></figure>
36893
36894<figure class="my-8"><img src="figma:asset/0b794281909c6668faca58156580976850d1cdb5.png" alt="Dynamic DARP diagram 2" width="1024" height="447" class="rounded-xl shadow-lg mx-auto" /></figure>`, v_ = [{ title: "Download Article", url: "https://theorangegraphics.com/designsamples/itc/wp-content/uploads/2021/08/management_system_for_dial_a_ride_operations.pdf", type: "pdf" }], y_ = {
36895  id: f_,
36896  title: p_,
36897  slug: M_,
36898  author: u_,
36899  category: h_,
36900  publishedDate: m_,
36901  headerImage: x_,
36902  excerpt: __,
36903  content: b_,
36904  downloads: v_
36905}, w_ = "rides-to-health-connecting-dots-healthcare-transportation", T_ = "Rides to Health: Connecting Dots in Healthcare Transportation", S_ = "rides-to-health-connecting-dots-healthcare-transportation", B_ = "Dr. Bryce Kositz", k_ = "Case Study", A_ = "2021-09-04", N_ = "figma:asset/4775e5c6370a4e2d4e0368e5528397534f442dc7.png", I_ = "Access to transportation is a key social determinant of health. Rides to Health is a specialized brokerage service and technology platform that connects dialysis centers, funding sources, transportation providers, and patients — improving outcomes for every party involved.", P_ = `<p><em>Connecting Dots in Healthcare Transportation</em></p>
36906
36907<h2>Introduction</h2>
36908
36909<p>Access to transportation is a key social determinant of health, particularly for those suffering from kidney disease, who require three round trips a week to their life-sustaining dialysis treatments. Dialysis care, where time is critical for the patient, poses a significant and unique problem for transportation providers since more than an estimated 50% of all dialysis patients depend on public transit. The demand for transportation to dialysis centers burdens ADA paratransit schedules and budgets, and the patients themselves often receive inadequate or incomplete treatment because of transportation failings. More than just affecting transportation agencies and patients, unreliable transportation also hurts the operations and quality of service of dialysis centers. Failures in transportation similarly harm the entire healthcare network and its funding sources by pushing more patients into ambulances and emergency rooms, costing the system more money while providing lower quality of care.</p>
36910
36911<p>Rides to Health is a new service paradigm that links each part of the customer and provider experience in an integrated system, increasing the quality of care and benefitting every party involved. It is a specialized brokerage service, technology, and provider network which solves many of these issues by connecting the dots between dialysis centers, funding sources, transportation providers, and patients themselves. Rides to Health provides each a set of tools to help manage transportation to and from dialysis centers, significantly improving outcomes for all parties.</p>
36912
36913<p>This short article will cover the problems, consider the lessons from prior pilots, and finally discuss the specific methods Rides to Health uses to build upon the lessons to address the issues. Developing a unified system to connect the dots with Rides to Health solves a thorny problem for paratransit providers, dialysis centers, funding sources, and above all patients. This integrated network is not limited to dialysis centers and can further be applied to improve access to all sorts of preventative healthcare, leading to lower costs and greater quality of service.</p>
36914
36915<h2>The Problem</h2>
36916
36917<p>Beyond the clearly vital health problems faced by dialysis patients, their need for reliable transportation produces problems for the patients, paratransit providers, funding sources, and dialysis centers. More than 700,
36917000 people in the US suffer from End Stage Renal Disease (ESRD), meaning total failure of their kidneys. The only treatments for this affliction are either a kidney transplant or dialysis. The dialysis procedure effectively does the job of the kidney, but patients must come in three times a week for three to five hours a session. Already in a weakened state, particularly after the dialysis procedure, patients largely rely on public transit, friends, or family to take their six rides a week to and from their dialysis center.</p>
36918
36919<p>As shown in Figure 1, only a quarter of patients are able to drive themselves, with another 20% depending on friends and family, leaving the majority of dialysis patients reliant on other providers, including public paratransit and private providers.</p>
36920
36921<figure class="my-8">
36922  <img src="figma:asset/205119b26907d9e479c8611fe30149ff2bcc7457.png" alt="Transportation modes used by dialysis patients" width="313" height="392" class="rounded-xl shadow-lg mx-auto" />
36923</figure>
36924
36925<p>Patients dependent on paratransit — which offers non-guaranteed pick-up windows rather than specific arrival and departure times — may arrive late or feel forced to leave the appointment before the course of dialysis is completed lest they miss their ride. Given the required 24-hour booking headway for most paratransit providers, changing their reservation may not be possible if a patient misses their ride. Any delay in treatment can cause significant harm to the patient and an impaired quality of life. Those who arrive late may have to cut their treatment short; similarly, leaving early to catch a ride can cut treatment short. Finally, even if everything goes right on the transportation side, patients may simply not be healthy enough for immediate transportation after the end of their dialysis treatment. Paratransit schedules are generally not agile enough to respond to the needs of dialysis patients.</p>
36926
36927<p>Studies show that 35% of transit agencies reported adverse impacts on their services because of the demand for dialysis trips, including expanding services and increasing budgetary pressure. The most critical finding was that, during peak hours for dialysis, 25% of agencies reported service constraints and had to cancel rides. Such failures to meet ADA mandates to serve all rides can result in costly audits.</p>
36928
36929<p>As Figure 2 shows, dialysis takes up a significant share of transportation resources, comprising 17% of all healthcare transportation. The trend stands to grow with time as the population ages, particularly considering proposals to drop non-emergency medical transportation from Medicaid coverage. These trends have led to a massive increase in paratransit budgets; between 2000 and 2014, paratransit ridership and cost grew precipitously.</p>
36930
36931<figure class="my-8">
36932  <img src="figma:asset/b5e7345b9702006c5b202b394f87cd8744957054.png" alt="Healthcare transportation breakdown by service type" width="320" height="407" class="rounded-xl shadow-lg mx-auto" />
36933</figure>
36934
36935<p>The story of dialysis transportation in Maryland, where IT Curves is currently piloting and developing Rides to Health, is a microcosm of that in the US. About 11,000 Marylanders attend dialysis centers, meaning three round trips a week for 3.3 million trips per year. As of 2013, about 40% drive themselves or are driven by family or friends, 50% took public transit, and only 3% used other government agency transportation. The cost of dialysis to public paratransit in Maryland is estimated between $30 and $40 million — or 15% to 20% of the entire paratransit budget for the state. Increasing funding for paratransit, however, has not been able to solve the problem. It requires an innovative solution that connects the dots between parties, especially dialysis centers.</p>
36936
36937<figure class="my-8">
36938  <img src="figma:asset/0ed86dbb8e51e57678411de19496d882a5ab3872.png" alt="Operating expenditures for demand response services at selected transportation agencies, 2000 to 2014" width="623" height="427" class="rounded-xl shadow-lg" />
36939</figure>
36940
36941<p>For dialysis centers, failures in transportation not only affect the health of their patients, but also limit their ability to serve patients effectively. There is also a direct correlation between the length of time dialysis patients spend in transportation and the likelihood of missing appointments. Total missed appointments across the US cost the healthcare sector an estimated $150 billion. Delayed arrivals similarly disrupt schedules for dialysis centers and lead to inefficiencies in the amount of care that can be provided. Workers at dialysis centers also report spending much of their time helping patients sort out problematic transportation, further stretching existing resources.</p>
36942
36943<p>Finally, there is a lack of coordination among the sources of funding for transportation to dialysis that creates inefficiencies within the network. Public transportation agencies offering paratransit, Medicaid through the non-emergency medical transportation benefit, non-profit funders and transportation organizations, and private insurers offer varying levels of financial support for transportation to healthcare facilities. Rides to Health links these various systems, allowing for the unification of resources into one harmonized platform for more efficient operations, a better cost structure, and a better patient experience.</p>
36944
36945<p>While recognizing the ADA mandate to not limit or prioritize any trip type, dialysis is a major cost for ADA paratransit that all parties suffer from. A unified platform linking patients, paratransit providers, dialysis centers, and funders would remove the problems of communication, lack of availability, and inconsistent timing — decreasing costs, increasing responsiveness for riders, and providing better healthcare outcomes for patients.</p>
36946
36947<h2>Lessons from Prior Studies and Pilots</h2>
36948
36949<p>Many pilots have attempted to optimize the delivery of transportation to dialysis, improve health outcomes, and provide efficiencies for public transportation budgets. Rides to Health builds upon these lessons in providing its centralized brokerage and service.</p>
36950
36951<p>First, pilots have attempted to assign patients more logically to appointments at their nearest facility. This is a Medicaid requirement that private clinics frequently ignore since, as clinics fill up, they send new patients rather than the geographically relevant ones to other centers.</p>
36952
36953<p>Second, dialysis patients have regular schedules because the centers have regular shifts. Changing schedules to arrange patients into proximity groups — allowing for patient choice in scheduling — so that transportation can pick up more people in less t
36953ime and fewer miles can drastically improve transportation times and cost. Similarly, as one van drops off a group, it can wait to pick up the next group, lessening stress for patients and the cost of deployment for transportation.</p>
36954
36955<p>Each of these methods taken in isolation can aid to some small degree in helping dialysis patients access care in a safer, more efficient manner. Combining all three methods will drastically improve health outcomes, increase the cost-effectiveness of transportation solutions, and reduce hospital and state budgets by expanding access to dialysis and even preventative care. Moreover, eliminating the worry over transportation can significantly decrease the stress and anxiety of dialysis patients, leading to better health outcomes. Rides to Health builds upon these lessons to provide a unified solution and centralized network that connects the dots between every party involved.</p>
36956
36957<h2>Rides to Health Connects the Dots</h2>
36958
36959<p>Rides to Health is an integrated transportation brokerage and ride-booking network for dialysis centers. Building on the lessons of prior pilots, Rides to Health links all four parties — patients, dialysis centers, funding sources, and transportation agencies — into an integrated network served by a central system and service platform.</p>
36960
36961<figure class="my-8">
36962  <img src="figma:asset/d8306a80c16b79de54f9671fedf9fd9f8804aad8.png" alt="Health Center integration with Rides to Health platform" width="623" height="427" class="rounded-xl shadow-lg" />
36963</figure>
36964
36965<figure class="my-8">
36966  <img src="figma:asset/065ee1734976ca9ffc38d045bdc748657b47dfc7.png" alt="Patient and rider services provided by Rides to Health" width="623" height="427" class="rounded-xl shadow-lg" />
36967</figure>
36968
36969<p>The system serves patients by providing more versatile and cost-effective options to riders to ensure they attend their appointments. By providing certainty with pick-up and drop-off times to appointments and flexibility for when they leave the dialysis center, no part of their treatment is abridged. The brokerage system also supplies patients with a greater choice of transportation providers as well as providing them with modern transportation services like vehicle tracking and an updating ETA for their trips. Integrated communication software sends timely calls, texts, or app notifications to riders to keep them informed of their trips and imminent pickup, meaning fewer forgotten and missed treatments.</p>
36970
36971<p>Rides to Health serves dialysis centers and healthcare centers by providing an operations screen where they can monitor the ETA of incoming and outgoing rides, allowing staff to reschedule dialysis machine seats as needed. By providing monitoring tools, we provide certainty about the arrival and departure of their patients, so center staff is freed up from assisting patients in finding a vehicle or talking with transit providers to find an appropriate ride home. The monitoring station also allows healthcare staff to change ride schedules to meet the developing medical needs of the patient.</p>
36972
36973<figure class="my-8">
36974  <img src="figma:asset/062073bc2b4719db32abe1b0bd0be5a62558ca77.png" alt="Transportation provider integration and tools" width="623" height="427" class="rounded-xl shadow-lg" />
36975</figure>
36976
36977<p>The Rides to Health platform serves funding sources by providing a unified platform to engage with those patients receiving transportation subsidies and streamline the payment system. The interface includes an extensive eligibility module that verifies patient and trip eligibility according to the rules set by each funding source. A central broker manages the services and allows multiple funding providers to collaborate and find maximal savings and accuracy. The detailed trip records created for each patient cataloging their rides to and from dialysis will also help funding sources reduce fraudulent transportation expenses.</p>
36978
36979<figure class="my-8">
36980  <img src="figma:asset/d58915faa0701de338864ed74de86aa3efedf1a1.png" alt="Funding agency integration and eligibility management" width="623" height="427" class="rounded-xl shadow-lg" />
36981</figure>
36982
36983<figure class="my-8">
36984  <img src="figma:asset/8f085eff9043fef9d2fc2fb8a1d1bbc9192e01cf.png" alt="Central service platform connecting all stakeholders" width="378" height="372" class="rounded-xl shadow-lg mx-auto" />
36985</figure>
36986
36987<p>Finally, Rides to Health reduces costs for transit and paratransit agencies by sending these time-sensitive and often-rebooked trips to more flexible, on-demand transportation providers. The specialized service will better meet the transportation needs of dialysis patients, remove these difficult-to-schedule trips from paratransit schedules, and lead to a much more efficient operation and better budget management for paratransit services.</p>
36988
36989<p>Dialysis is a lifesaving treatment for a disease on the rise throughout the US. However, ESRD does not just affect the patient; their needs affect the communities around them. Rides to Health connects the dots through integration and communication to provide better transportation to this essential service, and thus provide better outcomes for every party along the way.</p>
36990
36991<h3>References</h3>
36992
36993<ol>
36994<li>National Academies of Sciences, Engineering, and Medicine; Transit Cooperative Research Program [TCRP]. <em>Dialysis Transportation: The Intersection of Transportation and Healthcare.</em> Washington DC: National Academies Press, 2019.</li>
36995<li>TCRP, <em>Dialysis Transportation,</em> 28.</li>
36996<li>Ibid, 33.</li>
36997<li>Ibid, 34.</li>
36998<li>Ganuza, Adam and Rachel Davis. "Disruptive Innovation in Medicaid Non-Emergency Transportation." Center for Health Care Strategies Brief, February 2017: 3.</li>
36999<li>Medicaid and CHIP Payment and Access Commission (MACPAC). "Medicaid Coverage of Non-Emergency Medical Trans
36999portation." May 2019.</li>
37000<li>Kaufman, Sarah M. et. al. <em>Intelligent Paratransit.</em> NY: New York University Wagner, Rudin Center for Transportation Policy &amp; Management, 2016.</li>
37001<li>KFH Group, Inc. <em>Legislative Report J00H01.01: Study of Paratransit Services for Dialysis.</em> Prepared for Maryland Transit Administration and Maryland Department of Transportation, 31 October 2013.</li>
37002<li>TCRP, <em>Dialysis Transportation,</em> 33; KFH Group, <em>Study of Paratransit Services for Dialysis,</em> 11.</li>
37003<li>KFH Group, <em>Study of Paratransit Services for Dialysis,</em> 12.</li>
37004<li>Maryland Department of Health. <em>Report on the Maryland Medical Assistance Program's Non-Emergency Medical Transportation (NEMT) Grant Program.</em> 3 October 2019.</li>
37005<li>Ray, Renee Autumn. <em>The Role of Transportation in Improving America's Health.</em> Washington DC: Eno Center of Transportation, 2020.</li>
37006<li>TCRP, <em>Dialysis Transportation,</em> 31.</li>
37007<li>National Academies of Sciences, Engineering, and Medicine. <em>Cost Benefit Analysis of Providing Non-Emergency Medical Transportation.</em> Washington DC: The National Academies Press, 2005.</li>
37008<li>TCRP, <em>Dialysis Transportation,</em> 81.</li>
37009<li>Ibid, 103, 107, 109.</li>
37010<li>Health Research and Educational Trust. <em>Social Determinants of Health Series: Transportation and the Role of Hospitals.</em> Chicago: Health Research and Educational Trust, November 2017.</li>
37011</ol>`, C_ = [], F_ = {
37012  id: w_,
37013  title: T_,
37014  slug: S_,
37015  author: B_,
37016  category: k_,
37017  publishedDate: A_,
37018  headerImage: N_,
37019  excerpt: I_,
37020  content: P_,
37021  downloads: C_
37022}, E_ = "commingling-effects-of-microtransit", R_ = "Commingling Effects of Microtransit", D_ = "commingling-effects-of-microtransit", z_ = "Dr. Bryce Kositz", j_ = "Industry Insights", O_ = "2021-10-18", V_ = "figma:asset/02725254758f020044c37b31c6ca41922f8e9c7b.png", H_ = "In most areas, public transportation services are offered in silos rather than as an integrated system. IT Curves explores how commingling transit modes — paratransit, fixed route, and microtransit — creates higher efficiency, expanded coverage, and greater equity for both urban and rural agencies.", Z_ = `<p><em>Integrated Transit Modes for Urban and Rural Agencies</em></p>
37023
37024<p>In most areas, urban and rural, public transportation services are offered in silos rather than as an integrated system, leading to a lack of efficiency. Commingling of transit modes offers higher efficiency and allows for the addition of microtransit — technology-enabled demand-response transportation — which is an important and perhaps necessary feature in today's transit.</p>
37025
37026<p>IT Curves has drawn on the past decade of expertise to develop a smarter approach to employing commingled microtransit as a glue to integrate and improve all other modes of transportation in the public transit system. IT Curves breaks down the walls between existing siloed transit services, improving efficiency by connecting the dots between riders and their public transit. By using friendly rider interactivity tools and powerful shared ride dispatch infrastructure, public transit can achieve a highly productive Mobility-as-a-Service that integrates all modes of service.</p>
37027
37028<figure class="my-8">
37029  <img src="figma:asset/02725254758f020044c37b31c6ca41922f8e9c7b.png" alt="Microtransit Solutions - Combine Fixed, Flex, and Paratransit Routes" width="269" height="530" class="rounded-xl shadow-lg mx-auto" />
37030</figure>
37031
37032<p>A complete transit agency software system needs to include easy to use rider interactivity tools, a dynamic routing suite, a comprehensive rider eligibility system, a flexible fare calculation and payment system, and a vehicle communication software with a fraud proof service usage control through reliable automated rider recognition.</p>
37033
37034<p>The goal of this report is to accumulate the lessons of public pilots and research papers to show how IT Curves' specialized software easily allows for commingled fleets and riders to better leverage the strengths of microtransit and expand service across transit networks. First, we consider the lessons for urban transportation systems and how commingled paratransit and microtransit can enhance and expand both the fixed route and paratransit usage. Second, we look at how the unique services provided by rural systems should be integrated into a network of paratransit, fixed route, and microtransit. Finally, we look at lessons in equity and access for both urban and rural systems.</p>
37035
37036<h2>Supporting Urban Fixed Routes</h2>
37037
37038<p>The IT Curves system commingles paratransit and microtransit so that, not only are paratransit riders encouraged to transfer to fixed routes, but paratransit vehicles' excess capacity can also serve additional on-demand riders. High-capacity fixed routes including large buses and subways are, and in many routes will remain, the foundation of a public transportation system. Commingled paratransit and microtransit, however, enhances and increases the overall usage of transit and expands equity in on-demand mobility.</p>
37039
37040<p>Microtransit will complement high-performing fixed routes and profoundly improve public transit routes in low density or geographically challenging areas. In suburban or low-density areas, microtransit's smaller vehicles are able to operate more efficiently than large buses. Moreover, the flexibility of on-demand services expands the zone of service and ensures that empty buses do not go up and down fixed routes. In these areas, on-demand microtransit services can bring in new ridership. For example, a microtransit pilot in Seattle showed that many riders served by microtransit came from areas outside of walking distance to the nearest fixed-route stations.</p>
37041
37042<p>Paratransit vehicles operating in such areas can offer this microtransit service using their excess capacity. Using excess capacity is beneficial for paratransit in two ways. First, commingled services increase the load of paratransit vehicles and thus increases the efficiency of the vehicle. Second, since the vehicles will visit transportation hubs for the microtransit vehicles anyway, transit agencies may choose to offer paratransit riders incentives such as lower or free fare to transfer to fixed-route transit for all or part of their trips. This discourages long trips on the expensive paratransit network, resulting in more passengers per hour with shorter rides, and creating excess fleet capacity for on-demand services to cover additional areas.</p>
37043
37044<p>IT Curves utilizes the lessons of prior pilots and implements our integrated transportation software to improve service and increase transit efficiency through innovative uses of technology. Some of the key points are: first, these flexible commingled paratransit vehicles should make regular stops at the hub point where they transfer riders to or from other public transit. A report on the Alameda-Contra Costa Transit District noted that almost twice as many passengers board Flex at BART stations, rather than scheduling Flex to go to BART stations. By having microtransit vehicles appear regularly at the hub station, it can greatly increase the productivity of that vehicle while also providing access to those without smartphones or apps.</p>
37045
37046<figure class="my-8">
37047  <img src="figma:asset/8e0902ebf32faf773dd2dc400d21896c01c53550.png" alt="Accessible transit van service for wheelchair users" width="800" height="542" class="rounded-xl shadow-lg" />
37048</figure>
37049
37050<p>During a pilot in LA, the city opened up three microtransit zones linked to fixed-route stations where users could book rides to or from the station to other locations in each zone, and that platform successfully delivered rides to users who summoned it. The pilot in Seattle, based on a similar model, showed increased ridership at stations served by microtransit. By structuring schedules around a few key points, it can build a ridership and entice new riders into the transportation network. Microtransit helps urban areas to integrate other services, using excess capacity in paratransit to expand the reach of the network.</p>
37051
37052<h2>Integrating Rural Services</h2>
37053
37054<p>Public transit agencies in rural areas face distinct problems from their urban counterparts and are positioned to benefit most from applying the integrated fleets commingling their services and employing powerful technology offered by IT Curves. Rural agencies run multiple, overlapping services for specific populations or purposes, including paratransit, shopping circulars, shuttles for elderly riders, on-demand services, and limited fixed routes. They also work in sparsely populated areas, often in difficult terrain. The difficulty and expense of providing so many separate services constrains the size, capabilities, and responsiveness of each of these services.</p>
37055
37056<p>There are several fundamental system concepts that the underlying technology must support to be able to offer commingled fixed, paratransit, and on-demand microtransit services: dynamic routing capabilities, flexible stops, and rider interactivity tools. The IT Curves approach has technologies for each that allows the commingling of the various services and rider bases to build a fully integrated, on-demand, mixed service fleet.</p>
37057
37058<p>First, dynamic routing means the route maker and dispatch system needs to be capable of dynamically, in real-time, changing vehicle routes and manifests. Dynamic routing adjusts the vehicle route by looking ahead at each stop and only routing the vehicle to those stops where there is registered demand. Dynamic routing preserves stops at ride generators and major transit hubs even if there is no registered demand, because it assumes there will be walk-on riders at these stops.</p>
37059
37060<p>Second, the system is preconfigured for a number of flexible stops, where the vehicles are routed to those stops only when there is registered demand. These stops can be placed in convenient locations riders can walk to, as is the case for Wilson, NC, which replaced their entire public transit system with microtransit. This not only eliminates vehicle detours to stops where there is no demand, it ensures that stops are in locations which reduce vehicle miles travelled. Different rider bases can be served by different rules; for example, paratransit riders can receive door-to-door service while other riders are asked to walk to a flexible stop nearby.</p>
37061
37062<p>Third, these flexibilities offered by dynamic routing, flexible stations, and same-day on-demand service require powerful rider interactivity tools. These tools allow users to be connected to the system, give and receive information, book rides, negotiate pickup and drop-off times, track their rides, and more. In short, a dynamic system of routing and stops requires dynamic information exchange with riders.</p>
37063
37064<p>The three tools all work together to increase productivity because they reduce the number of stops, break down the walls between siloed services, and allow rural agencies to serve more people more equitably. Using dynamic routing and flexible stops, vehicles skip areas of no demand and make fewer stops as a result. Commingling fleets and services makes all currently partitioned services more productive by allowing for better usage of shared available resources. Rural agencies can ill afford to have empty vehicles and overlapping services leading to excess costs. Integrated fleets which primarily serve one purpose, while flexibly serving other demand where their capacity and location allows, create efficiencies throughout the entire system.</p>
37065
37066<h2>Equity and Control of Services</h2>
37067
37068<p>Public transit is committed to equity of services — providing equal cost, quantity, and quality of service to all citizens with different physical, mental, and financial capabilities in the transit coverage area. Controlling fleets and services is vital to achieving this goal.</p>
37069
37070<figure class="my-8">
37071  <img src="figma:asset/a54eb23cbda4cec9ea9cd75b96453ff293129386.png" alt="Facial recognition technology for secure rider identification" width="800" height="542" class="rounded-xl shadow-lg" />
37072</figure>
37073
37074<p>Some transit agencies have tried to contract microtransit services out to Transportation Network Companies (TNCs), which poses many problems. First, TNCs' services are predominantly designed as one-size-fits-all for a certain demographic of highly mobile, digitally literate, and credit card-e
37074nabled people. Second, driver training to serve people with physical and mental challenges and provision of specialized equipment remains a barrier for TNCs. Not only is contracting out contrary to the mission of transit agencies, but because TNCs bill per ride, the success of microtransit pilots linearly increases the cost of third-party services. However, efficient route building shows that taxi or TNCs can be very effective in limited uses such as serving overflow rides or outlier trips, helping transit agencies ensure that no trip goes unserved in periods of unexpectedly high demand.</p>
37075
37076<p>Most importantly, a third-party service cannot bind together and improve the other modes of service. To successfully commingle services, transit organizations need to be able to monitor transportation data. By controlling their fleet and data, microtransit can commingle with other services, adapt as needed, and develop into a key component of transportation planning.</p>
37077
37078<h2>Ingredients for Commingled Microtransit</h2>
37079
37080<p>This paper provides practical considerations in how transit agencies can integrate microtransit in transit networks, fleets, and services. To reach such levels of integration and service, transit agencies need several key technologies:</p>
37081
37082<p><strong>1) Rider interactivity tools</strong> are required to register demand, allowing agencies to use flexible stops, dynamic route building, and provide on-demand services. IT Curves' Where's My Ride system provides riders with methods to register demand, track their ride, receive status, automate onboarding, pay for service, and monitor their receipts.</p>
37083
37084<p><strong>2) A dynamic and efficient route-making algorithm</strong> can commingle paratransit, fixed transit, and microtransit into an integrated network of riders and services. The system must consider rider needs, vehicle capabilities, and other attributes while automatically dispatching rides. IT Curves' Efficient Ride Sharing Algorithm is an example of a flexible route builder that can be deployed for all modes of service.</p>
37085
37086<p><strong>3) A comprehensive rider eligibility system</strong> manages which riders and trips are eligible for what services and funding sources. The eligibility system allows for multiple sources of funding for a single ride or rider. A sophisticated eligibility engine allows for seamless commingling of riders and services.</p>
37087
37088<p><strong>4) A flexible fare and payment system</strong> that can calculate and automatically charge the correct fare to the rider and each of the funding sources. In rural areas, fare structures may differ for different service modes and different riders. The IT Curves payment system, utilizing a rider wallet, automatically charges the correct amount even for transfer rides.</p>
37089
37090<figure class="my-8">
37091  <img src="figma:asset/7eeedccf52e9a4eb8e0cdf79c865e376275f8215.png" alt="IT Curves commingled microtransit technology stack" width="800" height="542" class="rounded-xl shadow-lg" />
37092</figure>
37093
37094<p>By leveraging these four key technologies, transit agencies can break down the walls between siloed services and build an integrated, efficient, and equitable public transit system that serves all riders better.</p>`, W_ = [], $_ = {
37095  id: E_,
37096  title: R_,
37097  slug: D_,
37098  author: z_,
37099  category: j_,
37100  publishedDate: O_,
37101  headerImage: V_,
37102  excerpt: H_,
37103  content: Z_,
37104  downloads: W_
37105}, q_ = "wheres-my-ride-rider-interactivity-tools-ai-inside", U_ = "Where's My Ride (Rider Interactivity Tools, AI Inside)", G_ = "wheres-my-ride-rider-interactivity-tools-ai-inside", J_ = "Dr. Bryce Kositz", K_ = "Technology", Y_ = "2021-11-06", X_ = "figma:asset/73432ee76cfeab1db2f34208e0b0ebf18e9c41c8.png", Q_ = "IT Curves' Where's My Ride is a complete rider interactivity suite — combining a smart phone app, Interactive Voice Response, and AI-powered onboarding tools to give transit riders full control of their travel experience, from booking to payment to real-time navigation.", eb = `<p><em>Rider Interactivity Tools, Artificial Intelligence Inside</em></p>
37106
37107<h2>Introduction</h2>
37108
37109<p>A complete, intelligent transportation solution consists of four major segments: onboarding, reservations, dispatch and routing, and the user experience, with each segment consisting of multiple modules. Every segment and its modules are essential for the functioning of the whole, end-to-e
37109nd, efficient system. However, many Intelligent Transportation Management Software (ITS) suppliers today do not provide open APIs between these segments and modules.</p>
37110
37111<p>In a mature industry, often different sets of vendors specialize in one or more area and compete to create the most optimal, complex, and thorough components in their area of specialty. These specialized vendors design their components with open API or standardized API, allowing plug-and-play integration with other vendors' equally complex components. These multi-vendor cooperative systems result in an end-to-end, integrated, best of breed suite of components creating a seamless, efficient, and well supported operational system.</p>
37112
37113<figure class="my-8">
37114  <img src="figma:asset/7cd64dff8d00d5754e0027dc12f15cb3732a903e.png" alt="Google Maps showing beacon detection for rider navigation" width="518" height="600" class="rounded-xl shadow-lg" />
37115</figure>
37116
37117<figure class="my-8">
37118  <img src="figma:asset/8fba95ce6beab9e90f39e9ad69ca15376735443e.png" alt="IT Curves integrated transportation framework" width="617" height="268" class="rounded-xl shadow-lg" />
37119</figure>
37120
37121<p>IT Curves specializes in the User Experience segment, with our offerings consisting of multiple, excellent, and field-tested modules. The rider experience spans from reservations, ride tracking, splitting fare by travel segment, calculation of copay, onboarding using facial recognition, and payment processing using online rider wallet, and more.</p>
37122
37123<p>The automation of the rider experience is particularly important not only to improve the user experience and enhance business operations, but to prepare for the future of autonomous vehicles. Artificial intelligence and intelligent reality augmentation features will be necessary to replace all the other actions taken by drivers, including onboarding riders, processing payment, and other functions without human intervention. These actions are even more crucial for riders with either physical or mental disabilities and provide increased accessibility even prior to the introduction of autonomous vehicles.</p>
37124
37125<p>In this paper, we will describe some of the innovative development work IT Curves has undertaken to improve the Rider Experience. Some of this work was funded by a 2021 Federal Transit Administration Mobility for All grant.</p>
37126
37127<h2>Where's My Ride</h2>
37128
37129<p>The IT Curves system commingles paratransit and microtransit so that, not only are paratransit riders encouraged to transfer to fixed routes, but paratransit vehicles' excess capacity can also serve additional on-demand riders. High-capacity fixed routes including large buses and subways are, and in many routes will remain, the foundation of a transit network.</p>
37130
37131<p>The Where's My Ride system features a smart phone app for riders, an interactive telephony system, and an interactive rider recognition and onboarding suite. Where's My Ride is not only easy for customers to use — it has features for all customers of any age or skill — but also is proven to create efficiencies for business. Using Where's My Ride, riders can book rides and answer other common questions automatically, rather than reach a call center agent. This reduces the cost of business, but more importantly, the application opens innovative possibilities for the integration of new technologies. The goal is for Where's My Ride to allow users to complete all trip functions under rider own control using the provided interactivity tools.</p>
37132
37133<figure class="my-8">
37134  <img src="figma:asset/89218ad2fdc869c8f5e2c2f77203c96cd5d38803.png" alt="AI-powered transit technology" width="800" height="471" class="rounded-xl shadow-lg mx-auto" />
37135</figure>
37136
37137<p>Microtransit will complement high-performing fixed routes and profoundly improve public transit routes in low density or geographically challenging areas. In suburban or low-density areas, microtransit's smaller vehicles are able to operate more efficiently than large buses. Moreover, the flexibility of on-demand services expands the zone of coverage.</p>
37138
37139<figure class="my-8">
37140  <img src="figma:asset/e33a08c206cba55a011a598f053e5c46ae6be835.png" alt="Access app trip planning interface" width="221" height="440" class="rounded-xl shadow-lg mx-auto" />
37141</figure>
37142
37143<h2>Trip Planner and Public Transit</h2>
37144
37145<p>Where's My Ride can provide mixed-mode travel planning and navigation, allowing booking for demand-response paratransit mixed with fixed transit routes. The app's innovation is in offering fixed transit planning capabilities to the paratransit ridership. Using comprehensive accessibility data on each stop and vehicle and correlating that information to the individual rider's mobility needs, the app identifies which routes the rider can take. The app can also plan out multi-modal trips, so riders with mobility needs can take paratransit to a stop where they can transfer to an accessible fixed route. Decreasing the usage and length of paratransit trips greatly increases the cost efficiency of the network.</p>
37146
37147<p>From the app, users will see the screen displayed here to set their origin, destination, preferred time of either arrival or departure, and search for public transit routes. The app will offer multiple options to the rider based on their mobility needs and the potential routes available. Because each user profile, which is necessary to log into the app, contains the rider's mobility needs, the search is automatically filtered for their mobility requirements. The app is fully capable of planning out trips across multiple modes of transit and offering the rider choices, from full-price door-to-door paratransit to discounted trips on fixed route public transit. The navigation functions, covered later, will help all users be confident in their ability to transfer between rides and through busy depots to find their next vehicle.</p>
37148
37149<h2>Rider Digital ID</h2>
37150
37151<p>IT Curves' IVO app installed on an android tablet inside a vehicle verifies the Digital ID of riders using their face or QRC on rider ID Card or on rider's app. This allows for c
37151ontactless, reliable, and secure identification of riders for many different uses, all of which improve the speed and efficiency of business operations. Forms of Digital ID include facial recognition, QR codes, and could be enhanced to offer near field communications. All these forms can be used individually or in tandem to enable multifactor identification. Whether alone or as part of a multifactor identification process, all reduce the incidence of fraud through reliable identification of riders.</p>
37152
37153<figure class="my-8">
37154  <img src="figma:asset/b1177a278f9181172c77271948a3ac54d9c8f4b0.png" alt="Digital ID QR code verification on tablet" width="500" height="491" class="rounded-xl shadow-lg mx-auto" />
37155</figure>
37156
37157<h2>Automatic Onboarding and Offboarding Using Digital ID</h2>
37158
37159<p>Using facial recognition, other Digital ID, or Bluetooth Low Energy (BLE) beacons, riders can be onboarded and offboarded automatically, reducing manual input or error by drivers. Particularly useful in paratransit or other demand-response transportation, using Digital ID to onboard riders reduces the incidence of fraud and improves the efficiency of service. For riders, automatic onboarding improves their experience by providing contactless service and expediting the ride.</p>
37160
37161<p>By detecting either a form of Digital ID or the Bluetooth signal of the phone associated with the user's app, the system determines if the rider has an unperformed trip, identifies the rider, and automatically onboards the rider by issuing commands to the dispatch system to update trip status automatically. Riders and drivers spend less time managing their ride, improving overall service and satisfaction.</p>
37162
37163<figure class="my-8">
37164  <img src="figma:asset/9247c8fdc9fa602057120d86530d9ddf5db4a920.png" alt="Facial recognition for rider identification" width="500" height="491" class="rounded-xl shadow-lg mx-auto" />
37165</figure>
37166
37167<figure class="my-8">
37168  <img src="figma:asset/26183c86d42a6313e1ad07cf7ccb3d838ddc49f1.png" alt="Trip status updated as PICKUP - automatic onboarding process" width="820" height="715" class="rounded-xl shadow-lg" />
37169</figure>
37170
37171<h2>Rider Wallet Module</h2>
37172
37173<p>The rider wallet makes fare payment, billing, and calculating copay an integral part of the system. Payments are directly tied to rides, reducing fraud and mistakes. This functionality carries through to our comprehensive rider receipt history and balance reporting capabilities.</p>
37174
37175<figure class="my-8">
37176  <img src="figma:asset/860baeaed02c95b809929419c4e1fd6cf7f5f538.png" alt="Access app payment options and card management" width="900" height="413" class="rounded-xl shadow-lg" />
37177</figure>
37178
37179<p>The wallet feature is especially useful for elderly and disadvantaged riders who may not use credit cards. These riders can fill their wallet periodically by sending check or money order to transit or funding agencies. The wallet is used solely for ride copayments. Riders may also elect to refill their wallet with a credit card of their own or that of their guardians. To protect the credit card, IT Curves does not hold card data in the app or the IT Curves cloud; instead, private tokens are established with credit card companies. Riders can set the wallet to charge the credit card to top up their wallet to an amount they determine as soon as the amount in the wallet falls below a certain threshold. They can also access their wallet to view their balance and detailed transaction history.</p>
37180
37181<h2>Automatic Fare Payment</h2>
37182
37183<p>The wallet integrates with Digital ID and automatic onboarding to ensure that payments are automatically deducted upon either onboarding or offboarding. Greater automation creates greater eff
37183iciencies in the provision of services. Importantly, the integration of cashless payment reduces the incidence of fraud, prevents riders from losing paper tickets or cash, improves farebox recovery, and simplifies or eliminates reconciliation of driver collections.</p>
37184
37185<p>Using Digital ID or Bluetooth capabilities, riders can be charged immediately upon onboarding or offboarding. The app notifies the rider of their successful onboarding, of the deduction of fare from their account, and if their balance is running low. Riders will have full information about and control over their fare payment and history. Calculations are made immediately even for complicated fares including splitting fare between copayments and subsidies from funding agencies.</p>
37186
37187<figure class="my-8">
37188  <img src="figma:asset/67c8e187b18256522f80127813a9e9865b0cc124.png" alt="Payment successful confirmation screen" width="221" height="440" class="rounded-xl shadow-lg mx-auto" />
37189</figure>
37190
37191<h2>Guide Rider to a Station or Vehicle</h2>
37192
37193<p>BLE devices are widely used today for many Internet of Things applications. IT Curves programs and installs a BLE device in vehicles serving paratransit or fixed routes. These BLE devices periodically transmit a signal containing the vehicle ID and other program information. Riders' smart phone apps detect the BLE signal from up to 150 feet, and via voice command, device vibration, and visual tools, inform the riders that their specific assigned vehicle is approaching the station. Where's My Ride app can also navigate riders to their vehicles. This BLE guidance is especially useful for visually challenged riders.</p>
37194
37195<p>In addition, Where's My Ride integrates with another smartphone app, "Seeing I Go," which is designed for navigation through difficult areas, including complex transit hubs, transfer stations and other facilities of interest. Several BLE devices are programmed to transmit their special IDs and installed in strategic places throughout the building such as doorways, escalators, elevators, and service counters. These inexpensive and simple BLE devices transmit points to virtually map the building layout for the "Seeing I Go" app to help the individual navigate to their point of interest. This vastly improves the accessibility of vehicles and transfer stations, allowing riders who experience difficulty finding vehicles or navigating through bus stops to fully enjoy and utilize public transit.</p>
37196
37197<figure class="my-8">
37198  <img src="figma:asset/0a0ab5c4fbd51741cab85784f8055aef346d3c13.png" alt="IT Curves complete framework - Onboarding, Reservations, Dispatch & Routing, and User Experience" width="500" height="611" class="rounded-xl shadow-lg" />
37199</figure>
37200
37201<p>The same BLE beacons installed in vehicles which provide automatic onboarding and offboarding communicate with rider apps to notify riders where their vehicle is waiting. Using the rider's vehicle and trip information, Where's My Ride identifies the beacon ID of the destination vehicle or location and navigates the rider to that destination. Navigation can be by visual aid, audible directions, or text notifications depending on the preferences of the app user. IT Curves has performed extensive testing to estimate distance with the utmost accuracy and ensure that passengers navigate to their destination. These BLE beacons can be placed not only in vehicles and throughout transit stations, but in important locations such as hospitals or other participating public buildings to help integrate public transit and increase accessibility.</p>
37202
37203<p>As a rider interactivity tool, Where's My Ride is designed to grow and accommodate all rider needs in an integrated system. From providing the core functionalities of a booking app to offering extensive Bluetooth beacon capabilities including automatic vehicle onboarding and individualized navigation through busy transit hubs and buildings — Where's My Ride will be a one-stop rider interactivity tool for all public transit functions now and into the future.</p>`, tb = [], ab = {
37204  id: q_,
37205  title: U_,
37206  slug: G_,
37207  author: J_,
37208  category: K_,
37209  publishedDate: Y_,
37210  headerImage: X_,
37211  excerpt: Q_,
37212  content: eb,
37213  downloads: tb
37214}, sb = "enhancing-transit-services-rider-centric-interactivity", ib = "Enhancing Transit Services through Rider-Centric Interactivity", rb = "enhancing-transit-services-rider-centric-interactivity", nb = "Matthew Mohebbi, CEO", ob = "Technology", Lb = "2023-09-15", cb = "figma:asset/cb6e05888884648ed42021ba68d3956536a5ac6e.png", lb = "For decades, US transit agencies have grappled with improving operational efficiency — especially in rural and suburban areas. The solution lies in shifting from fixed transit models to flexible micro-transit powered by smart apps and IVR systems, putting riders at the center of the experience.", db = `<p>For decades, US transit agencies have grappled with the challenge of improving operational efficiency. This issue is particularly acute for rural and suburban transit operators, given the sparsely populated areas they cover, often far from major transit routes.</p>
37215
37216<h2>Transit Performance Metrics</h2>
37217
37218<p>State and federal transportation agencies have made efforts to establish universal Key Performance Indicators (KPIs) to measure and enhance the overall performance of US transit systems. Examples of these indices include:</p>
37219
37220<p><strong>
37220Passengers Served Per Hour (PAX-Hr):</strong> This KPI measures the number of passengers boarding at each stop, which drives the PAX/Hr metric. While useful, it can be a rough index, as it favors routes with numerous short trips.</p>
37221
37222<p><strong>Passenger Miles Per Hour (PAX-Miles-Hr):</strong> This KPI multiplies the number of passengers by the miles traveled in an hour, offering a more accurate reflection of capital and operating expenses per mile of travel.</p>
37223
37224<p>Many other KPIs are designed to normalize these indices as percentages for comparison or benchmarking purposes. Examples include percentages of Pax-Hr/Service Hours and PAX-Miles/Service Miles, among others.</p>
37225
37226<p>Arguably, the most critical performance indicator for transit agencies is determining their overall cost per PAX-Mile, which is often unreasonably high in rural and suburban areas. The solution lies in increasing ridership to optimize capital and operating expenses per mile traveled. However, agencies often find increasing ridership to be challenging, if not impossible, due to a lack of focus on the riders' perspective.</p>
37227
37228<h2>Riders' View of Performance Metrics</h2>
37229
37230<p>A cursory examination of performance indicators reveals that they often overlook what riders truly value in public transit:</p>
37231
37232<p><strong>Convenience:</strong> This is measured by the proximity of the nearest stop to a rider's residence, workplace, or other destinations. Inconvenience, such as having to find alternative transportation to reach a suitable stop, can deter potential riders.</p>
37233
37234<p><strong>Coverage:</strong> Riders want to know if their residence, workplace, and other points of interest are covered by public transit. Expanding the number and spread of stops can increase coverage and make transit more appealing to a broader population.</p>
37235
37236<p><strong>Connections:</strong> The number of routes requiring transfers can lead to detours and longer travel times. Simplifying connections can make public transit more attractive.</p>
37237
37238<h2>Changing the Paradigm: Flexible Micro-Transit and Enhanced Rider Interaction</h2>
37239
37240<p>The solution lies in shifting from the traditional fixed transit model to one that leverages the capabilities of smart apps and Interactive Voice Response (IVR) systems. Today, riders can access real-time information, submit travel requests, and negotiate for the best travel options online. This flexibility empowers transit agencies to innovate with new micro-transit services, moving away from rigid schedules and fixed stops to a demand-driven model.</p>
37241
37242<p>For instance, an agency operating 10 bus routes with 15 fixed stops each could transition to a model with three times as many virtual stops (e.g., 450) and schedule routes to stop only where there is demand. This approach increases convenience and coverage, attracting more riders, ultimately reducing costs per rider and per PAX-Mile.</p>
37243
37244<p>While managing 450 virtual stops may seem daunting, statistical scheduling is not new to various industries. The size and timing of this paradigm shift can be controlled by agencies, but it is imperative to embark on this transformation sooner rather than later.</p>
37245
37246<figure class="my-8">
37247  <img src="figma:asset/f19412db2ecef1d537f6ff432b9d5ca96df8ab8c.png" alt="Access app interface showing announcements, tracking, notifications, and feedback features" width="1005" height="530" class="rounded-xl shadow-lg" />
37248</figure>
37249
37250<figure class="my-8">
37251  <img src="figma:asset/cb6e05888884648ed42021ba68d3956536a5ac6e.png" alt="Mobile transit app with real-time location tracking" width="1024" height="611" class="rounded-xl shadow-lg" />
37252</figure>`, gb = [], fb = {
37253  id: sb,
37254  title: ib,
37255  slug: rb,
37256  author: nb,
37257  category: ob,
37258  publishedDate: Lb,
37259  headerImage: cb,
37260  excerpt: lb,
37261  content: db,
37262  downloads: gb
37263}, pb = "enhancing-public-transit-efficiency-microtransit-planning-optimization", Mb = "Enhancing Public Transit Efficiency through Microtransit Planning and Optimization", ub = "enhancing-public-transit-efficiency-microtransit-planning-optimization", hb = "Abhijeet Nawale", mb = "Technology", xb = "2023-10-06", _b = "figma:asset/7fa1a16c30624679815c1e2081c102453e21aa20.png", bb = "Transit planners in suburban and rural areas face growing challenges balancing vehicle allocation, underserved stops, and limited fleet resources. IT Curves has developed a cutting-edge microtransit planning tool that uses population distribution data and real passenger demand to optimize routes and stops — with a live Sandbox environment available to all partnered agencies.", vb = `<p>Public transportation plays a crucial role in addressing urban mobility challenges and alleviating traffic congestion. However, in suburban and rural areas there are additional challenges, such as covering larger areas with dispersed populations and limited fleet resources. Transit planners continually grapple with the task of balancing vehicle allocation, driver schedules, underserved areas, underutilized stops, low passenger miles, and excessive vacant miles. The efficiency and effectiveness of public transit systems are pivotal factors in promoting sustainability across urban, suburban, and rural regions.</p>
37264
37265<p>Recent technological advancements have ushered in innovative solutions aimed at enhancing the efficiency and accessibility of public transit systems.</p>
37266
37267<p>This article delves into the development and application of a cutting-edge microtransit planning tool, specifically designed to optimize transit routes and stops based on population distribution and passenger demand. As part of our research endeavors, IT Curves has created a Sandbox environment, which will be readily accessible to all our partnered transit planning agencies. This platform allows for a comprehensive analysis of current transit services and the review of suggested improvements within the plan.</p>
37268
37269<figure class="my-8">
37270  <img src="figma:asset/824782ace3e8339710324188c16de2ff5e6a95d1.png" alt="IT Curves microtransit planning tool" width="750" height="363" class="rounded-xl shadow-lg" />
37271</figure>
37272
37273<h2>Introduction</h2>
37274
37275<p>IT Curves has developed an emerging microtransit planning tool that offers a promising solution to improve transit service quality. This paper presents a comprehensive overview of a cutting-edge tool that c
37275ombines transit route information and population distribution analysis to optimize transit networks.</p>
37276
37277<h2>Tool Functionality</h2>
37278
37279<h3>Data Input</h3>
37280
37281<p>The microtransit planning tool operates independently, eliminating the need for interfacing with transit agency platforms. Users can simply input a city or transit agency name into the search bar. The tool validates the availability of General Transit Feed Specification (GTFS) data online and offers the option to upload a GTFS zip file if such data is not readily accessible.</p>
37282
37283<h3>Visualization</h3>
37284
37285<p>Upon successful input, the tool displays all the routes and stops of the selected transit agency in a right-side window. The first route is shown by default, and users can explore the entire network.</p>
37286
37287<h2>Population Distribution Analysis</h2>
37288
37289<h3>Population Visualization</h3>
37290
37291<p>One prominent feature of the tool is its population distribution overlay, which superimposes population data onto the map. Areas with denser population concentrations are represented in darker shades, aiding in more informed strategic decision-making.</p>
37292
37293<figure class="my-8">
37294  <img src="figma:asset/e701867bc8a0786e54cc6c90c4250a3d2550b3b3.png" alt="Population distribution overlay" width="300" height="146" class="rounded-xl shadow-lg" />
37295</figure>
37296
37297<h3>On-Demand Stops</h3>
37298
37299<p>Enabling the marking of stops on-demand empowers the optimizer to suggest additional flex-on-demand and deviated stops. The tool employs two methods to convert existing stops into flex-on-demand stops.</p>
37300
37301<h3>Passenger Count Data Upload</h3>
37302
37303<p>Not all densely populated areas consistently generate high subscription rates. This is why our planning tool is designed to leverage actual passenger data for each stop. The tool intelligently analyzes and suggests which scheduled stops can potentially be converted to on-demand stops. This decision-making granularity is designed at the level of the day of the week and then the specific trip of the day.</p>
37304
37305<h3>Manually Changing Stop Status</h3>
37306
37307<p>Using population data, the tool allows users to designate less populated areas as on-demand stops, where pickups require prior passenger notification. Users can select the percentage of on-demand service, with 0% allowing for an entirely on-demand route. On-demand stops are highlighted in a distinctive red color.</p>
37308
37309<h2>Route Optimization</h2>
37310
37311<h3>Algorithm Execution</h3>
37312
37313<p>The IT Curves route optimizer can be manually triggered after the selection of on-demand stops. The optimizer ensures that trip duration remains unchanged when introducing new on-demand stops. It also suggests new stops along the current route path. The optimizer runs hundreds of iterations, utilizing a randomization function to determine if these new stops will increase ridership and enhance route efficiency.</p>
37314
37315<h3>Visualization of Results</h3>
37316
37317<p>After the computation is complete, the screen displays two maps: the left map shows the actual route, while the right map displays the algorithm's suggested route. Newly suggested stops are highlighted in green, offering a visual comparison between the original and optimized routes.</p>
37318
37319<figure class="my-8">
37320  <img src="figma:asset/d269b92bdeebd38cc9041aaf0b1e49c8603ce637.png" alt="Route comparison" width="300" height="136" class="rounded-xl shadow-lg" />
37321</figure>
37322
37323<h2>Statistical Insights</h2>
37324
37325<p>In the quest to optimize transit routes for enhanced efficiency, it is crucial to analyze the effects of these optimizations from multiple perspectives. The statistical insights provided by this microtransit planning tool provide a comprehensive overview of the potential benefits and outcomes. These essential metrics assist transit agencies in evaluating the effectiveness of route adju
37325stments and making well-informed decisions:</p>
37326
37327<figure class="my-8">
37328  <img src="figma:asset/6c2a005b920fbdcca246f0039ef41f700eaa6417.png" alt="Performance metrics" width="300" height="198" class="rounded-xl shadow-lg" />
37329</figure>
37330
37331<p><strong>Population Coverage</strong> — The proportion of the population covered by the optimized route. A higher value indicates greater community access to public transit, promoting equity and potential ridership growth.</p>
37332
37333<p><strong>Average Walk per Passenger (miles)</strong> — The average distance passengers must walk to reach their nearest stop. Minimizing this distance enhances convenience and encourages adoption of public transit.</p>
37334
37335<p><strong>Passengers Served per Cycle</strong> — The number of passengers accommodated during a single transit cycle. Maximizing this metric optimizes resource utilization and helps reduce operational costs.</p>
37336
37337<p><strong>Passengers per Hour Served</strong> — The rate at which passengers are served per hour of operation, offering insight into the route's capacity during both peak and off-peak times.</p>
37338
37339<p><strong>Passengers per Mile Served</strong> — The passenger density along the route's length. This metric identifies high-demand areas and informs stop placement and route adjustments.</p>
37340
37341<p>In conclusion, these statistical insights are invaluable tools for transit agencies and planners. They offer a holistic perspective on the benefits and trade-offs associated with route optimization. By carefully considering these metrics, transit professionals can make data-driven decisions to enhance public transit services, improve passenger experiences, and contribute to sustainable urban mobility solutions.</p>
37342
37343<h2>Conclusion</h2>
37344
37345<p>This microtransit planning tool empowers transit agencies to make data-driven decisions, optimizing routes and stops to enhance efficiency and passenger satisfaction. In the face of ongoing urban population growth, such tools are essential for advancing public transportation and promoting sustainable urban mobility.</p>`, yb = [], wb = {
37346  id: pb,
37347  title: Mb,
37348  slug: ub,
37349  author: hb,
37350  category: mb,
37351  publishedDate: xb,
37352  headerImage: _b,
37353  excerpt: bb,
37354  content: vb,
37355  downloads: yb
37356}, Tb = "it-curves-acquires-ai-dev-lab", Sb = "IT Curves Acquires AI Dev Lab to Deepen AI Capabilities Across Transportation Operations", Bb = "
37356it-curves-acquires-ai-dev-lab", kb = "Joshua Thomas", Ab = "Press Release", Nb = "2026-04-06", Ib = "figma:asset/6d514e61f05d39eb93a4099f0746c87d099bb840.png", Pb = "IT Curves has acquired AI Dev Lab, marking a major step in IT Curves' strategy to expand AI across its transportation management software platform.", Cb = `<p><strong>Gaithersburg, Maryland</strong></p>
37357
37358<p>IT Curves is a leading SaaS provider for transit and transportation systems, announced today that it has acquired AI Dev Lab, marking a major step in IT Curves' strategy to expand AI across its transportation management software platform.</p>
37359
37360<p>The acquisition combines AI Dev Lab's more than a decade of AI engineering experience with IT Curves' deep domain expertise in transit and transportation operations and technology.</p>
37361
37362<p>As part of this alignment, AI Dev Lab has established a dedicated transportation team working alongside IT Curves to accelerate the development of intelligent tools built into core transit operations. The teams are focused on helping agencies and transportation providers improve routing, dispatch, rider communication, service visibility, and automation through an AI-integrated platform.</p>
37363
37364<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37365<p>"Artificial Intelligence has rapidly evolved from an emerging technology into a powerful tool capable of transforming complex operational systems. Transportation systems present a unique opportunity to benefit from these advancements. We understand the operational complexity of transit because we operate transportation services ourselves and deploy systems in live transit environments across the country. Bringing AI Dev Lab into IT Curves allows us to move faster, build smarter, and deliver more meaningful innovation across our platform for the transit industry."</p>
37366<p class="mt-2 not-italic">— <strong>Matthew Mohebbi, CEO, IT Curves</strong></p>
37367</blockquote>
37368
37369<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37370<p>"Transportation is one of the most demanding and important environments for applied AI. This is an opportunity to move beyond standalone tools and bring smarter decisions into the core workflows that shape service every day. By joining IT Curves, we can bring stronger AI capabilities into real transit workflows across dispatch, rider support, fleet coordination, trip optimization, and service performance. That makes it possible to build transit-specific tools that improve the experience for both operators and riders."</p>
37371<p class="mt-2 not-italic">— <strong>Jason Wells, CEO, AI Dev Lab</strong></p>
37372</blockquote>
37373
37374<p>Since 2025, the companies have been jointly developing and deploying:</p>
37375
37376<ul>
37377<li>AI-powered reservation and dispatch support</li>
37378<li>Rider communication and self-service tools</li>
37379<li>Fleet visibility and service insight</li>
37380<li>Smarter trip optimization</li>
37381<li>Call center and rider support automation</li>
37382</ul>
37383
37384<p>Unlike general-market AI providers, IT Curves and AI Dev Lab are developing solutions specifically designed for the regulatory, compliance, and operational realities of public transportation systems.</p>
37385
37386<p>The companies will exhibit jointly at upcoming transportation industry conferences and events under a unified presence. Their first joint appearance will be at the 2026 <a href="https://www.swta.org/" class="text-[#EFBB0F] hover:underline" target="_blank" rel="noopener noreferrer">South West Transit Association</a> &amp; New Mexico Joint Annual Conference &amp; Expo between March 31st and April 2nd in Albuquerque, New Mexico.</p>
37387
37388<hr class="my-8 border-gray-700" />
37389
37390<h3>About IT Curves</h3>
37391
37392<p>IT Curves (Information Technologies Curves, Inc.) is a leading SaaS provider of transit and transportation management systems, serving transit agencies, paratransit providers, and mobility enterprises across the country. IT Curves designs, deploys, and operates technology solutions in live transit environments, bringing both technical expertise and real-world operational experience to every platform it builds. For more information, visit <a href="https://www.itcurves.ai" class="text-[#EFBB0F] hover:underline" target="_blank" rel="noopener noreferrer">www.ITCurves.AI</a>.</p>
37393
37394<h3>About AI Dev Lab</h3>
37395
37396<p>AI Dev Lab is an AI engineering firm that helps organizations move from AI strategy to deployment. Its team brings deep expertise in NLP, MLOps, data science, and custom application development to build practical AI systems that streamline operations, improve decision making, and drive measurable business results. With a dedicated focus on transportation, AI Dev Lab develops tools designed to improve automation, rider experience, and operational performance. For more information, visit <a href="https://www.aidevlab.com" class="text-[#EFBB0F] hover:underline" target="_blank" rel="noopener noreferrer">www.AIDevLab.com</a>.</p>
37397
37398<hr class="my-8 border-gray-700" />
37399
37400<h3>Media Contact</h3>
37401
37402<p><strong>Joshua Thomas</strong><br />Director of Sales and Marketing, IT Curves<br />301-208-2222<br /><a href="mailto:[email protected]" class="text-[#EFBB0F] hover:underline">[email protected]</a></p>`, Fb = [], Eb = {
37403  id: Tb,
37404  title: Sb,
37405  slug: Bb,
37406  author: kb,
37407  category: Ab,
37408  publishedDate: Nb,
37409  headerImage: Ib,
37410  excerpt: Pb,
37411  content: Cb,
37412  downloads: Fb
37413}, Rb = "what-state-dots-need-most-for-ai", Db = "What State DOTs Say They Need Most for AI — It Isn't Funding", zb = "what-state-dots-need-most-for-ai", jb = "IT Curves", Ob = "Industry Insights", Vb = "2026-07-08", Hb = "imports/THE_FINAL.png", Zb = "A recent AASHTO survey of 76 professionals across 51 state DOTs reveals that not one agency rated itself 'very prepared' for AI — and the top resource they say would move them forward isn't funding. It's training.", Wb = `<p>In a recent <a href="https://transportation.org/systemoperations/wp-content/uploads/sites/2/2026/01/AI_Whitepaper_2026.pdf" class="text-[#0056B3] hover:underline" target="_blank" rel="noopener noreferrer">AASHTO survey</a>, state transportation agencies identified their most pressing need for advancing AI. The survey pulled responses from 76 professionals across 51 State DOTs, covering every region of the country. It's the clearest read available on where the industry actually stands.</p>
37414
37415<p>The findings paint a picture of the transit space today. Not one respondent rated their agency "very prepared" for AI, and adoption remains uneven across regions. But on what's holding agencies back and what would change it, respondents are broadly aligned.</p>
37416
37417<h3>The Missing Piece</h3>
37418
37419<p>It was training their workforce — and by a significant margin.</p>
37420
37421<p>Nearly 79% of respondents named training and skill development as the top resource they need to advance AI, ahead of both funding (67%) and pilot programs (61%). Agencies aren't asking for more money or more experiments first. They're saying the gap is in workforce readiness. The same survey flagged data quality, cybersecurity, and trust in AI reliability as leading barr
37421iers to adoption, but training is the one respondents said would move them forward.</p>
37422
37423<div class="my-8 grid grid-cols-2 gap-6">
37424  <div class="rounded-xl bg-[#0B1A2E] p-6 text-center">
37425    <div class="text-[#EFBB0F] text-4xl font-bold mb-2">78.7%</div>
37426    <div class="text-gray-300 text-sm">of state DOTs name training their #1 AI need</div>
37427  </div>
37428  <div class="rounded-xl bg-[#0B1A2E] p-6 text-center">
37429    <div class="text-[#EFBB0F] text-4xl font-bold mb-2">0</div>
37430    <div class="text-gray-300 text-sm">surveyed agencies rated themselves "very prepared"</div>
37431  </div>
37432</div>
37433
37434<h3>Are You Ready for AI?</h3>
37435
37436<p>The companies that get ahead on AI won't be the ones with the biggest budgets. They'll be the ones with the most prepared teams. With no agency yet rating itself very prepared, workforce readiness is the clearest way to move from watching AI to actually using it.</p>
37437
37438<p>AI Dev Lab, part of IT Curves, offers four in-person AI courses built to close that gap. IT Curves has spent nearly two decades building intelligent transit software and operating transit services for agencies across the country. AI Dev Lab is the applied AI practice that grew from that work. Each course is taught by the people who build these systems and run these services every day — not consultants explaining them from the outside.</p>
37439
37440<h3>Our AI Training Is Your Solution</h3>
37441
37442<p>Every course is designed around real transit work, taught in small groups, with equal attention paid to what AI can do and what can go wrong. Your team leaves with practical skills and the guardrails to use them safely.</p>
37443
37444<p>Here's what your team will learn:</p>
37445
37446<ul>
37447<li><strong>Faster work.</strong> Draft reports, RFPs, rider messages, board updates, meeting notes, and internal research in less time, on the same tools your team already touches.</li>
37448<li><strong>Better output.</strong> Improve clarity, accuracy, tone, structure, and completeness before anything goes to riders, leaders, boards, or the public.</li>
37449<li><strong>Real use cases.</strong> Apply AI to dispatch, planning, customer service, operations, administration, reporting, and policy work.</li>
37450</ul>
37451
37452<h3>AI Training Courses For Every Level</h3>
37453
37454<p>AI Dev Lab offers professionally-led AI courses that will teach your staff how to effectively use AI within your organization.</p>
37455
37456<ul>
37457<li><strong>AI 101 — AI Foundations for Transportation:</strong> Work directly with ChatGPT, Claude, and Microsoft Copilot for everyday transit work: writing, summarizing, policy review, meeting prep, customer communication, planning support, and internal analysis.</li>
37458<li><strong>AI 102 — Introduction to Building with AI for Transportation:</strong> A one-day introduction to AI app builders. Build simple working prototypes with Claude Artifacts, Lovable, and Base44, then see what is useful, what is fragile, and what is not production ready.</li>
37459<li><strong>AI 103 — Introduction to AI Agents for Transportation:</strong> A one-day exploration of agents. Explore agent workflows, copilots, and automation patterns: voice booking, dispatch support, complaint triage, and survey agents.</li>
37460<li><strong>Executive: AI Executive Offsite — Park City, Utah:</strong> Over two days, move from plain-language AI foundations to executive policy, then apply the DRIVE framework to a real initiative. Leave with a draft AI policy, vendor scorecard, 90-day plan, and a working AI app you built.</li>
37461</ul>
37462
37463<h3>What Makes This Different</h3>
37464
37465<p>In-person, instructor-led group sessions. Learn AI's capabilities, limitations, and risks — including hallucinations, privacy, security, ADA, FOIA, and the importance of human oversight — while gaining practical skills to use AI effectively in everyday work.</p>
37466
37467<h3>What Participants Said</h3>
37468
37469<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37470<p>"I went in with a lot of reservations and skepticism. The projects we worked through were fun and engaging, and it helped me rethink how I do my processes and job functions every day. It taught a room with very little AI knowledge in a way everyone could understand."</p>
37471<p class="mt-2 not-italic">— <strong>Cody, Inside Sales Manager</strong></p>
37472</blockquote>
37473
37474<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37475<p>"Guardedly optimistic to start, I felt very comfortable with AI in the workplace by the end. I left thinking of ways I could use it to benefit the company day-to-day."</p>
37476<p class="mt-2 not-italic">— <strong>Bryan, Senior VP of Sales</strong></p>
37477</blockquote>
37478
37479<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37480<p>"Matt did a great job dumbing down the AI hemisphere for us. It was inspiring to see all it can do. I'm looking forward to implementing so many things into my role."</p>
37481<p class="mt-2 not-italic">— <strong>Dawn, Estimation and Contractor Support</strong></p>
37482</blockquote>
37483
37484<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37485<p>"The team made everyone feel comfortable with the technology. It was a kickstart for others to get engaged and think of ways it could help their day-to-day tasks."</p>
37486<p class="mt-2 not-italic">— <strong>Bobby, Senior Sales VP</strong></p>
37487</blockquote>
37488
37489<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37490<p>"Engaging, knowledgeable, and easy to work with. It broke down the basic concepts of what AI is and how to use it. I would take this course again."</p>
37491<p class="mt-2 not-italic">— <strong>Audra, Estimator</strong></p>
37492</blockquote>
37493
37494<blockquote class="my-6 border-l-4 border-[#EFBB0F] pl-6 italic text-gray-300">
37495<p>"A great training that opened our eyes to the truth about AI and how it could help us. They talked on our level, so we could grasp it and understand what we were doing."</p>
37496<p class="mt-2 not-italic">— <strong>Les, Senior VP of Services</strong></p>
37497</blockquote>
37498
37499<hr class="my-8 border-gray-700" />
37500
37501<h3>Next Steps</h3>
37502
37503<p>Read more about our AI Workshops on AI Dev Lab's website and book a meeting with us to get started.</p>
37504
37505<div class="flex flex-wrap gap-4 mt-6">
37506  <a href="https://aidevlab.com/solutions/ai-workshops/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-6 py-3 bg-[#EFBB0F] text-[#0B1A2E] rounded-lg font-bold text-[15px] hover:bg-[#d9a80d] transition-colors no-underline">AI Workshops</a>
37507  <a href="https://calendly.com/aidevlab-info/aidevlab-lets-talk-ai" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-6 py-3 border-2 border-[#0B1A2E] text-[#0B1A2E] rounded-lg font-bold text-[15px] hover:bg-[#0B1A2E] hover:text-white transition-colors no-underline">Book a Meeting</a>
37508</div>`, $b = [], qb = {
37509  id: Rb,
37510  title: Db,
37511  slug: zb,
37512  author: jb,
37513  category: Ob,
37514  publishedDate: Vb,
37515  headerImage: Hb,
37516  excerpt: Zb,
37517  content: Wb,
37518  downloads: $b
37519}, zi = [
37520  Cx,
37521  qb,
37522  Eb,
37523  Wx,
37524  t_,
37525  g_,
37526  y_,
37527  F_,
37528  $_,
37529  ab,
37530  fb,
37531  wb
37532], Ub = globalThis.__GLOBALS__.getAssetURL("6a2dfe6e9364f4cd1dadae79a87d992c4d16a57c.png"), Gb = globalThis.__GLOBALS__.getAssetURL("288b299000b5556d9cc09c77679be47935703a53.png"), Jb = globalThis.__GLOBALS__.getAssetURL("67b6ef54d2d1b0506ea9402d781c39b82ca7968e.png"), Kb = globalThis.__GLOBALS__.getAssetURL("383cc9a4347b75a8a63583ada4c3071702bde6a7.png"), Yb = globalThis.__GLOBALS__.getAssetURL("4775e5c6370a4e2d4e0368e5528397534f442dc7.png"), ji = globalThis.__GLOBALS__.getAssetURL("02725254758f020044c37b31c6ca41922f8e9c7b.png"), Xb = globalThis.__GLOBALS__.getAssetURL("73432ee76cfeab1db2f34208e0b0ebf18e9c41c8.png"), Oi = globalThis.__GLOBALS__.getAssetURL("cb6e05888884648ed42021ba68d3956536a5ac6e.png"), Qb = globalThis.__GLOBALS__.getAssetURL("7fa1a16c30624679815c1e2081c102453e21aa20.png"), ev = globalThis.__GLOBALS__.getAssetURL("6d514e61f05d39eb93a4099f0746c87d099bb840.png"), tv = "/_components/v2/6f7c1cc6f4e6b5f46153147a1b8d898db9975c9c/THE_FINAL.30224583.png", Vi = "/_components/v2/6f7c1cc6f4e6b5f46153147a1b8d898db9975c9c/go_time_picture.e020e2a9.jpg", av = globalThis.__GLOBALS__.getAssetURL("824782ace3e8339710324188c16de2ff5e6a95d1.png"), sv = globalThis.__GLOBALS__.getAssetURL("e701867bc8a0786e54cc6c90c4250a3d2550b3b3.png"), iv = globalThis.__GLOBALS__.getAssetURL("d269b92bdeebd38cc9041aaf0b1e49c8603ce637.png"), rv = globalThis.__GLOBALS__.getAssetURL("6c2a005b920fbdcca246f0039ef41f700eaa6417.png"), nv = globalThis.__GLOBALS__.getAssetURL("f19412db2ecef1d537f6ff432b9d5ca96df8ab8c.png"), ov = globalThis.__GLOBALS__.getAssetURL("7cd64dff8d00d5754e0027dc12f15cb3732a903e.png"), Lv = globalThis.__GLOBALS__.getAssetURL("8fba95ce6beab9e90f39e9ad69ca15376735443e.png"), cv = globalThis.__GLOBALS__.getAssetURL("89218ad2fdc869c8f5e2c2f77203c96cd5d38803.png"), lv = globalThis.__GLOBALS__.getAssetURL("e33a08c206cba55a011a598f053e5c46ae6be835.png"), dv = globalThis.__GLOBALS__.getAssetURL("b1177a278f9181172c77271948a3ac54d9c8f4b0.png"), gv = globalThis.__GLOBALS__.getAssetURL("9247c8fdc9fa602057120d86530d9ddf5db4a920.png"), fv = globalThis.__GLOBALS__.getAssetURL("860baeaed02c95b809929419c4e1fd6cf7f5f538.png"), pv = globalThis.__GLOBALS__.getAssetURL("67c8e187b18256522f80127813a9e9865b0cc124.png"), Mv = globalThis.__GLOBALS__.getAssetURL("26183c86d42a6313e1ad07cf7ccb3d838ddc49f1.png"), uv = globalThis.__GLOBALS__.getAssetURL("0a0ab5c4fbd51
37532741cab85784f8055aef346d3c13.png"), hv = globalThis.__GLOBALS__.getAssetURL("8e0902ebf32faf773dd2dc400d21896c01c53550.png"), mv = globalThis.__GLOBALS__.getAssetURL("a54eb23cbda4cec9ea9cd75b96453ff293129386.png"), xv = globalThis.__GLOBALS__.getAssetURL("7eeedccf52e9a4eb8e0cdf79c865e376275f8215.png"), _v = globalThis.__GLOBALS__.getAssetURL("205119b26907d9e479c8611fe30149ff2bcc7457.png"), bv = globalThis.__GLOBALS__.getAssetURL("b5e7345b9702006c5b202b394f87cd8744957054.png"), vv = globalThis.__GLOBALS__.getAssetURL("0ed86dbb8e51e57678411de19496d882a5ab3872.png"), yv = globalThis.__GLOBALS__.getAssetURL("d8306a80c16b79de54f9671fedf9fd9f8804aad8.png"), wv = globalThis.__GLOBALS__.getAssetURL("065ee1734976ca9ffc38d045bdc748657b47dfc7.png"), Tv = globalThis.__GLOBALS__.getAssetURL("062073bc2b4719db32abe1b0bd0be5a62558ca77.png"), Sv = globalThis.__GLOBALS__.getAssetURL("d58915faa0701de338864ed74de86aa3efedf1a1.png"), Bv = globalThis.__GLOBALS__.getAssetURL("8f085eff9043fef9d2fc2fb8a1d1bbc9192e01cf.png"), kv = globalThis.__GLOBALS__.getAssetURL("118ddc7b2211104bb2ded959b514bd71a27f22f0.png"), Av = globalThis.__GLOBALS__.getAssetURL("83bf4411a547dc144586c9c4e8719aa68c9f7156.png"), Nv = globalThis.__GLOBALS__.getAssetURL("c3bdcb20fc965d58d19337b4ee6417e79126e306.png"), Iv = globalThis.__GLOBALS__.getAssetURL("6d0c304e7a41fba46779283a4a397d8eba0957c6.png"), Pv = globalThis.__GLOBALS__.getAssetURL("96ea3096b56acecc1f9d3c48cc9d2a6f5d79fbb5.png"), Cv = globalThis.__GLOBALS__.getAssetURL("2d3f1eaa012e05015df2f859cde1c91ab17a2d28.png"), Fv = globalThis.__GLOBALS__.getAssetURL("cac31caf4fdd22fe83d150c1b5d42af03d07365f.png"), Ev = globalThis.__GLOBALS__.getAssetURL("71bba80b8d465ac757ab1f18f22cda23cc52f428.png"), Rv = globalThis.__GLOBALS__.getAssetURL("dd25b5b4c2c834e524a7c1a58ff1b6d5988afa71.png"), Dv = globalThis.__GLOBALS__.getAssetURL("e9f0e79e1481968744d01c0eb5e060ee48914343.png"), zv = globalThis.__GLOBALS__.getAssetURL("e5bb79093872c972eb2a284ddea020d2669baf2c.png"), jv = globalThis.__GLOBALS__.getAssetURL("0685852f870466c2eb8721c4f59b5de75c3d2641.png"), Ov = globalThis.__GLOBALS__.getAssetURL("05cae524ee189cde0b3fcf35a2b212d968d4fd64.png"), Vv = globalThis.__GLOBALS__.getAssetURL("095a5767fce0eb57c82a67a919adea882102cc40.png"), Hv = globalThis.__GLOBALS__.getAssetURL("cc9f3b5eb774dfe7bd59d800688742b3ec5f336d.png"), Zv = globalThis.__GLOBALS__.getAssetURL("fef00d5077678e16ccb75269a5c7e5b5be6f0508.png"), Wv = globalThis.__GLOBALS__.getAssetURL("c4276f67b7de01d07887ca24acab55551c2126fd.png"), $v = globalThis.__GLOBALS__.getAssetURL("007c5c3cf2ef96da72614391f7eb1f36ee139ce9.png"), qv = globalThis.__GLOBALS__.getAssetURL("97644761193d90c6610a5d54e016e18b15790a22.png"), Uv = globalThis.__GLOBALS__.getAssetURL("fe04e25ad98773fd9709fb006efd33ec10803093.png"), Gv = globalThis.__GLOBALS__.getAssetURL("00bfe9c0798b22764ac6462fc2edf7f5885f492c.png"), Jv = globalThis.__GLOBALS__.getAssetURL("03994b5ed20e6ad599da99fec7340f2c492cded7.png"), Kv = globalThis.__GLOBALS__.getAssetURL("020fea9a518e519770187e0f1c66266fe94c3559.png"), Yv = globalThis.__GLOBALS__.getAssetURL("70f80de0fb6690f509f46e76a5a4f9d09548d9cd.png"), Xv = globalThis.__GLOBALS__.getAssetURL("674c52b9f71c9c4195751908053db3622c67412c.png"), Qv = globalThis.__GLOBALS__.getAssetURL("85720b196f82dde1bc0243d088be26fb9387d0fa.png"), ey = globalThis.__GLOBALS__.getAssetURL("c5197892554312cfa87e06c8ce2ab64e43fd64e2.png"), ty = globalThis.__GLOBALS__.getAssetURL("d3663a41ff2886882507e2fe2397494b6d8b56b2.png"), ay = globalThis.__GLOBALS__.getAssetURL("9a5847f94aee8ed4dd1c105db3d21cc6131345cf.png"), sy = globalThis.__GLOBALS__.getAssetURL("781ad1e00368e8e8cef759a09f8f0c4e82fe59cd.png"), iy = globalThis.__GLOBALS__.getAssetURL("7510c30c7cad7f788da02b9e308c6465e2bc465a.png"), ry = globalThis.__GLOBALS__.getAssetURL("0b794281909c6668faca58156580976850d1cdb5.png"), ny = globalThis.__GLOBALS__.getAssetURL("e464cb82891e9b87225eb11cd56eebe5bba7fb05.png"), oy = {
37533  "figma:asset/6a2dfe6e9364f4cd1dadae79a87d992c4d16a57c.png": Ub,
37534  "figma:asset/288b299000b5556d9cc09c77679be47935703a53.png": Gb,
37535  "figma:asset/67b6ef54d2d1b0506ea9402d781c39b82ca7968e.png": Jb,
37536  "figma:asset/383cc9a4347b75a8a63583ada4c3071702bde6a7.png": Kb,
37537  "figma:asset/4775e5c6370a4e2d4e0368e5528397534f442dc7.png": Yb,
37538  "figma:asset/02725254758f020044c37b31c6ca41922f8e9c7b.png": ji,
37539  "figma:asset/73432ee76cfeab1db2f34208e0b0ebf18e9c41c8.png": Xb,
37540  "figma:asset/cb6e05888884648ed42021ba68d3956536a5ac6e.png": Oi,
37541  "figma:asset/7fa1a16c30624679815c1e2081c102453e21aa20.png": Qb,
37542  "figma:asset/6d514e61f05d39eb93a4099f0746c87d099bb840.png": ev,
37543  "imports/THE_FINAL.png": tv,
37544  "go-time-annapolis-hero": Vi
37545}
37545;
37546function n5(t) {
37547  return oy[t] || t;
37548}
37549const Ly = {
37550  // Microtransit planning
37551  "figma:asset/824782ace3e8339710324188c16de2ff5e6a95d1.png": av,
37552  "figma:asset/e701867bc8a0786e54cc6c90c4250a3d2550b3b3.png": sv,
37553  "figma:asset/d269b92bdeebd38cc9041aaf0b1e49c8603ce637.png": iv,
37554  "figma:asset/6c2a005b920fbdcca246f0039ef41f700eaa6417.png": rv,
37555  // Rider-centric
37556  "figma:asset/f19412db2ecef1d537f6ff432b9d5ca96df8ab8c.png": nv,
37557  "figma:asset/cb6e05888884648ed42021ba68d3956536a5ac6e.png": Oi,
37558  // Where's My Ride
37559  "figma:asset/7cd64dff8d00d5754e0027dc12f15cb3732a903e.png": ov,
37560  "figma:asset/8fba95ce6beab9e90f39e9ad69ca15376735443e.png": Lv,
37561  "figma:asset/89218ad2fdc869c8f5e2c2f77203c96cd5d38803.png": cv,
37562  "figma:asset/e33a08c206cba55a011a598f053e5c46ae6be835.png": lv,
37563  "figma:asset/b1177a278f9181172c77271948a3ac54d9c8f4b0.png": dv,
37564  "figma:asset/9247c8fdc9fa602057120d86530d9ddf5db4a920.png": gv,
37565  "figma:asset/860baeaed02c95b809929419c4e1fd6cf7f5f538.png": fv,
37566  "figma:asset/67c8e187b18256522f80127813a9e9865b0cc124.png": pv,
37567  "figma:asset/26183c86d42a6313e1ad07cf7ccb3d838ddc49f1.png": Mv,
37568  "figma:asset/0a0ab5c4fbd51741cab85784f8055aef346d3c13.png": uv,
37569  // Commingling
37570  "figma:asset/02725254758f020044c37b31c6ca41922f8e9c7b.png": ji,
37571  "figma:asset/8e0902ebf32faf773dd2dc400d21896c01c53550.png": hv,
37572  "figma:asset/a54eb23cbda4cec9ea9cd75b96453ff293129386.png": mv,
37573  "figma:asset/7eeedccf52e9a4eb8e0cdf79c865e376275f8215.png": xv,
37574  // Rides to Health
37575  "figma:asset/205119b26907d9e479c8611fe30149ff2bcc7457.png": _v,
37576  "figma:asset/b5e7345b9702006c5b202b394f87cd8744957054.png": bv,
37577  "figma:asset/0ed86dbb8e51e57678411de19496d882a5ab3872.png": vv,
37578  "figma:asset/d8306a80c16b79de54f9671fedf9fd9f8804aad8.png": yv,
37579  "figma:asset/065ee1734976ca9ffc38d045bdc748657b47dfc7.png": wv,
37580  "figma:asset/062073bc2b4719db32abe1b0bd0be5a62558ca77.png": Tv,
37581  "figma:asset/d58915faa0701de338864ed74de86aa3efedf1a1.png": Sv,
37582  "figma:asset/8f085eff9043fef9d2fc2fb8a1d1bbc9192e01cf.png": Bv,
37583  // Dial-a-Ride management
37584  "figma:asset/118ddc7b2211104bb2ded959b514bd71a27f22f0.png": kv,
37585  "figma:asset/83bf4411a547dc144586c9c4e8719aa68c9f7156.png": Av,
37586  "figma:asset/c3bdcb20fc965d58d19337b4ee6417e79126e306.png": Nv,
37587  "figma:asset/6d0c304e7a41fba46779283a4a397d8eba0957c6.png": Iv,
37588  "figma:asset/96ea3096b56acecc1f9d3c48cc9d2a6f5d79fbb5.png": Pv,
37589  "figma:asset/2d3f1eaa012e05015df2f859cde1c91ab17a2d28.png": Cv,
37590  "figma:asset/cac31caf4fdd22fe83d150c1b5d42af03d07365f.png": Fv,
37591  "figma:asset/71bba80b8d465ac757ab1f18f22cda23cc52f428.png": Ev,
37592  "figma:asset/dd25b5b4c2c834e524a7c1a58ff1b6d5988afa71.png": Rv,
37593  "figma:asset/e9f0e79e1481968744d01c0eb5e060ee48914343.png": Dv,
37594  "figma:asset/e5bb79093872c972eb2a284ddea020d2669baf2c.png": zv,
37595  "figma:asset/0685852f870466c2eb8721c4f59b5de75c3d2641.png": jv,
37596  "figma:asset/05cae524ee189cde0b3fcf35a2b212d968d4fd64.png": Ov,
37597  "figma:asset/095a5767fce0eb57c82a67a919adea882102cc40.png": Vv,
37598  "figma:asset/cc9f3b5eb774dfe7bd59d800688742b3ec5f336d.png": Hv,
37599  "figma:asset/fef00d5077678e16ccb75269a5c7e5b5be6f0508.png": Zv,
37600  "figma:asset/c4276f67b7de01d07887ca24acab55551c2126fd.png": Wv,
37601  "figma:asset/007c5c3cf2ef96da72614391f7eb1f36ee139ce9.png": $v,
37602  "figma:asset/97644761193d90c6610a5d54e016e18b15790a22.png": qv,
37603  "figma:asset/fe04e25ad98773fd9709fb006efd33ec10803093.png": Uv,
37604  "figma:asset/00bfe9c0798b22764ac6462fc2edf7f5885f492c.png": Gv,
37605  "figma:asset/03994b5ed20e6ad599da99fec7340f2c492cded7.png": Jv,
37606  "figma:asset/020fea9a518e519770187e0f1c66266fe94c3559.png": Kv,
37607  "figma:asset/70f80de0fb6690f509f46e76a5a4f9d09548d9cd.png": Yv,
37608  "figma:asset/674c52b9f71c9c4195751908053db3622c67412c.png": Xv,
37609  "figma:asset/85720b196f82dde1bc0243d088be26fb9387d0fa.png": Qv,
37610  "figma:asset/c5197892554312cfa87e06c8ce2ab64e43fd64e2.png": ey,
37611  "figma:asset/d3663a41ff2886882507e2fe2397494b6d8b56b2.png": ty,
37612  "figma:asset/9a5847f94aee8ed4dd1c105db3d21cc6131345cf.png": ay,
37613  "figma:asset/781ad1e00368e8e8cef759a09f8f0c4e82fe59cd.png": sy,
37614  "figma:asset/7510c30c7cad7f788da02b9e308c6465e2bc465a.png": iy,
37615  "figma:asset/0b794281909c6668faca58156580976850d1cdb5.png": ry,
37616  // Airport Shuttle
37617  "figma:asset/e464cb82891e9b87225eb11cd56eebe5bba7fb05.png": ny
37618};
37619function cy(t) {
37620  let e = t;
37621  for (const [s, r] of Object.entries(Ly)) {
37622    const n = s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
37623    e = e.replace(new RegExp(n, "g"), r);
37624  }
37625  return e;
37626}
37627function ly() {
37628  const t = [...zi].sort(
37629    (s, r) => new Date(r.publishedDate).getTime() - new Date(s.publishedDate).getTime()
37630  ), e = (s) => {
37631    const [r, n, o] = s.split("-").map(Number);
37632    return new Date(r, n - 1, o).toLocaleDateString("en-US", {
37633      year: "numeric",
37634      month: "long",
37635      day: "numeric"
37636    });
37637  };
37638  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas0", _fgB: 1790697589478, _fgD: !0, className: "min-h-screen bg-gradient-to-b from-slate-50 to-white", "data-fg-ddas0": ":0:/src/app/pages/NewsArticlesPageV2.tsx:25:5:818:8252:e:div:xtetxtete:1", children: [
37639    /* @__PURE__ */ c(a, { _fgT: "section", _fgS: "ddas2", _fgB: 1790697589478, className: "relative bg-gradient-to-br from-[#0B1B2B] via-[#0F2942] to-[#0B1B2B] text-white py-24 px-6 overflow-hidden", "data-fg-ddas2": ":0:/src/app/pages/NewsArticlesPageV2.tsx:27:7:922:1109:e:section:ete", children: [
37640      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas3", _fgB: 1790697589478, className: "absolute inset-0 opacity-10", "data-fg-ddas3": ":0:/src/app/pages/NewsArticlesPageV2.tsx:28:9:1059:261:e:div:ete", children: [
37641        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas4", _fgB: 1790697589478, className: "absolute top-20 left-10 w-96 h-96 bg-blue-500 rounded-full blur-3xl", "data-fg-ddas4": ":0:/src/app/pages/NewsArticlesPageV2.tsx:29:11:1115:87:e:div" }),
37642        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas5", _fgB: 1790697589478, className: "absolute bottom-20 right-10 w-96 h-96 bg-[#EFBB0F] rounded-full blur-3xl", "data-fg-ddas5": ":0:/src/app/pages/NewsArticlesPageV2.tsx:30:11:1213:92:e:div" })
37643      ] }),
37644      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas6", _fgB: 1790697589478, className: "max-w-7xl mx-auto relative z-10", "data-fg-ddas6": ":0:/src/app/pages/NewsArticlesPageV2.tsx:33:9:1330:684:e:div:e", children: /* @__PURE__ */ c(
37645        a,
37646        {
37647          _fgT: m.div,
37648          _fgS: "ddas7",
37649          _fgB: 1790697589478,
37650          initial: { opacity: 0, y: 30 },
37651          animate: { opacity: 1, y: 0 },
37652          transition: { duration: 0.6 },
37653          className: "text-center",
37654          "data-fg-ddas7": ":0:/src/app/pages/NewsArticlesPageV2.tsx:34:11:1390:609:e:motion.div:etete",
37655          children: [
37656            /* @__PURE__ */ i(a, { _fgT: "h1", _fgS: "ddas8", _fgB: 1790697589478, className: "font-['DM_Serif_Display'] text-5xl md:text-6xl mb-6", "data-fg-ddas8": ":0:/src/app/pages/NewsArticlesPageV2.tsx:40:13:1592:116:e:h1:t", children: "News & Articles" }),
37657            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddas10", _fgB: 1790697589478, className: "text-xl text-slate-300 max-w-3xl mx-auto", "data-fg-ddas10": ":0:/src/app/pages/NewsArticlesPageV2.tsx:43:13:1721:153:e:p:t", children: "Insights, updates, and thought leadership from the IT Curves team" }),
37658            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddas12", _fgB: 1790697589478, className: "text-sm text-[#EFBB0F] mt-4 uppercase tracking-widest", "data-fg-ddas12": ":0:/src/app/pages/NewsArticlesPageV2.tsx:46:13:1887:88:e:p:t", children: "News & Articles" })
37659          ]
37660        }
37661      ) })
37662    ] }),
37663    /* @__PURE__ */ i(a, { _fgT: "section", _fgS: "ddas15", _fgB: 1790697589478, className: "py-20 px-6", "data-fg-ddas15": ":0:/src/app/pages/NewsArticlesPageV2.tsx:52:7:2067:6974:e:section:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas16", _fgB: 1790697589478, className: "max-w-7xl mx-auto", "data-fg-ddas16": ":0:/src/app/pages/NewsArticlesPageV2.tsx:53:9:2108:6916:e:div:x", children: t.length === 0 ? /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas18", _fgB: 1790697589478, className: "text-center py-20", "data-fg-ddas18": ":0:/src/app/pages/NewsArticlesPageV2.tsx:55:13:2199:153:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddas19", _fgB: 1790697589478, className: "text-xl text-slate-500", "data-fg-ddas19": ":0:/src/app/pages/NewsArticlesPageV2.tsx:56:15:2249:84:e:p:t", children: "No articles migrated yet. Check back soon!" }) }) : /* @__PURE__ */ c(C, { children: [
37664      t.length > 0 && (() => {
37665        const s = t[0];
37666        return /* @__PURE__ */ i(
37667          a,
37668          {
37669            _fgT: m.article,
37670            _fgS: "ddas24",
37671            _fgB: 1790697589478,
37672            initial: { opacity: 0, y: 30 },
37673            whileInView: { opacity: 1, y: 0 },
37674            viewport: { once: !0 },
37675            transition: { duration: 0.6 },
37676            className: "mb-16",
37677            "data-fg-ddas24": ":0:/src/app/pages/NewsArticlesPageV2.tsx:64:19:2571:3465:e:motion.article:e",
37678            children: /* @__PURE__ */ i(a, { _fgT: E, _fgS: "ddas25", _fgB: 1790697589478, href: `/news-articles/${s.slug}`, className: "block group", "data-fg-ddas25": ":0:node_modules/wouter:71:21:2869:3131:e:Link:e:::::C4yE", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas26", _fgB: 1790697589478, className: "relative rounded-2xl overflow-hidden shadow-lg hover:shadow-2xl transition-shadow duration-300 border border-slate-100 bg-white", "data-fg-ddas26": ":0:/src/app/pages/NewsArticlesPageV2.tsx:72:23:2963:3009:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas27", _fgB: 1790697589478, className: "grid grid-cols-1 lg:grid-cols-2", "data-fg-ddas27": ":0:/src/app/pages/NewsArticlesPageV2.tsx:73:25:3133:2810:e:div:xtetxte", children: [
37679              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas29", _fgB: 1790697589478, className: "relative min-h-72 lg:min-h-[420px] overflow-hidden bg-slate-200", "data-fg-ddas29": ":0:/src/app/pages/NewsArticlesPageV2.tsx:75:27:3249:444:e:div:e", children: /* @__PURE__ */ i(
37680                a,
37681                {
37682                  _fgT: "img",
37683                  _fgS: "ddas30",
37684                  _fgB: 1790697589478,
37685                  src: n5(s.headerImage),
37686                  alt: s.title,
37687                  className: "absolute inset-0 w-full h-full object-cover group-hover:scale-105 transition-transform duration-500",
37688                  "data-fg-ddas30": ":0:/src/app/pages/NewsArticlesPageV2.tsx:76:29:3359:301:e:img"
37689                }
37690              ) }),
37691              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas32", _fgB: 1790697589478, className: "p-8 lg:p-12 flex flex-col justify-center", "data-fg-ddas32": ":0:/src/app/pages/NewsArticlesPageV2.tsx:84:27:3763:2149:e:div:etetetete", children: [
37692                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas33", _fgB: 1790697589478, className: "flex items-center gap-2 mb-4", "data-fg-ddas33": ":0:/src/app/pages/NewsArticlesPageV2.tsx:85:29:3850:630:e:div:ete", children: [
37693                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddas34", _fgB: 1790697589478, className: "inline-flex items-center gap-1.5 px-3 py-1.5 bg-[#EFBB0F] text-[#0B1B2B] text-xs font-bold rounded-full uppercase tracking-wide", "data-fg-ddas34": ":0:/src/app/pages/NewsArticlesPageV2.tsx:86:31:3927:225:e:span:t", children: "Featured" }),
37694                  /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "ddas36", _fgB: 1790697589478, className: "inline-flex items-center gap-1.5 px-3 py-1.5 bg-[#0056B3] text-white text-xs font-semibold rounded-full", "data-fg-ddas36": ":0:/src/app/pages/NewsArticlesPageV2.tsx:89:31:4183:262:e:span:etx", children: [
37695                    /* @__PURE__ */ i(a, { _fgT: G4, _fgS: "ddas37", _fgB: 1790697589478, size: 12, "data-fg-ddas37": ":0:node_modules/lucide-react:90:33:4338:17:e:Tag::::::BKy" }),
37696                    s.category
37697                  ] })
37698                ] }),
37699                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas39", _fgB: 1790697589478, className: "flex items-center gap-2 text-sm text-slate-500 mb-4", "data-fg-ddas39": ":0:/src/app/pages/NewsArticlesPageV2.tsx:94:29:4509:534:e:div:etetx", children: [
37700                  /* @__PURE__ */ i(a, { _fgT: i2, _fgS: "ddas40", _fgB: 1790697589478, size: 14, "data-fg-ddas40": ":0:node_modules/lucide-react:95:31:4609:22:e:Calendar::::::Bbz4" }),
37701                  /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddas41", _fgB: 1790697589478, "data-fg-ddas41": ":0:/src/app/pages/NewsArticlesPageV2.tsx:96:31:4662:49:e:span:x", children: e(s.publishedDate) }),
37702                  s.author && /* @__PURE__ */ c(C, { children: [
37703                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddas45", _fgB: 1790697589478, className: "text-slate-300", "data-fg-ddas45": ":0:/src/app/pages/NewsArticlesPageV2.tsx:99:35:4833:41:e:span:t", children: "•" }),
37704                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddas47", _fgB: 1790697589478, "data-fg-ddas47": ":0:/src/app/pages/NewsArticlesPageV2.tsx:100:35:4909:30:e:span:x", children: s.author })
37705                  ] })
37706                ] }),
37707                /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "ddas49", _fgB: 1790697589478, className: "text-3xl lg:text-4xl font-bold text-slate-900 mb-4 group-hover:text-[#0056B3] transition-colors", "data-fg-ddas49": ":0:/src/app/pages/NewsArticlesPageV2.tsx:105:29:5073:193:e:h2:x", children: s.title }),
37708                /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddas51", _fgB: 1790697589478, className: "text-slate-600 text-lg mb-8 line-clamp-4", "data-fg-ddas51": ":0:/src/app/pages/NewsArticlesPageV2.tsx:109:29:5296:138:e:p:x", children: s.excerpt }),
37709                /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "ddas53", _fgB: 1790697589478, className: "inline-flex items-center gap-2 text-[#0056B3] font-semibold group-hover:text-[#004494] transition-colors", "data-fg-ddas53": ":0:/src/app/pages/NewsArticlesPageV2.tsx:113:29:5464:415:e:span:te", children: [
37710                  "Read Full Article",
37711                  /* @__PURE__ */ i(
37712                    a,
37713                    {
37714                      _fgT: D,
37715                      _fgS: "ddas55",
37716                      _fgB: 1790697589478,
37717                      size: 18,
37718                      className: "group-hover:translate-x-1 transition-transform",
37719                      "data-fg-ddas55": ":0:node_modules/lucide-react:115:31:5666:177:e:ArrowRight::::::s5N"
37720                    }
37721                  )
37722                ] })
37723              ] })
37724            ] }) }) })
37725          }
37726        );
37727      })(),
37728      t.length > 1 && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas58", _fgB: 1790697589478, className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", "data-fg-ddas58": ":0:/src/app/pages/NewsArticlesPageV2.tsx:130:17:6185:2778:e:div:x", children: t.slice(1).map((s, r) => /* @__PURE__ */ c(
37729        a,
37730        {
37731          _fgT: m.article,
37732          _fgS: "ddas60",
37733          _fgB: 1790697589478,
37734          initial: { opacity: 0, y: 30 },
37735          whileInView: { opacity: 1, y: 0 },
37736          viewport: { once: !0 },
37737          transition: { duration: 0.5, delay: r * 0.1 },
37738          className: "bg-white rounded-2xl overflow-hidden shadow-lg hover:shadow-2xl transition-shadow duration-300 border border-slate-100 flex flex-col h-full",
37739          "data-fg-ddas60": ":0:/src/app/pages/NewsArticlesPageV2.tsx:132:21:6345:2573:e:motion.article:xtetxte",
37740          children: [
37741            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas62", _fgB: 1790697589478, className: "relative h-56 overflow-hidden bg-slate-200", "data-fg-ddas62": ":0:/src/app/pages/NewsArticlesPageV2.tsx:141:23:6893:745:e:div:ete", children: [
37742              /* @__PURE__ */ i(
37743                a,
37744                {
37745                  _fgT: "img",
37746                  _fgS: "ddas63",
37747                  _fgB: 1790697589478,
37748                  src: n5(s.headerImage),
37749                  alt: s.title,
37750                  className: "w-full h-full object-cover hover:scale-105 transition-transform duration-500",
37751                  "data-fg-ddas63": ":0:/src/app/pages/NewsArticlesPageV2.tsx:142:25:6978:260:e:img"
37752                }
37753              ),
37754              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "ddas64", _fgB: 1790697589478, className: "absolute top-4 left-4", "data-fg-ddas64": ":0:/src/app/pages/NewsArticlesPageV2.tsx:147:25:7263:346:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "ddas65", _fgB: 1790697589478, className: "inline-flex items-center gap-1.5 px-3 py-1.5 bg-[#0056B3] text-white text-xs font-semibold rounded-full", "data-fg-ddas65": ":0:/src/app/pages/NewsArticlesPageV2.tsx:148:27:7329:249:e:span:etx", children: [
37755                /* @__PURE__ */ i(a, { _fgT: G4, _fgS: "ddas66", _fgB: 1790697589478, size: 12, "data-fg-ddas66": ":0:node_modules/lucide-react:149:29:7480:17:e:Tag::::::BKy" }),
37756                s.category
37757              ] }) })
37758            ] }),
37759            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas69", _fgB: 1790697589478, className: "p-6 flex flex-col flex-grow", "data-fg-ddas69": ":0:/src/app/pages/NewsArticlesPageV2.tsx:156:23:7700:1180:e:div:etetete", children: [
37760              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "ddas70", _fgB: 1790697589478, className: "flex items-center gap-2 text-sm text-slate-500 mb-3", "data-fg-ddas70": ":0:/src/app/pages/NewsArticlesPageV2.tsx:157:25:7770:224:e:div:ete", children: [
37761                /* @__PURE__ */ i(a, { _fgT: i2, _fgS: "ddas71", _fgB: 1790697589478, size: 14, "data-fg-ddas71": ":0:node_modules/lucide-react:158:27:7866:22:e:Calendar::::::Bbz4" }),
37762                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "ddas72", _fgB: 1790697589478, "data-fg-ddas72": ":0:/src/app/pages/NewsArticlesPageV2.tsx:159:27:7915:48:e:span:x", children: e(s.publishedDate) })
37763              ] }),
37764              /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "ddas74", _fgB: 1790697589478, className: "text-2xl font-bold text-slate-900 mb-3 line-clamp-2", "data-fg-ddas74": ":0:/src/app/pages/NewsArticlesPageV2.tsx:162:25:8020:140:e:h2:x", children: s.title }),
37765              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "ddas76", _fgB: 1790697589478, className: "text-slate-600 mb-6 line-clamp-3 flex-grow", "data-fg-ddas76": ":0:/src/app/pages/NewsArticlesPageV2.tsx:166:25:8186:131:e:p:x", children: s.excerpt }),
37766              /* @__PURE__ */ c(
37767                a,
37768                {
37769                  _fgT: E,
37770                  _fgS: "ddas78",
37771                  _fgB: 1790697589478,
37772                  href: `/news-articles/${s.slug}`,
37773                  className: "group inline-flex items-center gap-2 text-[#0056B3] font-semibold hover:text-[#004494] transition-colors mt-auto",
37774                  "data-fg-ddas78": ":0:node_modules/wouter:170:25:8343:508:e:Link:te:::::C4yE",
37775                  children: [
37776                    "Read More",
37777                    /* @__PURE__ */ i(
37778                      a,
37779                      {
37780                        _fgT: D,
37781                        _fgS: "ddas80",
37782                        _fgB: 1790697589478,
37783                        size: 18,
37784                        className: "group-hover:translate-x-1 transition-transform",
37785                        "data-fg-ddas80": ":0:node_modules/lucide-react:175:27:8654:165:e:ArrowRight::::::s5N"
37786                      }
37787                    )
37788                  ]
37789                }
37790              )
37791            ] })
37792          ]
37793        },
37794        s.id
37795      )) })
37796    ] }) }) }),
37797    /* @__PURE__ */ i(a, { _fgT: Me, _fgS: "ddas81", _fgB: 1790697589478, "data-fg-ddas81": ":0:/src/app/pages/NewsArticlesPageV2.tsx:190:7:9049:10:e:Footer::::::B1Vv" })
37798  ] });
37799}
37800function dy() {
37801  const e = Y6().slug, s = zi.find((o) => o.slug === e), r = M1(() => {
37802    if (!s) return "";
37803    let o = cy(s.content);
37804    return o = o.replace(
37805      /(<blockquote[^>]*>)([\s\S]*?)<p\s+class="[^"]*not-italic[^"]*">([\s\S]*?)<\/p>\s*<\/blockquote>/g,
37806      '$1$2</blockquote><p class="blockquote-attribution">$3</p>'
37807    ), o = o.replace(/<h2[^>]*>[\s\S]*?<\/h2>/, ""), s.category === "Press Release" && (o = o.replace(/<p><strong>Gaithersburg, Maryland<\/strong><\/p>\s*/, "")), o;
37808  }, [s]);
37809  if (!s)
37810    return /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys70", _fgB: 1790697589528, className: "min-h-screen bg-white flex items-center justify-center px-6", "data-fg-dys70": ":0:/src/app/pages/ArticleDetailPageV2.tsx:35:7:1400:666:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys71", _fgB: 1790697589528, className: "text-center", "data-fg-dys71": ":0:/src/app/pages/ArticleDetailPageV2.tsx:36:9:1486:567:e:div:etete", children: [
37811      /* @__PURE__ */ i(a, { _fgT: "h1", _fgS: "dys72", _fgB: 1790697589528, className: "text-4xl font-bold text-slate-900 mb-4", "data-fg-dys72": ":0:/src/app/pages/ArticleDetailPageV2.tsx:37:11:1526:77:e:h1:t", children: "Article Not Found" }),
37812      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dys74", _fgB: 1790697589528, className: "text-lg text-slate-600 mb-8", "data-fg-dys74": ":0:/src/app/pages/ArticleDetailPageV2.tsx:38:11:1614:126:e:p:t", children: "Sorry, we couldn't find the article you're looking for." }),
37813      /* @__PURE__ */ c(
37814        a,
37815        {
37816          _fgT: E,
37817          _fgS: "dys76",
37818          _fgB: 1790697589528,
37819          href: "/news-articles",
37820          className: "inline-flex items-center gap-2 bg-[#0056B3] text-white px-6 py-3 rounded-full font-semibold hover:bg-[#004494] transition-colors",
37821          "data-fg-dys76": ":0:node_modules/wouter:41:11:1751:287:e:Link:et:::::C4yE",
37822          children: [
37823            /* @__PURE__ */ i(a, { _fgT: O1, _fgS: "dys77", _fgB: 1790697589528, size: 18, "data-fg-dys77": ":0:node_modules/lucide-react:45:13:1968:23:e:ArrowLeft::::::EIC8" }),
37824            "Back to Articles"
37825          ]
37826        }
37827      )
37828    ] }) });
37829  const n = (o) => {
37830    const [L, d, l] = o.split("-").map(Number);
37831    return new Date(L, d - 1, l).toLocaleDateString("en-US", {
37832      year: "numeric",
37833      month: "long",
37834      day: "numeric"
37835    });
37836  };
37837  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys79", _fgB: 1790697589528, _fgD: !0, className: "min-h-screen bg-white", "data-fg-dys79": ":0:/src/app/pages/ArticleDetailPageV2.tsx:64:5:2382:7687:e:div:xtetxtetxte:1", children: [
37838    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys711", _fgB: 1790697589528, className: "bg-slate-50 border-b border-slate-200", "data-fg-dys711": ":0:/src/app/pages/ArticleDetailPageV2.tsx:66:7:2454:407:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys712", _fgB: 1790697589528, className: "max-w-4xl mx-auto px-6 py-4", "data-fg-dys712": ":0:/src/app/pages/ArticleDetailPageV2.tsx:67:9:2518:330:e:div:e", children: /* @__PURE__ */ c(
37839      a,
37840      {
37841        _fgT: E,
37842        _fgS: "dys713",
37843        _fgB: 1790697589528,
37844        href: "/news-articles",
37845        className: "inline-flex items-center gap-2 text-slate-600 hover:text-[#0056B3] transition-colors font-medium",
37846        "data-fg-dys713": ":0:node_modules/wouter:68:11:2574:259:e:Link:et:::::C4yE",
37847        children: [
37848          /* @__PURE__ */ i(a, { _fgT: O1, _fgS: "dys714", _fgB: 1790697589528, size: 18, "data-fg-dys714": ":0:node_modules/lucide-react:72:13:2759:23:e:ArrowLeft::::::EIC8" }),
37849          "Back to All Articles"
37850        ]
37851      }
37852    ) }) }),
37853    /* @__PURE__ */ i(a, { _fgT: "article", _fgS: "dys717", _fgB: 1790697589528, className: "max-w-4xl mx-auto px-6 py-12", "data-fg-dys717": ":0:/src/app/pages/ArticleDetailPageV2.tsx:79:7:2898:6391:e:article:e", children: /* @__PURE__ */ c(
37854      a,
37855      {
37856        _fgT: m.div,
37857        _fgS: "dys718",
37858        _fgB: 1790697589528,
37859        initial: { opacity: 0, y: 30 },
37860        animate: { opacity: 1, y: 0 },
37861        transition: { duration: 0.6 },
37862        "data-fg-dys718": ":0:/src/app/pages/ArticleDetailPageV2.tsx:80:9:2957:6315:e:motion.div:xtxtxtxtxtetxtx",
37863        children: [
37864          s.category === "Press Release" ? /* @__PURE__ */ c(C, { children: [
37865            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dys723", _fgB: 1790697589528, className: "uppercase tracking-[0.2em] text-[13px] text-[#0056B3] font-semibold mb-8", "data-fg-dys723": ":0:/src/app/pages/ArticleDetailPageV2.tsx:89:15:3260:145:e:p:t", children: "For Immediate Release" }),
37866            /* @__PURE__ */ i(a, { _fgT: "h1", _fgS: "dys726", _fgB: 1790697589528, className: "font-['DM_Serif_Display'] text-4xl md:text-5xl text-slate-900 mb-6 leading-tight", "data-fg-dys726": ":0:/src/app/pages/ArticleDetailPageV2.tsx:94:15:3449:149:e:h1:x", children: s.title }),
37867            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys729", _fgB: 1790697589528, className: "mb-8 pb-8 border-b border-slate-200", "data-fg-dys729": ":0:/src/app/pages/ArticleDetailPageV2.tsx:99:15:3659:329:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "dys730", _fgB: 1790697589528, className: "text-[17px] text-[#5A6A80]", "data-fg-dys730": ":0:/src/app/pages/ArticleDetailPageV2.tsx:100:17:3729:238:e:p:etstx", children: [
37868              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dys731", _fgB: 1790697589528, className: "font-semibold text-[#0B1B2B]", "data-fg-dys731": ":0:/src/app/pages/ArticleDetailPageV2.tsx:101:19:3790:76:e:span:t", children: "Gaithersburg, Maryland" }),
37869              " — ",
37870              n(s.publishedDate)
37871            ] }) })
37872          ] }) : /* @__PURE__ */ c(C, { children: [
37873            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys736", _fgB: 1790697589528, className: "mb-6", "data-fg-dys736": ":0:/src/app/pages/ArticleDetailPageV2.tsx:109:15:4050:275:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dys737", _fgB: 1790697589528, className: "inline-flex items-center gap-2 px-4 py-2 bg-[#0056B3] text-white text-sm font-semibold rounded-full", "data-fg-dys737": ":0:/src/app/pages/ArticleDetailPageV2.tsx:110:17:4089:215:e:span:etx", children: [
37874              /* @__PURE__ */ i(a, { _fgT: G4, _fgS: "dys738", _fgB: 1790697589528, size: 14, "data-fg-dys738": ":0:node_modules/lucide-react:111:19:4226:17:e:Tag::::::BKy" }),
37875              s.category
37876            ] }) }),
37877            /* @__PURE__ */ i(a, { _fgT: "h1", _fgS: "dys741", _fgB: 1790697589528, className: "font-['DM_Serif_Display'] text-4xl md:text-5xl text-slate-900 mb-6 leading-tight", "data-fg-dys741": ":0:/src/app/pages/ArticleDetailPageV2.tsx:117:15:4369:149:e:h1:x", children: s.title }),
37878            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys744", _fgB: 1790697589528, className: "flex flex-wrap items-center gap-6 text-slate-600 mb-8 pb-8 border-b border-slate-200", "data-fg-dys744": ":0:/src/app/pages/ArticleDetailPageV2.tsx:122:15:4565:502:e:div:ete", children: [
37879              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys745", _fgB: 1790697589528, className: "flex items-center gap-2", "data-fg-dys745": ":0:/src/app/pages/ArticleDetailPageV2.tsx:123:17:4684:173:e:div:ete", children: [
37880                /* @__PURE__ */ i(a, { _fgT: v2, _fgS: "dys746", _fgB: 1790697589528, size: 18, "data-fg-dys746": ":0:node_modules/lucide-react:124:19:4744:18:e:User::::::wpV" }),
37881                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dys747", _fgB: 1790697589528, className: "font-medium", "data-fg-dys747": ":0:/src/app/pages/ArticleDetailPageV2.tsx:125:19:4781:53:e:span:x", children: s.author })
37882              ] }),
37883              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys749", _fgB: 1790697589528, className: "flex items-center gap-2", "data-fg-dys749": ":0:/src/app/pages/ArticleDetailPageV2.tsx:127:17:4874:172:e:div:ete", children: [
37884                /* @__PURE__ */ i(a, { _fgT: i2, _fgS: "dys750", _fgB: 1790697589528, size: 18, "data-fg-dys750": ":0:node_modules/lucide-react:128:19:4934:22:e:Calendar::::::Bbz4" }),
37885                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dys751", _fgB: 1790697589528, "data-fg-dys751": ":0:/src/app/pages/ArticleDetailPageV2.tsx:129:19:4975:48:e:span:x", children: n(s.publishedDate) })
37886              ] })
37887            ] })
37888          ] }),
37889          s.category !== "Press Release" && /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys755", _fgB: 1790697589528, className: "mb-12 rounded-2xl overflow-hidden shadow-xl", "data-fg-dys755": ":0:/src/app/pages/ArticleDetailPageV2.tsx:137:13:5222:265:e:div:e", children: /* @__PURE__ */ i(
37890            a,
37891            {
37892              _fgT: "img",
37893              _fgS: "dys756",
37894              _fgB: 1790697589528,
37895              src: n5(s.headerImage),
37896              alt: s.title,
37897              className: "w-full h-auto object-cover",
37898              "data-fg-dys756": ":0:/src/app/pages/ArticleDetailPageV2.tsx:138:15:5298:170:e:img"
37899            }
37900          ) }),
37901          /* @__PURE__ */ i(
37902            a,
37903            {
37904              _fgT: "div",
37905              _fgS: "dys758",
37906              _fgB: 1790697589528,
37907              className: `prose prose-lg max-w-none mb-12
37908              [&_h2]:font-['DM_Serif_Display'] 
37909              [&_h2]:text-[40px]
37910              [&_h2]:leading-[1.2]
37911              [&_h2]:text-[#0B1B2B]
37912              [&_h2]:mt-16
37913              [&_h2]:mb-8
37914              [&_h2]:pt-8
37915              [&_h2]:border-t-2
37916              [&_h2]:border-[#0056B3]/20
37917              [&_h3]:font-['DM_Serif_Display']
37918              [&_h3]:text-[28px]
37919              [&_h3]:leading-[1.2]
37920              [&_h3]:text-[#0B1B2B]
37921              [&_h3]:mt-10
37922              [&_h3]:mb-6
37923              [&_h4]:font-['DM_Serif_Display']
37924              [&_h4]:text-[22px]
37925              [&_h4]:leading-[1.3]
37926              [&_h4]:text-[#0B1B2B]
37927              [&_h4]:mt-8
37928              [&_h4]:mb-4
37929              [&_p]:text-[17px]
37930              [&_p]:leading-[1.7]
37931              [&_p]:text-[#5A6A80]
37932              [&_p]:mb-6
37933              [&_a]:text-[#0056B3]
37934              [&_a]:no-underline
37935              [&_a]:hover:underline
37936              [&_strong]:text-[#0B1B2B]
37937              [&_strong]:font-semibold
37938              [&_ul]:my-6
37939              [&_ul]:space-y-0
37940              [&_ul]:list-disc
37941              [&_ul]:pl-6
37942              [&_li]:text-[17px]
37943              [&_li]:leading-[1.7]
37944              [&_li]:text-[#5A6A80]
37945              [&_img]:rounded-xl
37946              [&_img]:shadow-lg
37947              [&_img]:my-10
37948              [&_figcaption]:text-center
37949              [&_figcaption]:text-sm
37950              [&_figcaption]:text-[#5A6A80]
37951              [&_figcaption]:mt-3
37952              [&_blockquote]:border-l-4
37953              [&_blockquote]:border-[#0056B3]
37954              [&_blockquote]:pl-6
37955              [&_blockquote]:italic
37956              [&_blockquote]:text-[#5A6A80]
37957              [&_.blockquote-attribution]:not-italic
37958              [&_.blockquote-attribution]:text-[15px]
37959              [&_.blockquote-attribution]:text-[#0B1B2B]
37960              [&_.blockquote-attribution]:mt-2
37961              [&_.blockquote-attribution]:mb-8
37962              [&_.text-gray-300]:!text-gray-300
37963              [&_.text-\\[#EFBB0F\\]]:!text-[#EFBB0F]`,
37964              dangerouslySetInnerHTML: { __html: r },
37965              "data-fg-dys758": ":0:/src/app/pages/ArticleDetailPageV2.tsx:147:11:5546:2185:e:div"
37966            }
37967          ),
37968          s.downloads && s.downloads.length > 0 && /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys761", _fgB: 1790697589528, className: "mt-12 pt-8 border-t border-slate-200", "data-fg-dys761": ":0:/src/app/pages/ArticleDetailPageV2.tsx:210:13:7847:1390:e:div:ete", children: [
37969            /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dys762", _fgB: 1790697589528, className: "font-['DM_Serif_Display'] text-2xl text-slate-900 mb-6", "data-fg-dys762": ":0:/src/app/pages/ArticleDetailPageV2.tsx:211:15:7916:117:e:h3:t", children: "Downloads" }),
37970            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys764", _fgB: 1790697589528, className: "space-y-4", "data-fg-dys764": ":0:/src/app/pages/ArticleDetailPageV2.tsx:214:15:8048:1170:e:div:x", children: s.downloads.map((o, L) => /* @__PURE__ */ c(
37971              a,
37972              {
37973                _fgT: "a",
37974                _fgS: "dys766",
37975                _fgB: 1790697589528,
37976                href: o.url,
37977                download: !0,
37978                className: "flex items-center gap-4 p-4 bg-slate-50 hover:bg-slate-100 rounded-xl border border-slate-200 transition-colors group",
37979                "data-fg-dys766": ":0:/src/app/pages/ArticleDetailPageV2.tsx:216:19:8156:1021:e:a:etete",
37980                children: [
37981                  /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys767", _fgB: 1790697589528, className: "flex-shrink-0 w-12 h-12 bg-[#0056B3] rounded-lg flex items-center justify-center", "data-fg-dys76
379817": ":0:/src/app/pages/ArticleDetailPageV2.tsx:222:21:8450:193:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: Kc, _fgS: "dys768", _fgB: 1790697589528, size: 24, className: "text-white", "data-fg-dys768": ":0:node_modules/lucide-react:223:23:8571:45:e:Download::::::yh6" }) }),
37982                  /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys769", _fgB: 1790697589528, className: "flex-grow", "data-fg-dys769": ":0:/src/app/pages/ArticleDetailPageV2.tsx:225:21:8664:276:e:div:ete", children: [
37983                    /* @__PURE__ */ i(a, { _fgT: "h4", _fgS: "dys770", _fgB: 1790697589528, className: "font-semibold text-slate-900 mb-1", "data-fg-dys770": ":0:/src/app/pages/ArticleDetailPageV2.tsx:226:23:8714:119:e:h4:x", children: o.title }),
37984                    /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dys772", _fgB: 1790697589528, className: "text-sm text-slate-600", "data-fg-dys772": ":0:/src/app/pages/ArticleDetailPageV2.tsx:229:23:8856:57:e:p:x", children: o.type })
37985                  ] }),
37986                  /* @__PURE__ */ i(
37987                    a,
37988                    {
37989                      _fgT: O1,
37990                      _fgS: "dys774",
37991                      _fgB: 1790697589528,
37992                      size: 20,
37993                      className: "rotate-180 text-slate-400 group-hover:text-[#0056B3] group-hover:translate-x-1 transition-all",
37994                      "data-fg-dys774": ":0:node_modules/lucide-react:231:21:8961:193:e:ArrowLeft::::::EIC8"
37995                    }
37996                  )
37997                ]
37998              },
37999              L
38000            )) })
38001          ] })
38002        ]
38003      }
38004    ) }),
38005    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dys776", _fgB: 1790697589528, className: "bg-slate-50 py-16 px-6 mt-12", "data-fg-dys776": ":0:/src/app/pages/ArticleDetailPageV2.tsx:244:7:9332:726:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dys777", _fgB: 1790697589528, className: "max-w-4xl mx-auto text-center", "data-fg-dys777": ":0:/src/app/pages/ArticleDetailPageV2.tsx:245:9:9387:658:e:div:etete", children: [
38006      /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dys778", _fgB: 1790697589528, className: "font-['DM_Serif_Display'] text-3xl text-slate-900 mb-4", "data-fg-dys778": ":0:/src/app/pages/ArticleDetailPageV2.tsx:246:11:9445:121:e:h3:t", children: "Explore More Articles" }),
38007      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dys780", _fgB: 1790697589528, className: "text-slate-600 mb-8", "data-fg-dys780": ":0:/src/app/pages/ArticleDetailPageV2.tsx:249:11:9577:121:e:p:t", children: "Discover more insights and updates from the IT Curves team" }),
38008      /* @__PURE__ */ c(
38009        a,
38010        {
38011          _fgT: E,
38012          _fgS: "dys782",
38013          _fgB: 1790697589528,
38014          href: "/news-articles",
38015          className: "inline-flex items-center gap-2 bg-[#0056B3] text-white px-8 py-4 rounded-full font-semibold hover:bg-[#004494] transition-colors shadow-lg",
38016          "data-fg-dys782": ":0:node_modules/wouter:252:11:9709:321:e:Link:te:::::C4yE",
38017          children: [
38018            "View All Articles",
38019            /* @__PURE__ */ i(a, { _fgT: O1, _fgS: "dys784", _fgB: 1790697589528, size: 18, className: "rotate-180", "data-fg-dys784": ":0:node_modules/lucide-react:257:13:9966:46:e:ArrowLeft::::::EIC8" })
38020          ]
38021        }
38022      )
38023    ] }) })
38024  ] });
38025}
38026const r0 = `<!doctype html>
38027<html lang="en">
38028<head>
38029<meta charset="utf-8">
38030<meta name="viewport" content="width=device-width, initial-scale=1">
38031<title>Go! Time: Two Years of On-Demand Transit in Annapolis</title>
38032<meta name="description" content="How Annapolis replaced two fixed bus routes with on-demand service, and what automated dispatch changed.">
38033<link rel="preconnect" href="https://fonts.googleapis.com">
38034<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
38035<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@500;600&display=swap">
38036<link rel="stylesheet" href="style.css">
38037</head>
38038<body>
38039
38040<div class="topbar"><div class="shell">
38041  <span class="wordmark">IT Curves</span>
38042  <span class="label">Deployment notes</span>
38043</div></div>
38044
38045<div class="shell">
38046<header class="hero">
38047  <p class="label">Annapolis, Maryland</p>
38048  <h1>Go! Time: two years of on-demand transit in Maryland’s capital</h1>
38049  <figure class="hero-img"><img src="figures/hero_gotime.jpg" width="1360" height="765" alt="A Go! Time vehicle on a street in downtown Annapolis at sunset, with the Maryland State House behind it."></figure>
38050  <p class="byline"><strong>Dr. Hesam Rashidi</strong> · September 2026</p>
38051
38052  <div class="brief">
38053    <p class="label">In brief</p>
38054    <ul>
38055      <li>Go! Time replaced the Orange and Purple routes in 2024. It expanded ten-minute walkable access to transit by nearly a square mile, and it runs on weekday and Saturday evenings and all day Sunday, when no citywide bus route operates.</li>
38056      <li>Ridership is 31% above the routes it replaced and grew 21% in the latest fiscal year. Cost per passenger trip is 8% below those routes and fell 11% year over year, as the share of rides sharing a vehicle rose from 55% to 66%.</li>
38057      <li>IT Curves brought human-centered automation to the dispatcher’s real-time work. Dispatchers now make 4% of route adju
38057stments by hand, down from 85%, and 96% of riders are picked up within 10 minutes of the quoted time, up from 86%.</li>
38058    </ul>
38059  </div>
38060</header>
38061
38062<article>
38063<div class="col">
38064
38065<section class="sec">
38066<span class="tick"></span>
38067<h2>A compact capital with dispersed demand</h2>
38068<p>Annapolis is Maryland’s capital and the county seat of Anne Arundel County, a city of about 40,800 residents on a little over seven square miles of land.<sup class="fn"><a href="#r1">1</a></sup><sup class="fn"><a href="#r2">2</a></sup> It has been home to St. John’s College since 1696 and to the U.S. Naval Academy since 1845, and the historic core around the State House still sets the street pattern downtown.</p>
38069<p>Beyond that core the city spreads out the way many small American cities do. Commercial land lines West Street and runs out to the regional retail and employment node at Parole and the Annapolis Mall, just past the city line. Forest Drive carries shopping centres and subdivisions to the south-east. Between the corridors sits lower-density housing, with the hospital, the colleges and the Academy as large single-purpose anchors (Figure 1).</p>
38070
38071<figure class="mapfig">
38072  <div class="legend-row" role="group" aria-label="Highlight a land use">
38073    <button class="chip" type="button" data-focus="com"><span class="sq" style="--c:#F4D29A"></span>Commercial &amp; retail</button>
38074    <button class="chip" type="button" data-focus="ins"><span class="sq" style="--c:#C9D3DE"></span>Institutions</button>
38075    <button class="chip" type="button" data-focus="park"><span class="sq" style="--c:#D6E6D3"></span>Parks &amp; open space</button>
38076  </div>
38077  <svg class="map" id="citymap" viewBox="0 0 680 601" role="img" aria-label="Annapolis land use and major destinations"><rect class="m-land" x="0" y="0" width="680" height="601"/><path class="m-water" d="M9.9,500.1 L11.6,506.6 L13.9,510.2 L13.1,511.5 L5.8,515.4 L0.0,514.3 L0.0,512.4 L2.1,510.8 L7.4,509.5 L4.4,504.3 L6.0,499.3 L4.6,497.1 L0.0,498.1 L0.0,444.4 L1.4,441.5 L0.8,440.9 L0.0,441.7 L0.0,433.9 L1.9,436.7 L4.0,436.5 L4.8,435.0 L6.6,434.4 L9.1,435.3 L7.1,442.4 L5.3,442.6 L3.6,441.3 L3.4,442.9 L17.9,449.0 L19.7,449.0 L22.5,447.1 L26.9,442.8 L31.2,441.7 L34.4,442.5 L41.1,447.0 L44.4,448.1 L56.2,443.5 L62.0,446.0 L67.1,451.2 L68.0,451.3 L69.3,448.8 L68.6,447.4 L59.2,443.1 L56.9,440.7 L59.7,437.7 L63.7,436.7 L65.2,438.1 L69.6,437.0 L71.3,433.4 L70.6,431.6 L65.3,428.4 L62.2,427.7 L60.7,425.3 L61.2,423.6 L68.3,415.8 L62.2,411.2 L66.0,406.3 L65.5,398.5 L58.8,392.5 L58.8,390.1 L60.2,388.4 L59.8,382.7 L58.0,380.8 L53.2,366.5 L54.9,363.5 L55.2,357.6 L56.7,360.5 L57.0,365.5 L60.7,373.4 L64.3,375.8 L63.4,380.8 L67.0,383.3 L66.1,392.0 L71.5,393.6 L71.1,400.7 L82.6,404.7 L82.4,406.4 L81.1,407.0 L76.3,407.2 L74.3,410.8 L75.8,416.2 L81.2,418.0 L75.8,422.4 L77.7,424.4 L79.0,428.5 L77.4,430.8 L84.7,435.3 L85.5,438.2 L84.6,441.4 L79.8,444.7 L82.6,453.6 L82.1,455.7 L84.2,463.4 L88.2,468.6 L87.8,471.7 L91.0,475.5 L89.2,477.6 L91.5,480.0 L98.0,475.3 L104.1,472.8 L124.0,473.6 L128.6,477.4 L134.8,490.6 L136.5,491.7 L138.9,491.3 L150.4,484.1 L154.8,483.1 L160.6,482.8 L171.6,486.7 L176.5,485.1 L177.1,484.4 L170.5,476.1 L169.0,470.8 L171.4,466.7 L172.6,461.4 L175.7,458.7 L178.0,454.7 L177.7,449.3 L179.8,447.0 L173.8,445.9 L167.8,440.1 L160.4,442.0 L160.1,440.0 L152.4,437.7 L151.9,435.3 L153.0,433.9 L156.3,434.4 L163.2,432.9 L167.9,429.7 L168.4,427.2 L164.2,424.8 L163.6,422.9 L164.6,420.5 L165.7,420.3 L173.6,423.3 L175.7,430.9 L178.5,430.7 L179.2,429.5 L177.9,426.3 L178.4,423.5 L179.9,421.5 L184.4,419.2 L183.8,416.6 L186.4,409.6 L186.7,403.9 L186.8,396.5 L185.3,390.1 L187.4,388.9 L187.4,385.5 L189.7,383.5 L189.7,382.2 L177.5,366.3 L176.4,364.0 L176.5,361.2 L177.5,361.0 L185.5,368.5 L190.6,374.0 L191.0,375.6 L195.9,375.4 L190.5,365.4 L189.2,359.1 L191.5,353.4 L191.2,338.2 L195.8,331.7 L195.7,328.1 L197.1,324.3 L199.4,326.4 L200.1,332.4 L199.8,334.3 L195.6,339.6 L195.3,353.2 L196.1,354.8 L206.9,350.0 L209.7,347.4 L210.6,344.9 L211.9,349.1 L208.7,353.7 L200.1,357.8 L196.6,362.9 L197.0,365.5 L200.8,369.6 L205.0,371.8 L201.0,378.4 L199.3,386.2 L197.7,388.4 L199.1,391.1 L198.4,396.8 L199.5,399.8 L196.2,402.5 L194.9,404.9 L200.2,409.2 L200.1,411.6 L195.3,414.3 L193.4,416.8 L194.9,420.5 L198.2,423.5 L188.9,429.5 L192.3,435.6 L192.5,442.3 L191.3,448.4 L193.6,452.2 L187.9,457.0 L190.4,458.7 L191.5,461.2 L189.9,466.6 L191.4,470.5 L190.3,472.9 L191.9,476.7 L193.6,477.8 L192.6,478.5 L194.4,483.1 L201.0,486.0 L205.2,486.3 L208.4,488.8 L215.0,483.8 L215.2,482.8 L210.9,481.9 L208.4,478.9 L202.8,475.6 L205.4,469.6 L209.7,466.1 L212.8,461.7 L216.7,461.3 L216.6,465.0 L218.4,468.1 L221.7,468.9 L230.0,466.6 L226.9,462.7 L227.5,459.8 L229.4,458.8 L229.1,451.5 L233.2,449.2 L233.7,443.6 L235.5,439.0 L244.5,431.7 L242.5,426.8 L235.4,416.4 L236.6,411.2 L237.9,411.2 L246.6,423.0 L250.8,429.3 L252.1,434.0 L255.8,435.1 L257.9,430.2 L263.2,423.7 L260.6,416.8 L262.3,413.0 L261.2,409.3 L262.0,405.2 L260.4,403.2 L261.7,401.7 L262.9,401.5 L265.2,404.2 L266.4,418.1 L269.6,423.5 L269.3,427.1 L273.4,425.5 L277.3,427.3 L282.3,434.3 L285.4,436.6 L288.6,437.4 L292.3,436.8 L292.5,440.1 L293.6,441.3 L297.4,441.0 L301.8,442.2 L308.4,440.7 L321.0,443.2 L323.8,449.5 L316.9,446.1 L307.0,445.4 L302.0,449.0 L298.2,446.6 L292.5,447.1 L288.0,449.5 L286.7,452.7 L284.2,451.2 L282.6,446.7 L281.8,439.0 L276.2,436.1 L265.2,436.8 L259.0,450.6 L245.7,452.6 L245.0,457.7 L241.2,459.3 L243.8,464.1 L247.8,466.7 L247.2,471.9 L240.5,471.6 L235.5,477.1 L236.8,479.3 L236.2,480.3 L231.9,478.3 L230.7,476.6 L230.5,473.4 L229.7,473.4 L230.3,477.1 L232.2,480.3 L233.6,492.3 L232.6,500.5 L231.7,500.5 L231.1,504.6 L230.1,504.9 L228.4,512.3 L227.9,518.9 L228.3,532.8 L230.1,533.1 L229.5,537.6 L230.6,540.9 L232.3,541.8 L235.5,538.5 L252.3,535.6 L252.4,534.1 L251.6,533.9 L248.5,535.0 L247.9,532.6 L251.2,530.4 L252.4,530.6 L252.9,532.6 L254.2,532.3 L256.7,531.5 L258.4,529.4 L260.8,521.6 L258.7,522.1 L257.6,520.9 L257.6,517.8 L259.0,515.7 L258.1,514.4 L259.4,511.8 L258.8,511.4 L261.0,508.9 L262.9,504.0 L273.6,505.5 L273.8,506.9 L265.4,508.9 L264.1,510.6 L266.1,515.4 L264.9,517.8 L266.4,520.8 L270.5,524.7 L271.6,529.2 L270.6,531.1 L268.8,530.6 L264.4,538.2 L269.5,541.3 L269.1,545.3 L266.0,544.7 L265.9,540.5 L263.2,540.0 L265.1,544.5 L273.1,577.5 L283.7,582.3 L287.1,580.4 L289.7,576.7 L291.5,576.1 L288.2,573.3 L285.3,573.4 L281.6,570.9 L280.4,568.1 L280.3,558.5 L286.4,549.8 L309.2,533.2 L308.4,532.5 L304.5,535.7 L301.2,532.3 L301.2,530.6 L302.0,529.3 L304.2,529.7 L307.1,528.1 L308.6,524.7 L307.3,523.7 L307.3,521.4 L309.2,517.0 L314.6,512.9 L313.4,509.6 L314.8,502.8 L323.6,504.8 L324.0,507.0 L318.2,509.1 L320.3,513.4 L319.5,515.4 L316.5,516.6 L315.1,514.4 L314.5,514.8 L318.1,518.8 L326.9,523.4 L336.4,516.9 L341.9,519.8 L343.4,519.7 L343.9,514.6 L345.9,511.4 L356.7,507.2 L358.6,505.3 L359.5,505.1 L360.1,507.4 L358.3,509.7 L352.1,511.8 L350.4,514.7 L351.4,519.3 L348.7,524.0 L345.5,526.4 L341.3,527.6 L334.9,527.3 L329.7,531.7 L321.7,533.6 L320.2,537.5 L322.2,543.7 L329.3,543.0 L331.5,545.5 L334.1,546.1 L334.4,548.0 L325.4,547.9 L320.3,550.9 L314.8,549.7 L312.7,551.4 L312.6,553.4 L316.2,560.1 L317.9,565.8 L325.0,564.2 L326.7,565.1 L327.4,567.0 L326.6,569.7 L317.9,571.3 L314.9,570.7 L314.5,572.2 L312.1,573.7 L309.5,577.4 L311.8,580.5 L324.6,586.6 L330.6,591.8 L335.0,600.9 L203.0,600.9 L201.5,594.2 L197.1,586.1 L190.8,578.7 L186.8,577.8 L181.4,574.5 L166.8,570.8 L162.8,568.8 L155.2,568.0 L153.7,570.4 L154.9,574.6 L154.0,586.8 L154.8,587.5 L155.0,585.5 L157.7,585.3 L162.0,587.8 L162.5,589.3 L156.8,589.8 L151.6,589.1 L149.5,586.2 L143.8,583.1 L138.0,583.1 L136.2,585.9 L140.4,591.3 L148.0,596.5 L149.6,595.6 L152.6,596.1 L153.1,599.6 L148.8,599.0 L148.1,600.9 L135.0,600.9 L134.2,597.8 L130.5,597.1 L128.5,597.6 L125.5,600.9 L114.7,600.9 L110.6,596.8 L103.9,599.9 L101.6,600.5 L101.2,599.3 L108.6,592.7 L113.5,592.3 L116.8,593.7 L118.1,591.4 L117.9,588.3 L120.1,584.9 L124.7,582.4 L126.8,572.6 L125.2,570.2 L125.9,568.6 L129.7,567.4 L135.4,567.9 L140.0,569.3 L140.8,571.9 L142.4,571.1 L148.1,560.9 L153.7,558.2 L154.6,556.7 L157.0,548.8 L156.5,547.8 L143.3,542.2 L133.9,541.8 L122.4,537.3 L121.0,538.5 L117.7,536.3 L117.9,532.9 L113.6,532.3 L104.2,533.2 L93.1,540.6 L91.2,544.0 L91.0,545.7 L96.5,556.3 L95.6,559.5 L89.8,560.4 L87.3,562.3 L86.0,564.8 L83.3,566.1 L77.1,565.2 L75.2,565.7 L74.6,571.4 L72.2,575.7 L68.1,575.5 L63.2,573.7 L59.7,574.8 L54.9,574.8 L53.5,576.2 L52.6,579.7 L49.2,582.0 L38.2,583.8 L42.5,577.7 L44.7,576.2 L45.2,572.0 L48.2,568.2 L51.5,567.6 L52.6,568.4 L58.9,566.2 L67.7,568.9 L67.6,559.2 L73.6,559.5 L76.8,558.6 L76.4,555.1 L77.9,552.9 L80.3,552.4 L82.2,554.3 L81.3,551.1 L82.5,540.8 L85.4,538.6 L86.0,536.7 L85.0,528.2 L78.6,518.6 L80.5,514.9 L79.0,513.1 L76.9,514.2 L65.6,512.1 L57.0,50
380775.8 L53.0,499.6 L46.3,496.0 L44.5,493.6 L44.5,491.6 L41.7,489.3 L35.9,489.2 L28.6,485.2 L29.1,484.5 L25.7,480.7 L27.1,477.2 L26.2,476.8 L23.6,477.7 L21.2,480.2 L11.5,493.9 L7.4,497.1 L7.7,500.2 L9.9,500.1ZM361.5,595.4 L363.2,591.0 L363.5,582.3 L366.2,580.4 L369.9,579.6 L372.2,577.1 L372.3,574.3 L374.7,573.1 L388.7,576.8 L394.7,583.7 L398.6,584.3 L400.8,586.6 L408.1,587.2 L413.0,584.7 L415.6,584.6 L412.1,589.8 L407.7,592.3 L392.0,589.6 L388.3,584.1 L376.6,580.2 L372.9,590.5 L373.0,596.3 L377.5,597.7 L380.6,600.9 L362.0,600.9 L361.5,595.4ZM75.4,237.8 L68.1,240.4 L66.8,239.5 L70.4,235.8 L73.1,235.7 L75.4,237.8ZM10.0,151.9 L10.5,154.2 L3.3,159.2 L2.5,155.2 L8.2,151.3 L10.0,151.9ZM70.8,152.6 L74.2,150.5 L76.1,151.6 L78.0,155.1 L69.9,155.3 L70.8,152.6ZM0.0,155.0 L2.7,159.4 L0.0,162.4 L0.0,155.0ZM159.9,274.3 L163.7,277.7 L161.5,279.7 L158.9,278.2 L159.9,274.3ZM219.9,170.6 L223.5,170.4 L223.4,169.5 L225.0,169.2 L228.5,170.7 L228.5,172.4 L224.7,178.5 L221.6,178.3 L220.8,177.4 L219.6,173.6 L218.4,173.4 L219.9,170.6ZM261.6,145.1 L267.9,143.5 L271.2,144.7 L276.0,144.3 L279.2,145.9 L279.3,147.3 L278.8,148.4 L273.7,148.3 L262.8,146.3 L261.6,145.1ZM188.9,138.8 L190.4,137.6 L192.5,138.2 L191.5,141.2 L184.4,140.8 L185.1,138.2 L188.9,138.8ZM216.3,141.0 L213.8,138.4 L215.7,136.8 L218.1,137.6 L217.8,139.6 L216.3,141.0ZM174.0,134.2 L175.4,134.5 L177.3,137.7 L176.5,140.2 L171.7,136.1 L174.0,134.2ZM308.4,71.9 L309.8,72.6 L309.1,74.1 L304.1,74.9 L305.8,72.4 L308.4,71.9ZM186.2,30.0 L182.3,29.3 L183.9,25.3 L185.0,25.7 L186.8,22.8 L186.6,24.7 L187.7,25.5 L186.2,30.0ZM359.5,23.1 L355.9,26.2 L354.2,25.4 L352.2,20.6 L349.2,16.6 L345.5,15.1 L342.6,15.1 L340.3,17.6 L338.5,22.9 L336.9,24.2 L330.9,23.1 L329.9,24.3 L326.9,40.8 L324.8,42.8 L323.4,41.8 L323.0,28.7 L320.4,24.9 L318.7,24.2 L310.9,26.2 L310.5,30.3 L309.5,31.5 L306.2,31.4 L304.0,38.5 L300.8,35.6 L298.2,35.1 L297.4,32.8 L294.2,33.3 L302.6,28.5 L303.6,19.6 L305.3,17.4 L312.2,19.0 L317.8,14.1 L322.5,13.1 L327.5,9.8 L332.6,11.5 L335.2,10.4 L336.9,9.0 L338.4,4.1 L342.0,0.0 L481.1,0.0 L485.7,7.9 L489.5,11.6 L493.7,13.9 L506.8,26.6 L508.6,29.3 L509.2,32.4 L511.0,28.8 L528.0,23.1 L532.3,18.5 L532.3,17.2 L529.4,18.3 L528.1,17.4 L532.0,11.7 L533.0,0.0 L538.7,0.0 L542.6,2.1 L540.4,4.6 L539.3,4.5 L538.0,6.8 L539.5,14.3 L541.4,16.2 L548.7,19.3 L553.5,25.6 L551.5,26.1 L548.3,24.8 L539.2,24.2 L536.7,23.0 L534.9,19.7 L535.3,16.9 L534.7,16.8 L534.4,21.6 L531.2,24.6 L533.8,24.7 L536.5,28.5 L546.7,53.7 L557.3,66.7 L560.5,76.2 L560.8,91.5 L561.9,93.7 L562.5,102.3 L559.7,111.3 L556.4,115.9 L557.7,117.8 L558.2,118.6 L564.8,114.7 L569.7,114.2 L583.2,117.3 L586.3,120.1 L587.7,123.1 L600.0,138.3 L602.5,149.9 L603.9,152.2 L613.3,154.4 L621.0,154.5 L626.9,157.4 L628.7,159.3 L630.3,165.4 L630.1,170.2 L628.1,173.4 L627.1,180.1 L628.4,185.8 L632.5,189.3 L645.8,209.7 L648.8,212.6 L653.9,205.3 L656.9,207.4 L652.3,214.2 L657.6,218.0 L660.9,213.0 L662.6,214.1 L659.3,219.1 L664.9,223.0 L670.6,216.0 L680.0,209.6 L680.0,497.8 L677.6,494.5 L675.3,493.5 L671.1,485.9 L660.1,471.6 L656.8,470.2 L651.4,458.7 L651.3,456.2 L640.4,422.5 L641.2,420.9 L637.1,422.0 L634.5,425.1 L634.5,443.2 L631.9,444.2 L625.8,444.3 L624.0,442.7 L623.6,430.2 L624.9,426.3 L633.7,419.4 L639.7,417.6 L637.7,417.1 L635.6,412.0 L635.1,406.9 L637.3,386.8 L634.8,378.0 L630.8,369.3 L633.9,356.5 L624.2,358.4 L624.0,359.6 L623.6,358.4 L622.0,358.9 L621.8,361.1 L619.7,363.0 L618.9,365.4 L615.1,367.7 L613.0,367.6 L607.2,364.0 L606.2,364.5 L606.0,372.0 L603.7,377.1 L600.0,380.8 L593.9,383.9 L595.7,391.6 L595.0,397.7 L599.9,398.2 L600.6,399.3 L599.1,401.4 L597.4,402.0 L594.8,401.1 L593.0,399.6 L593.3,398.2 L590.2,398.9 L586.9,403.0 L585.6,409.6 L586.1,411.6 L583.5,413.5 L578.5,412.6 L567.3,406.4 L567.2,426.5 L563.5,439.0 L566.4,440.9 L561.2,451.1 L559.0,453.9 L555.5,452.0 L545.6,454.7 L543.4,456.9 L535.4,457.7 L536.5,456.0 L535.3,453.1 L537.2,451.4 L540.8,450.3 L542.6,450.8 L545.7,448.4 L551.2,448.9 L553.8,446.0 L557.5,444.3 L554.8,439.7 L552.3,437.9 L548.0,439.7 L546.4,438.8 L541.5,439.7 L540.3,438.8 L541.1,432.4 L539.6,430.0 L539.6,427.7 L544.6,434.3 L551.7,431.4 L556.3,427.9 L556.6,424.9 L559.4,421.6 L557.5,416.2 L557.7,414.4 L559.5,412.9 L557.2,409.4 L556.8,402.9 L559.9,399.3 L566.4,396.7 L560.4,393.8 L551.7,397.0 L550.7,395.9 L551.1,393.9 L559.8,388.7 L570.2,392.2 L577.2,391.9 L576.3,384.7 L577.5,382.7 L583.7,378.4 L584.6,376.6 L584.1,374.9 L578.2,371.0 L574.9,370.1 L568.0,372.6 L566.5,370.0 L563.8,368.6 L557.7,367.5 L558.5,366.0 L562.8,364.3 L564.3,365.6 L568.9,362.3 L570.5,365.1 L573.8,365.6 L576.6,363.0 L582.6,360.2 L593.2,351.1 L592.1,350.1 L592.7,343.2 L594.7,341.4 L600.4,342.5 L601.4,343.5 L606.1,339.8 L611.5,345.1 L613.0,350.5 L617.1,348.9 L617.0,345.8 L618.7,344.3 L617.8,343.2 L619.2,342.0 L620.2,336.3 L624.3,330.9 L630.4,326.8 L633.2,321.7 L634.5,315.1 L632.9,311.5 L627.8,309.0 L625.8,308.7 L624.5,309.9 L617.1,305.7 L616.0,304.1 L617.5,303.0 L612.5,296.7 L608.4,299.7 L604.4,292.8 L603.4,293.6 L600.2,289.7 L599.6,290.1 L596.5,287.4 L599.9,284.9 L597.9,283.0 L595.2,283.4 L592.4,285.2 L591.5,284.1 L588.4,286.4 L588.9,287.7 L583.7,292.0 L585.8,297.1 L582.3,299.7 L579.3,295.7 L578.1,296.6 L581.5,301.4 L578.6,302.4 L579.0,305.0 L576.0,308.3 L576.6,309.3 L574.9,310.4 L575.7,311.7 L571.9,313.7 L569.7,313.5 L567.4,316.2 L566.7,315.4 L562.0,317.6 L547.7,313.7 L544.5,316.2 L541.4,3
3807717.1 L540.2,314.1 L534.5,316.6 L533.7,315.6 L530.0,317.1 L530.2,318.2 L528.3,319.4 L528.1,317.3 L526.8,317.1 L526.4,318.3 L524.7,316.7 L521.8,310.4 L520.1,310.0 L514.3,314.7 L512.9,316.9 L514.1,322.8 L510.3,324.8 L506.8,330.0 L506.5,333.2 L504.9,333.8 L503.5,331.4 L504.6,331.1 L504.7,326.9 L508.1,320.6 L504.8,310.5 L501.1,312.4 L498.6,311.2 L497.0,311.7 L492.9,320.5 L484.7,319.4 L478.2,321.8 L479.0,323.6 L478.3,327.6 L475.7,332.2 L478.7,337.1 L477.5,337.9 L471.6,331.2 L468.3,337.4 L475.1,345.0 L476.1,353.8 L475.6,356.1 L473.1,358.7 L471.2,347.1 L466.3,344.2 L465.1,342.5 L462.8,341.9 L458.6,335.9 L455.4,335.3 L446.2,336.3 L441.5,339.8 L441.4,344.1 L442.5,346.9 L438.6,347.4 L437.3,348.9 L435.6,354.9 L429.0,364.7 L422.9,364.3 L420.3,372.2 L419.9,369.7 L421.4,363.6 L423.0,361.9 L427.6,360.2 L428.0,358.6 L429.0,358.9 L430.1,355.8 L429.2,355.5 L430.1,352.7 L431.4,351.9 L433.2,345.4 L431.8,344.2 L432.3,342.7 L435.2,341.2 L436.1,336.3 L428.6,334.2 L423.3,329.6 L419.4,329.0 L415.9,326.6 L413.3,330.4 L409.4,332.5 L408.8,330.7 L410.8,330.1 L411.6,327.0 L407.5,326.2 L406.2,325.5 L406.5,324.3 L411.4,323.8 L419.6,320.5 L426.9,325.8 L430.5,326.9 L431.7,326.0 L435.8,329.9 L438.1,330.3 L441.0,328.4 L447.8,326.7 L453.6,327.1 L457.6,324.4 L465.9,325.5 L467.8,311.5 L459.3,305.9 L458.9,303.2 L459.9,301.5 L465.9,305.4 L473.1,306.0 L476.1,309.7 L479.7,308.9 L484.2,310.4 L487.6,303.7 L490.1,302.3 L496.2,302.7 L497.3,301.4 L500.3,295.0 L497.2,292.7 L495.9,294.3 L494.3,293.1 L496.9,292.5 L501.8,285.0 L503.9,286.8 L503.2,289.0 L505.3,291.0 L511.0,293.8 L512.4,293.7 L519.4,300.5 L523.2,300.5 L528.0,298.3 L537.3,303.3 L540.8,297.1 L551.1,297.
380770 L556.2,299.7 L558.1,298.5 L555.5,293.4 L555.0,288.5 L557.8,286.5 L555.8,283.8 L557.6,283.4 L557.9,281.7 L549.9,269.8 L546.1,268.1 L545.4,266.1 L546.7,264.4 L560.1,277.6 L559.4,278.6 L563.4,275.2 L560.7,272.8 L562.5,270.9 L564.5,270.9 L566.7,272.7 L572.1,266.4 L574.8,268.8 L591.4,265.2 L614.8,238.1 L615.3,238.6 L620.1,233.1 L608.7,223.2 L606.9,223.0 L605.6,224.6 L606.3,225.2 L601.6,230.6 L592.7,223.0 L587.7,218.7 L594.1,210.7 L564.9,185.4 L558.9,192.4 L549.7,194.5 L545.0,199.9 L537.8,197.0 L534.8,200.5 L532.8,201.3 L516.2,194.0 L511.4,194.6 L501.8,201.5 L500.0,201.7 L492.5,209.9 L486.8,212.2 L484.0,222.0 L481.6,223.2 L478.9,220.8 L473.7,221.6 L469.9,225.2 L468.3,228.5 L465.0,229.4 L461.5,236.1 L453.4,239.0 L451.8,238.4 L445.2,240.1 L444.6,239.1 L446.4,235.8 L452.1,233.0 L456.6,232.8 L462.0,221.7 L466.7,220.0 L469.2,216.4 L463.5,214.2 L461.1,214.3 L457.0,211.5 L455.8,211.8 L454.0,209.4 L459.2,208.6 L468.4,210.0 L473.1,209.6 L478.3,212.6 L479.2,208.3 L483.4,205.0 L482.2,201.0 L476.0,200.8 L473.6,197.9 L470.3,198.7 L463.8,194.6 L464.9,191.8 L466.5,191.4 L469.7,193.8 L474.9,191.8 L478.0,194.2 L485.3,195.2 L489.3,194.2 L490.1,194.9 L491.6,193.2 L491.1,192.2 L499.7,184.7 L501.8,185.4 L503.7,190.1 L505.2,189.9 L506.1,187.9 L517.1,183.2 L519.3,183.4 L523.2,186.6 L526.1,187.6 L532.4,184.3 L537.7,187.7 L547.7,184.3 L533.7,143.7 L522.6,147.7 L521.2,143.4 L521.6,141.4 L519.6,140.0 L515.4,142.7 L509.1,143.1 L498.6,137.3 L496.5,135.0 L495.0,135.3 L496.1,137.4 L495.7,140.1 L494.7,140.8 L490.9,139.5 L485.1,140.2 L482.3,138.4 L480.0,139.8 L477.9,139.5 L478.2,134.9 L479.7,134.0 L486.7,134.5 L489.3,133.8 L491.8,135.0 L496.1,133.4 L501.5,122.7 L502.3,122.7 L503.1,115.9 L500.8,115.0 L500.8,113.1 L503.1,111.7 L510.4,100.7 L509.9,98.5 L505.6,98.0 L505.2,99.1 L498.4,100.1 L490.1,95.4 L488.7,93.1 L489.5,90.5 L484.5,91.4 L476.5,90.0 L475.5,89.5 L475.6,88.1 L469.7,86.4 L468.3,83.9 L464.2,80.8 L455.1,77.3 L451.8,78.0 L450.8,79.1 L452.9,79.5 L450.2,81.6 L448.5,89.0 L440.6,92.7 L432.0,100.2 L429.8,109.1 L431.0,111.7 L428.6,116.6 L429.2,118.4 L432.5,118.2 L433.1,122.1 L423.0,129.9 L422.7,136.3 L421.0,137.2 L418.4,136.9 L408.6,133.4 L406.8,131.9 L405.0,135.4 L404.5,143.2 L402.0,145.2 L394.7,158.1 L392.2,158.1 L390.6,153.6 L384.2,155.6 L380.4,153.6 L378.8,153.9 L375.6,157.1 L375.7,164.6 L373.9,168.2 L371.6,167.0 L371.2,165.7 L369.3,157.3 L370.1,154.7 L365.9,156.5 L363.6,159.5 L361.1,159.3 L359.3,157.7 L360.5,154.5 L359.9,151.9 L356.6,150.0 L351.5,151.3 L345.3,155.1 L340.4,156.4 L338.2,159.7 L330.9,162.8 L327.1,168.2 L325.3,167.7 L324.8,160.9 L320.5,162.2 L315.0,162.0 L311.4,159.4 L304.5,158.1 L301.5,158.7 L298.0,157.4 L291.9,159.6 L289.5,159.4 L288.8,158.5 L291.5,154.9 L299.2,152.2 L310.9,153.7 L312.9,151.3 L318.6,155.3 L330.1,154.7 L335.2,150.7 L336.6,146.8 L341.9,147.1 L345.4,143.9 L345.8,141.1 L343.5,138.4 L340.9,132.6 L341.4,131.9 L345.2,132.2 L350.4,137.5 L355.4,139.1 L363.7,143.8 L372.8,142.3 L374.0,141.3 L374.7,136.4 L379.0,134.0 L380.8,135.0 L383.3,139.1 L388.7,141.2 L392.3,138.0 L394.5,133.7 L394.7,129.8 L396.2,126.9 L401.2,126.7 L407.3,123.6 L409.6,123.6 L412.2,118.8 L412.4,115.0 L415.1,111.7 L416.4,112.0 L416.7,113.6 L417.5,113.2 L415.2,107.6 L409.4,101.1 L409.9,98.5 L411.8,98.4 L413.2,93.7 L418.1,91.7 L418.4,94.3 L419.4,93.8 L415.6,81.3 L413.6,80.3 L413.2,78.6 L416.9,77.6 L419.9,78.0 L421.3,67.0 L423.0,66.3 L425.6,68.7 L424.5,69.1 L424.7,70.3 L426.9,70.0 L429.0,61.1 L430.7,59.0 L433.3,58.4 L437.5,60.1 L438.5,58.8 L440.5,58.4 L439.6,57.1 L428.4,48.5 L421.5,41.9 L415.0,39.2 L405.6,33.3 L405.5,34.8 L409.1,36.1 L408.7,41.4 L403.8,43.7 L403.8,47.4 L401.0,49.5 L394.7,51.2 L391.3,56.8 L387.0,59.3 L386.0,57.4 L388.7,54.8 L389.3,51.4 L389.3,48.0 L388.1,45.8 L388.8,43.9 L389.4,43.4 L393.3,45.4 L394.9,44.7 L398.9,36.9 L401.1,34.2 L403.9,34.1 L406.9,27.3 L413.0,20.7 L409.2,19.4 L405.8,20.1 L402.7,19.1 L396.1,13.3 L389.2,12.6 L378.2,7.7 L375.9,8.5 L361.6,5.2 L357.2,5.5 L355.7,7.7 L359.5,23.1ZM211.1,1.8 L212.4,7.1 L211.4,8.0 L205.4,10.5 L199.8,11.3 L197.2,14.0 L191.0,15.9 L190.3,17.7 L190.3,15.5 L187.5,17.6 L189.5,14.6 L198.9,7.5 L198.8,5.5 L196.5,1.8 L200.6,3.8 L202.7,3.3 L205.6,0.0 L211.9,0.0 L211.1,1.8ZM679.5,556.7 L676.8,555.4 L675.7,556.2 L678.6,562.5 L677.6,564.3 L676.1,564.3 L675.0,562.1 L671.8,560.7 L668.1,553.1 L669.0,549.1 L670.1,548.1 L669.2,544.6 L667.6,543.9 L660.2,546.3 L657.8,548.9 L652.1,551.5 L651.4,549.5 L656.0,546.4 L654.9,541.9 L651.6,541.5 L650.0,542.5 L644.5,540.7 L640.4,543.7 L639.4,543.1 L640.4,540.0 L637.5,537.5 L636.3,538.9 L634.3,539.0 L627.8,536.7 
38077L614.6,545.6 L612.1,549.0 L607.0,551.3 L606.6,546.8 L610.1,546.8 L611.5,540.2 L614.2,540.1 L626.4,531.1 L624.1,523.6 L624.8,522.3 L627.0,523.8 L633.1,533.0 L635.7,528.8 L639.7,528.0 L641.1,528.5 L641.0,530.7 L646.4,533.8 L648.3,532.7 L653.0,533.7 L655.0,530.0 L661.0,533.2 L666.9,534.0 L671.6,526.9 L671.5,524.3 L672.8,523.6 L675.1,527.4 L680.0,530.7 L679.5,556.7ZM652.7,467.7 L654.3,468.7 L653.9,471.2 L658.4,473.9 L660.7,478.4 L661.2,486.7 L660.2,487.5 L655.2,485.4 L653.5,482.4 L654.0,477.2 L652.0,474.0 L651.6,470.8 L652.7,467.7ZM635.2,457.5 L638.5,457.6 L642.0,451.9 L645.5,457.3 L648.2,458.7 L645.9,463.0 L642.6,463.6 L641.7,465.2 L642.2,467.9 L640.7,468.6 L632.3,466.1 L627.8,462.9 L628.2,461.2 L635.2,457.5ZM625.7,144.6 L628.3,148.5 L627.0,152.2 L625.4,151.9 L624.7,153.8 L622.0,152.2 L621.1,145.6 L623.7,143.9 L625.7,144.6ZM634.6,144.1 L643.1,146.5 L667.1,135.1 L668.5,136.4 L658.1,145.1 L653.5,146.5 L652.1,148.7 L653.5,152.3 L651.2,153.5 L649.2,150.7 L646.3,150.0 L643.6,150.7 L635.0,157.4 L634.3,159.5 L635.0,161.1 L631.5,161.2 L630.3,156.8 L627.9,153.7 L630.7,148.3 L634.6,147.4 L634.6,144.1Z"/><path class="m-street" d="M694.3,701.8 L692.7,705.0M694.3,701.8 L695.9,702.2 L696.4,701.2 L695.4,691.3M694.3,701.8 L665.1,685.2 L664.7,682.1M692.7,705.0 L694.3,701.8M695.4,691.3 L685.9,685.9M695.4,691.3 L696.4,701.2 L695.9,702.2 L694.3,701.8M695.4,691.3 L697.0,682.7 L690.1,678.8M664.7,682.1 L661.3,680.3M664.7,682.1 L665.1,685.2 L694.3,701.8M664.7,682.1 L668.3,676.2M530.2,348.3 L524.2,350.8M530.2,348.3 L526.8,340.1M530.2,348.3 L532.3,353.8M524.2,350.8 L516.7,353.8M524.2,350.8 L530.2,348.3M526.8,340.1 L530.2,348.3M526.8,340.1 L513.2,345.9M526.8,340.1 L523.4,331.8M532.3,353.8 L530.2,348.3M516.2,354.2 L514.3,349.7M515.8,354.3 L511.2,356.3M516.7,353.8 L524.2,350.8M516.3,354.5 L518.2,359.0M514.3,349.7 L516.2,354.2M514.3,349.7 L512.8,346.0M511.2,356.3 L515.8,354.3M511.2,356.3 L512.6,361.3M512.6,361.3 L511.2,356.3M505.2,358.7 L507.5,357.8M507.5,357.8 L505.2,358.7M101.0,658.7 L95.3,662.9M101.0,658.7 L110.0,671.2M101.0,658.7 L97.6,653.8M95.3,662.9 L101.0,658.7M95.3,662.9 L92.1,662.9 L87.1,669.6M95.3,662.9 L105.2,674.6M110.0,671.2 L121.8,673.9M110.0,671.2 L118.5,682.9M110.0,671.2 L101.0,658.7M110.0,671.2 L114.7,667.9M110.0,671.2 L105.2,674.6M97.6,653.8 L101.0,658.7M97.6,653.8 L100.2,651.2M97.6,653.8 L95.2,655.8M329.1,278.0 L331.9,272.4M329.1,278.0 L333.8,279.9 L332.4,283.5M329.1,278.0 L321.7,293.3M331.9,272.4 L327.5,270.2M331.9,272.4 L336.0,274.1M331.9,272.4 L329.1,278.0M332.4,283.5 L333.8,279.9 L329.1,278.0M321.7,293.3 L317.5,293.0M321.7,293.3 L329.1,278.0M321.7,293.3 L326.9,294.0 L330.7,296.8M1.7,356.6 L-9.2,346.8M1.7,356.6 L-0.7,358.3 L-6.1,356.9 L-11.1,357.6M1.7,356.6 L8.5,364.2 L12.2,371.9M-9.2,346.8 L1.7,356.6M-9.2,346.8 L-11.9,344.3M2.5,356.0 L-8.5,346.0M2.5,356.0 L9.2,363.5 L13.0,371.5M2.5,356.0 L8.1,352.6M-11.1,357.6 L-6.1,356.9 L-0.7,358.3 L1.7,356.6M-11.1,357.6 L-12.3,357.8 L-12.2,359.0 L-10.9,358.7 L-11.1,357.6M-11.1,357.6 L-10.9,358.7 L-12.2,359.0 L-12.3,357.8 L-11.1,357.6M12.2,371.9 L14.7,382.4M12.2,371.9 L8.5,364.2 L1.7,356.6M576.7,42.4 L571.4,33.6M576.7,42.4 L566.2,47.6 L551.4,49.4 L550.8,48.5M577.0,42.9 L581.2,51.8 L583.1,59.6M571.4,33.6 L576.7,42.4M571.4,33.6 L566.1,35.2 L554.0,36.2M571.4,33.6 L555.0,7.1M550.8,48.5 L551.4,49.4 L566.2,47.6 L576.7,42.4M583.1,59.6 L577.4,60.1M583.1,59.6 L584.0,69.4 L582.9,76.4M583.1,59.6 L581.2,51.8 L577.0,42.9M577.4,60.1 L567.7,73.2M577.4,60.1 L583.1,59.6M577.4,60.1 L577.4,75.8M577.4,60.1 L562.2,61.0 L564.6,66.3M582.9,76.4 L577.4,75.8M582.9,76.4 L575.2,104.1M582.9,76.4 L584.0,69.4 L583.1,59.6M528.1,169.7 L525.1,163.9 L524.8,157.3M528.1,169.7 L530.6,175.3 L531.7,183.8M524.8,157.3 L523.8,167.0M524.8,157.3 L526.0,155.6 L525.2,152.4 L520.4,146.8 L509.8,151.0 L507.9,150.2M524.8,157.3 L525.1,163.9 L528.1,169.7M531.7,183.8 L530.6,175.3 L528.1,169.7M531.7,183.8 L530.7,185.6 L526.4,187.4 L518.6,182.7 L511.5,184.9 L508.8,184.0M516.5,176.6 L510.3,173.6 L498.3,163.0 L494.2,163.8M516.5,176.6 L515.5,180.6 L508.8,184.0M129.8,405.0 L137.8,412.3M129.8,405.0 L132.4,398.4M129.4,405.7 L118.9,419.1M137.8,412.3 L129.8,405.0M132.4,398.4 L133.7,394.0M132.4,398.4 L129.8,405.0M118.9,419.1 L124.9,424.3M118.9,419.1 L116.5,421.4M118.9,419.1 L129.4,405.7M124.9,424.3 L118.9,419.1M116.5,421.4 L118.9,419.1M116.5,421.4 L111.7,425.9M303.3,352.4 L310.6,344.1M301.8,351.1 L300.0,353.3M304.2,353.1 L311.4,344.8M304.2,353.1 L305.8,354.5 L302.4,358.7M310.6,344.1 L303.3,352.4M310.6,344.1 L306.7,340.6M310.6,344.1 L313.8,340.2M300.0,353.3 L298.3,355.3M300.0,353.3 L301.8,351.1M300.0,353.3 L295.1,348.7M298.3,355.3 L300.0,353.3M295.1,348.7 L292.9,347.0M295.1,348.7 L300.0,353.3M295.1,348.7 L275.7,369.6M295.1,348.7 L304.7,338.8M299.1,355.9 L301.8,358.3M302.4,358.7 L305.8,354.5 L304.2,353.1M301.8,358.3 L299.1,355.9M101.1,604.0 L106.3,603.5M101.1,604.0 L102.6,607.6 L106.3,603.5M106.3,603.5 L101.1,604.0M106.3,603.5 L102.6,607.6 L101.1,604.0M106.3,603.5 L110.9,598.3M100.9,602.4 L100.7,594.4M110.9,598.3 L106.3,603.5M349.3,82.7 L338.0,70.8M349.3,82.7 L352.4,85.8M338.0,70.8 L332.2,76.4M338.0,70.8 L335.8,68.7M338.0,70.8 L342.2,66.8M338.0,70.8 L349.3,82.7M352.4,85.8 L349.3,82.7M-166.3,332.7 L-161.5,329.6M-166.3,332.7 L-159.6,338.3 L-160.4,343.9M-166.3,332.7 L-173.2,338.5M-161.5,329.6 L-166.3,332.7M-161.5,329.6 L-158.7,327.8M-160.4,343.9 L-159.6,338.3 L-166.3,332.7M-160.4,343.9 L-164.7,343.2M-160.4,343.9 L-154.7,345.9 L-142.2,343.1M-173.2,338.5 L-179.5,342.8M-173.2,338.5 L-166.3,332.7M-164.7,343.2 L-168.3,346.6 L-168.3,354.5 L-166.0,359.8M-164.7,343.2 L-160.4,343.9M-142.2,343.1 L-143.9,346.5M-142.2,343.1 L-137.6,339.5 L-136.4,336.9 L-135.9,333.8 L-137.2,330.6M-142.2,343.1 L-154.7,345.9 L-160.4,343.9M501.1,156.8 L505.6,154.3 L520.7,165.7 L521.6,168.9M501.1,156.8 L513.6,167.5 L511.2,170.4M500.4,156.0 L497.7,157.7M500.4,156.0 L507.9,150.2M521.6,168.9 L520.7,165.7 L505.6,154.3 L501.1,156.8M521.6,168.9 L516.6,175.1M511.2,170.4 L513.6,167.5 L501.1,156.8M511.2,170.4 L516.6,175.1M511.2,170.4 L497.6,160.7 L492.7,162.3M-197.6,-99.5 L-195.5,-93.5 L-195.5,-86.5 L-200.9,-71.4M59.4,599.7 L65.6,598.6M59.4,599.7 L53.5,600.9M65.6,598.6 L70.1,597.8M65.6,598.6 L59.4,599.7M65.6,598.6 L64.2,588.8 L68.9,584.4M53.5,600.9 L53.5,588.6M53.5,600.9 L59.4,599.7M53.5,600.9 L48.2,602.0M285.7,311.5 L289.1,312.8M289.1,312.8 L291.5,312.2M289.1,312.8 L285.7,311.5M631.7,415.4 L634.2,415.9M630.5,415.0 L626.4,413.9M634.2,415.9 L631.7,415.4M584.3,424.4 L580.7,437.8M584.3,424.4 L586.0,419.1 L588.3,417.3M580.7,437.8 L579.9,440.7M580.7,437.8 L584.3,424.4M588.3,417.3 L586.0,419.1 L584.3,424.4M588.3,417.3 L607.7,409.9M686.4,168.9 L685.1,173.9M686.4,168.9 L688.7,164.0M685.1,173.9 L686.4,168.9M685.1,173.9 L680.9,179.3M693.2,184.0 L691.9,182.7 L688.4,186.1M693.2,184.0 L697.9,189.2M688.7,164.0 L680.3,156.7M688.7,164.0 L692.4,159.5M688.7,164.0 L693.4,167.8M688.7,164.0 L686.4,168.9M-70.5,222.6 L-64.8,224.5M-70.5,222.6 L-73.1,230.1M-70.5,222.6 L-68.9,214.3M-64.8,224.5 L-
3807754.6,227.7M-64.8,224.5 L-70.5,222.6M-64.8,224.5 L-62.4,220.0M-73.1,230.1 L-70.5,222.6M-73.1,230.1 L-77.6,242.4M-73.1,230.1 L-61.4,234.0 L-60.6,235.5M-68.9,214.3 L-70.5,222.6M358.4,623.1 L362.5,622.2M358.4,623.1 L357.0,611.4M362.5,622.2 L358.4,623.1M358.7,624.0 L361.0,631.8 L360.3,635.1 L352.6,640.5 L351.4,645.4M357.0,611.4 L358.4,623.1M357.0,611.4 L356.0,606.4M529.3,215.0 L526.8,217.8M535.1,219.9 L540.0,224.3 L542.4,224.8M530.2,214.0 L534.9,208.7M526.8,217.8 L511.3,204.6M526.8,217.8 L529.3,215.0M535.8,219.0 L537.5,217.2M542.4,224.8 L540.0,224.3 L535.1,219.9M88.7,292.4 L88.4,312.6 L90.7,316.8 L96.5,319.3M96.5,319.3 L94.6,324.7 L89.3,329.5M96.5,319.3 L90.7,316.8 L88.4,312.6 L88.7,292.4M96.5,319.3 L104.8,319.3M565.9,251.5 L562.9,248.8M562.9,248.8 L565.9,251.5M554.0,36.2 L566.1,35.2 L571.4,33.6M383.6,27.5 L391.5,30.5M383.6,27.5 L382.1,31.4M391.5,30.5 L383.6,27.5M391.5,30.5 L394.6,23.2 L399.1,25.3 L399.6,28.5M391.5,30.5 L393.1,32.6 L388.9,37.3M382.1,31.4 L383.6,27.5M382.1,31.4 L378.2,42.7M382.1,31.4 L388.9,37.3M399.6,28.5 L399.1,25.3 L394.6,23.2 L391.5,30.5M388.9,37.3 L391.2,39.9M388.9,37.3 L393.1,32.6 L391.5,30.5M388.9,37.3 L382.1,31.4M222.3,196.2 L221.3,198.5M222.3,196.2 L230.4,199.3M221.3,198.5 L222.3,196.2M221.3,198.5 L220.0,201.7M230.4,199.3 L222.3,196.2M351.5,578.4 L357.6,572.9M351.7,579.7 L352.3,583.3M357.6,572.9 L351.5,578.4M357.6,572.9 L364.4,566.7 L369.4,559.0M669.2,188.6 L661.3,204.3M669.2,188.6 L684.3,196.7M669.2,188.6 L671.5,181.1 L670.2,172.8M661.3,204.3 L669.2,188.6M661.3,204.3 L661.3,206.8M684.3,196.7 L688.8,200.3M684.3,196.7 L669.2,188.6M670.2,172.8 L658.2,189.7 L655.9,191.0 L652.6,189.9M670.2,172.8 L680.9,179.3M670.2,172.8 L671.5,181.1 L669.2,188.6M670.2,172.8 L665.8,158.6M718.8,53.5 L723.3,51.9M718.8,53.5 L719.5,56.1M723.3,51.9 L718.8,53.5M718.6,52.7 L717.3,48.8M718.6,52.7 L713.8,52.6 L714.9,56.8M719.5,56.1 L718.8,53.5M719.5,56.1 L714.9,56.8M199.7,40.4 L192.9,37.2 L188.3,37.2 L187.9,38.3M199.7,40.4 L205.3,17.5M199.7,40.4 L211.9,42.0 L216.9,44.4M187.9,38.3 L188.3,37.2 L192.9,37.2 L199.7,40.4M205.3,17.5 L199.7,40.4M216.9,44.4 L218.7,39.9M216.9,44.4 L211.9,42.0 L199.7,40.4M216.9,44.4 L221.2,46.6 L226.1,51.9M593.3,210.6 L565.1,186.1 L559.3,192.7M559.3,192.7 L565.1,186.1 L593.3,210.6M559.3,192.7 L555.0,193.6M-148.3,231.7 L-152.7,235.7 L-157.9,235.9M-148.3,231.7 L-152.1,229.7 L-160.6,228.8M-148.3,231.7 L-139.2,239.3M-157.9,235.9 L-152.7,235.7 L-148.3,231.7M-160.6,228.8 L-162.9,236.1 L-162.7,243.1M-160.6,228.8 L-156.0,215.3M-160.6,228.8 L-152.1,229.7 L-148.3,231.7M-160.6,228.8 L-166.3,225.7M-139.2,239.3 L-141.8,241.6 L-150.2,242.0M-139.2,239.3 L-148.3,231.7M-139.2,239.3 L-136.4,241.6 L-135.5,245.0M-139.2,239.3 L-133.3,236.1 L-125.4,235.8M23.8,694.3 L30.5,690.4M23.8,694.3 L18.7,699.1M24.2,694.9 L24.9,699.1M23.4,693.5 L20.7,688.9M30.5,690.4 L23.8,694.3M30.5,690.4 L34.8,687.9M18.7,699.1 L23.8,694.3M24.9,699.1 L24.2,694.9M24.9,699.1 L19.9,699.9M24.9,699.1 L28.0,698.6M19.9,699.9 L24.9,699.1M28.0,698.6 L24.9,699.1M363.8,514.0 L366.3,521.4 L366.8,528.1M363.8,514.0 L360.3,500.8M366.8,528.1 L356.9,523.2M366.8,528.1 L367.1,532.3M366.8,528.1 L366.3,521.4 L363.8,514.0M360.3,500.8 L363.8,514.0M360.3,500.8 L360.2,488.3 L358.1,473.8M356.9,523.2 L366.8,528.1M367.1,532.3 L366.8,528.1M688.4,186.1 L691.5,189.1M688.4,186.1 L683.8,181.6M688.4,186.1 L691.9,182.7 L693.2,184.0M697.9,189.2 L693.2,184.0M688.8,200.3 L684.3,196.7M690.3,202.1 L691.6,214.4 L693.4,216.9M690.3,202.1 L689.3,205.8 L687.7,207.0M694.0,191.5 L691.5,189.1M696.3,193.5 L697.2,195.6 L698.4,194.3 L697.6,193.2M-92.9,391.6 L-91.1,388.0M-92.9,391.6 L-96.9,393.5 L-101.1,392.6M-91.1,388.0 L-91.3,377.2M-91.1,388.0 L-92.9,391.6M-91.1,388.0 L-86.3,389.3 L-85.7,391.0 L-87.2,393.8M-101.1,392.6 L-96.9,393.5 L-92.9,391.6M-101.1,392.6 L-107.1,389.4M-101.1,392.6 L-103.1,396.5 L-107.0,395.3 L-110.1,392.7 L-107.1,389.4M-91.3,377.2 L-90.1,372.8M-91.3,377.2 L-91.1,388.0M-87.2,393.8 L-85.7,391.0 L-86.3,389.3 L-91.1,388.0M-90.1,372.8 L-91.3,377.2M-90.1,372.8 L-90.2,369.8M-90.2,369.8 L-90.1,372.8M-90.8,368.5 L-94.6,365.1 L-100.9,366.4M-143.9,346.5 L-143.7,349.3M-143.9,346.5 L-142.2,343.1M-137.2,330.6 L-135.9,333.8 L-136.4,336.9 L-137.6,339.5 L-142.2,343.1M-137.2,330.6 L-145.2,319.9M-137.2,330.6 L-131.3,330.1 L-126.2,331.7 L-115.8,338.7 L-106.9,342.1M-130.1,365.4 L-126.7,369.0M-130.1,365.4 L-142.2,352.4M-126.7,369.0 L-120.4,375.9M-126.7,369.0 L-130.1,365.4M-142.2,352.4 L-130.1,365.4M-142.2,352.4 L-143.7,349.3M-142.2,352.4 L-148.3,361.2M-116.2,380.4 L-120.4,375.9M-116.2,380.4 L-107.1,389.4M-116.2,380.4 L-100.9,366.4M-120.4,375.9 L-116.2,380.4M-120.4,375.9 L-126.7,369.0M-107.1,389.4 L-101.1,392.6M-107.1,389.4 L-110.1,392.7 L-107.0,395.3 L-103.1,396.5 L-101.1,392.6M-107.1,389.4 L-116.2,380.4M-100.9,366.4 L-116.2,380.4M-100.9,366.4 L-94.6,365.1 L-90.8,368.5M-22.6,174.7 L-18.6,176.6 L-13.6,177.0M-22.6,174.7 L-33.1,165.5 L-39.6,161.5 L-62.2,157.7M-13.6,177.0 L-2.1,174.7M-13.6,177.0 L-18.6,176.6 L-22.6,174.7M-62.2,157.7 L-39.6,161.5 L-33.1,165.5 L-22.6,174.7M-62.2,157.7 L-69.6,151.6M371.5,266.1 L368.9,265.4M371.5,266.1 L374.9,267.8M371.6,265.6 L372.4,263.1M368.9,265.4 L371.5,266.1M374.9,267.8 L374.0,270.7M374.9,267.8 L371.5,266.1M375.9,252.8 L376.8,247.0M375.9,252.8 L372.4,263.1M376.8,247.0 L377.6,242.7M376.8,247.0 L375.9,252.8M372.4,263.1 L375.9,252.8M372.4,263.1 L371.6,265.6M376.2,252.9 L383.8,254.7M377.6,242.7 L376.8,247.0M376.4,246.9 L368.7,245.7M377.2,247.1 L384.9,248.3M377.1,242.6 L369.3,241.3M378.0,242.7 L385.6,243.9M378.1,240.5 L369.6,239.0M379.0,240.5 L386.9,241.9M378.6,240.1 L384.3,215.6M384.4,215.0 L391.8,220.1M391.8,220.1 L384.4,215.0M391.8,220.1 L394.7,222.1M391.8,220.1 L387.0,241.5M384.3,215.6 L378.6,240.1M435.3,322.9 L432.7,321.7M435.3,322.9 L440.7,324.5 L447.1,323.7M434.6,321.1 L431.8,313.8M434.6,321.1 L444.7,316.9M432.7,321.7 L435.3,322.9M432.7,321.7 L425.9,316.8M447.1,323.7 L444.7,316.9M447.1,323.7 L452.0,321.8M447.1,323.7 L440.7,324.5 L435.3,322.9M431.8,313.8 L430.8,311.5M431.8,313.8 L434.6,321.1M431.8,313.8 L442.0,309.6M444.7,316.9 L434.6,321.1M444.7,316.9 L442.0,309.6M444.7,316.9 L447.1,323.7M444.7,316.9 L449.3,314.9M430.8,311.5 L429.4,3
3807708.1M430.8,311.5 L431.8,313.8M442.0,309.6 L439.6,303.1M442.0,309.6 L444.7,316.9M442.0,309.6 L446.3,308.2M442.0,309.6 L431.8,313.8M429.4,308.1 L430.8,311.5M428.7,308.0 L423.2,314.2M429.5,307.3 L439.6,303.1M428.8,306.9 L426.6,304.2M425.2,302.2 L423.3,299.0M425.2,302.2 L426.6,304.2M425.2,302.2 L431.8,297.3 L437.2,296.2M423.3,299.0 L425.2,302.2M423.3,299.0 L421.5,295.2M426.6,304.2 L425.2,302.2M426.6,304.2 L428.8,306.9M437.2,296.2 L439.6,303.1M437.2,296.2 L431.8,297.3 L425.2,302.2M421.2,294.4 L419.1,290.5 L416.2,291.1M421.7,294.2 L425.9,292.6M421.5,295.2 L423.3,299.0M416.2,291.1 L414.3,288.8M416.2,291.1 L419.1,290.5 L421.2,294.4M82.9,677.7 L88.2,673.0M82.9,677.7 L84.0,681.7M82.9,677.7 L78.8,661.3M88.2,673.0 L82.9,677.7M88.2,673.0 L94.7,680.3M88.2,673.0 L87.1,669.6M84.0,681.7 L93.9,684.4M84.0,681.7 L77.4,680.1M84.0,681.7 L82.5,687.4M84.0,681.7 L82.9,677.7M78.8,661.3 L82.9,677.7M78.8,661.3 L74.6,646.1M78.8,661.3 L84.1,658.9M78.8,661.3 L73.7,664.7M642.1,551.9 L649.8,545.8M642.1,551.9 L637.9,548.6M642.1,551.9 L644.9,556.1 L642.7,563.5M649.8,545.8 L642.1,551.9M637.9,548.6 L630.6,574.0M637.9,548.6 L642.1,551.9M637.9,548.6 L631.6,545.4M642.7,563.5 L646.7,564.8M642.7,563.5 L636.6,578.6M642.7,563.5 L644.9,556.1 L642.1,551.9M646.7,564.8 L642.7,563.5M636.6,578.6 L634.4,584.6M636.6,578.6 L630.6,574.0M636.6,578.6 L642.7,563.5M634.4,584.6 L636.6,578.6M634.4,584.6 L640.1,587.9 L647.5,594.4M634.4,584.6 L626.9,582.3M630.6,574.0 L637.9,548.6M630.6,574.0 L623.7,567.7M630.6,574.0 L636.6,578.6M647.5,594.4 L644.7,597.5M647.5,594.4 L649.7,591.4M647.5,594.4 L655.3,601.6 L662.4,604.3M647.5,594.4 L640.1,587.9 L634.4,584.6M626.9,582.3 L621.6,597.0M626.9,582.3 L634.4,584.6M626.9,582.3 L615.6,578.3M721.6,86.5 L727.3,80.6M721.6,86.5 L714.6,81.3M723.3,87.5 L721.4,89.9 L718.0,91.5M723.3,87.5 L740.5,87.7M727.3,80.6 L737.8,80.3M727.3,80.6 L725.5,75.7M727.3,80.6 L721.6,86.5M714.6,81.3 L718.2,77.8M714.6,81.3 L721.6,86.5M714.6,81.3 L711.7,79.5 L706.0,81.8M737.8,80.3 L727.3,80.6M737.8,80.3 L738.4,76.9M737.8,80.3 L740.5,87.7M725.5,75.7 L727.3,80.6M738.4,76.9 L734.6,72.8M738.4,76.9 L737.8,80.3M738.4,76.9 L745.9,67.1M740.5,87.7 L737.8,80.3M740.5,87.7 L723.3,87.5M575.4,542.8 L569.9,549.0M575.4,542.8 L585.4,551.7M575.4,542.8 L560.1,529.0M569.9,549.0 L566.2,553.2M569.9,549.0 L575.4,542.8M569.9,549.0 L574.8,553.8 L591.0,556.9 L585.4,551.7M569.9,549.0 L555.1,535.5M585.4,551.7 L575.4,542.8M585.4,551.7 L590.7,545.5M585.4,551.7 L591.0,556.9 L574.8,553.8 L569.9,549.0M560.1,529.0 L575.4,542.8M560.1,529.0 L555.1,535.5M560.1,529.0 L565.3,522.7M566.2,553.2 L569.9,549.0M555.1,535.5 L560.1,529.0M555.1,535.5 L569.9,549.0M555.1,535.5 L548.2,541.2M418.6,536.3 L420.5,533.7M420.5,533.7 L418.6,536.3M445.5,270.2 L440.7,257.8M440.7,257.8 L445.5,270.2M4.3,-74.3 L-2.5,-69.2M-2.5,-69.2 L-10.1,-64.3M-2.5,-69.2 L4.3,-74.3M637.9,440.6 L641.1,441.8 L642.4,441.1 L643.5,442.6 L642.8,443.4M637.9,440.6 L638.9,433.9 L637.0,430.8 L637.1,425.4M637.9,440.6 L638.1,445.9M642.8,443.4 L643.5,442.6 L642.4,441.1 L641.1,441.8 L637.9,440.6M642.8,443.4 L642.8,445.0 L638.1,445.9M642.8,443.4 L638.8,442.7M637.1,425.4 L637.0,430.8 L638.9,433.9 L637.9,440.6M638.1,445.9 L637.9,440.6M638.1,445.9 L642.8,445.0 L642.8,443.4M226.6,370.9 L214.6,359.5M226.6,370.9 L233.7,377.1 L234.8,386.8M226.6,370.9 L219.3,380.3 L210.7,378.5M214.6,359.5 L212.5,359.5 L207.9,362.3 L206.2,361.8 L203.1,364.2M214.6,359.5 L226.6,370.9M214.6,359.5 L209.9,358.7 L206.7,361.4M234.8,386.8 L233.7,377.1 L226.6,370.9M234.8,386.8 L227.7,392.9 L223.5,399.9 L217.6,416.7M234.8,386.8 L246.0,386.7 L253.2,384.3 L258.2,379.3M210.7,378.5 L207.4,378.1 L207.0,380.6 L208.2,380.8 L210.7,378.5M210.7,378.5 L208.2,380.8 L207.0,380.6 L207.4,378.1 L210.7,378.5M210.7,378.5 L219.3,380.3 L226.6,370.9M48.5,8.6 L50.6,17.9 L47.4,26.9M48.5,8.6 L36.1,10.6 L32.5,14.2 L31.4,17.3M48.5,8.6 L53.6,4.7M47.4,26.9 L50.6,17.9 L48.5,8.6M31.4,17.3 L27.8,28.5 L24.0,35.6M31.4,17.3 L32.5,14.2 L36.1,10.6 L48.5,8.6M53.6,4.7 L48.5,8.6M53.6,4.7 L56.8,8.4M53.6,4.7 L49.1,0.4M242.4,509.7 L253.3,515.1M242.4,509.7 L243.7,507.3M242.4,509.7 L240.2,509.4 L237.1,515.6 L236.3,515.3M253.3,515.1 L242.4,509.7M253.3,515.1 L260.7,500.2M253.3,515.1 L254.6,524.4 L253.7,525.2 L244.7,524.1M253.3,515.1 L244.7,524.1M243.7,507.3 L242.4,509.7M243.7,507.3 L250.1,495.3M236.3,515.3 L237.1,515.6 L240.2,509.4 L242.4,509.7M234.0,518.8 L235.6,522.4M235.6,522.4 L234.0,518.8M244.7,524.1 L243.3,526.4M244.7,524.1 L253.7,525.2 L254.6,524.4 L253.3,515.1M244.7,524.1 L253.3,515.1M243.3,526.4 L244.7,524.1M243.3,526.4 L240.8,530.6M243.3,526.4 L236.3,523.0M684.0,152.6 L692.4,159.5M684.0,152.6 L687.6,148.4M692.4,159.5 L684.0,152.6M692.4,159.5 L688.7,164.0M692.4,159.5 L695.8,155.4M683.1,153.7 L680.3,156.7M687.6,148.4 L689.5,140.9M687.6,148.4 L684.0,152.6M687.6,148.4 L695.8,155.4M687.6,148.4 L684.3,145.6M695.8,155.4 L692.4,159.5M695.8,155.4 L687.6,148.4M697.2,156.5 L703.8,162.1M523.4,222.3 L528.3,226.6M523.4,222.3 L529.2,215.9 L534.7,220.5M523.0,222.0 L518.5,218.1M523.5,220.8 L503.8,204.5 L507.5,201.4M528.3,226.6 L523.4,222.3M534.7,220.5 L529.4,226.6M534.7,220.5 L541.6,226.5M534.7,220.5 L529.2,215.9 L523.4,222.3M507.5,201.4 L511.3,204.6M507.5,201.4 L510.0,197.3 L512.8,195.3 L518.1,196.2M507.5,201.4 L503.8,204.5 L523.5,220.8M511.3,204.6 L518.1,196.2M511.3,204.6 L52
380776.8,217.8M511.3,204.6 L507.5,201.4M535.2,208.3 L541.0,213.3M534.9,208.7 L530.2,214.0M541.0,213.3 L535.2,208.3M535.0,208.1 L532.1,205.5M277.9,339.8 L273.3,344.7M279.3,341.1 L282.0,343.4M279.3,341.1 L280.9,339.3M273.3,344.7 L277.9,339.8M273.3,344.7 L267.3,351.5M273.3,344.7 L277.5,348.9M282.0,343.4 L279.3,341.1M282.0,343.4 L285.0,339.8M282.0,343.4 L277.5,348.9M280.9,339.3 L279.3,341.1M285.0,339.8 L287.5,342.4M285.0,339.8 L280.1,335.4M285.0,339.8 L282.0,343.4M277.5,348.9 L274.6,352.1M277.5,348.9 L282.0,343.4M277.5,348.9 L273.3,344.7M549.8,243.7 L552.5,240.7M552.5,240.7 L549.8,243.7M549.2,244.3 L536.4,233.6M549.2,244.3 L556.3,250.5 L547.3,251.3M440.3,294.2 L437.0,295.6M440.3,294.2 L446.4,291.6M440.3,294.2 L446.3,308.2M437.0,295.6 L434.9,289.6M437.0,295.6 L440.3,294.2M446.4,291.6 L440.3,294.2M446.4,291.6 L443.7,284.3M446.4,291.6 L452.5,305.6M446.3,308.2 L449.3,314.9M446.3,308.2 L452.5,305.6M446.3,308.2 L440.3,294.2M446.3,308.2 L442.0,309.6M452.0,321.8 L447.1,323.7M452.0,321.8 L458.2,319.3M452.0,321.8 L449.3,314.9M458.2,319.3 L452.0,321.8M458.2,319.3 L455.4,312.3M449.3,314.9 L446.3,308.2M449.3,314.9 L455.4,312.3M449.3,314.9 L444.7,316.9M449.3,314.9 L452.0,321.8M455.4,312.3 L449.3,314.9M455.4,312.3 L454.0,309.0M455.4,312.3 L458.2,319.3M455.4,312.3 L460.3,313.0 L461.9,316.7 L460.6,319.1M452.5,305.6 L446.3,308.2M452.5,305.6 L454.0,309.0M452.5,305.6 L446.4,291.6M-223.5,244.7 L-225.5,247.3M-223.5,244.7 L-226.1,240.5M-223.5,244.7 L-217.2,244.6M-225.5,247.3 L-222.8,248.8M-225.5,247.3 L-223.5,244.7M-226.1,240.5 L-223.5,244.7M-226.1,240.5 L-228.4,244.2M-217.2,244.6 L-215.9,238.2M-217.2,244.6 L-211.7,242.6M-217.2,244.6 L-216.6,248.9 L-213.1,253.8M-217.2,244.6 L-223.5,244.7M612.9,676.0 L617.6,673.3M612.9,676.0 L618.1,680.9 L620.0,687.4M612.9,676.0 L605.6,666.9M617.6,673.3 L628.4,666.8M617.6,673.3 L612.9,676.0M620.0,687.4 L621.8,689.1M620.0,687.4 L618.1,680.9 L612.9,676.0M605.6,666.9 L603.5,664.3M605.6,666.9 L597.5,673.2 L595.9,676.6M605.6,666.9 L612.9,676.0M628.4,666.8 L617.6,673.3M628.4,666.8 L631.4,665.8 L638.5,667.9M638.5,667.9 L642.4,665.5M638.5,667.9 L655.6,677.4M638.5,667.9 L631.4,665.8 L628.4,666.8M642.4,665.5 L638.5,667.9M642.4,665.5 L639.6,654.6M642.4,665.5 L648.9,659.8 L650.5,656.9M655.6,677.4 L661.3,680.3M655.6,677.4 L638.5,667.9M655.6,677.4 L663.2,661.3 L664.0,654.6M661.3,680.3 L664.7,682.1M661.3,680.3 L655.6,677.4M661.3,680.3 L665.1,672.7 L664.5,671.8M664.0,654.6 L659.3,650.1M664.0,654.6 L665.3,649.8M664.0,654.6 L663.2,661.3 L655.6,677.4M664.5,671.8 L665.1,672.7 L661.3,680.3M668.3,676.2 L671.6,668.8M668.3,676.2 L678.7,682.0M668.3,676.2 L664.7,682.1M461.5,296.6 L454.0,309.0M461.5,296.6 L465.1,290.6M461.5,296.6 L446.6,287.7M454.0,309.0 L461.5,296.6M454.0,309.0 L452.5,305.6M454.0,309.0 L455.4,312.3M465.1,290.6 L461.5,296.6M465.1,290.6 L468.7,284.5M465.1,290.6 L455.2,284.7M446.6,287.7 L461.5,296.6M652.6,189.9 L648.1,186.4M652.6,189.9 L648.1,199.0M652.6,189.9 L655.9,191.0 L658.2,189.7 L670.2,172.8M648.1,186.4 L652.6,189.9M648.1,186.4 L650.3,183.4 L641.6,177.0 L637.6,176.6 L637.5,181.2 L648.1,186.4M648.1,186.4 L637.5,181.2 L637.6,176.6 L641.6,177.0 L650.3,183.4 L648.1,186.4M648.1,199.0 L653.3,204.0M648.1,199.0 L652.6,189.9M653.3,204.0 L648.5,211.7M653.3,204.0 L657.4,206.4 L659.4,205.7M653.3,204.0 L648.1,199.0M648.5,211.7 L653.3,204.0M659.4,205.7 L657.4,206.4 L653.3,204.0M661.3,206.8 L667.1,210.8M661.3,206.8 L661.3,204.3M667.1,210.8 L661.3,206.8M667.1,210.8 L668.9,208.1 L673.6,205.5 L675.9,199.3 L680.3,201.3 L681.8,205.2 L681.1,207.3 L667.6,211.3M667.1,210.8 L661.7,218.8 L665.1,221.5 L670.3,214.6 L667.6,211.3M667.6,211.3 L670.3,214.6 L665.1,221.5 L661.7,218.8 L667.1,210.8M667.6,211.3 L681.1,207.3 L681.8,205.2 L680.3,201.3 L675.9,199.3 L673.6,205.5 L668.9,208.1 L667.1,210.8M-81.5,211.9 L-85.3,215.7 L-87.9,216.3 L-89.8,213.6 L-90.2,209.5M-81.5,211.9 L-78.1,214.0 L-73.9,214.0M-81.5,211.9 L-83.7,208.9M-90.2,209.5 L-90.5,206.8M-90.2,209.5 L-83.7,208.9M-90.2,209.5 L-89.8,213.6 L-87.9,216.3 L-85.3,215.7 L-81.5,211.9M-73.9,214.0 L-69.0,213.3M-73.9,214.0 L-74.8,208.2M-73.9,214.0 L-78.1,214.0 L-81.5,211.9M-83.7,208.9 L-90.2,209.5M-83.7,208.9 L-84.4,206.3M-83.7,208.9 L-81.5,211.9M-90.5,206.8 L-90.2,209.5M-97.1,158.1 L-96.1,162.6M-97.1,158.1 L-88.8,156.1 L-78.9,150.6 L-74.8,150.1 L-69.6,151.6M-97.1,158.1 L-101.2,159.1M-96.1,162.6 L-97.1,158.1M-69.6,151.6 L-62.2,157.7M-69.6,151.6 L-74.8,150.1 L-78.9,150.6 L-88.8,156.1 L-97.1,158.1M-101.2,159.1 L-97.1,158.1M485.2,285.2 L472.8,277.8M485.2,285.2 L481.1,292.1M485.2,285.2 L488.7,287.3M472.8,277.8 L485.2,285.2M472.8,277.8 L468.7,284.5M472.8,277.8 L462.7,271.8M472.8,277.8 L473.6,272.6M486.0,283.5 L488.7,278.7M486.0,283.5 L489.6,285.8M481.1,292.1 L485.2,285.2M481.1,292.1 L475.4,288.5M481.1,292.1 L477.4,298.4M481.1,292.1 L494.0,299.8M488.7,287.3 L492.1,290.8M488.7,287.3 L485.2,285.2M492.1,290.8 L488.7,287.3M489.6,285.8 L493.7,287.9 L496.0,284.1M489.6,285.8 L486.0,283.5M488.7,278.7 L486.0,283.5M488.7,278.7 L496.0,284.1M-90.4,-109.2 L-91.7,-116.3M-91.7,-116.3 L-90.4,-109.2M-91.7,-116.3 L-86.8,-116.2 L-80.8,-112.2M-80.8,-112.2 L-83.3,-104.7 L-80.8,-95.0 L-81.6,-90.4M-80.8,-112.2 L-75.0,-109.4 L-63.4,-109.1 L-58.9,-110.8 L-50.9,-116.7M-80.8,-112.2 L-86.8,-116.2 L-91.7,-116.3M540.4,286.9 L543.5,289.6M540.4,286.9 L548.3,278.6M539.0,285.8 L531.0,278.8M543.5,289.6 L552.4,296.7M543.5,289.6 L540.4,286.9M543.5,289.6 L546.1,286.4 L550.4,283.8M548.3,278.6 L540.4,286.9M384.4,399.7 L387.5,399.7M383.9,399.8 L384.4,395.7M383.9,399.8 L378.0,402.0M387.5,399.7 L384.4,399.7M387.5,399.7 L395.9,400.2M387.5,399.7 L388.0,392.9M230.6,25.4 L232.4,30.4M232.4,30.4 L230.6,25.4M233.0,31.1 L234.4,34.5M233.0,31.1 L234.1,23.4M234.4,34.5 L233.0,31.1M234.4,34.5 L235.9,39.4 L235.6,45.2M234.4,34.5 L240.7,29.3M234.1,23.4 L233.2,21.2M234.1,23.4 L233.0,31.1M234.1,23.4 L237.6,20.7 L235.
380771,17.9M505.3,616.0 L510.4,614.9M510.4,614.9 L505.3,616.0M515.5,609.5 L513.2,611.4M515.5,609.5 L513.8,605.9M515.5,609.5 L522.8,617.0 L523.4,620.1M513.2,611.4 L515.5,609.5M513.2,611.4 L511.9,613.4M513.8,605.9 L515.5,609.5M523.4,620.1 L507.8,628.1M523.4,620.1 L531.1,626.1M523.4,620.1 L522.8,617.0 L515.5,609.5M523.4,620.1 L523.4,627.6 L521.5,631.0M392.7,163.9 L408.1,177.4M392.7,163.9 L390.1,168.0M408.1,177.4 L392.7,163.9M408.1,177.4 L403.7,182.3M390.1,168.0 L391.2,171.6M390.1,168.0 L392.7,163.9M390.1,168.0 L387.0,161.3 L381.4,160.8M409.3,176.1 L413.2,172.0M403.7,182.3 L398.4,177.8M403.7,182.3 L397.1,189.5M403.7,182.3 L408.1,177.4M129.0,-98.6 L129.0,-101.5 L131.3,-104.2M129.0,-98.6 L118.5,-98.8M129.0,-98.6 L139.0,-100.6 L143.3,-103.1M131.3,-104.2 L126.3,-109.8M131.3,-104.2 L136.0,-108.8 L137.1,-111.6M131.3,-104.2 L129.0,-101.5 L129.0,-98.6M118.5,-98.8 L112.6,-97.5M118.5,-98.8 L129.0,-98.6M143.3,-103.1 L139.0,-100.6 L129.0,-98.6M143.3,-103.1 L150.2,-108.2 L158.9,-108.3M143.3,-103.1 L145.8,-99.7 L148.1,-88.7M126.3,-109.8 L131.3,-104.2M137.1,-111.6 L136.0,-108.8 L131.3,-104.2M458.5,320.0 L459.6,322.6M459.6,322.6 L458.5,320.0M460.6,319.1 L461.9,316.7 L460.3,313.0 L455.4,312.3M141.5,240.6 L139.0,242.3M141.5,240.6 L139.5,237.1M139.0,242.3 L141.5,240.6M139.0,242.3 L138.1,253.0M139.5,237.1 L141.5,240.6M139.5,237.1 L138.2,234.8M-193.1,128.2 L-191.1,150.2 L-187.6,149.0M-193.1,128.2 L-192.7,121.2 L-187.1,117.5 L-183.9,113.6 L-183.8,106.3M-193.1,128.2 L-198.7,129.1 L-202.7,131.3M-187.6,149.0 L-191.1,150.2 L-193.1,128.2M-183.8,106.3 L-183.9,113.6 L-187.1,117.5 L-192.7,121.2 L-193.1,128.2M-202.7,131.3 L-198.7,129.1 L-193.1,128.2M662.8,566.6 L662.4,563.5M662.8,566.6 L658.1,567.5M662.4,563.5 L662.8,566.6M658.1,567.5 L662.8,566.6M656.8,555.8 L654.5,557.0M656.8,555.8 L662.1,551.6M654.5,557.0 L656.8,555.8M662.1,551.6 L656.8,555.8M92.9,623.3 L97.3,640.1M92.9,623.3 L87.3,624.8M92.9,623.3 L98.3,622.0M97.3,640.1 L92.9,623.3M97.3,640.1 L102.7,638.6M97.3,640.1 L91.6,641.6M97.3,640.1 L100.2,651.2M87.3,624.8 L81.8,626.2M87.3,624.8 L92.9,623.3M87.3,624.8 L91.6,641.6M87.3,624.8 L85.4,617.5M98.3,622.0 L92.9,623.3M98.3,622.0 L100.0,627.8M98.3,622.0 L97.7,618.4M102.7,638.6 L97.3,640.1M102.7,638.6 L105.4,645.0M102.7,638.6 L100.0,627.8M91.6,641.6 L97.3,640.1M91.6,641.6 L85.9,643.1M91.6,641.6 L95.2,655.8M91.6,641.6 L87.3,624.8M100.2,651.2 L97.3,640.1M100.2,651.2 L97.6,653.8M493.8,607.7 L495.6,614.8M493.8,607.7 L502.5,605.5M493.8,607.7 L486.0,609.9M495.6,614.8 L493.8,607.7M502.5,605.5 L505.4,604.8M502.5,605.5 L493.8,607.7M502.5,605.5 L503.9,610.7M486.0,609.9 L484.1,603.2M486.0,609.9 L487.3,614.6M486.0,609.9 L493.8,607.7M500.0,632.4 L507.8,628.1M500.0,632.4 L495.9,616.0M500.0,632.4 L492.8,635.6M507.8,628.1 L523.4,620.1M507.8,628.1 L500.0,632.4M507.8,628.1 L506.6,621.3M495.9,616.0 L500.0,632.4M492.8,635.6 L492.5,642.3M492.8,635.6 L491.3,629.6M492.8,635.6 L500.0,632.4M492.8,635.6 L490.6,629.8M244.1,372.2 L245.8,370.4M244.1,372.2 L240.6,369.0M244.1,372.2 L240.3,377.2M245.8,370.4 L244.1,372.2M245.8,370.4 L248.0,368.1M240.6,369.0 L244.7,364.7M240.6,369.0 L244.1,372.2M240.6,369.0 L238.3,366.9M240.3,377.2 L244.1,372.2M240.3,377.2 L231.0,369.1 L235.0,363.8M240.3,377.2 L243.1,379.0M244.7,364.7 L242.7,362.7M244.7,364.7 L249.5,360.2M244.7,364.7 L240.6,369.0M238.3,366.9 L240.6,369.0M238.3,366.9 L235.0,363.8M235.0,363.8 L236.3,361.0M235.0,363.8 L238.3,366.9M235.0,363.8 L231.0,369.1 L240.3,377.2M236.3,361.0 L235.0,363.8M236.3,361.0 L237.8,357.9M691.2,743.4 L694.1,751.7M691.2,743.4 L699.3,740.9M691.2,743.4 L683.4,746.2M691.2,743.4 L687.4,736.9 L682.8,734.6M694.1,751.7 L697.0,759.9M694.1,751.7 L691.2,743.4M694.1,751.7 L702.5,748.9M699.3,740.9 L702.5,748.9M699.3,740.9 L696.7,733.5M699.3,740.9 L691.2,743.4M699.3,740.9 L706.1,738.5M683.4,746.2 L691.2,743.4M683.4,746.2 L675.3,749.1M683.4,746.2 L686.2,754.4M683.4,746.2 L681.0,739.5 L672.2,741.7M682.8,734.6 L680.5,733.8M682.8,734.6 L695.7,730.1M682.8,734.6 L687.4,736.9 L691.2,743.4M697.0,759.9 L699.7,767.6M697.0,759.9 L694.1,751.7M697.0,759.9 L705.1,757.0M697.0,759.9 L688.9,762.2M702.5,748.9 L705.1,757.0M702.5,748.9 L699.3,740.9M702.5,748.9 L709.5,746.4M702.5,748.9 L694.1,751.7M699.7,767.6 L697.0,759.9M699.7,767.6 L707.8,765.0M699.7,767.6 L691.8,770.1M705.1,757.0 L712.8,754.3M705.1,757.0 L697.0,759.9M705.1,757.0 L707.8,765.0M705.1,757.0 L702.5,748.9M688.9,762.2 L697.0,759.9M688.9,762.2 L680.6,765.1M688.9,762.2 L691.8,770.1M688.9,762.2 L686.2,754.4M707.8,765.0 L710.4,772.7M707.8,765.0 L705.1,757.0M707.8,765.0 L699.7,767.6M707.8,765.0 L716.1,762.3 L714.9,758.1M691.8,770.1 L699.7,767.6M691.8,770.1 L683.2,772.8M691.8,770.1 L688.9,762.2M356.8,162.6 L342.3,175.9M356.8,162.6 L353.5,158.1M356.8,162.6 L360.4,165.6 L360.9,167.2 L359.1,170.0M342.3,175.9 L335.9,170.2M342.3,175.9 L347.6,180.6M342.3,175.9 L356.8,162.6M353.5,158.1 L345.4,163.2M353.5,158.1 L356.8,162.6M353.5,158.1 L355.1,155.1M359.1,170.0 L360.9,167.2 L360.4,165.6 L356.8,162.6M359.1,170.0 L347.6,180.6M335.9,170.2 L342.3,175.9M335.9,170.2 L345.4,163.2M335.9,170.2 L333.7,180.4M347.6,180.6 L342.3,175.9M347.6,180.6 L353.4,186.1M347.6,180.6 L359.1,170.0M347.6,180.6 L337.2,192.4M674.5,767.3 L680.6,765.1M680.6,765.1 L688.9,762.2M680.6,765.1 L674.5,767.3M680.6,765.1 L683.2,772.8M680.6,765.1 L678.1,757.2M683.2,772.8 L691.8,770.1M683.2,772.8 L680.6,765.1M678.1,757.2 L686.2,754.4M678.1,757.2 L680.6,765.1M678.1,757.2 L675.3,749.1M678.1,757.2 L673.0,757.8M686.2,754.4 L688.9,762.2M686.2,754.4 L683.4,746.2M686.2,754.4 L690.0,753.0M686.2,754.4 L678.1,757.2M712.8,754.3 L705.1,757.0M594.4,122.0 L599.0,118.5M594.4,122.0 L591.4,118.4M594.4,122.0 L601.7,127.8 L607.1,139.9M599.0,118.5 L594.4,122.0M599.0,118.5 L604.6,121.9 L610.3,130.4M591.4,118.4 L594.4,122.0M607.1,139.9 L611.8,137.8M607.1,139.9 L607.1,146.6M607.1,139.9 L601.7,127.8 L594.4,122.0M599.1,117.9 L584.3,115.4 L580.1,110.2M600.1,118.0 L604.0,116.9 L613.0,109.4M580.1,110.2 L584.3,115.4 L599.1,117.9M580.1,110.2 L578.1,106.4M107.1,52.7 L106.7,58.7 L102.4,68.7 L106.0,78.0 L108.8,80.5 L112.6,81.4 L119.9,79.9 L128.3,80.6M107.1,52.7 L121.0,52.0M107.1,52.7 L98.2,50.1M128.3,80.6 L119.9,79.9 L112.6,81.4 L108.8,80.5 L106.0,78.0 L102.4,68.7 L106.7,58.7 L107.1,52.7M121.0,52.0 L107.1,52.7M98.2,50.1 L102.5,30.2M98.2,50.1 L107.1,52.7M98.2,50.1 L93.9,55.8 L89.7,59.1M-115.8,645.1 L-125.2,647.3M-115.8,645.1 L-115.1,641.9 L-113.0,639.7 L-105.3,639.4M-115.8,645.1 L-114.7,654.4 L-111.1,666.2M-125.2,647.3 L-132.1,648.8M-125.2,647.3 L-115.8,645.1M-125.2,647.3 L-129.1,634.1M-105.3,639.4 L-102.3,638.4M-105.3,639.4 L-113.0,639.7 L-115.1,641.9 L-115.8,645.1M-111.1,666.2 L-114.7,654.4 L-115.8,645.1M-111.1,666.2 L-115.5,674.9M-111.1,666.2 L-104.6,667.5 L-96.5,673.4M-132.1,648.8 L-125.2,647.3M-129.1,634.1 L-125.2,647.3M-129.1,634.1 L-125.2,625.4M476.8,265.4 L473.5,265.5M476.8,265.4 L476.7,273.0M476.8,265.4 L481.9,264.5M473.5,265.5 L473.5,269.2M473.5,265.5 L476.8,265.4M473.5,265.5 L473.2,262.5M476.7,273.0 L473.6,272.6M476.7,273.0 L476.8,265.4M476.7,273.0 L480.8,274.4M481.9,264.5 L481.5,259.4M481.9,264.5 L476.8,265.4M481.9,264.5 L481.2,273.4M473.6,272.6 L476.7,273.0M473.6,272.6 L473.5,269.2M473.6,272.6 L472.8,277.8M480.8,274.4 L483.4,275.8M480.8,274.4 L476.7,273.0M29.5,371.4 L34.6,371.8M29.5,371.4 L24.4,370.6M29.5,371.4 L30.4,361.0 L28.1,354.8 L31.9,347.5M34.6,371.8 L29.5,371.4M34.6,371.8 L33.9,376.9M34.6,371.8 L41.0,372.6 L46.7,375.7M34.6,371.8 L36.1,364.0 L40.4,362.8 L45.1,364.0 L47.2,365.7 L48.1,369.2 L46.7,375.7M24.4,370.6 L29.5,371.4M24.4,370.6 L24.9,365.6M24.4,370.6 L18.3,3
3807769.7M24.4,370.6 L25.6,378.0 L24.4,379.4 L21.4,379.5 L18.7,377.1 L18.3,369.7M31.9,347.5 L33.4,342.8 L36.7,343.8M31.9,347.5 L28.1,354.8 L30.4,361.0 L29.5,371.4M-19.6,702.1 L-19.1,696.9M-19.6,702.1 L-14.7,702.9M-20.9,702.0 L-25.4,701.3M-20.9,702.0 L-19.9,694.2M-19.8,703.0 L-16.1,703.6M-19.8,703.0 L-20.2,707.0M-19.1,696.9 L-18.3,689.2M-19.1,696.9 L-18.3,701.6 L-14.7,702.9M-19.1,696.9 L-19.6,702.1M-14.7,702.9 L-5.1,704.0M-14.7,702.9 L-18.3,701.6 L-19.1,696.9M-14.7,702.9 L-19.6,702.1M125.8,279.2 L125.0,273.9M125.8,279.2 L117.7,280.9M125.8,279.2 L127.8,286.8 L135.0,297.3M125.0,273.9 L124.2,268.1M125.0,273.9 L125.8,279.2M117.7,280.9 L125.8,279.2M117.7,280.9 L108.7,282.7M135.0,297.3 L127.8,286.8 L125.8,279.2M135.0,297.3 L139.6,304.3M613.2,307.2 L618.4,310.2 L624.0,316.4 L620.7,318.9M612.4,307.7 L606.5,312.0M612.4,307.7 L620.7,318.9M606.5,312.0 L614.8,323.2M606.5,312.0 L597.5,318.9M606.5,312.0 L612.4,307.7M606.5,312.0 L601.1,304.7M620.7,318.9 L614.8,323.2M620.7,318.9 L612.4,307.7M620.7,318.9 L624.0,316.4 L618.4,310.2 L613.2,307.2M614.8,323.2 L619.3,329.2M614.8,323.2 L606.5,312.0M614.8,323.2 L605.8,330.0M614.8,323.2 L620.7,318.9M597.5,318.9 L593.6,321.8M597.5,318.9 L606.5,312.0M597.5,318.9 L605.8,330.0M597.5,318.9 L589.1,307.7M601.1,304.7 L606.1,300.9M601.1,304.7 L598.3,300.9M601.1,304.7 L606.5,312.0M593.6,321.8 L597.5,318.9M605.8,330.0 L598.5,335.3M605.8,330.0 L614.8,323.2M605.8,330.0 L610.3,336.0M605.8,330.0 L597.5,318.9M589.1,307.7 L585.0,310.9M589.1,307.7 L592.7,305.1M589.1,307.7 L597.5,318.9M589.1,307.7 L587.1,305.1M590.3,324.3 L582.9,329.7M590.3,324.3 L592.3,322.7M590.3,324.3 L598.5,335.3M590.3,324.3 L584.2,316.0M582.9,329.7 L575.6,335.1M582.9,329.7 L590.3,324.3M582.9,329.7 L591.2,340.8M582.9,329.7 L580.2,326.2M592.3,322.7 L590.3,324.3M598.5,335.3 L605.8,330.0M598.5,335.3 L595.6,337.5M598.5,335.3 L590.3,324.3M598.5,335.3 L603.1,341.3 L607.8,337.7M584.2,316.0 L590.3,324.3M584.2,316.0 L582.0,313.0M575.6,335.1 L582.9,329.7M575.6,335.1 L567.4,324.0M575.6,335.1 L583.9,346.2M591.2,340.8 L582.9,329.7M591.2,340.8 L583.9,346.2M580.2,326.2 L582.9,329.7M567.4,324.0 L575.6,335.1M567.4,324.0 L563.2,318.3M567.4,324.0 L572.9,319.8M583.9,346.2 L591.2,340.8M583.9,346.2 L575.6,335.1M583.9,346.2 L576.7,351.6M568.7,340.9 L576.7,351.6M557.8,349.2 L564.1,357.7M539.4,363.0 L541.2,365.5M274.6,352.1 L278.0,355.3M274.6,352.1 L271.6,355.5M274.6,352.1 L277.5,348.9M278.0,355.3 L274.6,352.1M278.0,355.3 L275.1,358.7M278.0,355.3 L281.0,352.1M271.6,355.5 L275.1,358.7M271.6,355.5 L274.6,352.1M271.6,355.5 L267.3,351.5M275.1,358.7 L278.2,361.7M275.1,358.7 L271.6,355.5M275.1,358.7 L278.0,355.3M281.0,352.1 L284.3,354.9M281.0,352.1 L278.0,355.3M281.0,352.1 L284.8,347.9 L286.9,347.4M492.4,645.8 L492.3,649.0M492.4,645.8 L492.5,642.3M492.3,649.0 L492.4,645.8M492.5,642.3 L492.4,645.8M492.5,642.3 L492.8,635.6M490.8,645.9 L488.7,647.0M490.8,645.9 L488.2,641.7M521.5,631.0 L531.3,626.2M521.5,631.0 L503.6,640.3M521.5,631.0 L520.7,635.2 L523.2,640.0M521.5,631.0 L523.4,627.6 L523.4,620.1M531.3,626.2 L521.5,631.0M503.6,640.3 L521.5,631.0M523.2,640.0 L505.7,649.6M523.2,640.0 L529.9,635.6M523.2,640.0 L520.7,635.2 L521.5,631.0M531.1,626.1 L523.4,620.1M552.4,296.7 L543.5,289.6M550.4,283.8 L546.1,286.4 L543.5,289.6M531.0,278.8 L538.7,269.5M531.0,278.8 L539.0,285.8M538.7,269.5 L531.0,278.8M530.3,278.2 L526.6,275.9M516.2,267.0 L511.7,272.2M606.7,694.4 L606.1,696.8M606.1,696.8 L606.7,694.4M608.1,701.8 L616.5,700.7M608.1,701.8 L596.3,707.0 L589.1,707.9 L582.3,706.1 L577.1,707.2 L572.1,705.9 L568.6,707.0 L563.9,715.1 L558.9,718.9 L557.7,721.9 L561.2,728.1 L565.7,729.9 L567.6,732.2 L570.3,732.2M616.5,700.7 L622.8,700.1M616.5,700.7 L608.1,701.8M570.3,732.2 L567.6,732.2 L565.7,729.9 L561.2,728.1 L557.7,721.9 L558.9,718.9 L563.9,715.1 L568.6,707.0 L572.1,705.9 L577.1,707.2 L582.3,706.1 L589.1,707.9 L596.3,707.0 L608.1,701.8M603.3,771.5 L599.6,749.0M603.3,771.5 L611.2,771.2M599.6,749.0 L603.3,771.5M599.6,749.0 L600.0,741.6M611.2,771.2 L603.3,771.5M611.2,771.2 L610.7,760.4 L613.5,750.5M285.5,271.8 L285.4,276.2M283.5,270.8 L278.5,268.0M285.7,271.4 L291.8,273.4M285.7,271.4 L286.5,267.3M285.4,276.2 L285.6,279.5M285.4,276.2 L285.5,271.8M27
380777.9,267.7 L275.3,266.2M277.9,267.7 L280.5,263.2M275.3,266.2 L269.2,262.7M275.3,266.2 L277.9,267.7M278.5,268.0 L283.5,270.8M278.5,268.0 L274.8,274.5M280.5,263.2 L277.9,267.7M269.2,262.7 L265.4,260.5M269.2,262.7 L275.3,266.2M269.2,262.7 L259.6,269.1M265.4,260.5 L254.5,257.8M265.4,260.5 L269.2,262.7M265.4,260.5 L266.5,253.9M259.6,269.1 L266.5,277.5M259.6,269.1 L269.2,262.7M259.6,269.1 L255.1,264.7 L251.0,262.8M254.5,257.8 L265.4,260.5M254.5,257.8 L251.0,262.8M254.5,257.8 L255.3,251.2M266.5,253.9 L255.3,251.2M266.5,253.9 L265.4,260.5M251.0,262.8 L254.5,257.8M251.0,262.8 L255.1,264.7 L259.6,269.1M251.0,262.8 L246.6,262.1M255.3,251.2 L254.5,257.8M255.3,251.2 L266.5,253.9M255.3,251.2 L256.6,244.9M541.2,400.6 L539.2,404.2M541.2,400.6 L531.1,395.4M539.2,404.2 L537.0,408.0M539.2,404.2 L541.2,400.6M539.2,404.2 L529.4,401.4M531.1,395.4 L541.2,400.6M531.1,395.4 L527.1,393.5M531.1,395.4 L529.4,401.4M542.5,401.7 L548.0,406.2M537.0,408.0 L539.2,404.2M537.0,408.0 L535.4,412.0M529.4,401.4 L525.3,400.3M529.4,401.4 L539.2,404.2M529.4,401.4 L531.1,395.4M535.4,412.0 L522.9,408.6M535.4,412.0 L537.2,412.8 L536.5,417.1M535.4,412.0 L537.0,408.0M522.9,408.6 L535.4,412.0M522.9,408.6 L518.7,407.4M536.5,417.1 L543.2,420.7M536.5,417.1 L537.2,412.8 L535.4,412.0M543.2,420.7 L536.5,417.1M543.2,420.7 L542.3,425.2 L548.9,429.0M543.2,420.7 L554.5,427.1M531.2,418.8 L525.3,417.3 L525.6,414.2 L521.9,413.1M521.9,413.1 L525.6,414.2 L525.3,417.3 L531.2,418.8M577.4,75.8 L567.7,75.0M577.4,75.8 L577.4,60.1M577.4,75.8 L582.9,76.4M577.4,75.8 L574.2,86.8 L571.8,85.7M575.2,104.1 L578.0,101.2M575.2,104.1 L572.8,107.5M575.2,104.1 L578.1,106.4M575.2,104.1 L582.9,76.4M567.7,75.0 L577.4,75.8M567.7,75.0 L568.0,83.5M571.8,85.7 L568.0,83.5M571.8,85.7 L567.8,85.9 L568.0,83.5M571.8,85.7 L574.2,86.8 L577.4,75.8M568.0,83.5 L567.7,75.0M568.0,83.5 L571.8,85.7M568.0,83.5 L567.8,85.9 L571.8,85.7M567.7,73.2 L577.4,60.1M567.7,73.2 L564.6,66.3M397.6,-71.3 L398.4,-67.5 L397.2,-64.6M397.6,-71.3 L402.0,-75.2M397.2,-64.6 L398.4,-67.5 L397.6,-71.3M402.0,-75.2 L397.6,-71.3M402.0,-75.2 L408.6,-79.1M402.0,-75.2 L396.1,-77.9M-30.8,700.6 L-25.4,701.3M-30.8,700.6 L-29.5,689.3M-30.9,701.3 L-24.5,702.4M-32.9,700.8 L-39.7,699.8M-25.4,701.3 L-30.8,700.6M-25.4,701.3 L-20.9,702.0M-25.4,701.3 L-21.4,700.5 L-19.9,694.2M-29.5,689.3 L-23.2,690.6M-29.5,689.3 L-30.8,700.6M-29.5,689.3 L-27.8,679.8M-71.0,694.9 L-75.0,694.3M-71.0,694.9 L-67.1,692.0M-70.3,695.0 L-65.2,695.7M-75.0,694.3 L-69.8,693.4 L-65.2,690.4M-75.0,694.3 L-71.0,694.9M-67.1,692.0 L-65.2,690.4M-67.1,692.0 L-67.8,694.1 L-65.2,695.7M-67.1,692.0 L-71.0,694.9M-65.2,690.4 L-67.1,692.0M-65.2,690.4 L-62.6,688.5M-65.2,690.4 L-69.8,693.4 L-75.0,694.3M-119.6,695.2 L-120.5,684.8 L-117.5,678.2M-119.6,695.2 L-138.2,696.2M-119.6,695.2 L-112.0,694.2M-117.5,678.2 L-115.5,674.9M-117.5,678.2 L-120.5,684.8 L-119.6,695.2M-138.2,696.2 L-151.3,695.8 L-172.9,690.5 L-184.2,689.2M-138.2,696.2 L-119.6,695.2M-138.2,696.2 L-136.9,691.1M-112.0,694.2 L-119.6,695.2M-223.9,694.9 L-219.4,701.7M-223.9,694.9 L-228.0,688.5M-223.9,694.9 L-228.8,695.0M-223.9,694.9 L-205.0,692.9M-219.4,701.7 L-223.9,694.9M-219.4,701.7 L-216.7,707.3M-228.0,688.5 L-223.9,694.9M-228.0,688.5 L-228.0,681.3M-228.8,695.0 L-223.9,694.9M-205.0,692.9 L-223.9,694.9M-205.0,692.9 L-193.6,689.9 L-184.2,689.2M24.9,365.6 L25.8,363.7 L24.4,362.1 L23.2,363.6 L24.9,365.6M24.9,365.6 L23.2,363.6 L24.4,362.1 L25.8,363.7 L24.9,365.6M24.9,365.6 L24.4,370.6M18.3,369.7 L13.0,371.5M18.3,369.7 L24.4,370.6M18.3,369.7 L18.7,377.1 L21.4,379.5 L24.4,379.4 L25.6,378.0 L24.4,370.6M18.3,369.7 L15.6,362.8M491.3,667.3 L491.7,662.2M491.3,667.3 L494.2,666.0M491.2,668.5 L491.0,671.5M491.2,668.5 L482.8,668.3M491.7,662.2 L491.3,667.3M494.2,666.0 L497.1,664.5M494.2,666.0 L491.3,667.3M482.8,668.3 L483.0,660.0M482.8,668.3 L491.2,668.5M483.0,660.0 L482.8,668.3M483.0,660.0 L482.3,650.3M483.0,660.0 L463.5,659.2M462.2,667.4 L463.5,659.2M462.2,667.4 L463.8,679.1 L466.4,683.0M462.2,667.4 L471.7,668.0M463.5,659.2 L462.2,667.4M463.5,659.2 L464.9,650.3 L466.2,649.6M463.5,659.2 L483.0,660.0M466.4,683.0 L471.4,696.1M466.4,683.0 L463.8,679.1 L462.2,667.4M466.4,683.0 L460.9,686.6M466.4,683.0 L471.1,682.4M471.7,668.0 L475.4,668.1M471.7,668.0 L462.2,667.4M453.3,666.2 L453.7,663.6M453.3,666.2 L449.4,665.8M453.3,666.2 L458.3,666.9M453.7,663.6 L453.3,666.2M453.7,663.6 L454.7,657.9M449.4,665.8 L446.9,665.4M449.4,665.8 L453.3,666.2M458.3,666.9 L453.3,666.2M438.8,663.9 L440.9,656.0M440.9,656.0 L438.8,663.9M440.9,656.0 L441.9,647.2M440.9,656.0 L454.7,657.9M440.4,664.3 L443.9,664.8M607.9,95.9 L611.4,99.4 L615.9,100.7M607.9,95.9 L606.3,91.9 L607.7,83.3M607.9,95.9 L614.2,92.3 L618.2,92.3M607.9,95.9 L602.9,99.9 L597.0,102.5M615.9,100.7 L611.4,99.4 L607.9,95.9M607.7,83.3 L610.3,83.1M607.7,83.3 L597.9,84.0M607.7,83.3 L606.3,91.9 L607.9,95.9M618.2,92.3 L614.2,92.3 L607.9,95.9M597.0,102.5 L602.9,99.9 L607.9,95.9M610.3,83.1 L618.8,82.3M610.3,83.1 L607.7,83.3M610.3,83.1 L609.7,77.4M618.8,82.3 L610.3,83.1M618.8,82.3 L616.3,59.5 L612.6,54.6M618.8,82.3 L623.5,92.9 L622.9,100.8M609.7,77.4 L610.3,83.1M609.7,77.4 L605.3,77.3 L603.2,75.0 L601.6,64.4 L599.8,60.6M609.7,77.4 L608.8,65.5 L611.0,60.0M448.6,249.8 L449.3,244.5M448.6,249.8 L454.6,250.5M449.3,244.5 L448.6,249.8M454.6,250.5 L448.6,249.8M550.4,487.0 L561.
380776,489.8 L564.9,492.6 L569.6,493.6 L563.5,503.2M550.4,487.0 L546.0,485.4 L543.8,483.2M550.4,487.0 L549.5,492.0M550.4,487.0 L551.7,479.6M550.4,487.0 L548.7,491.7M563.5,503.2 L557.4,497.7M563.5,503.2 L569.6,493.6 L564.9,492.6 L561.6,489.8 L550.4,487.0M563.5,503.2 L556.3,511.5 L550.0,506.0M543.8,483.2 L546.0,485.4 L550.4,487.0M549.5,492.0 L550.4,487.0M549.5,492.0 L543.7,500.6M549.5,492.0 L557.4,497.7M551.7,479.6 L545.7,477.5M551.7,479.6 L561.4,481.0M551.7,479.6 L550.4,487.0M548.7,491.7 L542.7,487.7M548.7,491.7 L543.1,500.0M548.7,491.7 L550.4,487.0M579.9,440.7 L579.1,444.1M579.9,440.7 L596.3,444.5 L607.1,445.5M579.9,440.7 L580.7,437.8M579.1,444.1 L578.2,446.9M579.1,444.1 L579.9,440.7M607.1,445.5 L615.5,445.9M607.1,445.5 L596.3,444.5 L579.9,440.7M284.1,324.3 L286.4,326.5M284.1,324.3 L276.6,331.9M284.1,324.3 L279.4,321.7M286.4,326.5 L284.1,324.3M276.6,331.9 L284.1,324.3M279.4,321.7 L284.1,324.3M-128.1,266.6 L-125.0,270.5M-128.1,266.6 L-124.8,263.9 L-122.6,259.9M-125.0,270.5 L-128.1,266.6M-122.6,259.9 L-120.4,252.7M-122.6,259.9 L-109.8,264.7M-122.6,259.9 L-124.8,263.9 L-128.1,266.6M-120.7,275.9 L-123.8,272.1M-120.7,275.9 L-116.0,273.3M-120.7,275.9 L-123.1,279.3 L-125.3,289.6M-123.8,272.1 L-120.7,275.9M-116.0,273.3 L-112.7,270.9M-116.0,273.3 L-120.7,275.9M-125.3,289.6 L-116.2,290.2M-125.3,289.6 L-134.3,288.1M-125.3,289.6 L-123.1,279.3 L-120.7,275.9M-125.3,289.6 L-125.4,299.2M29.8,307.0 L25.2,301.9M29.8,307.0 L23.2,314.5 L33.2,320.2M29.8,307.0 L33.6,306.5 L38.8,311.1M25.2,301.9 L29.8,307.0M33.2,320.2 L34.7,327.1M33.2,320.2 L23.2,314.5 L29.8,307.0M33.2,320.2 L38.8,311.1M38.8,311.1 L41.2,313.1M38.8,311.1 L33.2,320.2M38.8,311.1 L33.6,306.5 L29.8,307.0M34.7,327.1 L35.7,330.9M34.7,327.1 L33.2,320.2M34.7,327.1 L26.4,327.3M381.0,108.3 L391.4,108.8 L399.7,105.8 L406.1,109.4 L405.0,114.5M381.0,108.3 L377.3,112.1M381.0,108.3 L384.8,100.4M405.0,114.5 L406.1,109.4 L399.7,105.8 L391.4,108.8 L381.0,108.3M405.0,114.5 L401.4,122.2 L396.9,125.4M377.3,112.1 L381.0,108.3M377.3,112.1 L362.1,95.9M377.3,112.1 L383.6,118.6M384.8,100.4 L381.0,108.3M384.8,100.4 L393.5,103.6M379.2,107.0 L382.0,104.3M382.0,104.3 L379.2,107.0M285.5,107.5 L288.2,106.7M285.5,107.5 L278.6,110.9M285.5,107.5 L283.9,102.6M288.2,106.7 L285.5,107.5M288.2,106.7 L292.5,104.1
38077M278.6,110.9 L285.5,107.5M278.6,110.9 L274.5,111.9 L274.6,112.5 L277.1,113.9 L278.6,110.9M278.6,110.9 L277.1,113.9 L274.6,112.5 L274.5,111.9 L278.6,110.9M283.9,102.6 L280.4,103.4M283.9,102.6 L283.0,98.4M283.9,102.6 L285.5,107.5M294.5,103.3 L293.3,98.4M294.9,103.3 L299.8,102.4M294.9,103.3 L291.2,110.1M292.5,104.1 L288.2,106.7M293.3,98.4 L296.5,94.3M293.3,98.4 L294.5,103.3M293.3,98.4 L290.8,97.4 L287.6,97.9M299.8,102.4 L294.9,103.3M299.8,102.4 L303.2,105.3M299.8,102.4 L300.2,98.6M291.2,110.1 L290.4,113.4M291.2,110.1 L294.9,103.3M303.2,105.3 L305.7,107.2M303.2,105.3 L299.8,102.4M300.2,98.6 L301.7,96.1 L304.7,95.2 L309.2,97.9M300.2,98.6 L299.8,102.4M303.1,48.6 L300.2,46.5 L297.5,46.3 L292.6,49.7M292.6,49.7 L295.9,53.2M292.6,49.7 L297.5,46.3 L300.2,46.5 L303.1,48.6M292.6,49.7 L289.3,46.6 L287.9,47.2M736.9,66.7 L719.5,72.3M719.5,72.3 L736.9,66.7M719.5,72.3 L722.2,70.3 L722.6,68.2 L720.2,59.0M719.5,72.3 L714.2,73.7M23.4,486.0 L25.5,483.6M23.4,486.0 L17.0,493.8M23.4,486.0 L36.5,494.6M25.5,483.6 L23.4,486.0M17.0,493.8 L23.4,486.0M17.0,493.8 L29.0,504.1M17.0,493.8 L15.2,496.6 L17.0,503.2M36.5,494.6 L29.0,504.1M36.5,494.6 L23.4,486.0M36.8,494.8 L49.3,504.9M29.0,504.1 L24.9,509.2M29.0,504.1 L36.5,494.6M29.0,504.1 L17.0,493.8M29.0,504.1 L42.0,514.6M49.3,504.9 L36.8,494.8M49.3,504.9 L42.0,514.6M49.3,504.9 L55.4,509.4 L50.8,516.5 L47.4,518.3M42.0,514.6 L49.3,504.9M42.0,514.6 L29.0,504.1M47.4,518.3 L41.4,515.4M47.4,518.3 L42.4,529.3M47.4,518.3 L50.8,516.5 L55.4,509.4 L49.3,504.9M18.3,508.5 L17.0,503.2M17.0,503.2 L18.3,508.5M17.0,503.2 L24.9,509.2M17.0,503.2 L15.2,496.6 L17.0,493.8M24.9,509.2 L22.5,512.2M24.9,509.2 L29.0,504.1M24.9,509.2 L17.0,503.2M24.9,509.2 L37.7,519.8M-176.5,237.5 L-172.8,232.9M-176.5,237.5 L-183.6,231.4M-176.5,237.5 L-179.2,240.8M-172.8,232.9 L-176.5,237.5M-172.8,232.9 L-168.7,228.8M-172.8,232.9 L-178.5,226.4M-172.8,232.9 L-168.6,236.7 L-166.8,234.7M-183.6,231.4 L-176.5,237.5M-179.2,240.8 L-176.5,237.5M479.4,240.8 L479.6,236.2M479.4,240.8 L479.0,246.1M479.4,240.8 L474.2,240.8M479.6,236.2 L479.4,240.8M479.6,236.2 L488.3,243.0M479.0,246.1 L479.4,240.8M474.2,240.8 L479.4,240.8M298.3,225.3 L303.4,225.7M296.3,225.0 L282.8,223.1M297.2,224.2 L295.6,218.3M304.1,225.3 L300.6,215.5M304.1,225.3 L306.6,230.0M303.4,225.7 L298.3,225.3M300.6,215.5 L291.6,206.5M300.6,215.5 L304.1,225.3M306.6,230.0 L309.7,230.5M306.6,230.0 L304.1,225.3M229.9,255.1 L222.7,255.4M229.9,255.1 L238.1,254.7M229.9,255.1 L230.4,252.6M222.7,255.4 L229.9,255.1M222.7,255.4 L223.1,262.9M222.7,255.4 L215.3,255.6 L213.4,262.7M238.1,254.7 L240.8,244.8M238.1,254.7 L229.9,255.1M238.1,254.7 L244.6,254.3M230.4,252.6 L229.9,255.1M223.1,262.9 L222.7,255.4M213.4,262.7 L215.3,255.6 L222.7,255.4M401.8,446.8 L399.6,444.9M402.9,447.6 L404.9,449.3M399.6,444.9 L401.8,446.8M406.8,441.5 L411.6,444.2 L424.1,435.8M406.8,441.5 L417.0,433.1M406.7,442.2 L403.5,446.7M424.1,435.8 L428.6,432.5 L429.1,428.7M424.1,435.8 L411.6,444.2 L406.8,441.5M417.0,433.1 L418.3,430.9M417.0,433.1 L406.8,441.5M419.7,427.6 L429.1,428.7M419.7,427.6 L421.4,423.3M429.1,428.7 L419.7,427.6M429.1,428.7 L433.7,428.6 L436.9,426.6M429.1,428.7 L428.6,432.5 L424.1,435.8M419.1,427.1 L416.7,425.4M421.4,423.3 L419.7,427.6M522.1,395.4 L521.1,399.1M522.1,395.4 L523.4,391.6M521.5,395.3 L511.3,392.3M521.1,399.1 L522.1,395.4M521.1,399.1 L525.3,400.3M521.1,399.1 L518.7,407.4M523.4,391.6 L527.1,393.5M523.4,391.6 L522.1,395.4M523.4,391.6 L525.0,385.5M511.3,392.3 L510.6,394.7M511.3,392.3 L514.0,382.3M511.3,392.3 L521.5,395.3M510.6,394.7 L508.5,401.8M510.6,394.7 L511.3,392.3M514.0,382.3 L511.3,392.3M514.0,382.3 L516.6,372.7M514.0,382.3 L524.3,385.2M514.0,382.3 L504.1,378.7M638.8,442.7 L642.8,443.4M-188.7,361.7 L-192.2,365.3M-188.7,361.7 L-184.9,358.2 L-187.5,351.5M-192.2,365.3 L-188.7,361.7M-187.5,351.5 L-184.9,358.2 L-188.7,361.7M371.8,279.5 L370.1,282.8M371.8,279.5 L379.9,281.3M370.1,282.8 L371.8,279.5M371.8,278.5 L373.4,272.3M379.9,281.3 L371.8,279.5M379.9,281.3 L398.0,285.3M366.5,290.1 L369.3,284.4M369.3,284.4 L366.5,290.1M-146.5,215.0 L-141.9,213.0M-146.5,215.0 L-148.7,210.5 L-148.3,206.5 L-144.7,204.3 L-141.4,203.8M-146.5,215.0 L-146.4,218.5M-141.9,213.0 L-146.5,215.0M-141.4,203.8 L-144.7,204.3 L-148.3,206.5 L-148.7,210.5 L-146.5,215.0M-146.4,218.5 L-139.3,217.2 L-127.6,210.4M-146.4,218.5 L-149.2,218.1M-146.4,218.5 L-146.5,215.0M341.3,252.6 L346.1,238.0M341.5,253.3 L345.0,255.0M340.4,252.7 L336.7,250.9M346.2,237.6 L350.4,238.3M346.1,238.0 L341.3,252.6M350.4,238.3 L346.2,237.6M137.7,233.7 L133.4,236.1M137.7,233.7 L147.9,228.1
38077M138.2,234.8 L139.5,237.1M133.4,236.1 L137.7,233.7M147.9,228.1 L137.7,233.7M103.9,259.5 L105.0,264.8M74.2,271.6 L68.4,272.9M51.7,279.0 L48.2,281.6M51.7,279.0 L56.4,276.6M48.2,281.6 L51.7,279.0M52.2,280.1 L54.2,284.4M56.4,276.6 L51.7,279.0M39.3,287.5 L36.6,284.2M39.1,288.6 L30.8,295.2M30.8,295.2 L39.1,288.6M30.8,295.2 L24.2,300.8M30.2,294.5 L24.3,287.2M31.3,296.1 L32.7,299.4 L41.6,307.4M24.2,300.8 L30.8,295.2M23.7,300.1 L19.4,296.0M19.1,305.9 L4.1,303.9M19.1,305.9 L22.4,302.6M19.1,305.9 L10.3,317.4M4.1,303.9 L19.1,305.9M22.4,302.6 L19.1,305.9M10.3,317.4 L7.3,321.6M10.3,317.4 L-4.7,312.7M10.3,317.4 L19.1,305.9M7.3,321.6 L1.7,328.6M7.3,321.6 L10.3,317.4M-4.7,312.7 L-13.9,310.0M-4.7,312.7 L10.3,317.4M8.0,322.1 L11.7,325.8 L13.6,331.6 L18.3,336.7 L21.7,338.0M1.7,328.6 L-0.9,332.1M1.7,328.6 L7.3,321.6M-0.9,332.1 L1.7,328.6M-1.3,332.6 L-5.6,337.5M-26.6,371.2 L-30.6,369.9M-26.6,371.2 L-27.4,374.0M-26.6,371.2 L-24.0,362.7M-30.6,369.9 L-26.6,371.2M-30.6,369.9 L-38.7,365.4M-27.4,374.0 L-26.6,371.2M-27.4,374.0 L-33.1,394.6M-24.0,362.7 L-26.6,371.2M-24.0,362.7 L-19.8,353.4 L-12.4,344.9M-34.6,399.8 L-27.4,401.9M-34.6,399.8 L-35.9,403.0M-34.6,399.8 L-33.1,394.6M-27.4,401.9 L-34.6,399.8M-27.4,401.9 L-32.5,409.5M-35.9,403.0 L-34.6,399.8M-35.9,403.0 L-58.8,461.1M-33.1,394.6 L-34.6,399.8M-33.1,394.6 L-27.4,374.0M-36.9,402.9 L-43.3,415.4M-58.8,461.1 L-35.9,403.0M255.4,105.6 L263.5,119.1 L269.8,124.5M269.8,124.5 L271.3,121.6M269.8,124.5 L276.5,126.2 L278.3,128.8 L277.5,130.8M269.8,124.5 L263.5,119.1 L255.4,105.6M690.7,62.9 L696.8,80.0M696.8,80.0 L690.7,62.9M696.8,80.0 L709.3,75.4M696.8,80.0 L684.6,84.4M709.3,75.4 L714.2,73.7M709.3,75.4 L696.8,80.0M684.6,84.4 L696.8,80.0M619.7,105.1 L623.0,104.5M619.7,105.1 L622.9,100.8M619.7,105.1 L613.0,109.4M623.0,104.5 L622.9,100.8M623.0,104.5 L619.7,105.1M622.9,100.8 L623.0,104.5M622.9,100.8 L619.7,105.1M622.9,100.8 L623.5,92.9 L618.8,82.3M613.0,109.4 L616.9,114.3M613.0,109.4 L619.7,105.1M613.0,109.4 L604.0,116.9 L600.1,118.0M624.2,104.5 L630.0,104.1M624.2,104.5 L626.7,109.4 L625.8,114.7M633.6,103.7 L637.9,103.3M633.6,103.7 L630.0,104.1M633.6,103.7 L632.6,109.0M637.9,103.3 L640.1,105.3M637.9,103.3 L641.0,102.9M637.9,103.3 L633.6,103.7M630.0,104.1 L633.6,103.7M630.0,104.1 L624.2,104.5M632.6,109.0 L633.6,103.7M640.1,105.3 L637.9,103.3M640.1,105.3 L641.0,102.9M640.1,105.3 L644.7,109.4M641.0,102.9 L643.9,102.6M641.0,102.9 L637.9,103.3M641.0,102.9 L640.1,105.3M669.6,103.6 L675.1,104.1M669.6,103.6 L666.6,103.3M669.6,103.6 L671.0,99.0M675.1,104.1 L669.6,103.6M675.1,104.1 L739.3,114.0M666.6,103.3 L669.6,103.6M666.6,103.3 L662.4,102.9M671.0,99.0 L673.8,93.7M671.0,99.0 L669.6,103.6M744.3,122.7 L737.6,125.8M744.3,122.7 L741.8,117.4M737.6,125.8 L744.3,122.7M737.6,125.8 L735.0,127.1 L732.1,130.9M741.8,117.4 L744.3,122.7M741.8,117.4 L740.0,114.7M428.1,525.3 L426.4,523.4M328.9,247.0 L333.1,249.1M329.1,246.5 L332.3,236.7M333.1,249.1 L328.9,247.0M328.1,246.7 L322.3,244.3M323.6,256.3 L324.8,253.7M323.6,256.3 L331.9,260.5M323.6,256.3 L320.9,255.5M323.0,257.7 L318.7,266.4M324.8,253.7 L323.6,256.3M324.8,253.7 L326.3,250.3M331.9,260.5 L327.5,270.2M331.9,260.5 L336.4,251.4M331.9,260.5 L323.6,256.3M331.9,260.5 L340.2,264.5M320.9,255.5 L323.6,256.3M318.7,266.4 L316.2,273.5M318.7,266.4 L323.0,257.7M318.7,266.4 L327.5,270.2M318.7,266.4 L307.7,261.8M316.2,273.5 L315.4,275.9M316.2,273.5 L318.7,266.4M316.2,273.5 L312.6,272.2M316.2,273.5 L320.9,275.6M327.5,270.2 L318.7,266.4M327.5,270.2 L331.9,272.4M327.5,270.2 L331.9,260.5M307.7,261.8 L304.6,260.7M307.7,261.8 L310.1,252.5M307.7,261.8 L318.7,266.4M307.7,261.8 L304.9,269.3M315.4,275.9 L314.4,278.9M315.4,275.9 L316.2,273.5M312.6,272.2 L316.2,273.5M312.6,272.2 L304.9,269.3M320.9,275.6 L316.2,273.5M313.6,281.1 L316.7,282.7M313.7,280.9 L317.0,281.6M316.7,282.7 L313.6,281.1M317.0,281.6 L313.7,280.9M302.0,277.1 L297.7,275.6M302.0,277.1 L304.9,269.3M297.7,275.6 L302.0,277.1M303.2,277.6 L306.9,278.9M304.9,269.3 L312.6,272.2M304.9,269.3 L296.0,266.1M304.9,269.3 L302.0,277.1M304.9,269.3 L307.7,261.8M291.8,273.4 L285.7,271.4M291.8,273.4 L294.4,274.4M286.5,267.3 L285.7,271.4M286.5,267.3 L287.8,263.1M13.0,371.5 
38077L18.3,369.7M13.0,371.5 L9.2,363.5 L2.5,356.0M13.0,371.5 L14.7,382.4M14.7,382.4 L8.7,384.3M14.7,382.4 L16.4,386.5M14.7,382.4 L13.0,371.5M14.7,382.4 L12.2,371.9M15.6,362.8 L16.4,360.6 L13.5,360.5 L13.8,362.0 L15.6,362.8M15.6,362.8 L13.8,362.0 L13.5,360.5 L16.4,360.6 L15.6,362.8M15.6,362.8 L18.3,369.7M33.9,376.9 L34.6,371.8M33.9,376.9 L32.7,379.5 L33.4,380.8 L35.3,379.4 L33.9,376.9M33.9,376.9 L35.3,379.4 L33.4,380.8 L32.7,379.5 L33.9,376.9M46.7,375.7 L51.9,381.7M46.7,375.7 L41.0,372.6 L34.6,371.8M46.7,375.7 L48.1,369.2 L47.2,365.7 L45.1,364.0 L40.4,362.8 L36.1,364.0 L34.6,371.8M51.9,381.7 L46.7,375.7M541.2,213.5 L543.3,215.3M540.6,213.8 L538.0,216.7M548.3,219.7 L545.7,222.7M548.0,219.4 L543.3,215.3M545.7,222.7 L548.3,219.7M549.4,218.5 L553.4,213.7M103.6,187.8 L105.4,204.9M103.6,187.8 L107.1,187.1M105.4,204.9 L103.6,187.8M105.4,204.9 L97.2,207.3M105.4,204.9 L111.9,203.1 L112.8,198.9M101.4,188.2 L97.9,188.8M107.1,187.1 L103.6,187.8M97.2,207.3 L96.8,202.6M97.2,207.3 L105.4,204.9M97.2,207.3 L94.3,208.3M112.8,198.9 L111.9,203.1 L105.4,204.9M96.8,202.6 L97.2,207.3M94.3,208.3 L97.2,207.3M462.7,271.8 L472.8,277.8M462.7,271.8 L458.8,278.6M462.7,271.8 L473.5,269.2M458.8,278.6 L450.9,273.8M458.8,278.6 L468.7,284.5M458.8,278.6 L455.2,284.7M458.8,278.6 L462.7,271.8M473.5,269.2 L473.6,272.6M473.5,269.2 L473.5,265.5M473.5,269.2 L462.7,271.8M456.0,172.8 L458.5,170.6M456.0,172.8 L452.6,175.7 L456.4,180.8M456.0,172.8 L459.9,177.1M458.5,170.6 L456.0,172.8M458.5,170.6 L454.6,166.2M458.5,170.6 L463.3,174.0 L470.6,171.4M456.4,180.8 L459.9,177.1M456.4,180.8 L459.9,184.5M456.4,180.8 L452.6,175.7 L456.0,172.8M459.9,177.1 L456.4,180.8M459.9,177.1 L460.8,176.5 L468.4,183.1M459.9,177.1 L456.0,172.8M280.4,103.4 L283.9,102.6M280.4,103.4 L272.9,106.6M283.0,98.4 L283.9,102.6M283.0,98.4 L282.0,94.6M283.0,98.4 L287.6,97.9M280.0,101.9 L278.9,97.5 L277.5,97.7 L278.2,101.3 L280.0,101.9M280.0,101.9 L278.2,101.3 L277.5,97.7 L278.9,97.5 L280.0,101.9M272.9,106.6 L280.4,103.4M272.9,106.6 L270.3,108.5M272.9,106.6 L271.9,103.9M270.3,108.5 L272.9,106.6M271.9,103.9 L270.7,98.8M271.9,103.9 L272.9,106.6M512.0,293.4 L513.7,291.3M513.7,291.3 L518.2,286.0M513.7,291.3 L512.0,293.4M513.7,291.3 L517.1,294.0M518.2,286.0 L513.7,291.3M518.2,286.0 L524.0,290.7M517.1,294.0 L513.7,291.3M519.6,284.5 L514.3,280.1M519.6,284.5 L524.5,278.4M524.0,290.7 L518.2,286.0M524.0,290.7 L526.9,293.0M524.0,290.7 L519.0,296.7M514.3,280.1 L521.5,271.7M514.3,280.1 L519.6,284.5M514.3,280.1 L512.1,282.5M524.5,278.4 L526.6,275.9M524.5,278.4 L519.6,284.5M385.0,100.1 L385.9,97.8M385.0,100.1 L379.4,94.3M385.9,97.8 L385.0,100.1M385.9,97.8 L387.1,93.1M379.4,94.3 L385.0,100.1M492.9,331.3 L491.3,328.5M492.9,331.3 L488.8,333.1M493.8,332.7 L494.8,335.3M493.8,332.7 L496.1,330.4 L500.4,329.0M491.3,328.5 L492.9,331.3M491.3,328.5 L504.7,322.8M488.8,333.1 L484.0,334.9M488.8,333.1 L487.5,330.1 L485.6,329.2 L483.9,323.9M488.8,333.1 L492.9,331.3M484.0,334.9 L488.8,333.1M484.0,334.9 L480.3,325.5M483.9,323.9 L485.6,329.2 L487.5,330.1 L488.8,333.1M-201.5,268.9 L-204.2,274.1M-201.5,268.9 L-200.7,265.0M-201.5,268.9 L-204.2,267.8 L-205.5,265.8M-201.5,268.9 L-195.6,271.4 L-187.1,270.7M-204.2,274.1 L-201.5,268.9M-204.2,274.1 L-206.7,284.3M-204.2,274.1 L-212.3,272.5 L-215.9,275.6 L-214.8,280.4M-200.7,265.0 L-201.5,268.9M-200.7,265.0 L-206.5,262.4 L-211.0,256.7M-205.5,265.8 L-204.2,267.8 L-201.5,268.9M-187.1,270.7 L-195.6,271.4 L-201.5,268.9M218.7,39.9 L216.9,44.4M226.1,51.9 L235.6,45.2M226.1,51.9 L216.7,61.8M226.1,51.9 L221.2,46.6 L216.9,44.4M215.9,237.0 L213.1,240.7M213.1,240.7 L215.9,237.0M193.6,266.4 L190.2,268.8M193.6,266.4 L189.3,263.9M193.6,266.4 L197.1,262.4M190.2,268.8 L193.6,266.4M190.2,268.8 L184.5,272.6M189.3,263.9 L186.1,261.9M189.3,263.9 L193.6,266.4M197.1,262.4 L199.1,259.7M197.1,262.4 L193.6,266.4M180.0,275.7 L177.5,274.7M180.0,275.7 L175.8,279.7M177.5,274.7 L175.8,279.7M177.5,274.7 L180.0,275.7M177.5,274.7 L189.8,252.0M177.5,274.7 L180.6,266.1M175.8,279.7 L177.5,274.7M175.8,279.7 L180.0,275.7M175.3,280.9 L173.0,286.9M175.3,280.9 L176.4,274.3M556.2,339.1 L560.8,345.6M569.4,357.1 L565.7,359.8M569.4,357.1 L573.0,354.5M569.4,357.1 L572.7,361.5 L580.2,356.3M569.4,357.1 L561.5,346.4M565.7,359.8 L564.1,357.7M565.7,359.8 L569.4,357.1M565.7,359.8 L562.1,362.5 L559.3,358.9M573.0,354.5 L569.4,357.1M573.0,354.5 L576.7,351.
380776M580.2,356.3 L582.6,359.5M580.2,356.3 L572.7,361.5 L569.4,357.1M580.2,356.3 L576.7,351.6M561.5,346.4 L569.4,357.1M544.6,317.4 L545.7,320.1M545.7,320.1 L547.4,323.9M545.7,320.1 L544.6,317.4M551.0,332.1 L548.9,327.3M551.0,332.1 L545.2,334.6M551.0,332.1 L555.4,330.7M551.0,332.1 L554.0,339.4M548.9,327.3 L551.0,332.1M548.9,327.3 L547.4,323.9M545.2,334.6 L548.7,342.7M545.2,334.6 L539.4,337.0M545.2,334.6 L551.0,332.1M545.2,334.6 L538.6,319.0 L533.2,321.5M555.4,330.7 L551.0,332.1M555.4,330.7 L559.3,329.6M554.0,339.4 L551.0,332.1M481.5,259.4 L481.9,264.5M481.2,273.4 L481.9,264.5M483.4,275.8 L480.8,274.4M566.4,603.9 L560.5,598.6M567.0,604.6 L571.5,614.6M560.5,598.6 L566.4,603.9M560.5,598.6 L557.4,595.6M569.9,602.1 L572.7,602.0M672.9,138.8 L680.6,143.4M672.9,138.8 L668.1,146.8M672.9,138.8 L675.1,132.5M680.6,143.4 L672.9,138.8M680.6,143.4 L684.3,145.6M668.1,146.8 L672.9,138.8M668.1,146.8 L680.3,156.7M668.1,146.8 L665.7,152.4 L665.8,158.6M675.1,132.5 L672.9,138.8M675.1,132.5 L673.7,129.3 L670.0,126.6M689.5,140.9 L687.6,148.4M684.3,145.6 L687.6,148.4M684.3,145.6 L680.6,143.4M708.6,166.1 L715.9,171.9M708.6,166.1 L701.6,174.5 L696.0,169.9M715.9,171.9 L719.9,175.1M715.9,171.9 L708.6,166.1M696.0,169.9 L693.4,167.8M696.0,169.9 L701.6,174.5 L708.6,166.1M719.9,175.1 L715.9,171.9M703.2,187.6 L697.6,193.2M722.8,177.6 L738.0,192.5 L741.3,194.0 L739.3,204.7 L726.0,209.1 L724.0,211.0 L723.3,214.8 L721.8,215.1 L711.9,206.6M723.9,176.5 L716.7,170.9M723.9,176.5 L729.0,170.9 L731.4,170.6M711.9,206.6 L705.4,200.4M711.9,206.6 L721.8,215.1 L723.3,214.8 L724.0,211.0 L726.0,209.1 L739.3,204.7 L741.3,194.0 L738.0,192.5 L722.8,177.6M93.9,580.5 L104.5,583.9M93.9,580.5 L95.8,573.9M93.9,580.5 L87.2,585.2M93.9,580.5 L91.6,586.5M104.5,583.9 L109.1,585.4M104.5,583.9 L93.9,580.5M104.5,583.9 L102.3,590.1M104.5,583.9 L106.8,577.5M95.8,573.9 L90.2,576.5M95.8,573.9 L106.8,577.5M95.8,573.9 L93.9,580.5M95.8,573.9 L97.7,567.6M87.2,585.2 L83.9,581.6M87.2,585.2 L93.9,580.5M87.2,585.2 L78.2,591.5 L70.2,594.4M91.6,586.5 L102.3,590.1M91.6,586.5 L75.8,596.4M91.6,586.5 L93.9,580.5M109.1,585.4 L111.8,586.3M109.1,585.4 L104.5,583.9M102.3,590.1 L100.7,594.4M102.3,590.1 L104.5,583.9M102.3,590.1 L91.6,586.5M106.8,577.5 L108.9,571.3M106.8,577.5 L104.5,583.9M106.8,577.5 L116.3,580.7M106.8,577.5 L95.8,573.9M111.8,586.3 L115.0,590.0M111.8,586.3 L109.1,585.4M111.8,586.3 L116.3,580.7M115.0,590.0 L111.8,586.3M116.3,580.7 L111.8,586.3M116.3,580.7 L106.8,577.5M116.3,580.7 L118.7,577.8M354.9,51.3 L349.8,56.5M354.9,51.3 L347.0,45.4 L346.6,39.7 L345.0,37.2M354.9,51.3 L360.6,46.1M349.8,56.5 L354.9,51.3M349.8,56.5 L358.3,65.5 L361.3,62.9M349.8,56.5 L346.2,59.9M345.0,37.2 L346.6,39.7 L347.0,45.4 L354.9,51.3M345.0,37.2 L343.9,36.9 L344.3,35.7M360.6,46.1 L363.6,43.3M360.6,46.1 L354.9,51.3M366.2,400.4 L366.3,397.2M366.2,400.4 L369.0,401.2M366.2,400.4 L365.4,424.8M366.3,397.2 L366.2,400.4M366.3,397.2 L366.4,390.5M369.0,401.2 L366.2,400.4M369.0,401.2 L371.5,406.0M365.4,424.8 L362.5,455.2M365.4,424.8 L366.2,400.4M599.8,60.6 L601.6,64.4 L603.2,75.0 L605.3,77.3 L609.7,77.4M599.8,60.6 L597.4,63.7 L593.4,64.0M599.8,60.6 L602.1,57.2 L610.8,56.1 L612.6,54.6M593.4,64.0 L597.4,63.7 L599.8,60.6M593.4,64.0 L588.2,64.8M593.4,64.0 L593.6,84.1M612.6,54.6 L610.8,56.1 L602.1,57.2 L599.8,60.6M612.6,54.6 L619.9,42.1M612.6,54.6 L616.3,59.5 L618.8,82.3M612.6,54.6 L608.6,51.6 L600.0,41.1M611.0,60.0 L608.8,65.5 L609.7,77.4M593.6,84.1 L597.9,84.0M593.6,84.1 L590.3,88.2M593.6,84.1 L593.4,64.0M597.9,84.0 L607.7,83.3M597.9,84.0 L593.6,84.1M597.9,84.0 L598.3,90.0 L601.9,89.5M590.3,88.2 L593.6,84.1M601.9,89.5 L598.3,90.0 L597.9,84.0M311.9,226.1 L307.6,214.1M311.9,226.1 L318.0,213.1M311.6,226.7 L309.7,230.5M307.6,214.1 L311.9,226.1M318.0,213.1 L311.9,226.1M580.5,-48.4 L583.6,-45.4M583.6,-45.4 L586.5,-42.8 L596.3,-41.1M583.6,-45.4 L580.5,-48.4M583.6,-45.4 L575.7,-36.3 L580.4,-30.7 L579.6,-27.9M596.3,-41.1 L604.5,-40.3 L615.4,-35.9M596.3,-41.1 L586.5,-42.8 L583.6,-45.4M596.3,-41.1 L597.6,-50.8 L607.4,-64.6M615.4,-35.9 L604.5,-40.3 L596.3,-41.1M615.4,-35.9 L612.9,-25.8M607.4,-64.6 L611.4,-69.4M607.4,-64.6 L597.6,-50.8 L596.3,-41.1M615.6,-35.8 L630.8,-34.4M612.9,-25.8 L612.2,-20.3M612.9,-25.8 L615.4,-35.9M630.8,-34.4 L630.7,-29.7M630.8,-34.4 L61
380775.6,-35.8M630.8,-34.4 L632.7,-43.8M630.7,-29.7 L630.8,-34.4M632.7,-43.8 L630.8,-34.4M648.1,709.9 L656.8,716.2M648.1,709.9 L645.4,713.9 L636.4,717.0M648.1,709.9 L635.2,701.3M656.8,716.2 L660.0,711.9M656.8,716.2 L669.6,725.9M656.8,716.2 L648.1,709.9M636.4,717.0 L645.4,713.9 L648.1,709.9M635.2,701.3 L629.9,696.4M635.2,701.3 L648.1,709.9M635.2,701.3 L643.1,692.1 L647.8,703.2 L660.0,711.9M-104.1,235.6 L-101.3,239.4M-104.1,235.6 L-106.5,236.9 L-112.0,235.7M-101.3,239.4 L-104.1,235.6M-112.0,235.7 L-106.5,236.9 L-104.1,235.6M-104.8,233.7 L-106.0,227.7M-104.8,233.7 L-101.1,232.7M261.6,88.4 L264.6,94.8M261.6,88.4 L266.1,86.5 L269.4,82.2M261.6,88.4 L256.3,81.4M264.6,94.8 L261.6,88.4M269.4,82.2 L266.1,86.5 L261.6,88.4M256.3,81.4 L260.3,79.1 L265.2,73.2M256.3,81.4 L261.6,88.4M256.3,81.4 L255.3,77.3 L257.0,73.1M199.9,117.0 L203.2,115.6M199.9,117.0 L195.9,118.4M200.1,117.3 L204.6,123.3M203.2,115.6 L206.4,114.4M203.2,115.6 L199.9,117.0M195.9,118.4 L199.9,117.0M195.9,118.4 L193.4,119.0M211.4,127.6 L209.5,128.5 L204.6,123.3M204.6,123.3 L209.5,128.5 L211.4,127.6M204.6,123.3 L200.1,117.3M-120.3,207.5 L-118.1,212.0M-120.3,207.5 L-127.6,210.4M-120.3,207.5 L-106.1,202.2 L-91.2,202.6 L-72.7,199.5M-118.1,212.0 L-113.9,214.7M-118.1,212.0 L-120.3,207.5M-118.1,212.0 L-121.9,213.9M-127.6,210.4 L-120.3,207.5M-127.6,210.4 L-129.0,207.1M-127.6,210.4 L-139.3,217.2 L-146.4,218.5M-72.7,199.5 L-69.0,213.3M-72.7,199.5 L-18.3,204.6 L-8.6,209.1M-72.7,199.5 L-91.2,202.6 L-106.1,202.2 L-120.3,207.5M-113.9,214.7 L-118.1,212.0M-113.9,214.7 L-109.9,216.5 L-107.1,221.0M-113.9,214.7 L-115.0,221.0M-113.9,214.7 L-111.0,210.4 L-106.7,208.4 L-105.5,211.7M-121.9,213.9 L-124.4,214.2M-121.9,213.9 L-118.1,212.0M-121.9,213.9 L-121.3,217.2M-107.1,221.0 L-106.0,227.7M-107.1,221.0 L-109.9,216.5 L-113.9,214.7M-115.0,221.0 L-114.5,224.2M-115.0,221.0 L-113.9,214.7M-115.0,221.0 L-118.6,221.3M-105.5,211.7 L-106.7,208.4 L-111.0,210.4 L-113.9,214.7M-106.0,227.7 L-104.8,233.7M-106.0,227.7 L-107.1,221.0M-106.0,227.7 L-101.1,226.5M-101.1,226.5 L-106.0,227.7M-78.4,316.4 L-85.6,313.7M-85.6,313.7 L-93.7,310.9 L-97.1,308.2M-85.6,313.7 L-78.4,316.4M-85.6,313.7 L-88.0,322.1 L-86.9,325.1 L-79.5,329.5 L-78.0,331.9M-97.1,308.2 L-108.3,296.0M-97.1,308.2 L-93.7,310.9 L-85.6,313.7M-78.0,331.9 L-79.5,329.5 L-86.9,325.1 L-88.0,322.1 L-85.6,313.7M-116.2,290.2 L-125.3,289.6M-116.2,290.2 L-109.2,295.2M-134.3,288.1 L-142.3,286.1M-134.3,288.1 L-125.3,289.6M-125.4,299.2 L-118.5,300.5 L-119.0,304.7M-125.4,299.2 L-125.3,289.6M-125.4,299.2 L-127.0,306.7M383.1,489.4 L383.4,493.5 L388.4,492.7M383.1,489.4 L395.3,487.5M383.1,489.4 L377.7,487.5M388.4,492.7 L383.4,493.5 L383.1,489.4M395.3,487.5 L406.7,493.9M395.3,487.5 L383.1,489.4M377.7,487.5 L383.1,489.4M377.7,487.5 L374.5,484.4 L372.7,479.0M-199.8,237.7 L-193.6,235.5M-199.8,237.7 L-199.7,248.2M-199.8,237.7 L-200.8,232.1M-199.8,237.7 L-209.8,238.6M-193.6,235.5 L-199.8,237.7M-193.6,235.5 L-191.6,238.9M-199.7,248.2 L-199.8,237.7M-200.8,232.1 L-199.4,228.9M-200.8,232.1 L-199.8,237.7M-209.8,238.6 L-215.9,238.2M-209.8,238.6 L-199.8,237.7M399.4,246.1 L392.6,245.0M392.6,245.0 L386.8,244.1M392.6,245.0 L391.8,249.5M392.6,245.0 L399.4,246.1M386.8,244.1 L392.6,245.0M391.8,249.5 L384.9,248.3M391.8,249.5 L392.6,245.0M391.8,249.5 L390.3,257.8M385.6,243.9 L378.0,242.7M385.6,243.9 L384.9,248.3M384.9,248.3 L385.6,243.9M384.9,248.3 L383.8,254.7M384.9,248.3 L377.2,247.1M384.9,248.3 L391.8,249.5M369.3,241.3 L377.1,242.6M369.3,241.3 L368.7,245.7M369.0,241.2 L362.0,240.1M368.7,245.7 L361.1,244.5M368.7,245.7 L376.4,246.9M368.7,245.7 L369.3,241.3M368.7,245.7 L364.7,258.1M361.7,240.1 L361.1,244.5M361.7,240.1 L351.1,238.4M362.0,240.1 L369.0,241.2M361.1,244.5 L368.7,245.7M361.1,244.5 L361.7,240.1M361.1,244.5 L357.0,255.2M351.1,238.4 L361.7,240.1M400.5,244.1 L393.2,242.9M393.2,242.9 L387.2,242.0M393.2,242.9 L400.5,244.1M387.2,242.0 L393.2,242.9M393.3,242.5 L394.4,238.2M386.9,241.9 L379.0,240.5M387.0,241.5 L391.8,220.1M369.6,239.0 L378.1,240.5M369.6,239.0 L371.3,231.5M371.3,231.5 L375.0,215.7M371.3,231.5 L369.6,239.0M325.7,233.0 L331.3,219.8M325.7,233.0 L332.7,234.2M331.3,219.8 L337.2,222.5M331.3,219.8 L334.2,212.4M331.3,219.8 L325.7,233.0M332.7,234.2 L325.7,233.0M319.4,232.1 L326.7,214.6M319.4,232.1 L314.0,231.3M319.4,232.1 L321.7,232.4M326.7,214.6 L328.1,211.1M326.7,214.6 L319.4,232.1M314.0,231.3 L319.4,232.1M321.7,232.4 L319.4,232.1M309.7,23
380770.5 L311.6,226.7M309.7,230.5 L306.6,230.0M578.0,101.2 L575.2,104.1M578.0,101.2 L584.1,90.9 L588.0,77.2M578.0,101.2 L577.0,104.4 L578.1,106.4M572.8,107.5 L575.2,104.1M572.8,107.5 L575.8,105.6 L578.1,106.4M572.8,107.5 L564.5,116.2 L550.4,126.9 L518.9,143.1 L507.9,150.2M578.1,106.4 L580.1,110.2M578.1,106.4 L575.2,104.1M578.1,106.4 L575.8,105.6 L572.8,107.5M578.1,106.4 L577.0,104.4 L578.0,101.2M379.0,529.5 L379.7,534.4 L378.1,543.4M378.1,543.4 L379.7,534.4 L379.0,529.5M378.1,543.4 L371.6,540.9M378.1,543.4 L383.9,543.0 L388.2,540.2M371.6,540.9 L372.6,534.1 L371.1,525.3M371.6,540.9 L368.1,541.2M371.6,540.9 L378.1,543.4M388.2,540.2 L383.9,543.0 L378.1,543.4M108.9,571.3 L106.8,577.5M108.9,571.3 L97.7,567.6M108.9,571.3 L117.7,574.4 L118.7,577.8M97.7,567.6 L108.9,571.3M97.7,567.6 L95.8,573.9M118.7,577.8 L116.3,580.7M118.7,577.8 L117.7,574.4 L108.9,571.3M348.3,204.2 L344.3,205.0M344.3,205.0 L348.3,204.2M349.8,204.2 L355.6,205.6M343.0,197.6 L353.4,186.1M343.0,197.6 L337.2,192.4M343.0,197.6 L348.1,202.1M353.4,186.1 L343.0,197.6M353.4,186.1 L347.6,180.6M353.4,186.1 L359.0,190.9M337.2,192.4 L343.0,197.6M337.2,192.4 L332.7,194.7 L326.9,192.5M337.2,192.4 L347.6,180.6M348.1,202.1 L343.0,197.6M326.9,192.5 L325.3,196.8M326.9,192.5 L333.7,180.4M326.9,192.5 L332.7,194.7 L337.2,192.4M378.2,42.7 L382.1,31.4M378.2,42.7 L382.6,45.8 L384.0,51.2 L383.0,52.8 L380.6,53.5 L376.1,51.4 L372.2,52.3M378.2,42.7 L369.4,38.0M372.2,52.3 L361.3,62.9M372.2,52.3 L363.9,43.0M372.2,52.3 L376.1,51.4 L380.6,53.5 L383.0,52.8 L384.0,51.2 L382.6,45.8 L378.2,42.7M372.2,52.3 L375.2,57.2M369.4,38.0 L378.2,42.7M603.9,645.4 L598.2,645.6M598.2,645.6 L594.0,649.1M598.2,645.6 L603.9,645.4M598.2,645.6 L597.2,643.0M594.0,649.1 L590.7,651.9M594.0,649.1 L598.2,645.6M597.2,643.0 L598.2,645.6M590.7,651.9 L594.0,649.1M590.7,651.9 L603.5,664.3M590.7,651.9 L582.0,637.6M603.5,664.3 L605.6,666.9M603.5,664.3 L590.7,651.9M582.0,637.6 L590.7,651.9M582.0,637.6 L578.2,629.5M582.0,637.6 L584.3,636.7M-30.5,-75.0 L-32.6,-81.4 L-29.3,-88.1 L-34.4,-93.1 L-36.6,-101.7M-30.5,-75.0 L-22.0,-73.2M-30.5,-75.0 L-38.4,-74.6M-36.6,-101.7 L-25.0,-104.3M-36.6,-101.7 L-34.4,-93.1 L-29.3,-88.1 L-32.6,-81.4 L-30.5,-75.0M-22.0,-73.2 L-15.7,-69.7 L-10.1,-64.3M-22.0,-73.2 L-30.5,-75.0M-38.4,-74.6 L-44.4,-74.2M-38.4,-74.6 L-30.5,-75.0M223.2,443.6 L226.0,443.9M223.2,443.6 L209.6,439.2M223.2,443.6 L221.6,449.1 L221.9,456.2 L224.1,459.3M226.0,443.9 L223.2,443.6M209.6,439.2 L223.2,443.6M209.6,439.2 L206.6,446.0M209.6,439.2 L214.3,426.3M224.1,459.3 L221.9,456.2 L221.6,449.1 L223.2,443.6M287.3,192.5 L289.7,203.5M286.6,192.2 L284.0,189.8 L281.6,184.2M287.1,191.4 L284.8,178.8 L276.8,164.9 L279.3,151.2M289.7,203.5 L287.3,192.5M289.7,203.5 L291.6,206.5M280.6,183.6 L275.1,181.1M275.1,181.1 L280.6,183.6M275.1,181.1 L274.0,177.5 L276.7,175.1M281.6,184.2 L284.0,189.8 L286.6,192.2M281.4,183.1 L280.5,178.5 L276.7,175.1M139.2,451.8 L143.4,455.8M139.2,451.8 L127.9,440.8M139.2,451.8 L144.3,447.1 L151.8,446.8M139.2,451.8 L137.7,455.3 L138.7,460.2 L138.1,470.9M143.4,455.8 L139.2,451.8M143.4,455.8 L149.3,460.3 L156.6,460.4M127.9,440.8 L139.2,451.8M127.9,440.8 L119.5,433.1M127.9,440.8 L137.7,431.6M151.8,446.8 L144.3,447.1 L139.2,451.8M138.1,470.9 L138.7,460.2 L137.7,455.3 L139.2,451.8M-155.2,274.2 L-156.9,276.0 L-154.7,279.3M-155.2,274.2 L-145.4,281.6M-155.2,274.2 L-158.4,269.9 L-159.8,264.6M-154.7,279.3 L-157.3,281.4M-154.7,279.3 L-154.0,281.2 L-156.1,283.2 L-157.3,281.4M-154.7,279.3 L-156.9,276.0 L-155.2,274.2M-145.4,281.6 L-142.3,286.1M-145.4,281.6 L-155.2,274.2M-159.8,264.6 L-154.7,264.3M-159.8,264.6 L-158.4,269.9 L-155.2,274.2M-159.8,264.6 L-161.4,253.4M-159.8,264.6 L-164.7,264.9M718.0,91.5 L721.4,89.9 L723.3,87.5M533.5,236.8 L529.4,241.5M533.5,236.8 L536.4,233.6M529.4,241.5 L541.7,252.1M529.4,241.5 L533.5,236.8M529.4,241.5 L526.8,239.5M529.4,241.5 L523.1,248.7M536.4,233.6 L533.5,236.8M536.4,233.6 L542.1,227.0M536.4,233.6 L549.2,244.3M536.4,233.6 L529.2,227.3M454.7,657.9 L453.7,663.6M454.7,657.9 L455.1,654.9M454.7,657.9 L440.9,656.0M455.1,654.9 L454.7,657.9M441.9,647.2 L440.9,656.0M441.9,647.2 L442.6,642.4M441.9,647.2 L447.9,648.1M523.4,331.8 L513.2,336.0M523.4,331.8 L526.4,329.6M523.4,331.8 L526.8,340.1M513.2,336.0 L510.2,337.3M513.2,336.0 L523.4,331.8M526.4,329.6 L523.4,331.8M526.4,329.6 L530.6,326.6M107.6,619.7 L121.8,632.4M107.6,619.7 L111.8,615.4M107.6,619.7 L104.1,624.0M121.8,632.4 L107.6,619.7M121.8,632.4 L124.1,631.4M121.8,632.4 L119.0,633.7M111.8,615.4 L120.1,606.0M111.8,615.4 L107.6,619.7M111.8,615.4 L116.3,619.3M111.8,615.4 L107.6,611.4M104.1,624.0 L107.6,619.7M104.1,624.0 L100.0,627.8M104.1,624.0 L116.2,635.1M124.1,631.4 L126.0,633.9M124.1,631.4 L127.8,629.9M124.1,631.4 L121.8,632.4M119.0,633.7 L121.2,636.9M119.0,633.7 L121.8,632.4M119.0,633.7 L116.2,635.1M537.8,333.0 L539.4,337.0M537.8,333.0 L534.2,324.2M537.4,333.1 L532.8,335.4M539.4,337.0 L537.8,333.0M539.4,337.0 L545.2,334.6M534.2,324.2 L537.8,333.0M534.2,324.2 L533.2,321.5M532.8,335.4 L537.4,333.1M6.2,374.0 L1.7,374.9M6.2,374.0 L3.6,368.0M6.2,374.0 L8.7,384.3M1.7,374.9 L6.2,374.0M3.6,368.0 L6.2,374.0M8.7,384.3 L10.4,389.5M8.7,384.3 L14.7,382.4M8.7,384.3 L6.2,374.0M8.7,384.3 L3.0,384.8 L-3.7,382.2M520.0,316.0 L518.7,313.2M520.0,316.0 L524.5,325.8M520.0,316.0 L518.0,317.6 L517.6,324.9 L512.2,330.1 L511.7,332.3M518.7,313.2 L520.0,316.0M524.5,325.8 L526.2,329.3M524.5,325.8 L520.0,316.0M524.5,325.8 L512.0,332.2M511.7,332.3 L513.2,335.7M511.7,332.3 L512.2,330.1 L517.6,324.9 L518.0,317.6 L520.0,316.0M526.2,329.3 L524.5,325.8M530.6,326.6 L526.4,329.6M530.6,326.6 L533.6,324.6M500.4,467.9 L503.0,460.9M500.4,467.9 L497.1,466.7M500.4,467.9 L498.2,474.0M503.0,460.9 L500.4,467.9M497.1,466.7 L489.1,461.9 L484.8,461.7M497.1,466.7 L494.7,470.3 L492.7,469.8 L485.3,466.2 L484.8,461.7M497.1,466.7 L500.4,467.9M498.2,474.0 L500.4,467.9M484.8,461.7 L489.1,461.9 L497.1,466.7M484.8,461.7 L485.3,466.2 L492.7,469.8 L494.7,470.3 L497.1,466.7M484.8,461.7 L483.0,454.5M483.0,454.5 L484.8,461.7M471.2,245.6 L471.3,242.7M471.1,246.3 L470.9,248.8M470.9,246.0 L465.9,245.7M471.6,246.1 L474.1,246.2M471.3,242.7 L471.2,245.6M253.6,224.9 L248.8,222.7M253.1,226.1 L251.6,229.8M248.8,222.7 L253.6,224.9M249.9,236.6 L246.9,246.8M249.9,236.6 L244.0,235.0M246.9,246.8 L244.6,254.3M246.9,246.8 L249.9,236.6M246.9,246.8 L240.8,244.8M249.9,235.0 L251.6,229.8M244.0,235.0 L240.8,244.8M244.0,235.0 L240.3,234.0M244.0,235.0 L249.9,236.6M244.6,254.3 L243.9,262.2M244.6,254.3 L246.9,246.8M244.6,254.3 L238.1,254.7M244.6,254.3 L250.7,253.8M240.8,244.8 L238.1,254.7M240.8,244.8 L244.0,235.0M240.8,244.8 L246.9,246.8M240.8,244.8 L232.9,242.8M243.9,262.2 L244.6,254.3M243.9,262.2 L240.1,262.4M243.9,262.2 L246.6,262.1M250.7,253.8 L244.6,254.3M240.1,262.4 L237.4,262.6M240.1,262.4 L243.9,262.2M246.6,262.1 L243.9,262.2M246.6,262.1 L251.0,262.8M288.8,314.5 L287.6,318.1 L290.8,321.7M291.5,312.2 L289.1,312.8M290.8,321.7 L287.6,318.1 L288.8,314.5M-202.6,284.9 L-206.7,284.3M-202.6,284.9 L-198.2,285.1M-202.6,284.9 L-203.5,291.4 L-202.3,292.7 L-198.5,292.5 L-197.5,289.6 L-198.2,285.1M-202.6,284.9 L-201.3,279.7 L-201.5,276.8 L-203.3,276.4M-206.7,284.3 L-206.7,288.4M-206.7,284.3 L-202.6,284.9M-206.7,284.3 L-204.2,274.1M-206.7,284.3 L-210.6,283.7 L-214.8,280.4M-198.2,285.1 L-195.1,283.7M-198.2,285.1 L-202.6,284.9M-198.2,285.1 L-197.5,289.6 L-198.5,292.5 L-202.3,292.7 L-203.5,291.4 L-202.6,284.9M-203.3,276.4 L-201.5,276.8 L-201.3,279.7 L-202.6,284.9M489.3,243.8 L491.0,241.7M489.3,243.8 L487.9,247.6M491.0,241.7 L489.3,243.8M491.0,241.7 L496.1,236.3M491.0,241.7 L489.7,233.6 L485.9,226.9M491.0,241.7 L492.1,246.1M488.3,243.0 L479.6,236.2M487.9,247.6 L489.3,243.8M339.5,216.9 L337.2,222.5M339.5,216.9 L343.4,205.7M340.0,217.0 L345.3,218.2M337.2,222.5 L331.3,219.8M337.2,222.5 L339.5,216.9M337.2,222.5 L333.2,232.9M343.4,205.7 L339.5,216.9M345.3,218.2 L340.0,217.0M546.1,223.0 L548.9,224.6M545.4,223.1 L543.3,225.6M497.4,515.9 L498.6,513.2M496.8,517.1 L496.8,519.1 L497.2,517.3M497.2,517.3 L496.8,519.1 L496.8,517.1M491.3,575.1 L493.2,571.6M491.3,575.1 L498.5,576.0M491.3,575.1 L484.6,586.3M490.5,574.8 L484.1,586.0M490.5,574.8 L494.3,566.4M493.2,571.6 L491.3,575.1M493.2,571.6 L494.3,569.0M498.5,576.0 L491.3,575.1M484.6,586.3 L492.7,588.8 L501.5,583.3M484.6,586.3 L491.3,575.1M484.6,586.3 L481.5,592.6M-102.6,267.7 
38077L-94.7,270.5M-102.6,267.7 L-109.8,264.7M-102.6,267.7 L-101.2,263.8 L-101.9,261.4M-94.7,270.5 L-102.6,267.7M-94.7,270.5 L-93.3,266.1M-94.7,270.5 L-92.4,272.1M-109.8,264.7 L-102.6,267.7M-109.8,264.7 L-122.6,259.9M-109.8,264.7 L-112.7,270.9M-101.9,261.4 L-101.2,263.8 L-102.6,267.7M-101.9,261.4 L-103.3,260.9 L-104.1,258.6 L-102.6,259.0 L-101.9,261.4M-101.9,261.4 L-102.6,259.0 L-104.1,258.6 L-103.3,260.9 L-101.9,261.4M139.0,680.7 L150.2,681.0M139.0,680.7 L132.8,692.1 L129.2,694.2 L125.9,694.0M139.0,680.7 L133.7,678.8M150.2,681.0 L139.0,680.7M125.9,694.0 L133.7,678.8M125.9,694.0 L120.8,691.0M125.9,694.0 L129.2,694.2 L132.8,692.1 L139.0,680.7M133.7,678.8 L125.9,694.0M133.7,678.8 L127.6,678.1M133.7,678.8 L139.0,680.7M494.3,408.9 L491.1,407.9M542.1,227.0 L536.4,233.6M542.4,227.3 L549.6,233.7M541.6,226.5 L534.7,220.5M543.3,225.6 L545.4,223.1M433.5,282.7 L424.4,284.5M433.5,282.7 L434.4,287.3M424.4,284.5 L433.5,282.7M434.4,287.3 L433.5,282.7M259.3,319.1 L264.3,322.6 L263.1,324.4M259.3,319.1 L264.5,312.6 L268.5,313.2M263.1,324.4 L264.3,322.6 L259.3,319.1M268.5,313.2 L268.0,316.4 L273.1,316.0M268.5,313.2 L264.5,312.6 L259.3,319.1M671.6,668.8 L668.3,676.2M671.6,668.8 L682.8,674.6M671.7,668.5 L673.4,664.9M671.7,668.5 L668.0,666.6 L674.9,652.4M682.8,674.6 L678.7,682.0M682.8,674.6 L690.1,678.8M682.8,674.6 L671.6,668.8M682.8,674.6 L685.9,669.1M678.7,682.0 L682.8,674.6M678.7,682.0 L685.9,685.9M678.7,682.0 L668.3,676.2M690.1,678.8 L685.9,685.9M690.1,678.8 L682.8,674.6M690.1,678.8 L697.0,682.7 L695.4,691.3M685.9,669.1 L682.8,674.6M685.9,685.9 L690.1,678.8M685.9,685.9 L695.4,691.3M685.9,685.9 L678.7,682.0M233.2,21.2 L235.1,17.9M233.2,21.2 L230.9,17.9 L229.7,9.8M233.2,21.2 L234.1,23.4M235.1,17.9 L233.2,21.2M235.1,17.9 L237.2,11.5 L238.6,10.3M235.1,17.9 L237.6,20.7 L234.1,23.4M229.7,9.8 L233.0,5.9M229.7,9.8 L230.9,17.9 L233.2,21.2M238.6,10.3 L237.2,11.5 L235.1,17.9M392.6,416.5 L389.8,415.3M392.6,416.5 L393.5,419.3M392.7,415.7 L394.2,412.4 L396.9,410.9M389.8,415.3 L388.2,414.6 L387.7,415.4 L388.6,416.0 L389.8,415.3M389.8,415.3 L388.6,416.0 L387.7,415.4 L388.2,414.6 L389.8,415.3M389.8,415.3 L392.6,416.5M393.5,419.3 L395.4,424.5M393.5,419.3 L392.6,416.5M393.5,419.3 L390.3,422.5 L388.9,421.8M617.0,337.4 L613.3,340.1M613.3,340.1 L617.0,337.4M613.3,340.1 L610.3,336.0M613.3,340.1 L616.9,344.8M610.3,336.0 L613.3,340.1M610.3,336.0 L607.8,337.7M610.3,336.0 L615.5,332.1M610.3,336.0 L605.8,330.0M616.9,344.8 L613.3,340.1M394.8,291.8 L382.6,289.3M394.8,291.8 L391.7,296.1M394.8,291.8 L400.3,287.5M382.6,289.3 L394.8,291.8M391.7,296.1 L382.7,294.2M391.7,296.1 L389.9,300.4M391.7,296.1 L394.8,291.8M400.3,287.5 L403.2,291.5M400.3,287.5 L402.2,286.2M400.3,287.5 L394.8,291.8M395.9,400.2 L396.3,395.0M395.9,400.2 L387.5,399.7M395.9,400.2 L403.5,399.5M395.9,400.2 L395.5,406.7 L396.7,410.3M396.3,395.
380770 L395.9,400.2M403.5,399.5 L395.9,400.2M403.5,399.5 L403.2,397.9 L405.9,395.3 L407.8,396.5M396.7,410.3 L395.5,406.7 L395.9,400.2M282.3,317.3 L279.2,320.8M279.2,320.8 L282.3,317.3M627.7,605.2 L638.0,610.9M627.7,605.2 L626.9,608.0M627.7,605.2 L630.5,601.1 L633.9,599.1M638.0,610.9 L627.7,605.2M638.0,610.9 L640.2,606.6M638.0,610.9 L636.4,614.1M626.9,608.0 L628.3,615.3 L631.5,619.4 L634.0,620.5M626.9,608.0 L627.7,605.2M633.9,599.1 L630.5,601.1 L627.7,605.2M633.9,599.1 L640.1,598.6M633.9,599.1 L634.1,590.3M640.2,606.6 L638.0,610.9M636.4,614.1 L638.0,610.9M-198.5,265.3 L-198.6,262.4M-198.5,265.3 L-193.3,264.4 L-181.5,259.4M-198.6,262.4 L-198.5,265.3M-198.6,262.4 L-198.8,260.5 L-200.8,260.1 L-200.8,261.2 L-198.6,262.4M-198.6,262.4 L-200.8,261.2 L-200.8,260.1 L-198.8,260.5 L-198.6,262.4M-181.5,259.4 L-176.7,258.7M-181.5,259.4 L-193.3,264.4 L-198.5,265.3M103.3,21.1 L102.5,30.2M103.3,21.1 L101.1,20.6M103.3,21.1 L109.4,22.2M103.3,21.1 L104.8,13.1 L108.9,10.3M102.5,30.2 L103.3,21.1M102.5,30.2 L98.2,50.1M102.5,30.2 L92.5,42.5M101.1,20.6 L103.3,21.1M101.1,20.6 L101.4,16.0 L99.5,12.7M101.1,20.6 L97.1,19.1M109.4,22.2 L103.3,21.1M108.9,10.3 L114.7,7.3M108.9,10.3 L106.8,5.9M108.9,10.3 L104.8,13.1 L103.3,21.1M59.9,687.7 L60.7,683.8M59.9,687.7 L81.2,693.1M59.5,689.7 L58.8,692.7M60.7,683.8 L59.9,687.7M81.2,693.1 L98.0,697.3M81.2,693.1 L79.9,698.7M81.2,693.1 L82.5,687.4M81.2,693.1 L59.9,687.7M98.0,697.3 L81.2,693.1M98.0,697.3 L96.5,702.9M98.0,697.3 L116.6,701.6M98.0,697.3 L99.5,691.6M79.9,698.7 L96.5,702.9M79.9,698.7 L78.0,704.4M79.9,698.7 L81.2,693.1M79.9,698.7 L58.7,693.2M82.5,687.4 L99.5,691.6M82.5,687.4 L61.0,682.1M82.5,687.4 L81.2,693.1M82.5,687.4 L84.0,681.7M96.5,702.9 L98.0,697.3M96.5,702.9 L118.4,708.5M96.5,702.9 L79.9,698.7M96.5,702.9 L95.1,708.6M116.6,701.6 L98.0,697.3M116.6,701.6 L118.7,703.5 L118.4,708.5M116.6,701.6 L107.8,694.2 L99.5,691.6M99.5,691.6 L82.5,687.4M99.5,691.6 L98.0,697.3M99.5,691.6 L107.8,694.2 L116.6,701.6M99.5,691.6 L93.9,684.4M118.4,708.5 L96.5,702.9M118.4,708.5 L119.3,715.7 L117.7,717.2 L111.4,712.1 L95.1,708.6M118.4,708.5 L118.7,703.5 L116.6,701.6M16.4,386.5 L14.7,382.4M16.4,386.5 L20.0,392.3M-65.4,656.4 L-61.5,653.8M-65.4,656.4 L-60.4,664.5M-65.4,656.4 L-68.5,650.6 L-67.9,644.9M-61.5,653.8 L-65.4,656.4M-60.4,664.5 L-65.4,656.4M-60.4,664.5 L-57.2,668.3 L-54.0,668.4M-60.4,664.5 L-52.8,657.9M-67.9,644.9 L-68.5,650.6 L-65.4,656.4M-217.6,254.0 L-214.9,257.1M-214.9,257.1 L-217.6,254.0M-214.9,257.1 L-217.2,260.9M-213.2,258.1 L-211.0,256.7M-213.2,258.1 L-212.3,260.6M-217.2,260.9 L-214.9,257.1M-217.2,260.9 L-217.8,262.4 L-218.9,262.4 L-218.2,260.6 L-217.2,260.9M-217.2,260.9 L-218.2,260.6 L-218.9,262.4 L-217.8,262.4 L-217.2,260.9M-211.0,256.7 L-213.2,258.1M-211.0,256.7 L-213.1,253.8M-211.0,256.7 L-206.5,262.4 L-200.7,265.0M-211.0,256.7 L-208.7,255.2 L-205.7,257.3M-212.3,260.6 L-213.2,258.1M-212.3,260.6 L-212.4,262.4 L-210.9,262.7 L-211.0,261.8 L-212.3,260.6M-212.3,260.6 L-211.0,261.8 L-210.9,262.7 L-212.4,262.4 L-212.3,260.6M-213.1,253.8 L-211.0,256.7M-213.1,253.8 L-211.0,252.0M-213.1,253.8 L-216.6,248.9 L-217.2,244.6M-205.7,257.3 L-208.7,255.2 L-211.0,256.7M435.8,472.8 L441.2,469.3M479.0,504.8 L477.8,507.7M479.0,504.8 L487.5,507.8M479.0,504.8 L470.6,501.4 L459.6,494.0M477.8,507.7 L479.0,504.8M477.8,507.7 L476.0,512.1M477.8,507.7 L474.9,506.9 L472.9,512.5M487.5,507.8 L492.4,510.2M487.5,507.8 L479.0,504.8M459.6,494.0 L455.7,490.8M459.6,494.0 L457.8,496.4M459.6,494.0 L470.6,501.4 L479.0,504.8M492.4,510.2 L492.0,512.2 L493.0,512.8 L493.7,512.0 L492.4,510.2M492.4,510.2 L493.7,512.0 L493.0,512.8 L492.0,512.2 L492.4,510.2M492.4,510.2 L487.5,507.8M231.6,231.5 L234.3,221.9M231.6,231.5 L225.7,229.9M231.6,231.5 L235.9,232.7M234.3,221.9 L231.6,231.5M225.7,229.9 L231.6,231.5M235.9,232.7 L233.6,240.8M235.9,232.7 L231.6,231.5M235.9,232.7 L240.3,234.0M-46.2,570.4 L-43.0,577.1M-43.0,577.1 L-39.1,580.2M-43.0,577.1 L-44.8,579.6M-43.0,577.1 L-46.2,570.4M-39.1,580.2 L-43.0,577.1M-39.1,580.2 L-37.3,581.7M-44.8,579.6 L-44.0,584.9M-44.8,579.6 L-48.5,579.1 L-48.4,582.0 L-44.0,584.9M-44.8,579.6 L-43.0,577.1M-44.0,584.9 L-44.8,579.6M-44.0,584.9 L-48.4,582.0 L-48.5,579.1 L-44.8,579.6M-44.6,587.0 L-52.5,585.3M-42.9,587.8 L-39.3,590.7M503.7,581.9 L502.0,579.6M503.7,581.9 L501.5,583.3M502.0,579.6 L503.7,581.9M501.5,583.3 L503.7,581.9M501.5,583.3 L492.7,588.8 L484.6,586.3M512.6,595.0 L512.5,597.9M512.6,595.0 L515.6,596.5 L518.3,595.9M512.5,597.9 L512.6,595.0M518.3,595.9 L515.6,596.5 L512.6,595.0M512.4,603.0 L512.3,599.7M510.6,603.5 L508.0,604.2M512.3,599.7 L512.4,603.0M536.7,630.9 L534.7,632.3M537.0,631.9 L537.7,635.3M535.1,629.5 L533.1,627.6M534.7,632.3 L536.7,630.9M537.0,630.7 L539.1,629.1M531.0,649.2 L536.6,662.1 L537.9,671.4M531.0,649.2 L536.3,639.7M531.0,649.2 L526.1,649.2M537.9,671.4 L536.6,662.1 L531.0,649.2M536.3,639.7 L531.0,649.2M526.1,649.2 L518.3,653.5M526.1,649.2 L525.0,645.5M526.1,649.2 L531.0,649.2M-31.8,659.4 L-41.7,646.9M-31.8,659.4 L-41.7,669.0M-31.8,659.4 L-25.5,653.1M-41.7,646.9 L-31.8,659.4M-41.7,646.9 L-52.8,657.9M-4
380771.7,646.9 L-28.6,634.1M-41.7,669.0 L-52.8,657.9M-41.7,669.0 L-31.8,659.4M-41.7,669.0 L-56.1,683.0M-25.5,653.1 L-23.8,651.5M-25.5,653.1 L-31.8,659.4M-42.8,645.6 L-46.4,641.7M-52.8,657.9 L-41.7,669.0M-52.8,657.9 L-41.7,646.9M-52.8,657.9 L-60.4,664.5M-28.6,634.1 L-41.7,646.9M-28.6,634.1 L-36.8,624.6M-28.6,634.1 L-20.3,625.7M-50.1,642.3 L-46.4,641.7M-46.4,641.7 L-50.1,642.3M-46.4,641.7 L-42.8,645.6M395.0,-71.5 L387.7,-74.0 L383.8,-73.9 L374.1,-70.2 L375.7,-64.8M395.0,-71.5 L388.5,-77.4 L379.4,-77.4 L375.1,-83.4 L376.8,-85.1 L387.7,-84.9M375.7,-64.8 L374.1,-70.2 L383.8,-73.9 L387.7,-74.0 L395.0,-71.5M387.7,-84.9 L387.4,-88.3 L384.8,-91.9M387.7,-84.9 L391.6,-83.8M387.7,-84.9 L376.8,-85.1 L375.1,-83.4 L379.4,-77.4 L388.5,-77.4 L395.0,-71.5M528.6,521.5 L531.7,516.8M548.2,541.2 L555.1,535.5M621.6,597.0 L626.9,582.3M615.6,578.3 L611.4,576.8M615.6,578.3 L626.9,582.3M644.7,597.5 L647.5,594.4M644.7,597.5 L640.1,598.6M644.7,597.5 L649.6,608.5M649.7,591.4 L647.5,594.4M662.4,604.3 L662.8,601.2M662.4,604.3 L655.3,601.6 L647.5,594.4M662.8,601.2 L663.6,598.5M662.8,601.2 L662.4,604.3M664.0,604.6 L669.9,605.7M669.9,605.7 L687.2,608.9M669.9,605.7 L664.0,604.6M669.9,605.7 L700.6,640.9M687.2,608.9 L669.9,605.7M687.2,608.9 L717.3,643.7M687.2,608.9 L704.3,612.1M700.6,640.9 L712.3,654.5M700.6,640.9 L669.9,605.7M30.4,639.4 L42.3,636.4M30.4,639.4 L35.3,644.1M30.4,639.4 L39.9,626.9M42.3,636.4 L30.4,639.4M42.3,636.4 L47.8,635.0M42.3,636.4 L43.7,642.0M42.3,636.4 L39.9,626.9M35.3,644.1 L40.6,648.6M35.3,644.1 L43.7,642.0M35.3,644.1 L30.4,639.4M39.9,626.9 L44.4,621.2M39.9,626.9 L42.3,636.4M39.9,626.9 L30.4,639.4M40.6,648.6 L46.4,653.4M40.6,648.6 L35.3,644.1M40.6,648.6 L56.6,644.8M43.7,642.0 L42.3,636.4M43.7,642.0 L35.3,644.1M43.7,642.0 L55.1,639.0M46.4,653.4 L51.7,657.9M46.4,653.4 L40.6,648.6M46.4,653.4 L58.0,650.3M56.6,644.8 L40.6,648.6M56.6,644.8 L55.1,639.0M51.7,657.9 L58.1,663.2M51.7,657.9 L46.4,653.4M51.7,657.9 L59.4,655.7M58.0,650.3 L63.9,648.8M58.0,650.3 L46.4,653.4M58.0,650.3 L59.4,655.7M58.0,650.3 L56.8,645.5M58.1,663.2 L51.7,657.9M58.1,663.2 L61.9,665.4M59.4,655.7 L61.1,662.2M59.4,655.7 L58.0,650.3M59.4,655.7 L65.0,654.2M59.4,655.7 L51.7,657.9M61.9,665.4 L61.1,662.2M61.9,665.4 L58.1,663.2M62.4,667.6 L63.3,671.6M61.1,662.2 L61.9,665.4M61.1,662.2 L59.4,655.7M40.4,64.4 L50.1,73.6M40.4,64.4 L37.2,68.4 L36.8,78.8M40.4,64.4 L35.7,60.3 L30.8,63.7M50.1,73.6 L40.4,64.4M50.1,73.6 L54.3,67.8 L55.2,61.9M50.1,73.6 L55.0,78.2M36.8,78.8 L37.2,68.4 L40.4,64.4M30.8,63.7 L35.7,60.3 L40.4,64.4M55.2,61.9 L54.3,67.8 L50.1,73.6M55.0,78.2 L65.0,87.8M55.0,78.2 L50.1,73.6M65.0,87.8 L59.2,93.8M65.0,87.8 L55.0,78.2M65.0,87.8 L70.1,92.7M59.2,93.8 L65.0,87.8M59.2,93.8 L44.3,79.5M59.2,93.8 L53.8,98.6 L41.4,97.3M70.1,92.7 L75.2,97.5M70.1,92.7 L65.8,97.3M70.1,92.7 L65.0,87.8M75.2,97.5 L70.1,92.7M65.8,97.3 L70.1,92.7M76.0,98.0 L75.5,99.4 L77.6,104.4 L82.9,105.2 L87.8,108.7M76.0,98.0 L82.2,95.7M87.8,108.7 L68.2,115.2M87.8,108.7 L90.5,109.7 L97.3,108.2M87.8,108.7 L82.9,105.2 L77.6,104.4 L75.5,99.4 L76.0,98.0M82.2,95.7 L85.2,94.3M82.2,95.7 L76.0,98.0M68.2,115.2 L66.9,112.6M68.2,115.2 L87.8,108.7M68.2,115.2 L52.2,120.8 L50.5,120.2M97.3,108.2 L90.5,109.7 L87.8,108.7M97.3,108.2 L89.3,92.3M97.3,108.2 L101.0,114.1M532.1,205.5 L535.0,208.1M532.1,205.5 L526.9,201.2M526.9,201.2 L532.1,205.5M526.9,201.2 L523.2,198.1M777.3,590.5 L781.2,587.2M777.3,590.5 L773.1,594.1M777.3,590.5 L748.6,557.7M781.2,587.2 L774.9,579.6M781.2,587.2 L783.1,585.6M781.2,587.2 L777.3,590.5M773.1,594.1 L777.3,590.5M773.1,594.1 L769.7,597.1M748.6,557.7 L777.3,590.5M748.6,557.7 L746.3,569.9M748.6,557.7 L743.6,550.1M746.3,569.9 L769.7,597.1M746.3,569.9 L745.9,573.4M746.3,569.9 L748.6,557.7M743.6,550.1 L750.2,544.3M743.6,550.1 L748.6,557.7M743.6,550.1 L725.5,530.6M17.0,44.7 L20.8,48.0M17.0,44.7 L14.3,47.0 L8.0,48.6M17.0,44.7 L24.0,35.6M20.8,48.0 L17.0,44.7M8.0,48.6 L-6.2,42.9M8.0,48.6 L7.1,55.2 L5.3,58.4 L-2.8,61.4M8.0,48.6 L14.3,47.0 L17.0,44.7M24.0,35.6 L17.0,44.7M24.0,35.6 L27.8,28.5 L31.4,17.3M24.0,35.6 L30.0,39.5 L32.9,43.2M361.3,62.9 L372.2,52.3M361.3,62.9 L358.3,65.5 L349.8,56.5M361.3,62.9 L365.6,67.3 L375.2,57.2M346.2,59.9 L349.8,56.5M346.2,59.9 L344.6,62.2M377.9,86.3 L373.4,81.8M373.4,81.8 L377.9,86.3M373.4,81.8 L384.5,70.9 L390.2,67.5 L398.8,56.0M373.4,81.8 L370.3,78.5M398.8,56.0 L390.2,67.5 L384.5,70.9 L373.4,81.8M370.3,78.5 L373.4,81.8M370.3,78.5 L368.1,78.6 L356.2,89.7M-3.7,382.2 L-5.1,384.4M-3.7,382.2 L-11.2,375.9 L-17.4,376.1 L-22.5,381.1 L-24.0,389.5M-3.7,382.2 L3.0,384.8 L8.7,384.3M-5.1,384.4 L-3.7,382.2M-24.0,389.5 L-22.5,381.1 L-17.4,376.1 L-11.2,375.9 L-3.7,382.2M260.7,500.2 L253.3,515.1M260.7,500.2 L263.3,495.4M260.7,500.2 L243.4,491.4M-193.4,210.3 L-200.8,211.7M-193.4,210.3 L-181.6,212.8M-193.5,209.8 L-193.5,205.2M-200.8,211.7 L-202.4,206.5M-200.8,211.7 L-209.2,216.2M-200.8,211.7 L-193.4,210.3M-181.6,212.8 L-183.0,218.5M-181.6,212.8 L-193.4,210.3M-181.6,212.8 L-173.6,215.5 L-171.4,217.7M489.0,164.2 L487.3,166.8M489.0,164.2 L493.6,168.5M489.0,164.2 L492.7,162.3M487.3,166.8 L491.8,170.7M487.3,166.8 L489.0,164.2M493.6,168.5 L491.8,170.7M493.6,168.5 L496.2,165.4M493.6,168.5 L489.0,164.2M492.7,162.3 L497.6,160.7 L511.2,170.4M492.7,162.3 L489.0,164.2M491.8,170.7 L487.3,166.8M491.8,170.7 L493.6,168.5M491.8,170.7 L494.9,173.7M496.2,165.4 L494.2,163.8M496.2,165.4 L493.6,168.5M496.2,165.4 L497.8,165.3 L502.3,168.6 L502.5,171.7 L504.7,174.8M543.8,369.0 L541.5,365.9M543.8,369.0 L540.3,371.5M543.8,369.0 L548.2,372.7M541.5,365.9 L543.8,369.0M540.3,371.5 L543.8,369.0M540.3,371.5 L536.4,375.8 L534.4,382.8M548.2,372.7 L553.8,374.8M548.2,372.7 L543.8,369.0M553.8,374.8 L548.2,372.7M553.8,374.8 L555.6,373.0 L560.9,375.3 L562.6,378.3M553.8,374.8 L562.4,378.7M577.4,472.5 L577.9,477.1M577.4,472.5 L576.8,465.6M578.6,472.4 L580.2,476.4 L583.2,477.3 L584.0,475.3M578.6,472.4 L578.7,468.6 L579.8,467.5 L584.6,468.6 L584.7,470.1M577.9,477.1 L584.0,478.2 L585.1,475.4M577.9,477.1 L577.4,472.5M576.8,465.6 L586.7,467.9M576.8,465.6 L577.4,472.5M576.8,465.6 L575.9,458.3M584.0,475.3 L583.2,477.3 L580.2,476.4 L578.6,472.4M584.7,470.1 L584.6,468.6 L579.8,467.5 L578.7,468.6 L578.6,472.4M41.2,313.1 L38.8,311.1M35.7,330.9 L34.7,327.1M26.4,327.3 L34.7,327.1M-25.6,350.8 L-30.5,349.2M-25.6,350.8 L-28.6,357.7M-25.6,350.8 L-22.1,347.4 L-20.3,342.2M-30.5,349.2 L-25.6,350.8M-28.6,357.7 L-25.6,350.8M-20.3,342.2 L-21.0,338.9M-20.3,342.2 L-32.7,342.5 L-46.4,335.6M-20.3,342.2 L-14.5,342.3M-20.3,342.2 L-22.1,347.4 L-25.6,350.8M75.2,2.5 L78.5,6.6M75.2,2.5 L82.8,-7.4M75.2,2.5 L69.3,3.9 L63.7,1.8M78.5,6.6 L75.2,2.5M82.8,-7.4 L75.2,2.5M63.7,1.8 L65.3,-4.7 L62.9,-14.2M63.7,1.8 L56.8,8.4M63.7,1.8 L69.3,3.9 L75.2,2.5M313.4,328.6 L306.1,321.6M313.4,328.6 L319.4,333.7M306.1,321.6 L303.9,319.2M306.1,321.6 L313.4,328.6M319.4,333.7 L321.3,332.1M319.4,333.7 L313.4,328.6M304.7,338.8 L310.4,332.8M304.7,338.8 L295.1,348.7M304.7,338.8 L306.7,340.6M310.4,332.8 L304.7,338.8M306.7,340.6 L310.6,344.1M306.7,340.6 L304.7,338.8M292.9,347.0 L295.1,348.7M292.9,347.0 L294.9,344.6M292.9,347.0 L289.8,344.4M275.7,369.6 L274.2,371.5M275.7,369.6 L295.1,348.7M258.6,396.0 L256.4,401.4 L249.0,410.1 L254.3,418.8M258.6,396.0 L266.1,402.1M258.6,396.0 L261.9,384.1M254.3,418.8 L257.5,424.1 L253.9,428.2M254.3,418.8 L249.0,410.1 L256.4,401.4 L258.6,396.0M266.1,402.1 L270.3,404.4 L269.0,408.1M266.1,402.1 L258.6,396.0M261.9,384.1 L262.1,380.3M261.9,384.1 L258.6,396.0M294.9,344.6 L296.0,343.5 L294.7,342.5 L293.7,343.5 L294.9,344.6M294.9,344.6 L293.7,343.5 L294.7,342.5 L296.0,343.5 L294.9,344.6M294.9,344.6 L292.9,347.0M289.8,344.4 L287.5,342.4M289.8,344.4 L286.9,347.4M289.8,344.4 L292.9,347.0M336.0,274.1 L331.9,272.4M336.0,274.1 L340.2,264.5M336.0,274.1 L337.1,275.5 L336.5,278.7M340.2,264.5 L336.0,274.1M340.2,264.5 L344.7,255.6M340.2,264.5 L331.9,260.5M336.5,278.7 L337.1,275.5 L336.0,274.1M304.6,260.7 L302.4,259.9M304.6,260.7 L307.7,261.8M310.1,252.5 L307.7,261.8M310.1,252.5 L311.5,246.8M310.1,252.5 L306.6,251.5M310.1,252.5 L314.4,253.7M290.5,255.6 L294.1,256.8M290.5,255.6 L287.8,263.1M290.5,255.6 L293.6,247.8M294.1,256.8 L290.5,255.6M294.1,256.8 L301.9,259.7M287.8,263.1 L286.5,267.3M287.8,263.1 L290.5,255.6M287.8,263.1 L296.0,266.1M293.6,247.8 L296.0,248.5M293.6,247.8 L290.5,255.6M293.6,247.8 L296.0,241.7M362.9,286.5 L354.5,283.1M354.5,283.1 L362.9,286.5M354.5,283.1 L350.9,292.1M354.5,283.1 L358.6,272.9M350.9,292.1 L359.0,295.3M350.9,292.1 L354.5,283.1M358.6,272.9 L354.5,283.1M358.6,272.9 L362.0,265.0M358.6,272.9 L350.9,270.1M358.6,272.9 L365.1,275.6M42.4,529.3 L34.2,524.5M42.4,529.3 L48.2,532.7M42.4,529.3 L47.4,518.3M34.2,524.5 L42.4,529.3M34.2,524.5 L37.7,519.8M34.2,524.5 L21.3,517.3M48.2,532.7 L42.4,529.3M48.2,532.7 L53.1,525.4M37.7,519.8 L24.9,509.2M37.7,519.8 L34.2,524.5M37.7,519.8 L41.4,515.4M21.3,517.3 L34.2,524.5M548.2,236.0 L550.4,233.4M550.4,233.4 L548.2,236.0M552.9,240.2 L558.1,233.4M558.1,233.4 L552.9,240.2M558.1,233.4 L556.3,230.6M325.9,476.7 L320.1,497.7M325.9,476.7 L334.5,479.2M325.9,476.7 L311.9,474.4M320.1,497.7 L325.9,476.7M334.5,479.2 L325.9,476.7M311.9,474.4 L308.8,474.1M311.9,474.4 L308.7,480.7M311.9,474.4 L325.9,476.7M495.4,107.9 L483.0,104.2M495.4,107.9 L493.2,116.5M495.4,107.9 L500.0,102.1M483.0,104.2 L484.1,100.9M483.0,104.2 L476.9,111.0M483.0,104.2 L495.4,107.9M493.2,116.5 L487.1,113.5M493.2,116.5 L493.2,120.6 L491.2,123.0M493.2,116.5 L495.4,107.9M500.0,102.1 L495.4,107.9M534.1,513.4 L537.4,508.7M534.1,513.4 L531.7,516.8M537.4,508.7 L534.1,513.4M531.7,516.8 L534.1,513.4M531.7,516.8 L528.6,521.5M533.4,512.9 L531.1,516.4M533.4,512.9 L536.8,508.2M507.0,277.8 L502.3,273.6M507.0,277.8 L512.1,282.5M507.0,277.8 L511.7,272.2M507.0,277.8 L501.2,284.7 L497.5,281.9M502.3,273.6 L507.0,277.8M502.3,273.6 L504.5,270.9M502.3,273.6 L499.6,278.2M512.1,282.5 L507.0,277.8M512.1,282.5 L505.3,290.3M512.1,282.5 L514.3,280.1M511.7,272.2 L516.2,267.0M511.7,272.2 L507.0,277.8M497.5,281.9 L496.0,284.1M497.5,281.9 L501.2,284.7 L507.0,277.8M497.5,281.9 L499.6,278.2M511.3,272.0 L507.9,269.2M446.0,222.3 L440.7,219.5M446.0,222.3 L441.6,226.5 L438.2,226.5M446.0,222.3 L449.0,218.7 L449.9,215.3 L446.4,214.7M440.7,219.5 L437.3,218.8M440.7,219.5 L442.7,211.0M440.7,219.5 L446.0,222.3M438.2,226.5 L435.3,225.9M438.2,226.5 L441.6,226.5 L446.0,222.3M446.4,214.7 L449.9,215.3 L449.0,218.7 L446.0,222.3M437.3,218.8 L432.0,217.5M437.3,218.8 L440.7,219.5M442.7,211.0 L440.7,219.5M419.6,214.6 L419.0,217.4M419.6,214.6 L432.0,217.5M419.6,214.6 L420.5,210.8M419.0,217.4 L418.0,222.0M419.0,217.4 L419.6,214.6M432.0,217.5 L437.3,218.8M432.0,217.5 L419.6,214.6M420.5,210.8 L421.2,208.3M420.5,210.8 L419.6,214.6M100.7,594.4 L102.3,590.1M100.7,594.4 L100.9,602.4M100.7,594.4 L91.6,593.5M91.6,593.5 L100.7,594.4M40.9,-28.1 L30.5,-15.5M40.9,-28.1 L36.1,-31.8M40.9,-28.1 L44.6,-32.5 L45.9,-37.7M30.5,-15.5 L40.9,-28.1M30.5,-15.5 L27.3,-18.3M30.5,-15.5 L49.1,0.4M36.1,-31.8 L40.9,-28.1M45.9,-37.7 L44.6,-32.5 L40.9,-28.1M472.8,415.4 L469.2,417.8M472.8,415.4 L475.3,419.5 L474.7,423.5M472.8,415.4 L477.6,412.0M469.2,417.8 L463.3,422.0M469.2,417.8 L472.8,415.4M469.2,417.8 L461.1,405.9M474.7,423.5 L475.4,427.7 L477.9,430.1M474.7,423.5 L475.3,419.5 L472.8,415.4M477.6,412.0 L472.8,415.4M-222.8,248.8 L-220.4,247.4 L-219.9,248.4 L-221.4,249.7M-222.8,248.8 L-223.7,251.9 L-222.3,251.8 L-221.4,249.7M-222.8,248.8 L-225.5,247.3M545.2,394.9 L534.4,389.7M534.4,389.7 L545.2,394.9M525.0,385.5 L523.4,391.6M524.3,385.2 L514.0,382.3M516.6,372.7 L514.0,382.3M504.1,378.7 L514.0,382.3M451.3,713.0 L450.8,710.3M451.3,713.0 L454.7,710.6M451.4,713.8 L451.8,716.2M450.8,710.3 L451.3,713.0M454.7,710.6 L451.3,713.0M450.9,725.5 L450.4,729.0M450.9,725.5 L453.5,724.2M450.4,729.0 L450.9,725.5M453.5,724.2 L456.8,722.0M453.5,724.2 L450.9,725.5M290.8,171.7 L285.4,169.1M290.8,171.7 L290.7,176.2 L293.6,186.5M290.8,171.7 L295.2,167.9 L307.8,167.8M285.4,169.1 L290.8,171.7M293.6,186.5 L309.0,186.6M293.6,186.5 L290.7,176.2 L290.8,171.7M293.6,186.5 L292.6,188.0 L293.7,190.7 L299.1,194.6M307.8,167.8 L308.8,176.5M307.8,167.8 L295.2,167.9 L290.8,171.7M307.8,167.8 L314.1,168.0 L316.0,170.0 L317.7,183.7 L316.2,188.7M579.6,-27.9 L580.4,-30.7 L575.7,-36.3 L583.6,-45.4M579.6,-27.9 L576.7,-28.9 L567.7,-28.1M579.6,-27.9 L582.7,-26.6M579.3,-26.8 L582.4,-25.3M579.3,-26.8 L577.6,-20.8 L577.9,-14.6 L584.0,-8.9M579.3,-26.8 L571.7,-27.8 L568.2,-27.0M582.4,-25.3 L585.0,-24.1M582.4,-25.3 L579.3,-26.8M584.0,-8.9 L581.6,-6.5M584.0,-8.9 L587.3,-8.2M584.0,-8.9 L577.9,-14.6 L577.6,-20.8 L579.3,-26.8M568.2,-27.0 L569.3,-21.7 L568.9,-9.4M568.2,-27.0 L571.7,-27.8 L579.3,-26.8M581.6,-6.5 L584.0,-8.9M587.3,-8.2 L584.0,-8.9M13.8,105.5 L20.4,98.8M13.8,105.5 L17.8,109.9M13.8,105.5 L6.6,112.6 L5.9,118.3M20.4,98.8 L25.9,93.5M20.4,98.8 L13.8,105.5M20.4,98.8 L26.2,104.9M17.8,109.9 L13.8,105.5M5.9,118.3 L6.6,127.2M5.9,118.3 L6.6,112.6 L13.8,105.5M5.9,118.3 L10.7,118.6 L15.8,121.4 L22.5,120.5M589.9,455.7 L576.9,452.6M589.9,455.7 L588.8,460.7M589.9,455.7 L590.7,450.0 L578.2,446.9M576.9,452.6 L589.9,455.7M576.9,452.6 L576.3,455.5M576.9,452.6 L577.8,448.7M576.9,452.6 L569.1,451.9M588.8,460.7 L593.9,461.9M588.8,460.7 L575.9,458.3M588.8,460.7 L589.9,455.7M578.2,446.9 L579.1,444.1M578.2,446.9 L590.7,450.0 L589.9,455.7M576.3,455.5 L576.9,452.6M577.8,448.7 L576.9,452.6M569.1,451.9 L576.9,452.6M569.1,451.9 L568.6,451.0 L567.8,451.6 L568.3,452.4 L569.1,451.9M569.1,451.9 L568.3,452.4 L567.8,451.6 L568.6,451.0 L569.1,451.9M264.7,337.2 L269.2,341.2M264.7,337.2 L268.4,333.0M264.7,337.2 L260.7,335.0M269.2,341.2 L264.7,337.2M269.2,341.2 L271.3,343.0M269.2,341.2 L273.3,336.9M268.4,333.0 L264.7,337.2M260.7,335.0 L257.4,334.5M260.7,335.0 L264.7,337.2M260.7,335.0 L261.3,332.7 L265.0,328.6M239.4,328.4 L247.3,331.5M239.4,328.4 L237.5,335.2M239.4,328.4 L241.5,320.7M425.9,292.6 L420.4,285.4M425.9,292.6 L421.7,294.2M425.9,292.6 L434.7,289.1M420.4,285.4 L425.9,292.6M434.7,289.1 L425.9,292.6M434.7,289.1 L436.5,287.0M312.6,96.1 L314.0,98.6M312.6,96.1 L311.0,94.3M314.0,98.6 L314.4,101.1M314.0,98.6 L312.6,96.1M311.0,94.3 L312.6,96.1M314.4,101.1 L313.0,106.3M314.4,101.1 L314.0,98.6M677.5,523.0 L66
380775.1,511.1M677.5,523.0 L682.7,530.3M677.5,523.0 L679.9,522.2 L684.3,517.0 L689.6,516.3 L697.0,523.2M665.1,511.1 L677.5,523.0M665.1,511.1 L666.0,507.4 L672.3,501.2 L671.6,499.2 L668.9,498.2M682.7,530.3 L677.5,523.0M697.0,523.2 L697.9,525.5 L698.5,525.2 L698.3,524.4 L697.0,523.2M697.0,523.2 L698.3,524.4 L698.5,525.2 L697.9,525.5 L697.0,523.2M697.0,523.2 L689.6,516.3 L684.3,517.0 L679.9,522.2 L677.5,523.0M649.6,608.5 L653.4,607.8M649.6,608.5 L644.7,597.5M649.6,608.5 L648.8,614.4 L644.8,619.4M653.4,607.8 L649.6,608.5M644.8,619.4 L648.8,614.4 L649.6,608.5M644.8,619.4 L638.9,621.3M516.6,175.1 L521.6,168.9M516.6,175.1 L511.2,170.4M518.3,653.5 L526.1,649.2M518.3,653.5 L509.9,658.0M518.3,653.5 L524.5,664.4M509.9,658.0 L518.3,653.5M509.9,658.0 L499.3,663.4M509.9,658.0 L505.7,649.6M509.9,658.0 L513.8,666.2M524.5,664.4 L518.3,653.5M75.9,-32.7 L81.8,-34.3 L96.5,-43.5M75.9,-32.7 L68.3,-32.1 L62.8,-28.4 L60.5,-22.8 L62.9,-14.2M75.9,-32.7 L75.4,-38.5 L72.8,-43.6M96.5,-43.5 L81.8,-34.3 L75.9,-32.7M62.9,-14.2 L68.7,-16.1M62.9,-14.2 L60.5,-22.8 L62.8,-28.4 L68.3,-32.1 L75.9,-32.7M62.9,-14.2 L65.3,-4.7 L63.7,1.8M72.8,-43.6 L75.4,-38.5 L75.9,-32.7M68.7,-16.1 L62.9,-14.2M56.8,8.4 L63.7,1.8M56.8,8.4 L62.6,17.2 L67.6,28.1M56.8,8.4 L53.6,4.7M67.6,28.1 L71.6,43.3M67.6,28.1 L62.6,17.2 L56.8,8.4M430.1,549.1 L434.8,548.8M434.8,548.8 L438.0,548.6M434.8,548.8 L430.1,549.1M438.0,548.6 L441.6,548.3M438.0,548.6 L434.8,548.8M438.0,548.6 L438.1,545.8M438.0,548.6 L438.4,553.3M441.6,548.3 L438.0,548.6M438.1,545.8 L438.0,548.6M438.1,545.8 L438.8,542.5M438.4,553.3 L438.0,548.6M516.9,243.1 L517.9,248.6M515.9,242.0 L506.7,234.4M515.9,242.0 L511.5,247.1M518.0,239.9 L521.9,235.4M518.0,249.0 L522.7,249.1M518.0,249.0 L515.5,250.8M517.9,248.6 L516.9,243.1M522.7,249.1 L518.0,249.0M515.5,250.8 L518.0,249.0M54.9,614.5 L48.9,613.7M55.0,614.8 L59.4,632.0M55.3,614.6 L60.9,615.1M48.9,613.7 L54.9,614.5M59.4,632.0 L63.9,648.8M59.4,632.0 L55.0,614.8M59.4,632.0 L53.7,633.5M59.4,632.0 L64.9,630.6M63.9,648.8 L59.4,632.0M63.9,648.8 L69.4,647.4M63.9,648.8 L58.0,650.3M53.7,633.5 L54.6,636.9M53.7,633.5 L51.9,626.6M53.7,633.5 L59.4,632.0M64.9,630.6 L69.4,647.4M64.9,630.6 L61.0,615.3M64.9,630.6 L59.4,632.0M64.9,630.6 L70.5,629.2M69.4,647.4 L73.7,664.7M69.4,647.4 L64.9,630.6M69.4,647.4 L74.6,646.1M69.4,647.4 L63.9,648.8M71.3,678.5 L77.4,680.1M71.3,678.5 L68.6,668.1M71.3,678.5 L62.3,676.2M77.4,680.1 L73.7,664.7M77.4,680.1 L84.0,681.7M77.4,680.1 L71.3,678.5M68.6,668.1 L73.7,664.7M68.6,668.1 L71.3,678.5M68.6,668.1 L67.7,664.4M62.3,676.2 L61.0,682.1M62.3,676.2 L62.9,673.4M62.3,676.2 L71.3,678.5M676.5,576.5 L677.0,578.9M677.0,578.9 L676.5,576.5M677.0,578.9 L676.8,582.0M276.0,315.7 L279.5,310.3 L281.7,310.0 L282.9,311.1M276.0,315.7 L270.2,313.1M276.0,315.7 L278.2,320.7M282.9,311.1 L281.7,310.0 L279.5,310.3 L276.0,315.7M270.2,313.1 L269.9,309.6M270.2,313.1 L276.0,315.7M278.2,320.7 L276.0,315.7M179.3,-111.7 L173.2,-107.5M173.2,-107.5 L168.3,-106.8 L158.9,-108.3M173.2,-107.5 L179.3,-111.7M173.2,-107.5 L175.2,-103.0 L179.4,-102.7M158.9,-108.3 L150.2,-108.2 L143.3,-103.1M158.9,-108.3 L168.3,-106.8 L173.2,-107.5M179.4,-102.7 L175.2,-103.0 L173.2,-107.5M148.1,-88.7 L145.8,-99.7 L143.3,-103.1M102.1,-87.9 L94.2,-82.8M102.1,-87.9 L109.5,-95.7M102.1,-87.9 L108.5,-83.2 L119.2,-82.5 L122.8,-80.3 L124.1,-78.6 L120.5,-74.7 L118.4,-69.7M94.2,-82.8 L86.2,-81.9M94.2,-82.8 L102.1,-87.9M109.5,-95.7 L102.1,-87.9M109.5,-95.7 L112.6,-97.5M118.4,-69.7 L120.5,-74.7 L124.1,-78.6 L122.8,-80.3 L119.2,-82.5 L108.5,-83.2 L102.1,-87.9M86.2,-81.9 L79.4,-84.1M86.2,-81.9 L94.2,-82.8M86.2,-81.9 L87.6,-72.8M79.4,-84.1 L71.7,-88.0M79.4,-84.1 L86.2,-81.9M79.4,-84.1 L82.5,-90.2M87.6,-72.8 L86.2,-81.9M71.7,-88.0 L67.7,-88.3M71.7,-88.0 L79.4,-84.1M82.5,-90.2 L79.4,-84.1M67.7,-88.3 L71.7,-88.0M67.7,-88.3 L64.9,-95.0M67.7,-88.3 L56.5,-75.7M64.9,-95.0 L67.7,-88.3M56.5,-75.7 L52.3,-73.3 L29.5,-72.7M56.5,-75.7 L67.7,-88.3M56.5,-75.7 L61.8,-70.0 L71.0,-66.4M29.5,-72.7 L23.4,-73.5 L17.6,-79.1M29.5,-72.7 L52.3,-73.3 L56.5,-75.7M29.5,-72.7 L26.0,-59.9 L27.8,-56.0 L31.3,-55.7M71.0,-66.4 L61.8,-70.0 L56.5,-75.7M17.6,-79.1 L15.8,-81.4M17.6,-79.1 L23.4,-73.5 L29.5,-72.7M31.3,-55.7 L27.8,-56.0 L26.0,-59.9 L29.5,-72.7M15.8,-81.4 L17.6,-79.1M15.8,-81.4 L8.8,-77.7M17.6,-82.9 L21.7,-87.4 L22.7,-90.6M8.8,-77.7 L15.8,-81.4M512.8,346.0 L514.3,349.7M512.8,346.0 L509.5,338.3M513.2,345.9 L526.8,340.1M509.5,338.3 L512.8,346.0M361.9,310.0 L366.7,312.6M361.9,310.0 L360.6,312.6 L360.4,318.3M361.9,310.0 L354.4,307.3M366.7,312.6 L361.9,310.0M360.4,318.3 L360.6,312.6 L361.9,310.0M354.4,307.3 L351.5,319.4 L343.3,322.0 L337.0,322.1M354.4,307.3 L337.8,307.0M354.4,307.3 L361.9,310.0M523.2,14.9 L531.7,2.4 L534.4,-16.5M534.4,-16.5 L531.7,2.4 L523.2,14.9M534.4,-16.5 L530.2,-16.3 L525.6,-18.7 L513.9,-40.2M534.4,-16.5 L538.9,-19.3M-166.6,264.6 L-167.9,267.3 L-170.1,268.4 L-174.0,267.6M-166.6,264.6 L-171.6,261.3M-164.7,264.9 L-159.8,264.6M-174.0,267.6 L-170.1,268.4 L-167.9,267.3 L-166.6,264.6M-171.6,261.3 L-166.6,264.6M-171.6,261.3 L-176.7,258.7M257.0,358.7 L252.4,357.2M257.0,358.7 L254.8,361.3M257.0,358.7 L260.3,360.3M257.0,358.7 L258.1,355.1M252.4,357.2 L248.9,356.1M252.4,357.2 L257.0,358.7M252.4,357.2 L254.8,361.3M254.8,3
3807761.3 L252.6,363.4M254.8,361.3 L257.0,358.7M254.8,361.3 L252.4,357.2M260.3,360.3 L266.5,366.1M260.3,360.3 L257.0,358.7M258.1,355.1 L257.0,358.7M252.6,363.4 L248.0,368.1M252.6,363.4 L254.8,361.3M252.6,363.4 L249.5,360.2M252.6,363.4 L254.8,365.6M248.0,368.1 L245.8,370.4M248.0,368.1 L252.6,363.4M248.0,368.1 L253.6,373.8M249.5,360.2 L244.7,364.7M249.5,360.2 L247.4,358.0M249.5,360.2 L252.6,363.4M254.8,365.6 L252.6,363.4M254.8,365.6 L260.9,371.7M253.6,373.8 L251.4,376.0M253.6,373.8 L248.0,368.1M253.6,373.8 L258.5,378.9M243.1,379.0 L249.4,377.9 L251.4,376.0M243.1,379.0 L240.3,377.2M-32.1,581.8 L-34.1,584.3M-32.1,581.8 L-34.6,572.2M-32.1,581.8 L-27.4,575.6 L-33.6,572.7M-34.1,584.3 L-39.3,590.7M-34.1,584.3 L-32.1,581.8M-34.1,584.3 L-37.3,581.7M-34.1,584.3 L-21.7,594.2M-34.6,572.2 L-32.1,581.8M-33.6,572.7 L-27.4,575.6 L-32.1,581.8M-39.3,590.7 L-34.1,584.3M-39.3,590.7 L-42.9,587.8M-39.3,590.7 L-33.3,595.3M-37.3,581.7 L-39.1,580.2M-37.3,581.7 L-34.1,584.3M-21.7,594.2 L-26.9,600.4M-21.7,594.2 L-34.1,584.3M-21.7,594.2 L-12.7,582.5M-33.3,595.3 L-37.6,600.9M-33.3,595.3 L-39.3,590.7M-33.3,595.3 L-26.9,600.4M-24.5,721.9 L-22.9,718.1M-24.5,721.9 L-13.4,716.2M-22.9,718.1 L-24.5,721.9M-22.9,718.1 L-20.9,713.4 L-20.2,707.0M-22.9,718.1 L-21.3,705.7M-13.4,716.2 L-6.6,712.3M-13.4,716.2 L-24.5,721.9M-215.0,220.1 L-218.2,216.3M-215.0,220.1 L-209.5,224.9M-215.0,220.1 L-217.5,223.5M-215.0,220.1 L-209.2,216.2M-218.2,216.3 L-215.0,220.1M-209.5,224.9 L-215.0,220.1M-217.5,223.5 L-224.1,223.7M-217.5,223.5 L-215.9,238.2M-217.5,223.5 L-215.0,220.1M-209.2,216.2 L-205.4,219.3 L-198.3,219.3M-209.2,216.2 L-215.0,220.1M-209.2,216.2 L-200.8,211.7M-209.2,216.2 L-213.6,207.6M200.4,199.0 L203.2,200.3M199.9,200.1 L198.1,204.2M201.0,197.7 L202.6,193.9 L213.3,198.4 L211.3,202.9M203.2,200.3 L207.4,202.1M203.2,200.3 L200.4,199.0M198.1,204.2 L199.9,200.1M198.1,204.2 L194.1,202.7M194.1,202.7 L191.5,201.3M194.1,202.7 L198.1,204.2M660.0,711.9 L656.8,716.2M660.0,711.9 L676.8,724.7 L695.3,718.4M660.0,711.9 L647.8,703.2 L643.1,692.1 L635.2,701.3M669.6,725.9 L676.3,731.1M669.6,725.9 L656.8,716.2M669.6,725.9 L667.3,729.2 L663.2,731.6M695.3,718.4 L696.5,723.9M695.3,718.4 L676.8,724.7 L660.0,711.9M695.3,718.4 L694.6,711.3M588.0,596.3 L593.7,600.9M588.0,596.3 L587.7,592.3 L589.9,586.6 L592.5,581.0 L594.9,578.9M593.7,600.9 L588.0,596.3M594.9,578.9 L593.3,577.1M594.9,578.9 L592.5,581.0 L589.9,586.6 L587.7,592.3 L588.0,596.3M594.9,578.9 L599.1,573.3M141.5,644.9 L145.6,641.8M141.5,644.9 L146.8,653.7M141.5,644.9 L136.9,638.8M145.6,641.8 L141.5,644.9M145.6,641.8 L148.3,645.0M145.6,641.8 L135.5,627.2M145.6,641.8 L150.5,638.9M146.8,653.7 L142.2,657.0M146.8,653.7 L153.9,662.9M146.8,653.7 L141.5,644.9M136.9,638.8 L141.5,644.9M136.9,638.8 L129.8,629.3M136.9,638.8 L132.0,642.4M148.3,645.0 L155.0,654.7M148.3,645.0 L155.4,644.5 L157.8,646.4 L159.3,650.9 L155.0,654.7M148.3,645.0 L145.6,641.8M135.5,627.2 L145.6,641.8M135.5,627.2 L140.9,625.0M150.5,638.9 L140.9,625.0M150.5,638.9 L145.6,641.8M150.5,638.9 L156.4,635.2M391.6,-83.8 L389.7,-81.4 L386.5,-81.9M391.6,-83.8 L406.9,-80.3M391.6,-83.8 L387.7,-84.9M386.5,-81.9 L389.7,-81.4 L391.6,-83.8M406.9,-80.3 L407.1,-84.8M406.9,-80.3 L391.6,-83.8M384.8,-91.9 L387.4,-88.3 L387.7,-84.9M717.3,643.7 L687.2,608.9M717.3,643.7 L722.7,650.0M704.3,612.1 L720.2,614.8M704.3,612.1 L687.2,608.9M704.3,612.1 L730.1,641.9M720.2,614.8 L704.3,612.1M720.2,614.8 L721.8,607.3M730.1,641.9 L738.0,634.5M730.1,641.9 L722.7,650.0M730.1,641.9 L704.3,612.1M721.4,615.2 L737.2,618.1M721.4,615.2 L728.8,623.8M721.8,607.3 L719.5,603.4 L713.9,601.2 L711.9,594.3M721.8,607.3 L720.2,614.8M721.8,607.3 L725.4,603.5M752.1,617.5 L757.3,616.9M752.1,617.5 L749.8,614.7M752.1,617.5 L737.2,618.1M752.1,617.5 L753.7,619.9M757.3,616.9 L752.1,617.5M757.3,616.9 L762.4,612.8M757.3,616.9 L753.7,619.9M749.8,614.7 L743.7,607.7M749.8,614.7 L752.1,617.5M749.8,614.7 L758.0,607.5M737.2,618.1 L752.1,617.5M737.2,618.1 L721.4,615.2M753.7,619.9 L757.3,616.9M753.7,619.9 L752.1,617.5M753.7,619.9 L738.0,634.5M762.4,612.8 L774.5,602.8M762.4,612.8 L757.3,616.9M762.4,612.8 L758.0,607.5M378.2,210.9 L383.5,214.4M376.3,210.4 L375.0,215.7M376.3,210.4 L371.6,209.3M383.5,214.4 L378.2,210.9M378.7,210.2 L386.7,201.
380771M386.7,201.1 L381.7,196.6M386.7,201.1 L393.5,193.6M386.7,201.1 L378.7,210.2M381.7,196.6 L386.7,201.1M381.7,196.6 L376.6,192.0M381.7,196.6 L392.0,184.9M381.7,196.6 L373.8,205.3M393.5,193.6 L386.7,201.1M397.1,189.5 L392.0,184.9M397.1,189.5 L403.7,182.3M397.1,189.5 L393.8,193.2M392.0,184.9 L397.1,189.5M392.0,184.9 L387.0,180.4M392.0,184.9 L398.4,177.8M392.0,184.9 L381.7,196.6M393.8,193.2 L397.1,189.5M398.4,177.8 L391.2,171.6M398.4,177.8 L392.0,184.9M398.4,177.8 L403.7,182.3M417.6,167.3 L414.3,170.9M417.6,167.3 L413.5,164.0M414.3,170.9 L417.6,167.3M413.5,164.0 L417.6,167.3M413.5,164.0 L405.6,160.7 L401.3,155.7M419.8,167.1 L423.4,170.0M417.7,165.4 L367.2,118.9 L317.0,92.7 L311.3,91.1M494.2,163.8 L496.2,165.4M494.2,163.8 L498.3,163.0 L510.3,173.6 L516.5,176.6M508.8,184.0 L511.5,184.9 L518.6,182.7 L526.4,187.4 L530.7,185.6 L531.7,183.8M508.8,184.0 L515.5,180.6 L516.5,176.6M126.0,633.9 L132.0,642.4M126.0,633.9 L124.1,631.4M127.8,629.9 L120.4,623.1M127.8,629.9 L124.1,631.4M132.0,642.4 L142.2,657.0M132.0,642.4 L126.0,633.9M132.0,642.4 L136.9,638.8M132.0,642.4 L127.2,645.7M142.2,657.0 L132.0,642.4M142.2,657.0 L146.8,653.7M142.2,657.0 L137.6,660.0M142.2,657.0 L151.0,669.7M127.2,645.7 L137.6,660.0M127.2,645.7 L121.2,636.9M127.2,645.7 L132.0,642.4M127.2,645.7 L122.4,649.2M137.6,660.0 L142.2,657.0M137.6,660.0 L138.8,662.4M137.6,660.0 L127.2,645.7M151.0,669.7 L142.2,657.0M151.0,669.7 L144.1,669.2 L138.8,662.4M151.0,669.7 L154.1,667.9 L153.9,662.9M478.8,126.0 L474.5,122.3M478.8,126.0 L482.8,125.8M474.5,122.3 L468.8,128.2M474.5,122.3 L465.7,115.2M474.5,122.3 L478.8,126.0M482.8,125.8 L478.8,126.0M482.8,125.8 L486.8,123.4 L491.2,123.0M246.1,356.6 L248.9,356.1M246.1,356.6 L243.1,353.7 L241.2,353.7M247.4,358.0 L249.5,360.2M248.9,356.1 L252.4,357.2M248.9,356.1 L246.1,356.6M241.2,353.7 L239.7,353.1 L239.7,354.8M241.2,353.7 L243.1,353.7 L246.1,356.6M711.9,594.3 L705.9,583.0 L705.5,579.6M711.9,594.3 L713.9,601.2 L719.5,603.4 L721.8,607.3M725.4,603.5 L728.5,606.9M725.4,603.5 L721.8,607.3M725.4,603.5 L736.9,600.0M694.4,554.8 L705.7,573.5 L705.5,579.6M705.5,579.6 L705.7,573.5 L694.4,554.8M705.5,579.6 L705.9,583.0 L711.9,594.3M705.5,579.6 L701.5,580.6 L698.2,579.4M305.7,107.2 L303.2,105.3M305.7,107.2 L309.4,110.1M305.7,107.2 L308.4,104.3M309.4,110.1 L313.0,106.3M309.4,110.1 L305.7,107.2M309.4,110.1 L311.9,115.4M308.4,104.3 L305.7,107.2M308.4,104.3 L310.2,100.1 L309.2,97.9M29.7,-100.3 L38.0,-97.1M29.7,-100.3 L24.0,-95.4 L22.7,-90.6M29.7,-100.3 L37.0,-112.0M38.0,-97.1 L42.7,-98.5M38.0,-97.1 L29.7,-100.3M22.7,-90.6 L29.8,-90.8M22.7,-90.6 L21.7,-87.4 L17.6,-82.9M22.7,-90.6 L24.0,-95.4 L29.7,-100.3M37.0,-112.0 L29.7,-100.3M465.9,245.7 L462.9,245.4M465.9,245.7 L470.9,246.0M466.0,245.3 L466.2,242.1M462.9,245.4 L465.9,245.7M462.9,245.4 L455.4,244.6M466.2,242.1 L466.0,245.3M398.0,279.1 L398.0,285.3M398.0,285.3 L398.0,279.1M398.0,285.3 L402.2,286.2M398.0,285.3 L379.9,281.3M402.2,286.2 L398.0,285.3M402.2,286.2 L400.3,287.5M402.2,286.2 L405.1,284.7M258.5,378.9 L253.6,373.8M258.5,378.9 L262.1,380.3M258.2,379.3 L253.2,384.3 L246.0,386.7 L234.8,386.8M262.1,380.3 L261.9,384.1M262.1,380.3 L258.5,378.9M206.6,446.0 L209.6,439.2M214.3,426.3 L209.6,439.2M214.3,426.3 L217.4,417.5M-20.3,625.7 L-24.1,622.4M-20.3,625.7 L-28.6,634.1M-24.1,622.4 L-43.0,607.7M-24.1,622.4 L-20.3,625.7M-24.1,622.4 L-19.1,615.4M-43.0,607.7 L-24.1,622.4M-43.0,607.7 L-37.6,600.9M-43.0,607.7 L-49.1,616.3M-19.1,615.4 L-37.6,600.9M-19.1,615.4 L-24.1,622.4M-19.1,615.4 L-14.7,609.7M-37.6,600.9 L-43.0,607.7M-37.6,600.9 L-33.3,595.3M-37.6,600.9 L-19.1,615.4M-37.6,600.9 L-49.7,593.4 L-44.1,587.8M-49.1,616.3 L-59.0,610.9M-49.1,616.3 L-43.0,607.7M-49.1,616.3 L-36.8,624.6M371.1,525.3 L372.6,534.1 L371.6,540.9M368.1,541.2 L371.6,540.9M368.1,541.2 L367.3,533.5M284.4,-17.2 L280.6,-10.5M280.6,-10.5 L275.2,-4.3 L272.8,1.3M280.6,-10.5 L284.4,-17.2M280.6,-10.5 L274.5,-14.2 L268.8,-21.3M272.8,1.3 L275.2,-4.3 L280.6,-10.5M272.8,1.3 L283.4,2.1 L289.6,4.3M268.8,-21.3 L274.5,-14.2 L280.6,-10.5M272.2,1.9 L267.9,4.7M289.6,4.3 L295.2,2.2 L305.2,3.4 L328.2,1.3 L333.4,-0.9 L339.5,-7.0M289.6,4.3 L283.4,2.1 L272.8,1.3M238.8,42.7 L235.6,45.2M238.8,42.7 L261.0,14.2M238.8,42.7 L245.3,49.7 L250.3,51.2M235.6,45.2 L226.1,51.9M235.6,45.2 L238.8,42.7M235.6,45.2 L235.9,39.4 L234.4,34.5M261.0,14.2 L238.8,42.7M261.0,14.2 L263.6,10.4M261.0,14.2 L263.1,16.1 L263.7,18.6 L258.5,30.7 L259.0,36.0M250.3,51.2 L253.9,55.0M250.3,51.2 L245.3,49.7 L238.8,42.7M216.7,61.8 L208.6,72.5M216.7,61.8 L226.1,51.9M207.3,79.9 L213.3,93.5M207.3,79.9 L208.6,72.5M207.3,79.9 L202.0,75.8 L198.5,75.1 L196.4,70.6M213.3,93.5 L207.3,79.9M213.3,93.5 L221.8,90.0 L225.3,86.3M208.6,72.5 L207.3,79.9M208.6,72.5 L216.7,61.8M196.4,70.6 L198.5,75.1 L202.0,75.8 L207.3,79.9M196.4,70.6 L193.0,67.0M213.6,94.3 L217.4,103.7M225.3,86.3 L219.9,81.8M225.3,86.3 L229.5,79.9M225.3,86.3 L221.8,90.0 L213.3,93.5M399.6,296.4 L398.5,294.6 L403.2,291.5M403.2,291.5 L400.3,287.5M403.2,291.5 L398.5,294.6 L399.6,296.4M403.2,291.5 L407.7,288.5 L405.3,285.1M-115.5,674.9 L-117.5,678.2M-115.5,674.9 L-111.1,666.2M-96.5,673.4 L-94.0,664.9M-96.5,673.4 L-90.3,675.0 L-83.7,674.9 L-78.5,672.0 L-76.0,668.3M-96.5,673.4 L-104.6,667.5 L-111.1,666.2M372.7,479.0 L374.5,484.4 L377.7,487.5M372.7,479.0 L373.7,469.1M371.1,479.4 L368.2,481.3 L366.6,479.1 L369.8,477.0 L371.1,479.4M371.1,479.4 L369.8,477.0 L366.6,479.1 L368.2,481.3 L371.1,479.4M373.7,469.1 L372.7,479.0M373.7,469.1 L373.3,461.8 L369.9,457.9 L367.3,456.9M373.7,469.1 L370.3,469.6M240.3,234.0 L235.9,232.7M240.3,234.0 L244.0,235.0M232.9,242.8 L231.4,249.1M232.9,242.8 L240.8,244.8M496.0,284.1 L497.5,281.9M496.0,284.1 L488.7,278.7M496.0,284.1 L493.7,287.9 L489.6,285.8M504.5,270.9 L502.3,273.6M504.5,270.9 L505.7,268.4M500.5,272.2 L495.9,268.2M499.6,278.2 L492.3,273.1M499.6,278.2 L502.3,273.6M499.6,278.2 L497.5,281.9M505.7,268.4 L505.1,261.1M505.7,268.4 L504.5,270.9M505.1,261.1 L505.7,268.4M505.0,260.1 L508.2,259.0M508.2,259.0 L508.8,256.3M508.2,259.0 L505.0,260.1M503.3,259.6 L501.9,257.5M485.3,164.2 L489.1,162.3M485.3,164.2 L486.9,166.4M485.3,164.2 L470.6,171.4M489.1,162.3 L485.3,164.2M489.1,162.3 L497.7,157.7M486.9,166.4 L485.3,164.2M484.3,162.5 L480.9,161.5 L473.5,168.1 L471.4,166.3M470.6,171.4 L475.8,182.1M470.6,171.4 L485.3,164.2M470.6,171.4 L463.3,174.0 L458.5,170.6M486.3,167.2 L476.0,179.3M494.9,173.7 L498.3,176.6M494.9,173.7 L491.8,170.7M498.3,176.6 L502.6,180.3M498.3,176.6 L494.9,173.7M502.6,180.3 L505.7,183.0M502.6,180.3 L498.3,176.6M505.7,183.0 L507.9,184.9M505.7,183.0 L502.6,180.3M505.7,183.0 L506.0,179.5M507.9,184.9 L505.7,183.0M507.9,184.9 L520.4,195.7M506.0,179.5 L505.7,183.0M506.0,179.5 L504.7,174.8M506.0,179.5 L508.5,178.1M520.4,195.7 L523.2,198.1M520.4,195.7 L507.9,184.9M523.2,198.1 L52
380776.9,201.2M523.2,198.1 L520.4,195.7M523.2,198.1 L519.3,196.6M519.3,196.6 L523.2,198.1M97.0,566.1 L83.9,573.3 L80.0,577.4M97.0,566.1 L100.7,558.0M504.7,174.8 L499.8,174.8M504.7,174.8 L506.0,179.5M504.7,174.8 L508.5,178.1M504.7,174.8 L502.5,171.7 L502.3,168.6 L497.8,165.3 L496.2,165.4M499.8,174.8 L504.7,174.8M508.5,178.1 L506.0,179.5M508.5,178.1 L504.7,174.8M508.6,338.0 L506.4,339.1M510.2,337.3 L513.2,336.0M514.0,349.8 L509.8,351.5M519.6,362.0 L518.2,359.0M519.6,362.0 L518.9,364.5M518.2,359.0 L519.6,362.0M518.2,359.0 L516.3,354.5M518.9,364.5 L519.6,362.0M529.7,365.2 L524.4,363.7M620.5,450.9 L623.5,451.8M620.5,450.9 L616.8,449.2M620.7,449.9 L617.0,447.8 L616.6,443.8M620.7,449.9 L621.3,447.7 L618.6,444.0M623.5,451.8 L620.5,450.9M623.5,451.8 L625.0,445.9M623.5,451.8 L628.3,453.0M616.8,449.2 L620.5,450.9M541.7,252.1 L547.3,251.3M541.7,252.1 L534.0,253.2M541.7,252.1 L529.4,241.5M541.7,252.1 L548.9,258.2M547.3,251.3 L541.7,252.1M547.3,251.3 L556.3,250.5 L549.2,244.3M534.0,253.2 L541.7,252.1M534.0,253.2 L531.5,253.6M534.0,253.2 L543.8,258.3M548.9,258.2 L541.7,252.1M531.5,253.6 L540.4,260.6M531.5,253.6 L534.0,253.2M531.5,253.6 L526.1,254.3M543.8,258.3 L534.0,253.2M540.4,260.6 L531.5,253.6M526.1,254.3 L531.5,253.6M525.5,254.4 L523.0,258.6M525.5,254.0 L523.0,249.3M523.0,258.6 L525.5,254.4M-168.7,228.8 L-163.9,232.9M-168.7,228.8 L-172.8,232.9M-168.7,228.8 L-166.3,225.7M-168.7,228.8 L-172.1,225.6 L-174.6,220.8M-178.5,226.4 L-172.8,232.9M-166.8,234.7 L-168.6,236.7 L-172.8,232.9M345.4,163.2 L335.9,170.2M345.4,163.2 L353.5,158.1M333.7,180.4 L336.5,182.1M333.7,180.4 L326.9,192.5M333.7,180.4 L335.9,170.2M127.9,-9.0 L129.5,-5.4 L133.1,-4.7M127.9,-9.0 L142.1,-22.8M127.9,-9.0 L121.0,-4.8M133.1,-4.7 L129.5,-5.4 L127.9,-9.0M142.1,-22.8 L147.4,-28.5M142.1,-22.8 L127.9,-9.0M121.0,-4.8 L112.7,-10.1 L111.2,-14.6M121.0,-4.8 L127.9,-9.0M121.0,-4.8 L117.9,5.6M95.1,708.6 L78.0,704.4M95.1,708.6 L96.5,702.9M95.1,708.6 L111.4,712.1 L117.7,717.2 L119.3,715.7 L118.4,708.5M436.9,426.6 L444.0,421.8M436.9,426.6 L435.1,424.0M436.9,426.6 L433.7,428.6 L429.1,428.7M444.0,421.8 L450.5,417.2M444.0,421.8 L436.9,426.6M444.0,421.8 L442.0,419.0M435.1,424.0 L436.9,426.6M450.5,417.2 L444.0,421.8M450.5,417.2 L454.9,413.7 L456.2,410.0M450.5,417.2 L448.5,415.3M450.5,417.2 L454.4,421.3 L460.2,417.6M442.0,419.0 L444.0,421.8M456.2,410.0 L456.6,404.9M456.2,410.0 L459.3,410.7M456.2,410.0 L454.9,413.7 L450.5,417.2M448.5,415.3 L444.9,413.1M448.5,415.3 L450.5,417.2M460.2,417.6 L463.3,422.0M460.2,417.6 L454.4,421.3 L450.5,417.2M460.2,417.6 L462.9,415.0M456.6,404.9 L456.2,410.0M456.6,404.9 L452.0,404.7M459.3,410.7 L456.2,410.0M452.0,404.7 L456.6,404.9M452.0,404.7 L444.3,404.4M452.0,404.7 L452.1,400.5M34.9,402.1 L34.7,396.5M34.7,396.5 L35.7,393.2M34.7,396.5 L32.7,396.9 L31.9,395.0 L34.3,392.6 L35.7,393.2M34.7,396.5 L34.9,402.1M33.8,402.5 L27.1,399.0 L20.0,392.3M35.4,402.7 L38.1,404.0M35.7,393.2 L38.5,390.2M35.7,393.2 L34.7,396.5M35.7,393.2 L34.3,392.6 L31.9,395.0 L32.7,396.9 L34.7,396.5M558.2,-37.6 L562.8,-44.7M558.2,-37.6 L553.3,-40.6M558.2,-37.6 L564.0,-34.2 L567.7,-28.1M562.8,-44.7 L558.2,-37.6M562.8,-44.7 L565.2,-47.8M553.3,-40.6 L558.2,-37.6M553.3,-40.6 L550.2,-42.5M553.3,-40.6 L549.9,-36.4 L546.4,-35.3M567.7,-28.1 L564.0,-34.2 L558.2,-37.6M567.7,-28.1 L576.7,-28.9 L579.6,-27.9M482.3,650.3 L484.9,648.9M482.3,650.3 L480.2,647.9M482.3,650.3 L483.0,660.0M484.9,648.9 L482.3,650.3M480.2,647.9 L482.3,650.3M466.2,649.6 L464.9,650.3 L463.5,659.2M471.4,696.1 L473.9,703.8M471.4,696.1 L466.4,683.0M471.4,696.1 L460.3,699.8M471.4,696.1 L490.0,690.0M460.9,686.6 L466.4,683.0M471.1,682.4 L470.8,674.1M471.1,682.4 L476.0,682.8M471.1,682.4 L466.4,683.0M473.9,703.8 L471.4,696.1M473.9,703.8 L455.4,710.1M473.9,703.8 L489.6,699.0M460.3,699.8 L457.3,700.7M460.3,699.8 L471.4,696.1M490.0,690.0 L489.7,697.0M490.0,690.0 L490.3,686.9M490.0,690.0 L471.4,696.1M455.4,710.1 L473.9,703.8M455.4,710.1 L455.7,702.1M489.6,699.0 L473.9,703.8M489.6,699.0 L489.7,706.6M683.8,181.6 L688.4,186.1M683.8,181.6 L680.2,185.4 L683.2,188.5M683.8,181.6 L680.9,179.3M683.2,188.5 L686.8,194.0M683.2,188.5 L680.2,185.4 L683.8,181.6M683.2,188.5 L683.1,192.1 L684.8,195.9M680.9,179.3 L676.9,182.7M680.9,179.3 L685.1,173.9M680.9,179.3 L683.8,181.6M680.9,179.3 L670.2,172.8M686.8,194.0 L691.5,189.1M686.8,194.0 L683.2,188.5M686.8,194.0 L684.8,195.9M691.5,189.1 L686.8,194.0M691.5,189.1 L694.0,191.5M691.5,189.1 L688.4,186.1M684.8,195.9 L686.8,194.0M684.8,195.9 L683.1,192.1 L683.2,188.5M317.5,293.0 L321.7,293.3M317.5,293.0 L313.4,292.0M330.7,296.8 L326.9,294.0 L321.7,293.3M505.3,290.3 L512.1,282.5M521.5,271.7 L514.3,280.1M523.4,266.1 L524.2,263.5M523.4,266.1 L522.1,270.7M524.2,263.5 L523.4,266.1M522.1,270.7 L523.4,266.1M-81.6,-90.4 L-70.6,-82.8 L-61.6,-85.8M-81.6,-90.4 L-80.8,-95.0 L-83.3,-104.7 L-80.8,-112.2M-81.6,-90.4 L-84.0,-87.1M-81.6,-90.4 L-84.0,-87.1M-61.6,-85.8 L-52.6,-85.4 L-47.0,-88.6 L-45.0,-93.5 L-46.9,-104.0M-61.6,-85.8 L-70.6,-82.8 L-81.6,-90.4M-84.0,-87.1 L-74.4,-81.4 L-63.9,-77.1M-84.0,-87.1 L-111.0,-106.0M-84.0,-87.1 L-81.6,-90.4M-84.0,-87.1 L-81.6,-90.4M-61.7,-87.8 L-62.2,-92.4M-46.9,-104.0 L-45.0,-93.5 L-47.0,-88.6 L-52.6,-85.4 L-61.6,-85.8M-62.2,-92.4 L-61.7,-87.8M475.8,182.1 L481.2,186.7M475.8,182.1 L470.6,171.4M474.5,183.4 L472.1,186.0M481.2,186.7 L475.8,182.1M481.2,186.7 L488.7,193.1M25.9,93.5 L20.4,98.8M25.9,93.5 L31.3,92.4 L37.8,95.4M25.9,93.5 L22.4,88.1 L17.4,84.4M37.8,95.4 L31.3,92.4 L25.9,93.5M37.8,95.4 L41.4,97.3M37.8,95.4 L39.3,87.2M17.4,84.4 L19.1,77.6M17.4,84.4 L9.4,83.8M17.4,84.4 L22.4,88.1 L25.9,93.5M26.2,104.9 L20.4,98.8M26.2,104.9 L28.5,108.4 L28.2,112.7 L22.5,120.5M26.2,104.9 L30.8,101.1M44.3,79.5 L59.2,93.8M41.4,97.3 L37.8,95.4M41.4,97.3 L53.8,98.6 L59.2,93.8M39.3,87.2 L37.8,95.4M6.6,127.2 L5.9,118.3M22.5,120.5 L24.2,122.6M22.5,120.5 L28.2,112.7 L28.5,108.4 L26.2,104.9M22.5,120.5 L15.8,121.4 L10.7,118.6 L5.9,118.3M-21.0,338.9 L-20.3,342.2M-46.4,335.6 L-32.7,342.5 L-20.3,342.2M-14.5,342.3 L-20.3,342.2M-14.5,342.3 L-12.6,343.8M-14.5,342.3 L-11.9,343.2M16.1,277.2 L20.0,282.0M16.1,277.2 L12.8,274.6 L8.9,275.3M20.0,282.0 L16.1,277.2M8.9,275.3 L12.8,274.6 L16.1,277.2M8.9,275.3 L-1.3,283.2M512.8,370.9 L511.5,374.9M119.6,333.0 L112.4,334.8 L108.8,340.9M119.6,333.0 L118.2,328.7M119.6,333.0 L122.2,344.0M108.8,340.9 L112.4,334.8 L119.6,333.0M118.2,328.7 L121.8,327.0M118.2,328.7 L113.2,320.6 L107.9,319.3M118.2,328.7 L119.6,333.0M122.2,344.0 L111.6,349.9 L108.1,353.4M122.2,344.0 L128.1,341.0 L131.5,336.4M122.2,344.0 L119.6,333.0M122.2,344.0 L128.6,359.2 L127.1,365.1 L124.0,369.8M489.8,326.1 L490.4,324.5 L496.5,321.4 L497.4,319.8M497.4,319.8 L500.3,316.4 L503.9,317.3 L499.1,320.1 L497.4,319.8M497.4,319.8 L499.1,320.1 L503.9,317.3 L500.3,316.4 L497.4,319.8M497.4,319.8 L49
380776.5,321.4 L490.4,324.5 L489.8,326.1M504.7,322.8 L491.3,328.5M494.8,335.3 L489.4,337.5M494.8,335.3 L493.8,332.7M489.4,337.5 L494.8,335.3M495.1,335.9 L499.2,334.7M495.1,335.9 L498.1,342.6M498.1,342.6 L492.7,344.9M498.1,342.6 L504.2,339.9M498.1,342.6 L495.1,335.9M498.1,342.9 L500.7,348.7M492.7,344.9 L490.2,345.9M492.7,344.9 L498.1,342.6M504.2,339.9 L498.1,342.6M500.7,348.7 L506.9,346.3M500.7,348.7 L497.9,350.0M500.7,348.7 L498.1,342.9M506.9,346.3 L500.7,348.7M497.9,350.0 L500.7,348.7M497.9,350.0 L493.1,351.6 L491.3,348.9M495.7,404.0 L490.7,403.6 L491.1,407.9M-130.5,632.9 L-134.3,625.6M-125.2,625.4 L-129.1,634.1M73.3,616.1 L79.3,616.7M73.3,616.1 L67.0,615.6M73.4,616.3 L76.1,627.7M79.3,616.7 L85.3,617.1M79.3,616.7 L73.3,616.1M67.0,615.6 L73.3,616.1M67.0,615.6 L60.9,615.1M76.1,627.7 L80.4,644.6M76.1,627.7 L73.4,616.3M76.1,627.7 L70.5,629.2M76.1,627.7 L81.8,626.2M80.4,644.6 L84.1,658.9M80.4,644.6 L76.1,627.7M80.4,644.6 L85.9,643.1M80.4,644.6 L74.6,646.1M70.5,629.2 L64.9,630.6M70.5,629.2 L76.1,627.7M70.5,629.2 L74.6,646.1M70.5,629.2 L67.1,615.9M81.8,626.2 L85.9,643.1M81.8,626.2 L79.3,616.9M81.8,626.2 L76.1,627.7M81.8,626.2 L87.3,624.8M84.1,658.9 L87.1,669.6M84.1,658.9 L80.4,644.6M84.1,658.9 L89.8,657.5M84.1,658.9 L78.8,661.3M85.9,643.1 L91.6,641.6M85.9,643.1 L80.4,644.6M85.9,643.1 L89.8,657.5M85.9,643.1 L81.8,626.2M74.6,646.1 L80.4,644.6M74.6,646.1 L69.4,647.4M74.6,646.1 L78.8,661.3M74.6,646.1 L70.5,629.2M87.1,669.6 L84.1,658.9M87.1,669.6 L92.1,662.9 L95.3,662.9M87.1,669.6 L88.2,673.0M89.8,657.5 L85.9,643.1M89.8,657.5 L84.1,658.9M89.8,657.5 L95.2,655.8M175.8,598.6 L188.5,610.2M175.8,598.6 L184.0,590.6M175.8,598.6 L166.3,606.9M188.5,610.2 L195.7,616.4M188.5,610.2 L175.8,598.6M184.0,590.6 L189.4,594.1 L195.8,594.1M184.0,590.6 L175.8,598.6M166.3,606.9 L163.6,609.3M166.3,606.9 L164.1,603.6 L166.8,601.0 L166.7,599.0 L159.5,594.6 L148.3,591.4 L141.9,586.8M166.3,606.9 L175.8,598.6M197.9,618.4 L195.7,616.4M381.8,323.6 L384.1,325.8M381.8,323.6 L379.2,331.1M381.8,323.6 L389.9,300.4M384.1,325.8 L381.8,323.6M384.1,325.8 L391.1,332.0M379.2,331.1 L381.8,323.6M379.2,331.1 L383.9,333.9M379.2,331.1 L371.5,343.0M389.9,300.4 L381.8,323.6M389.9,300.4 L391.7,296.1M396.9,336.3 L394.2,334.7M396.9,336.3 L403.9,337.6 L409.3,333.2 L415.6,334.4M396.9,336.3 L396.7,343.2M394.2,334.7 L396.9,336.3M415.6,334.4 L409.3,333.2 L403.9,337.6 L396.9,336.3M396.7,343.2 L393.3,344.2M396.7,343.2 L397.5,348.8 L405.9,355.3M396.7,343.2 L396.9,336.3M393.3,344.2 L396.7,343.2M405.9,355.3 L408.1,356.5M405.9,355.3 L397.5,348.8 L396.7,343.2M408.1,356.5 L413.7,341.2M408.1,356.5 L405.9,355.3M408.1,356.5 L405.8,360.7M408.1,356.5 L414.4,358.4M413.7,341.2 L408.1,356.5M413.7,341.2 L416.1,334.5M405.8,360.7 L403.1,365.1M405.8,360.7 L408.1,356.5M414.4,358.4 L413.8,364.5M414.4,358.4 L420.7,355.8M414.4,358.4 L408.1,356.5M565.3,522.7 L560.1,529.0M565.3,522.7 L573.1,529.5M565.3,522.7 L574.0,511.3 L585.4,492.1 L590.4,489.2 L602.0,487.0M590.7,545.5 L585.4,551.7M590.7,545.5 L573.1,529.5M590.7,545.5 L597.1,550.8M469.1,629.8 L467.5,633.4M469.1,629.8 L471.8,631.1M467.5,633.4 L469.1,629.8M471.8,631.1 L469.1,629.8M456.9,630.1 L453.7,630.4M456.9,629.2 L456.7,626.8M453.7,630.4 L456.9,630.1M453.7,630.4 L448.1,630.8 L442.6,637.1M446.7,170.6 L443.0,167.4M446.7,170.6 L443.2,174.6M446.7,170.6 L449.1,174.0M446.7,170.6 L448.5,168.7M443.0,167.4 L446.7,170.6M443.2,174.6 L446.7,170.6M443.2,174.6 L438.0,180.3M449.1,174.0 L446.7,170.6M449.1,174.0 L450.3,183.1M448.5,168.7 L446.7,170.6M436.9,161.5 L434.3,159.0M436.9,161.5 L439.2,163.7M436.9,161.5 L443.3,154.8M436.9,161.5 L432.2,166.4M434.3,159.0 L428.7,153.8M434.3,159.0 L436.9,161.5M439.2,163.7 L436.9,161.5M443.3,154.8 L445.8,157.3M443.3,154.8 L440.7,152.3M443.3,154.8 L436.9,161.5M443.3,154.8 L445.4,152.6M432.2,166.4 L428.7,169.9M432.2,166.4 L436.9,161.5M428.7,153.8 L426.1,151.2M428.7,153.8 L434.3,159.0M428.7,153.8 L430.6,151.8M428.7,153.8 L426.3,156.3M426.1,151.2 L428.7,153.8M430.6,151.8 L435.2,147.1M430.6,151.8 L428.7,153.8M426.3,156.3 L428.7,153.8M426.3,156.3 L422.9,159.9M422.7,147.8 L413.5,138.9M422.7,147.8 L424.6,149.7M422.7,147.8 L418.0,152.7M422.7,147.8 L425.3,145.0M413.5,138.9 L422.7,147.8M413.5,138.9 L396.9,125.4M413.5,138.9 L408.1,144.8M424.6,149.7 L422.7,147.8M418.0,152.7 L415.7,155.0M418.0,152.7 L422.7,147.8M425.3,145.0 L422.7,147.8M425.3,145.0 L429.0,141.1M396.9,125.4 L390.9,122.6M396.9,125.4 L401.4,122.2 L405.0,114.5M396.9,125.4 L413.5,138.9M408.1,144.8 L413.5,138.9M390.9,122.6 L385.1,119.7M390.9,122.6 L396.9,125.4M390.9,122.6 L390.5,126.9 L388.1,132.9M385.1,119.7 L390.9,122.6M385.1,119.7 L385.5,128.8 L388.1,132.9M383.6,118.6 L377.3,112.1M388.1,132.9 L390.5,126.9 L390.9,122.6M388.1,132.9 L390.8,137.0 L390.3,138.6 L388.1,139.6 L384.8,138.3 L379.9,132.3 L371.9,132.8 L367.4,129.0M388.1,132.9 L385.5,128.8 L385.1,119.7M362.1,95.9 L377.3,112.1M360.6,97.3 L359.4,100.3 L363.0,104.1M356.2,89.7 L354.0,87.5M356.2,89.7 L368.1,78.6 L370.3,78.5M354.0,87.5 L356.2,89.7M357.1,90.6 L359.7,93.5M332.2,76.4 L328.0,80.3M332.2,76.4 L338.0,70.8M335.8,68.7 L334.1,67.0M335.8,68.7 L338.0,70.8M342.2,66.8 L344.6,62.2M342.2,66.8 L338.0,70.8M323.2,55.0 L328.8,61.1M323.2,55.0 L318.9,60.4M328.8,61.1 L323.2,55.0M328.8,61.1 L334.1,67.0M318.9,60.4 L323.2,55.0M323.3,52.3 L318.8,47.7 L318.7,39.8M318.7,39.8 L317.9,36.5M318.7,39.8 L318.8,47.7 L323.3,52.3M324.9,53.1 L327.4,50.7M478.4,501.1 L480.0,497.5M478.4,501.1 L476.5,502.0 L470.6,498.3M478.4,501.1 L482.6,502.5 L483.3,504.5 L488.3,505.5M480.0,497.5 L478.4,501.1M470.6,498.3 L476.5,502.0 L478.4,501.1M488.3,505.5 L489.3,506.0 L489.7,505.2 L488.8,504.6 L488.3,505.5M488.3,505.5 L488.8,504.6 L489.7,505.2 L489.3,506.0 L488.3,505.5M488.3,505.5 L483.3,504.5 L482.6,502.5 L478.4,501.1M527.1,393.5 L531.1,395.4M527.1,393.5 L523.4,391.6M527.1,393.5 L525.3,400.3M111.7,425.9 L119.5,433.1M111.7,425.9 L116.5,421.4M111.7,425.9 L103.2,436.0 L99.5,442.8M119.5,433.1 L127.9,440.8M119.5,433.1 L111.7,425.9M99.5,442.8 L101.9,445.2 L100.7,452.2M99.5,442.8 L90.2,462.6 L53.9,526.6M99.5,442.8 L103.2,436.0 L111.7,425.9M137.7,431.6 L140.2,430.7M137.7,431.6 L127.9,440.8M156.6,460.4 L167.2,449.7 L170.2,451.2M156.6,460.4 L149.3,460.3 L143.4,455.8M156.6,460.4 L160.2,468.4M170.2,451.2 L167.2,449.7 L156.6,460.4M160.2,468.4 L155.2,472.8M160.2,468.4 L165.1,472.7 L165.0,476.0 L168.3,481.4 L170.9,482.1M160.2,468.4 L156.6,460.4M650.5,656.9 L644.0,649.6 L642.0,645.4 L643.7,641.2 L648.0,640.1M650.5,656.9 L652.2,653.1 L656.8,648.7M650.5,656.9 L648.9,659.8 L642.4,665.5M648.0,640.1 L654.3,646.5M648.0,640.1 L653.9,641.1 L654.3,646.5M648.0,640.1 L643.7,641.2 L642.0,645.4 L644.0,649.6 L650.5,656.9M656.8,648.7 L659.3,650.1M656.8,648.7 L654.3,646.5M656.8,648.7 L652.2,653.1 L650.5,656.9M654.3,646.5 L656.8,648.7M654.3,646.5 L648.0,640.1M654.3,646.5 L653.9,641.1 L648.0,640.1M659.3,650.1 L656.8,648.7M659.3,650.1 L664.0,654.6M659.3,650.1 L665.3,649.8M665.3,649.8 L659.3,650.1M665.3,649.8 L664.0,654.6M412.0,92.2 L405.2,85.1M405.2,85.1 L412.0,92.2M405.2,85.1 L409.3,85.8 L415.5,90.9M415.5,90.9 L409.3,85.8 L405.2,85.1M396.2,76.1 L399.2,79.1M396.2,76.1 L389.9,82.0M396.2,76.1 L404.4,68.2M399.2,79.1 L396.2,76.1M389.9,82.0 L396.2,76.1M389.9,82.0 L401.2,94.0M389.9,82.0 L384.3,87.7M404.4,68.2 L396.2,76.1M404.4,68.2 L407.8,64.9M542.1,262.5 L539.8,266.0M341.0,294.5 L342.8,290.2M340.6,294.3 L329.3,289.7M342.8,290.2 L350.4,293.2M342.8,290.2 L341.0,294.5M342.8,290.2 L350.9,270.1M329.3,289.7 L340.6,294.3M525.3,400.3 L529.4,401.4M525.3,400.3 L527.1,393.5M525.3,400.3 L521.1,399.1M518.7,407.4 L517.8,410.5M518.7,407.4 L522.9,408.6M518.7,407.4 L521.1,399.1M303.3,379.4 L304.3,382.3 L306.9,384.2M303.3,379.4 L300.0,379.5M303.3,379.4 L307.2,377.2M306.9,384.2 L304.1,388.0 L302.4,387.4M306.9,384.2 L304.3,382.3 L303.3,379.4M300.0,379.5 L303.3,379.4M307.2,377.2 L303.3,379.4M405.1,284.7 L402.2,286.2M405.1,284.7 L409.4,282.5M405.3,285.1 L407.7,288.5 L403.2,291.5M409.4,282.5 L405.1,284.7M83.9,581.6 L87.2,585.2M83.9,581.6 L80.0,577.4M83.9,581.6 L90.2,576.5M83.9,581.6 L77.8,585.9 L69.5,589.1M80.0,577.4 L83.9,581.6M80.0,577.4 L77.6,580.0 L72.3,582.5M80.0,577.4 L83.9,573.3 L97.0,566.1M90.2,576.5 L95.8,573.9M90.2,576.5 L83.9,581.6M69.5,589.1 L70.2,594.4M69.5,589.1 L68.9,584.4M69.5,589.1 L77.8,585.9 L83.9,581.6M695.7,730.1 L696.7,733.5M695.7,730.1 L682.8,734.6M695.7,730.1 L697.0,728.9 L696.5,723.9M696.7,733.5 L699.3,740.9M696.7,733.5 L695.7,730.1M696.7,733.5 L700.6,732.5M696.5,723.9 L676.3,731.1M696.5,723.9 L695.3,718.4M696.5,723.9 L697.0,728.9 L695.7,730.1M700.6,732.5 L696.7,733.5M706.1,738.5 L699.3,740.9M709.5,746.4 L702.5,748.9M710.4,772.7 L707.8,765.0M710.4,772.7 L716.7,770.8M714.9,758.1 L716.1,762.3 L707.8,765.0M716.7,770.8 L710.4,772.7M398.3,533.4 L402.0,532.7M398.3,533.4 L392.7,536.0M402.0,532.7 L398.3,533.4M402.0,532.7 L408.4,530.2 L411.
380770,524.5 L411.6,518.9M392.7,536.0 L390.6,538.0M392.7,536.0 L394.0,538.2M392.7,536.0 L398.3,533.4M483.1,309.0 L474.2,303.8 L477.4,298.4M477.4,298.4 L481.1,292.1M477.4,298.4 L487.1,304.1M477.4,298.4 L474.2,303.8 L483.1,309.0M-213.1,155.5 L-210.1,147.1 L-211.4,134.6M-213.1,155.5 L-189.1,166.8 L-178.6,167.9M-211.4,134.6 L-206.9,133.7M-211.4,134.6 L-210.1,147.1 L-213.1,155.5M-178.6,167.9 L-155.3,167.7M-178.6,167.9 L-189.1,166.8 L-213.1,155.5M-137.1,165.7 L-127.2,164.7M-137.1,165.7 L-155.3,167.7M-137.1,165.7 L-136.7,169.5 L-138.1,169.5M-127.2,164.7 L-124.8,164.5M-127.2,164.7 L-137.1,165.7M-127.2,164.7 L-126.9,161.4M-155.3,167.7 L-137.1,165.7M-155.3,167.7 L-178.6,167.9M-138.1,169.5 L-136.7,169.5 L-137.1,165.7M-124.8,164.5 L-121.2,164.1M-124.8,164.5 L-127.2,164.7M-126.9,161.4 L-127.2,164.7M-126.9,161.4 L-126.4,156.1M-127.4,166.8 L-128.0,170.3M-112.8,162.5 L-113.2,169.7M-113.2,169.7 L-112.8,162.5M-111.1,161.9 L-103.3,159.6M-113.7,162.7 L-119.9,163.9M41.0,184.5 L48.2,186.7M41.0,184.5 L39.4,189.1M41.0,184.5 L33.1,181.8M48.2,186.7 L51.7,187.7M48.2,186.7 L41.0,184.5M39.4,189.1 L41.0,184.5M33.1,181.8 L41.0,184.5M33.1,181.8 L27.4,178.6 L19.4,177.7M51.7,187.7 L54.7,188.5M51.7,187.7 L48.2,186.7M54.7,188.5 L53.5,192.9M54.7,188.5 L51.7,187.7M54.7,188.5 L60.9,189.7M53.5,192.9 L54.7,188.5M60.9,189.7 L54.7,188.5M115.9,185.3 L114.4,172.3M115.9,185.3 L112.9,185.8M115.9,185.3 L120.6,184.2M114.4,172.3 L115.9,185.3M112.9,185.8 L115.9,185.3M120.6,184.2 L115.9,185.3M123.6,183.6 L125.2,177.9M123.6,183.6 L126.7,182.3M122.4,183.9 L130.0,186.4M125.2,177.9 L123.6,183.6M125.2,177.9 L126.7,182.3M125.2,177.9 L124.9,175.2M126.7,182.3 L130.0,186.4M126.7,182.3 L123.6,183.6M126.7,182.3 L125.2,177.9M588.2,64.8 L593.4,64.0M588.2,64.8 L585.7,55.4 L581.2,46.5M588.2,64.8 L588.0,77.2M121.8,673.9 L110.0,671.2M121.8,673.9 L121.8,668.1M122.4,675.9 L118.5,682.9M122.4,675.9 L127.6,678.1M121.8,668.1 L119.3,664.7M121.8,668.1 L121.8,673.9M121.8,668.1 L124.2,668.1 L131.0,671.9 L136.9,671.2 L137.7,669.5 L136.7,668.1 L130.5,664.2M118.5,682.9 L110.0,671.2M118.5,682.9 L122.4,675.9M118.5,682.9 L116.3,687.0M114.7,667.9 L119.3,664.7M114.7,667.9 L110.0,671.2M114.7,667.9 L101.7,649.6M105.2,674.6 L110.0,671.2M105.2,674.6 L95.3,662.9M105.2,674.6 L112.7,685.1 L116.3,687.0M95.2,655.8 L91.6,641.6M95.2,655.8 L97.6,653.8M95.2,655.8 L89.8,657.5M116.3,687.0 L118.5,682.9M116.3,687.0 L112.7,685.1 L105.2,674.6M116.3,687.0 L120.8,691.0M-8.5,613.9 L-9.1,619.4M-9.6,613.7 L-10.2,618.6M-8.0,612.6 L-6.6,609.5M-9.1,619.4 L-9.3,621.8M-9.1,619.4 L-8.5,613.9M-14.7,609.7 L-19.1,615.4M-16.1,608.7 L-23.9,602.7M-13.5,610.7 L-10.0,613.0M-13.5,610.7 L-11.5,612.8M-26.9,600.4 L-21.7,594.2M-26.9,600.4 L-33.3,595.3M-26.9,600.4 L-23.9,602.7M-23.9,602.7 L-26.9,600.4M-23.9,602.7 L-16.1,608.7M-44.1,587.8 L-49.7,593.4 L-37.6,600.9M-52.5,585.3 L-51.6,577.1M-52.5,585.3 L-44.6,587.0M-52.5,585.3 L-58.3,583.3 L-61.9,584.7 L-70.1,591.0M-51.6,577.1 L-52.5,585.3M-70.1,591.0 L-61.9,584.7 L-58.3,583.3 L-52.5,585.3M501.5,229.9 L506.7,234.4M501.5,229.9 L498.9,227.5M501.3,230.2 L497.0,235.2M506.7,234.4 L501.5,229.9M506.7,234.4 L515.9,242.0M498.9,227.5 L501.5,229.9M496.6,235.6 L488.5,228.6 L465.5,203.2 L455.3,194.1M497.0,235.2 L501.3,230.2M496.1,236.3 L491.0,241.7M496.1,236.3 L485.9,226.9M455.3,194.1 L465.5,203.2 L488.5,228.6 L496.6,235.6M487.0,247.4 L481.5,246.8M487.5,248.6 L486.5,251.8M486.5,251.8 L487.5,248.6M484.5,257.9 L485.8,253.9M485.6,259.0 L490.6,263.5M478.8,97.7 L484.1,100.9M484.1,100.9 L478.8,97.7M484.1,100.9 L483.0,104.2M484.1,100.9 L485.3,97.3M485.3,97.3 L484.1,100.9M533.8,430.9 L533.9,427.2 L532.4,426.1 L526.7,427.1 L522.7,425.8M533.8,430.9 L528.7,434.3 L526.7,437.7M522.7,425.8 L520.8,429.3M522.7,425.8 L515.5,421.8M522.7,425.8 L526.7,427.1 L532.4,426.1 L533.9,427.2 L533.8,430.9M526.7,437.7 L511.4,433.6M526.7,437.7 L531.7,439.5 L538.9,445.2M526.7,437.7 L528.7,434.3 L533.8,430.9M-198.3,219.3 L-205.4,219.3 L-209.2,216.2M-213.6,207.6 L-209.2,216.2M12.0,639.5 L9.6,637.6 L11.9,634.3M11.9,634.3 L9.6,637.6 L12.0,639.5M654.5,519.8 L652.1,521.7M654.5,519.8 L655.6,521.5 L659.8,522.3M654.5,519.8 L662.1,513.7 L664.6,510.2M652.1,521.7 L646.5,521.1M652.1,521.7 L654.5,519.8M652.1,521.7 L652.8,525.6M659.8,522.3 L655.6,521.5 L654.5,519.8M659.8,522.3 L660.5,526.2 L664.3,527.2M659.8,522.3 L664.2,523.0 L66
380775.2,524.9 L664.3,527.2M664.6,510.2 L661.4,507.4M664.6,510.2 L662.1,513.7 L654.5,519.8M664.3,527.2 L665.2,524.9 L664.2,523.0 L659.8,522.3M664.3,527.2 L660.5,526.2 L659.8,522.3M475.0,159.9 L473.1,163.2M473.1,163.2 L475.0,159.9M473.1,163.2 L471.4,166.3M476.9,159.1 L479.8,157.6 L479.2,154.7M475.4,157.6 L477.1,155.0 L479.2,154.7M15.0,679.1 L19.3,686.3M14.7,678.6 L11.9,674.6M19.3,686.3 L15.0,679.1M19.3,686.3 L20.7,688.9M1.5,668.4 L6.2,670.1 L11.9,674.6M1.0,667.5 L2.1,662.1M-13.8,666.1 L-5.9,667.4M-14.5,665.3 L-11.3,642.3M-14.9,667.2 L-17.2,679.8M499.3,663.4 L509.9,658.0M505.7,649.6 L509.9,658.0M505.7,649.6 L523.2,640.0M513.8,666.2 L509.9,658.0M513.8,666.2 L520.6,673.4M513.8,666.2 L493.9,676.8 L490.7,677.2M525.0,645.5 L526.1,649.2M537.9,302.1 L526.9,293.0M526.9,293.0 L524.0,290.7M526.9,293.0 L537.9,302.1M519.0,296.7 L524.0,290.7M519.0,296.7 L521.0,298.3 L523.0,296.2 L525.1,298.1M-17.9,410.8 L-15.6,411.5M-17.9,410.8 L-21.0,415.3 L-20.6,418.8M-17.9,410.8 L-15.2,416.2 L-16.1,419.8M-17.9,410.8 L-22.7,407.1 L-24.7,403.4M-15.6,411.5 L-17.9,410.8M-20.6,418.8 L-21.0,415.3 L-17.9,410.8M-20.6,418.8 L-21.1,419.7 L-20.2,420.3 L-19.5,419.3 L-20.6,418.8M-20.6,418.8 L-19.5,419.3 L-20.2,420.3 L-21.1,419.7 L-20.6,418.8M-16.1,419.8 L-15.0,425.8 L-15.7,431.5M-16.1,419.8 L-15.2,416.2 L-17.9,410.8M-24.7,403.4 L-22.7,407.1 L-17.9,410.8M56.8,645.5 L58.0,650.3M55.1,639.0 L56.6,644.8M55.1,639.0 L43.7,642.0M668.0,750.3 L665.5,743.9M665.5,743.9 L668.0,750.3M665.5,743.9 L672.2,741.7M665.5,743.9 L657.5,746.7 L658.7,750.1M672.2,741.7 L665.5,743.9M672.2,741.7 L675.3,749.1M672.2,741.7 L681.0,739.5 L683.4,746.2M658.7,750.1 L657.5,746.7 L665.5,743.9M-200.9,-71.4 L-200.6,-64.9M-200.9,-71.4 L-195.5,-86.5 L-195.5,-93.5 L-197.6,-99.5M-200.9,-71.4 L-212.6,-70.4M-200.6,-64.9 L-200.9,-71.4M-200.6,-64.9 L-196.9,-46.9M-212.6,-70.4 L-200.9,-71.4M309.0,186.6 L308.8,176.5M309.0,186.6 L293.6,186.5M309.0,186.6 L316.2,188.7M308.8,176.5 L307.8,167.8M308.8,176.5 L309.0,186.6M308.8,176.5 L300.4,177.2M316.2,188.7 L309.0,186.6M316.2,188.7 L317.7,183.7 L316.0,170.0 L314.1,168.0 L307.8,167.8M316.2,188.7 L306.6,198.8M300.4,177.2 L308.8,176.5M309.2,97.9 L310.2,100.1 L308.4,104.3M309.2,97.9 L304.7,95.2 L301.7,96.1 L300.2,98.6M160.7,348.5 L161.9,346.5M160.7,348.5 L157.7,351.5 L150.2,345.9M160.7,348.5 L168.5,354.2 L173.2,354.9M161.9,346.5 L165.4,339.6M161.9,346.5 L160.7,348.5M161.9,346.5 L156.6,344.0M150.2,345.9 L157.7,351.5 L160.7,348.5M150.2,345.9 L144.1,361.5M150.2,345.9 L156.1,331.9M173.2,354.9 L168.5,354.2 L160.7,348.5M149.4,345.5 L143.0,362.5M149.4,345.5 L143.7,343.2 L141.6,341.0M149.4,345.5 L142.2,340.5M149.4,345.5 L157.5,324.3M144.1,361.5 L150.2,345.9M144.1,361.5 L139.3,375.1M144.1,361.5 L149.8,363.7M156.1,331.9 L159.0,333.4M156.1,331.9 L150.2,345.9M156.1,331.9 L158.7,324.8M412.7,391.1 L407.8,396.5M412.7,391.1 L418.7,395.5M412.7,391.1 L407.9,387.6M407.8,396.5 L412.7,391.1M407.8,396.5 L405.2,398.7M407.8,396.5 L405.9,395.3 L403.2,397.9 L403.5,399.5M418.7,395.5 L412.7,391.1M407.9,387.6 L405.0,391.2M407.9,387.6 L404.0,384.4M407.9,387.6 L412.7,391.1M405.2,398.7 L407.8,396.5M388.0,392.9 L387.5,399.7M384.4,395.7 L383.9,399.8M384.4,395.7 L380.2,395.9 L377.6,390.4 L382.5,386.7M384.4,395.7 L384.4,390.4 L382.5,386.7M378.0,402.0 L383.9,399.8M377.2,400.3 L375.7,397.5M606.1,300.9 L601.1,304.7M598.3,300.9 L601.1,304.7M598.3,300.9 L592.7,305.1M598.3,300.9 L595.9,297.7M598.3,300.9 L603.4,297.1M500.4,329.0 L496.1,330.4 L493.8,332.7M24.2,122.6 L22.5,120.5M30.8,101.1 L26.2,104.9M495.5,549.2 L497.9,549.4M494.3,566.4 L496.8,566.5M494.3,566.4 L494.3,569.0M494.3,566.4 L490.5,574.8M496.8,566.5 L494.3,566.4M494.3,569.0 L494.3,566.4M494.3,569.0 L493.2,571.6M484.1,586.0 L480.9,592.6M484.1,586.0 L490.5,574.8M481.5,592.6 L483.3,599.7M481.5,592.6 L484.6,586.3M483.3,599.7 L481.5,592.6M483.3,599.7 L484.1,603.2M483.3,599.7 L490.8,597.8M482.6,599.8 L483.4,603.4M482.6,599.8 L480.9,592.6M484.1,603.2 L486.0,609.9M484.1,603.2 L483.3,599.7M490.8,597.8 L483.3,599.7M485.4,610.1 L483.4,603.4M487.3,614.6 L486.0,609.9M487.3,614.6 L488.0,617.3M491.3,629.6 L488.5,619.0M491.3,629.6 L492.8,635.6M490.6,629.8 L472.3,622.2M490.6,629.8 L492.8,635.6M490.6,629.8 L487.9,619.1M492.0,656.0 L504.5,650.3M504.5,650.3 L492.0,656.0M490.7,677.2 L493.9,676.8 L513.8,666.2M490.7,677.2 L490.3,684.3M490.7,677.2 L490.9,674.2M490.3,684.3 L490.7,677.2M490.9,674.2 L491.0,671.5M490.9,674.2 L490.7,677.2M490.4,686.5 L499.1,684.8 L520.6,673.4M488.8,684.1 L478.4,683.1
38077M490.3,686.9 L490.0,690.0M520.6,673.4 L513.8,666.2M520.6,673.4 L525.6,678.8 L525.7,680.6M520.6,673.4 L499.1,684.8 L490.4,686.5M489.7,697.0 L490.0,690.0M489.7,706.6 L482.9,709.0M489.7,706.6 L492.2,706.3M489.7,706.6 L489.6,699.0M482.9,709.0 L489.7,706.6M492.2,706.3 L489.7,706.6M693.4,216.9 L697.6,218.5M693.4,216.9 L691.6,214.4 L690.3,202.1M693.4,216.9 L692.7,218.1 L687.7,207.0M687.7,207.0 L687.0,205.9 L685.1,206.2 L684.3,201.8 L682.1,202.3 L682.7,206.8 L673.9,212.9M687.7,207.0 L689.3,205.8 L690.3,202.1M687.7,207.0 L692.7,218.1 L693.4,216.9M697.6,218.5 L701.4,219.9M697.6,218.5 L693.4,216.9M708.9,222.7 L704.9,221.2M284.3,354.9 L281.0,352.1M284.3,354.9 L288.8,350.0M284.3,354.9 L278.2,361.7M288.8,350.0 L290.8,347.7M288.8,350.0 L284.3,354.9M288.8,350.0 L286.9,347.4M278.2,361.7 L275.1,358.7M278.2,361.7 L276.2,363.9M278.2,361.7 L284.3,354.9M267.3,351.5 L273.3,344.7M267.3,351.5 L271.6,355.5M267.3,351.5 L265.5,350.1 L264.2,351.5M471.1,143.9 L472.4,147.3M471.1,143.9 L462.3,135.0M471.1,143.9 L473.6,141.1M472.4,147.3 L471.1,143.9M472.4,147.3 L471.2,148.0 L472.7,147.9M462.3,135.0 L456.1,141.5M462.3,135.0 L468.7,128.3M462.3,135.0 L454.3,127.2M462.3,135.0 L471.1,143.9M473.6,141.1 L471.1,143.9M495.9,156.6 L495.5,154.1M495.5,154.1 L495.9,156.6M495.5,154.1 L495.0,148.7 L503.9,147.1M497.7,157.7 L500.4,156.0M497.7,157.7 L489.1,162.3M494.2,155.5 L483.0,145.0 L472.7,147.9M350.4,293.2 L342.8,290.2M350.4,293.2 L348.8,297.5M348.8,297.5 L350.4,293.2M350.9,270.1 L342.8,290.2M350.9,270.1 L352.9,264.8M350.9,270.1 L358.6,272.9M359.0,295.3 L350.9,292.1M19.1,77.6 L17.4,84.4M9.4,83.8 L17.4,84.4M9.4,83.8 L8.5,81.1M9.4,83.8 L8.6,88.7M629.9,696.4 L635.2,701.3M49.3,615.9 L50.8,622.5M49.3,615.9 L46.8,617.9M48.4,612.5 L46.0,609.1M44.4,621.2 L39.9,626.9M44.4,621.2 L46.8,617.9M44.4,621.2 L47.8,635.0M46.8,617.9 L44.4,621.2M46.8,617.9 L49.3,615.9M47.8,635.0 L42.3,636.4M47.8,635.0 L52.7,633.7M47.8,635.0 L44.4,621.2M506.6,621.3 L507.8,628.1M337.0,322.1 L336.4,328.6 L338.2,333.8M337.0,322.1 L331.4,319.4M337.0,322.1 L343.3,322.0 L351.5,319.4 L354.4,307.3M338.2,333.8 L342.1,337.9M338.2,333.8 L336.4,328.6 L337.0,322.1M331.4,319.4 L335.9,313.3M331.4,319.4 L325.2,327.7M331.4,319.4 L322.8,315.6 L320.9,313.4 L321.1,311.5 L325.9,307.6 L337.8,307.0M331.4,319.4 L337.0,322.1M342.1,337.9 L345.3,340.3M342.1,337.9 L345.1,331.1M342.1,337.9 L338.2,333.8M345.3,340.3 L350.3,344.0M345.3,340.3 L344.7,342.1 L346.9,345.8 L350.3,344.0M345.3,340.3 L342.1,337.9M345.1,331.1 L347.6,330.0M345.1,331.1 L342.1,337.9M345.1,331.1 L353.9,340.1 L350.7,344.2M350.7,344.2 L352.3,346.5M350.7,344.2 L353.9,340.1 L345.1,331.1M350.3,344.0 L345.3,340.3M350.3,344.0 L346.9,345.8 L344.7,342.1 L345.3,340.3M352.3,346.5 L352.4,349.3M352.3,346.5 L350.7,344.2M352.3,346.5 L355.2,347.6M352.4,349.3 L352.3,346.5M352.4,349.3 L360.9,352.4M360.9,352.4 L352.4,349.3M577.8,478.5 L588.0,480.3M577.8,478.5 L575.3,485.7M588.0,480.3 L593.3,481.6M588.0,480.3 L577.8,478.5M575.3,485.7 L571.1,484.2M575.3,485.7 L567.4,501.0 L555.7,516.2M575.3,485.7 L577.8,478.5M593.3,481.6 L598.0,482.6M593.3,481.6 L588.0,480.3M587.6,482.0 L586.0,487.6M598.0,482.6 L593.3,481.6M599.7,483.0 L602.5,475.1M602.5,475.1 L599.7,483.0M513.2,335.7 L511.7,332.3M639.3,729.4 L639.6,727.0 L646.1,720.8 L652.4,724.3 L660.2,730.8 L663.2,731.6M663.2,731.6 L660.2,730.8 L652.4,724.3 L646.1,720.8 L639.6,727.0 L639.3,729.4M663.2,731.6 L651.5,735.6 L652.8,741.4 L654.8,742.9M663.2,731.6 L667.3,729.2 L669.6,725.9M654.8,742.9 L652.8,741.4 L651.5,735.6 L663.2,731.6M654.8,742.9 L680.5,733.8M116.3,619.3 L127.7,606.5M116.3,619.3 L120.4,623.1M116.3,619.3 L111.8,615.4M127.7,606.5 L116.3,619.3M127.7,606.5 L131.0,609.2M127.7,606.5 L124.8,603.4M120.4,623.1 L124.3,619.0M120.4,623.1 L127.8,629.9M120.4,623.1 L116.3,619.3M131.0,609.2 L127.7,606.5M131.0,609.2 L129.8,613.3 L126.1,617.0M131.0,609.2 L132.6,604.6M124.8,603.4 L120.1,606.0M124.8,603.4 L127.7,606.5M124.8,603.4 L130.5,599.7 L133.2,602.6M-218.8,68.1 L-213.0,63.1M-218.8,68.1 L-217.7,72.9M-213.0,63.1 L-218.8,68.1M-217.7,72.9 L-212.7,72.9 L-206.4,70.6M-217.7,72.9 L-218.8,68.1M-217.7,72.9 L-219.8,79.5M611.4,-69.4 L607.4,-64.6M180.9,121.3 L185.8,120.4M180.9,121.3 L170.3,123.7M181.1,121.7 L183.8,131.8M185.8,120.4 L191.6,119.4M185.8,120.4 L180.9,121.3M170.3,123.7 L180.9,121.3M170.3,123.7 L159.7,126.8M183.8,131.8 L181.1,121.7M447.9,133.9 L456.1,141.5M447.9,133.9 L445.2,131.3M447.9,133.9 L452.8,128.6M456.1,141.5 L447.9,133.9M456.1,141.5 L462.3,135.0M456.1,141.5 L463.3,148.1M456.1,141.5 L449.6,148.3M445.2,131.3 L447.9,133.9M452.8,128.6 L447.9,133.9M441.6,127.9 L439.5,130.1M441.6,127.9 L444.4,124.9M439.5,130.1 L441.6,127.9M444.4,124.9 L441.6,127.9M444.4,124.9 L447.9,121.2M-85.9,181.2 L-86.7,177.1M-86.7,177.1 L-85.9,181.2M-86.7,177.1 L-88.4,170.8M-86.7,177.1 L-90.7,178.8 L-98.3,185.5M-88.4,170.8 L-86.7,177.1M-98.3,185.5 L-96.4,188.6M-98.3,185.5 L-90.7,178.8 L-86.7,177.1M-98.3,185.5 L-103.1,180.7M60.9,615.1 L67.0,615.6M60.9,615.1 L55.3,614.6M61.0,615.3 L64.9,630.6M73.7,664.7 L77.4,680.1M73.7,664.7 L69.4,647.4M73.7,664.7 L68.6,668.1M73.7,664.7 L78.8,661.3M-30.8,679.1 L-27.8,679.8M-27.8,679.8 L-30.8,679.1M-27.8,679.8 L-24.0,673.6M-27.8,679.8 L-29.5,689.3M-27.8,679.8 L-18.5,682.0M-24.0,673.6 L-27.8,679.8M-18.5,682.0 L-17.5,675.2M-18.5,682.0 L-27.8,679.8M-18.5,682.0 L-19.9,694.2M648.1,8.4 L644.3,3.0M648.1,8.4 L655.0,3.4M648.1,8.4 L644.3,11.1M644.3,3.0 L648.1,8.4M655.0,3.4 L660.9,-1.0M655.0,3.4 L648.1,8.4M655.0,3.4 L650.3,-3.9M644.3,11.1 L651.8,13.4M644.3,11.1 L648.1,8.4M644.3,11.1 L641.9,12.9M75.6,761.6 L74.3,757.3 L63.7,746.1M75.6,761.6 L81.2,760.4M63.7,746.1 L67.2,742.9M63.7,746.1 L74.3,757.3 L75.6,761.6M63.7,746.1 L58.8,739.1 L58.3,736.8 L59.3,734.3M63.7,746.1 L60.3,748.3M63.7,746.1 L60.6,748.9M81.2,760.4 L82.0,760.8 L82.5,759.5 L81.8,759.1 L81.2,760.4M81.2,760.4 L81.8,759.1 L82.5,759.5 L82.0,760.8 L81.2,760.4M81.2,760.4 L75.6,761.6M668.9,498.2 L661.4,507.4M668.9,498.2 L671.6,499.2 L672.3,501.2 L666.0,507.4 L665.1,511.1M668.9,498.2 L667.7,488.6 L663.3,480.1M661.4,507.4 L668.9,498.2M661.4,507.4 L664.6,510.2M661.4,507.4 L654.5,504.9 L652.3,501.8 L652.4,499.5M663.3,480.1 L667.7,488.6 L668.9,498.2M465.7,115.2 L460.3,120.8M465.7,115.2 L474.5,122.3M460.3,120.8 L465.7,115.2M460.3,120.8 L453.3,115.5M460.3,120.8 L454.3,127.2M460.3,120.8 L468.7,128.3M418.5,164.4 L401.4,150.2 L373.2,121.6 L367.0,116.9 L353.0,109.5M420.5,166.0 L438.0,180.3M420.4,162.7 L413.5,157.3M420.4,162.7 L423.0,165.0M420.4,162.7 L422.9,159.9M413.5,157.3 L415.7,155.0M413.5,157.3 L420.4,162.7M413.5,157.3 L407.1,152.1M423.0,165.0 L420.4,162.7M422.9,159.9 L426.3,156.3M422.9,159.9 L420.4,162.7M435.2,147.1 L429.0,141.1M435.2,147.1 L438.7,150.4M435.2,147.1 L430.6,151.8M435.2,147.1 L438.4,143.7M429.0,141.1 L435.2,147.1M429.0,141.1 L424.5,136.8M429.0,141.1 L425.3,145.0M429.0,141.1 L435.4,134.6M438.7,150.4 L440.7,152.3M438.7,150.4 L435.2,147.1M438.4,143.7 L441.5,140.5M438.4,143.7 L435.2,147.1M441.5,140.5 L449.6,148.3M441.5,140.5 L437.0,136.1M441.5,140.5 L438.4,143.7M441.5,140.5 L444.0,137.9M449.6,148.3 L441.5,140.5M449.6,148.3 L452.4,150.9M449.6,148.3 L446.5,151.5M449.6,148.3 L456.1,141.5M437.0,136.1 L441.5,140.5M444.0,137.9 L441.5,140.5M454.3,127.2 L450.2,123.3M454.3,127.2 L462.3,135.0M454.3,127.2 L460.3,120.8M450.2,123.3 L447.9,121.2M450.2,123.3 L454.3,127.2M453.3,115.5 L438.8,107.5M453.3,115.5 L447.9,121.2M453.3,115.5 L460.3,120.8M468.7,128.3 L462.3,135.0M468.7,128.3 L460.3,120.8M489.0,278.3 L491.4,274.0M488.3,278.5 L484.5,276.4M484.5,276.4 L488.3,278.5M484.8,276.1 L486.1,273.7M-163.9,232.9 L-168.7,228.8M-166.3,225.7 L-168.7,228.8M-166.3,225.7 L-162.4,220.7 L-168.4,218.7M-166.3,225.7 L-160.6,228.8M-174.6,220.8 L-172.1,225.6 L-168.7,228.8M557.4,595.6 L560.5,598.6M557.4,595.6 L553.6,592.4M553.6,592.4 L557.4,595.6M553.6,592.4 L549.3,588.5M562.4,590.2 L564.1,588.3M560.7,592.2 L558.7,594.2M256.0,488.9 L253.9,487.5M256.0,488.9 L259.7,484.5 L261.1,478.5M256.0,488.9 L263.6,494.7M253.9,487.5 L256.0,488.9M253.9,487.5 L250.3,485.6M261.1,478.5 L259.7,484.5 L256.0,488.9M263.6,494.7 L270.9,485.7 L290.1,481.5M263.6,494.7 L256.0,488.9M96.5,339.3 L89.3,329.5M96.5,339.3 L100.1,336.4 L107.9,321.9M96.5,339.3 L108.1,353.4M89.3,329.5 L96.5,339.3M89.3,329.5 L84.3,333.0 L80.3,339.9M89.3,329.5 L94.6,324.7 L96.5,319.3M89.3,329.5 L78.5,317.5 L76.9,314.3 L76.9,310.0M107.9,321.9 L100.1,336.4 L96.5,339.3M107.9,321.9 L107.9,319.3M108.1,353.4 L114.8,360.5M108.1,353.4 L111.6,349.9 L122.2,344.0M108.1,353.4 L104.7,356.2 L102.4,355.0 L100.6,351.9 L97.0,355.0 L98.0,357.6M108.1,353.4 L96.5,339.3M-202.4,206.5 L-200.8,211.7M387.1,507.1 L391.6,509.0M391.6,509.0 L400.9,516.4 L411.6,518.9M391.6,509.0 L387.1,507.1M391.6,509.0 L399.2,501.9 L403.4,501.8 L409.0,503.8 L411.9,503.3M411.6,518.9 L420.3,520.3M411.6,518.9 L412.3,511.5M411.6,518.9 L400.9,516.4 L391.6,509.0M411.6,518.9 L411.0,524.5 L408.4,530.2 L402.0,532.7M411.9,503.3 L411.2,500.9M411.9,503.3 L414.7,501.2 L414.1,500.0 L411.2,500.9M411.9,503.3 L412.3,511.5M411.9,503.3 L409.0,503.8 L403.4,501.8 L399.2,501.9 L391.6,509.0M420.3,520.3 L411.6,518.9M412.3,511.5 L411.6,518.9M412.3,511.5 L411.9,503.3M412.3,511.5 L402.2,509.3M511.5,247.1 L515.9,242.0M496.1,225.0 L493.0,222.7M496.6,225.5 L495.0,227.4M493.0,222.7 L490.8,220.7M493.0,222.7 L496.1,225.0M124.3,619.0 L126.8,620.9M124.3,619.0 L126.1,61
380777.0M124.3,619.0 L120.4,623.1M126.8,620.9 L124.3,619.0M126.8,620.9 L129.2,623.1M126.8,620.9 L126.1,617.0M126.1,617.0 L124.3,619.0M126.1,617.0 L126.8,620.9M126.1,617.0 L129.8,613.3 L131.0,609.2M129.2,623.1 L126.8,620.9M129.2,623.1 L133.7,627.9M129.2,623.1 L139.9,617.9M117.9,5.6 L114.7,7.3M117.9,5.6 L130.8,15.5 L139.9,15.9M117.9,5.6 L121.0,-4.8M114.7,7.3 L117.9,5.6M114.7,7.3 L108.9,10.3M139.9,15.9 L147.1,12.3M139.9,15.9 L130.8,15.5 L117.9,5.6M139.9,15.9 L141.0,24.1M147.1,12.3 L155.5,3.6M147.1,12.3 L139.9,15.9M147.1,12.3 L155.4,18.8 L164.9,20.6M141.0,24.1 L139.9,15.9M155.5,3.6 L164.2,2.0 L171.5,4.3M155.5,3.6 L147.1,12.3M155.5,3.6 L153.6,-0.1M164.9,20.6 L155.4,18.8 L147.1,12.3M171.5,4.3 L178.4,5.9M171.5,4.3 L164.2,2.0 L155.5,3.6M153.6,-0.1 L155.5,3.6M359.0,190.9 L353.4,186.1M359.0,190.9 L349.3,201.9M359.0,190.9 L368.4,182.7 L372.5,186.4M525.1,298.1 L523.0,296.2 L521.0,298.3 L519.0,296.7M409.8,283.0 L412.7,286.8M382.7,294.2 L391.7,296.1M371.5,343.0 L368.0,340.8M371.5,343.0 L379.2,331.1M371.5,343.0 L366.6,351.2M368.0,340.8 L361.9,339.4M368.0,340.8 L371.5,343.0M366.6,351.2 L371.5,343.0M366.6,351.7 L366.1,356.7M366.6,351.7 L365.5,354.2 L363.4,354.4M366.1,356.7 L363.4,354.4M366.1,356.7 L366.6,351.7M366.1,356.7 L366.1,360.9M366.1,356.7 L371.9,361.3M363.4,354.4 L366.1,356.7M363.4,354.4 L365.5,354.2 L366.6,351.7M366.1,360.9 L366.1,356.7M366.1,360.9 L366.4,372.3M371.9,361.3 L366.1,356.7M366.4,372.3 L366.5,378.7M366.4,372.3 L370.6,373.8M366.4,372.3 L366.1,360.9M366.5,378.7 L366.4,372.3M366.5,378.7 L363.6,379.1M370.6,373.8 L366.4,372.3M366.5,382.5 L363.6,379.1M366.5,382.5 L368.5,385.6M366.5,384.5 L366.5,387.1M363.6,379.1 L360.6,375.7M363.6,379.1 L366.5,378.7M363.6,379.1 L366.5,382.5M368.5,385.6 L366.5,382.5M362.5,455.2 L367.3,456.9M362.5,455.2 L358.9,469.9M362.5,455.2 L365.4,424.8M367.3,456.9 L362.5,455.2M367.3,456.9 L369.9,457.9 L373.3,461.8 L373.7,469.1M367.3,456.9 L367.0,458.5 L369.3,462.1M358.9,469.9 L357.3,471.8M358.9,469.9 L362.5,455.2M358.9,469.9 L358.1,473.8M357.3,471.8 L358.9,469.9M27.3,-18.3 L30.5,-15.5M27.3,-18.3 L25.4,-19.8M49.1,0.4 L53.6,4.7M49.1,0.4 L30.5,-15.5M-192.4,234.3 L-189.8,229.5 L-193.1,227.9M-191.6,238.9 L-191.8,244.4M-191.6,238.9 L-193.6,235.5M538.9,445.2 L531.7,439.5 L526.7,437.7M538.9,445.2 L531.3,447.8 L509.1,441.6M538.9,445.2 L551.4,442.7M509.1,441.6 L507.0,449.0M509.1,441.6 L531.3,447.8 L538.9,445.2M551.4,442.7 L538.9,445.2M511.4,433.6 L509.7,439.4M511.4,433.6 L512.2,430.5M511.4,433.6 L526.7,437.7M509.7,439.4 L511.4,433.6M509.7,439.4 L502.4,437.4M512.2,430.5 L511.4,433.6M512.2,430.5 L514.6,422.2M512.2,430.5 L507.3,429.3M-224.9,637.2 L-214.6,639.0M-224.9,637.2 L-227.1,654.2M-224.9,637.2 L-229.1,628.0M-214.6,639.0 L-224.9,637.2M-214.6,639.0 L-213.5,633.3M-214.6,639.0 L-189.4,645.1 L-185.8,642.9M-227.1,654.2 L-228.9,674.5M-227.1,654.2 L-224.9,637.2M-229.1,628.0 L-224.9,637.2M-229.1,628.0 L-233.2,623.2M410.7,-107.6 L413.1,-100.2M410.7,-107.6 L402.3,-98.5M413.1,-100.2 L410.7,-107.6M413.1,-100.2 L411.6,-96.0 L405.6,-95.0M402.3,-98.5 L399.5,-95.8M402.3,-98.5 L410.7,-107.6M402.3,-98.5 L405.6,-95.0M402.3,-98.5 L398.4,-104.6M405.6,-95.0 L411.6,-96.0 L413.1,-100.2M405.6,-95.0 L406.9,-90.5M405.6,-95.0 L402.3,-98.5M525.8,681.3 L526.1,689.8 L524.0,692.7 L507.7,701.5 L492.4,706.3M525.8,681.3 L508.8,690.3M525.7,680.6 L525.6,678.8 L520.6,673.4M492.4,706.3 L507.7,701.5 L524.0,692.7 L526.1,689.8 L525.8,681.3M508.8,690.3 L525.8,681.3M505.4,604.8 L502.5,605.5M503.9,610.7 L502.5,605.5M450.9,273.8 L458.8,278.6M468.7,284.5 L465.1,290.6M468.7,284.5 L472.8,277.8M468.7,284.5 L458.8,278.6M468.7,284.5 L475.4,288.5M455.2,284.7 L465.1,290.6M455.2,284.7 L458.8,278.6M455.2,284.7 L442.5,277.4M442.5,277.4 L455.2,284.7M614.0,521.1 L618.4,527.9M614.0,521.1 L608.5,523.6 L606.1,528.8M614.0,521.1 L620.0,520.6 L627.5,515.8 L636.6,520.9M618.4,527.9 L614.0,521.1M606.1,528.8 L614.0,531.0M606.1,528.8 L605.3,533.8 L601.2,536.6M606.1,528.8 L608.5,523.6 L614.0,521.1M636.6,520.9 L627.5,515.8 L620.0,520.6 L614.0,521.1M636.6,520.9 L646.5,521.1M636.6,520.9 L632.7,525.3 L628.1,519.7M614.0,531.0 L606.1,528.8M614.0,531.0 L616.8,531.0 L618.4,528.8M601.2,536.6 L607.1,541.9M601.2,536.6 L605.3,533.8 L606.1,528.8M601.2,536.6 L581.9,528.9 L573.1,529.5M89.3,92.3 L87.1,93.4M89.3,92.3 L97.3,108.2M89.3,92.3 L84.3,82.0M87.1,93.4 L89.3,92.3M84.3,82.0 L89.3,92.3M84.3,82.0 L78.2,68.3M665.8,158.6 L657.9,162.7M665.8,158.6 L670.2,172.8M665.8,158.6 L665.7,152.4 L668.1,146.8M150.1,243.4 L143.8,242.3M143.8,242.3 L150.1,243.4M491.2,-67.5 L480.9,-62.1M491.2,-67.5 L487.4,-73.7M491.2,-67.5 L495.1,-68.3 L498.1,-66.4 L501.5,-56.7 L513.9,-40.2M491.2,-67.5 L499.6,-56.1 L500.2,-52.2M480.9,-62.1 L491.2,-67.5M487.4,-73.7 L491.2,-67.5M487.4,-73.7 L478.6,-85.9 L475.0,-86.9 L469.5,-85.9M
38077513.9,-40.2 L508.3,-39.6M513.9,-40.2 L501.5,-56.7 L498.1,-66.4 L495.1,-68.3 L491.2,-67.5M513.9,-40.2 L525.6,-18.7 L530.2,-16.3 L534.4,-16.5M500.2,-52.2 L498.1,-48.9 L487.5,-43.6 L475.4,-39.8M500.2,-52.2 L499.6,-56.1 L491.2,-67.5M639.6,654.6 L642.4,665.5M487.1,304.1 L477.4,298.4M390.6,538.0 L392.7,536.0M394.0,538.2 L392.7,536.0M368.1,542.1 L369.4,559.0M367.3,533.5 L368.1,541.2M369.3,462.1 L367.0,458.5 L367.3,456.9M370.3,469.6 L368.9,467.5 L366.6,469.0 L368.2,471.1 L370.3,469.6M370.3,469.6 L368.2,471.1 L366.6,469.0 L368.9,467.5 L370.3,469.6M370.3,469.6 L373.7,469.1M376.7,489.0 L373.4,491.1 L374.9,493.2 L378.0,491.3 L376.7,489.0M376.7,489.0 L378.0,491.3 L374.9,493.2 L373.4,491.1 L376.7,489.0M394.9,489.7 L395.5,492.4 L393.5,492.9 L392.8,490.1 L394.9,489.7M394.9,489.7 L392.8,490.1 L393.5,492.9 L395.5,492.4 L394.9,489.7M406.7,493.9 L411.2,500.9M406.7,493.9 L395.3,487.5M406.7,493.9 L409.3,492.1 L414.4,491.1 L420.3,493.6M411.2,500.9 L411.9,503.3M411.2,500.9 L414.1,500.0 L414.7,501.2 L411.9,503.3M411.2,500.9 L406.7,493.9M420.3,493.6 L423.0,490.6M420.3,493.6 L422.1,495.9M420.3,493.6 L414.4,491.1 L409.3,492.1 L406.7,493.9M402.2,509.3 L412.3,511.5M649.6,581.6 L652.5,580.9M649.8,582.6 L650.7,586.5M652.5,580.9 L649.6,581.6M652.5,580.9 L656.9,581.0M650.7,586.5 L649.8,582.6M648.8,586.5 L646.1,585.7M663.6,598.5 L662.8,601.2M663.6,598.5 L660.2,596.7M664.6,597.3 L666.3,595.4M660.2,596.7 L663.6,598.5M669.5,592.5 L667.5,589.7M667.5,589.7 L669.5,592.5M575.7,589.5 L578.2,587.3M578.2,587.3 L575.7,589.5M605.0,379.2 L607.7,380.2M607.7,380.2 L610.9,381.7M607.7,380.2 L605.0,379.2M610.9,381.7 L618.7,382.7M610.9,381.7 L607.7,380.2M610.9,381.7 L610.3,385.3M618.7,382.7 L610.9,381.7M618.7,382.7 L617.7,390.0M618.7,382.7 L620.9,366.6 L622.5,363.4 L625.0,362.1M610.3,385.3 L609.9,388.7M610.3,385.3 L610.9,381.7M617.7,390.0 L618.7,382.7M617.7,390.0 L609.9,388.7M617.7,390.0 L616.3,401.4M625.0,362.1 L622.5,363.4 L620.9,366.6 L618.7,382.7M462.5,105.7 L465.6,100.9M462.5,105.7 L467.8,110.6M465.6,100.9 L464.5,98.8M465.6,100.9 L462.5,105.7M465.6,100.9 L468.9,99.2 L471.6,99.4M467.8,110.6 L462.5,105.7M445.6,98.8 L448.2,100.3M445.6,98.8 L438.8,107.5M448.2,100.3 L445.6,98.8M448.2,100.3 L461.1,105.6M438.8,107.5 L453.3,115.5M438.8,107.5 L437.6,111.3 L438.7,114.4 L437.3,115.9M438.8,107.5 L445.6,98.8M233.6,240.8 L235.9,232.7M233.6,240.8 L222.6,237.3M222.6,237.3 L233.6,240.8M231.4,249.1 L230.6,251.9M231.4,249.1 L232.9,242.8M443.5,235.5 L439.5,234.6M443.5,235.5 L442.7,238.3M439.5,234.6 L443.5,235.5M442.7,238.3 L443.5,235.5M-1.1,602.4 L1.9,598.6M-1.1,602.4 L-4.3,606.4M-1.1,602.4 L1.0,597.5M1.9,598.6 L4.3,595.6M1.9,598.6 L-1.1,602.4M-4.3,606.4 L-1.1,602.4M1.0,597.5 L-1.1,602.4M707.0,17.5 L707.6,24.6M707.0,17.5 L710.8,17.2M707.6,24.6 L707.0,17.5M710.8,17.2 L720.6,15.8M710.8,17.2 L707.0,17.5M-112.1,179.6 L-113.0,188.7M-112.1,179.6 L-107.5,181.1 L-103.1,180.7M-112.1,179.6 L-129.5,172.5M-113.0,188.7 L-112.1,179.6M-113.0,188.7 L-104.0,189.9 L-96.4,188.6M-113.0,188.7 L-127.2,189.3M-103.1,180.7 L-101.7,177.3 L-102.2,174.3M-103.1,180.7 L-107.5,181.1 L-112.1,179.6M-103.1,180.7 L-98.3,185.5M-129.5,172.5 L-134.1,178.7M-129.5,172.5 L-128.0,170.3M-129.5,172.5 L-112.1,179.6M-96.4,188.6 L-98.3,185.5M-96.4,188.6 L-86.7,187.6M-96.4,188.6 L-104.0,189.9 L-113.0,188.7M-127.2,189.3 L-113.0,188.7M-127.2,189.3 L-136.0,189.4 L-140.5,187.6M-127.2,189.3 L-128.9,183.0M390.3,257.8 L383.8,254.7M390.3,257.8 L393.3,260.8M390.3,257.8 L391.8,249.5M383.8,254.7 L390.3,257.8M383.8,254.7 L384.9,248.3M383.8,254.7 L379.5,268.0M383.8,254.7 L376.2,252.9M393.3,260.8 L390.3,257.8M393.3,260.8 L391.0,271.3M393.3,260.8 L402.1,260.9M379.5,268.0 L383.8,254.7M229.5,79.9 L237.1,80.8 L241.3,79.2M229.5,79.9 L228.1,72.3M229.5,79.9 L225.3,86.3M241.3,79.2 L237.1,80.8 L229.5,79.9M228.1,72.3 L235.8,67.9M228.1,72.3 L225.4,66.7 L226.4,60.8M228.1,72.3 L229.5,79.9M89.7,59.1 L81.5,65.6M89.7,59.1 L87.9,55.7M89.7,59.1 L93.9,55.8 L98.2,50.1M375.2,57.2 L365.6,67.3 L361.3,62.9M375.2,57.2 L384.0,58.9 L388.4,57.6M375.2,57.2 L372.2,52.3M26.8,403.1 L23.9,414.1M23.9,414.1 L21.3,423.4M23.9,414.1 L26.8,403.1M21.3,423.4 L17.9,431.7M21.3,423.4 L23.9,414.1M21.3,423.4 L12.3,421.4M21.3,423.4 L24.1,424.4 L30.0,432.5 L36.0,436.4M17.9,431.7 L11.9,441.7M17.9,431.7 L21.3,423.4M17.9,431.7 L21.2,434.4 L22.2,441.6 L19.4,444.1M12.3,421.4 L21.3,423.4M12.3,421.4 L13.5,416.8 L12.9,413.5 L10.7,411.5M12.3,421.4 L11.5,423.4 L3.1,430.1M36.0,436.4 L30.0,432.5 L24.1,424.4 L21.3,423.4M36.0,436.4 L45.5,441.5 L53.1,440.7M36.0,436.4 L42.3,427.6M11.9,441.7 L17.9,431.7M19.4,444.1 L22.2,441.6 L21.2,434.4 L17.9,431.7M-212.6,134.7 L-217.0,135.4M-212.6,134.7 L-213.8,126.7M-206.9,133.7 L-204.6,132.7M-206.9,133.7 L-211.4,134.6M242.7,362.7 L244.7,364.7M242.7,362.7 L237.8,357.9M237.8,357.9 L236.3,361.0M237.8,357.9 L242.7,362.7M237.8,357.9 L239.7,354.8M239.7,354.8 L237.8,357.9M239.7,354.8 L239.7,353.1 L241.2,353.7M442.6,642.4 L441.9,647.2M447.9,648.1 L452.0,648.6M447.9,648.1 L441.9,647.2M447.9,648.1 L448.2,645.0M436.1,673.8 L437.6,668.5M436.1,673.8 L441.2,674.9 L442.9,678.4M436.0,674.4 L435.1,679.0M437.6,668.5 L436.1,673.8M442.9,678.4 L441.2,674.9 L436.1,673.8M435.1,679.0 L436.0,674.4M435.1,679.0 L440.5,686.0M435.1,679.0 L433.0,689.5 L438.6,690.8M440.5,686.0 L435.1,679.0M438.6,690.8 L433.0,689.5 L435.1,679.0M552.2,2.4 L555.0,7.1M552.2,2.4 L544.1,7.4 L545.9,12.6M552.2,2.4 L538.9,-19.3M553.6,1.5 L540.3,-20.2M553.6,1.5 L556.5,6.2M555.0,7.1 L552.2,2.4M555.0,7.1 L571.4,33.6M545.9,12.6 L544.1,7.4 L552.2,2.4M538.9,-19.3 L536.8,-22.8M538.9,-19.3 L552.2,2.4M538.9,-19.3 L534.4,-16.5M568.7,-0.7 L568.9,-9.4M568.7,-0.7 L556.9,-0.6 L555.8,0.6 L556.5,6.2M568.7,-0.7 L569.9,10.0 L572.5,14.5 L578.6,18.4M568.9,-9.4 L568.7,-0.7M568.9,-9.4 L569.3,-21.7 L568.2,-27.0M556.5,6.2 L553.6,1.5M556.5,6.2 L572.8,33.0M556.5,6.2 L555.8,0.6 L556.9,-0.6 L568.7,-0.7M578.6,18.4 L586.5,24.4M578.6,18.4 L572.5,
3807714.5 L569.9,10.0 L568.7,-0.7M452.7,164.1 L454.6,166.2M452.7,164.1 L445.8,157.3M452.7,164.1 L450.1,167.0M454.6,166.2 L452.7,164.1M454.6,166.2 L452.4,165.5 L450.1,167.0M454.6,166.2 L458.5,170.6M445.8,157.3 L443.3,154.8M445.8,157.3 L452.7,164.1M450.1,167.0 L452.4,165.5 L454.6,166.2M450.1,167.0 L452.7,164.1M440.7,152.3 L443.3,154.8M440.7,152.3 L438.7,150.4M445.4,152.6 L443.3,154.8M424.5,136.8 L429.0,141.1M435.4,134.6 L437.9,131.8M435.4,134.6 L429.0,141.1M563.2,318.3 L567.4,324.0M567.0,324.3 L562.0,328.0M572.9,319.8 L567.4,324.0M576.7,351.6 L573.0,354.5M576.7,351.6 L568.7,340.9M576.7,351.6 L580.2,356.3M576.7,351.6 L583.9,346.2M305.5,241.5 L302.5,241.3M306.7,231.3 L306.4,235.2M291.6,206.5 L289.7,203.5M291.6,206.5 L300.6,215.5M289.1,204.0 L285.0,207.0M243.1,127.3 L239.3,122.2M243.1,127.3 L249.0,130.1 L257.7,130.1M239.3,122.2 L235.5,115.1M239.3,122.2 L243.1,127.3M257.7,130.1 L249.0,130.1 L243.1,127.3M257.7,130.1 L265.0,129.8M241.2,121.2 L243.9,119.8M235.5,115.1 L233.7,111.7M235.5,115.1 L232.1,116.9M235.5,115.1 L239.3,122.2M437.3,115.9 L438.7,114.4 L437.6,111.3 L438.8,107.5M100.0,627.8 L104.1,624.0M100.0,627.8 L111.1,638.4M100.0,627.8 L102.7,638.6M100.0,627.8 L98.3,622.0M111.1,638.4 L100.0,627.8M111.1,638.4 L109.1,640.2M111.1,638.4 L113.7,636.5M116.2,635.1 L104.1,624.0M116.2,635.1 L119.0,633.7M116.2,635.1 L113.7,636.5M120.1,606.0 L111.8,615.4M120.1,606.0 L124.8,603.4M120.1,606.0 L113.3,605.4 L107.6,611.4M107.6,611.4 L111.8,615.4M107.6,611.4 L113.3,605.4 L120.1,606.0M107.6,611.4 L102.9,616.9 L97.7,618.0M537.5,217.2 L535.8,219.0M538.0,216.7 L540.6,213.8M533.2,321.5 L532.2,318.6M533.2,321.5 L538.6,319.0 L545.2,334.6M533.2,321.5 L534.2,324.2M532.2,318.6 L533.2,321.5M184.3,589.9 L183.1,587.7 L175.9,584.0M195.8,594.1 L189.4,594.1 L184.0,590.6M609.9,388.7 L617.7,390.0M609.9,388.7 L607.3,388.2M609.9,388.7 L610.3,385.3M616.3,401.4 L615.2,406.7M616.3,401.4 L617.7,390.0M109.1,640.2 L111.1,638.4M109.1,640.2 L105.4,645.0M109.1,640.2 L124.1,661.2M105.4,645.0 L119.3,664.7M105.4,645.0 L102.7,638.6M105.4,645.0 L109.1,640.2M105.4,645.0 L101.7,649.6M124.1,661.2 L130.5,664.2M124.1,661.2 L119.3,664.7M124.1,661.2 L109.1,640.2M130.5,664.2 L124.1,661.2M130.5,664.2 L136.7,668.1 L137.7,669.5 L136.9,671.2 L131.0,671.9 L124.2,668.1 L121.8,668.1M130.5,664.2 L131.3,661.6M119.3,664.7 L124.1,661.2M119.3,664.7 L114.7,667.9M119.3,664.7 L105.4,645.0M119.3,664.7 L121.8,668.1M131.3,661.6 L122.4,649.2M131.3,661.6 L130.5,664.2M131.3,661.6 L138.8,662.4M183.9,278.0 L184.9,283.4M183.9,278.0 L185.4,276.8 L184.5,272.6M184.9,283.4 L183.9,278.0M184.5,272.6 L190.2,268.8M184.5,272.6 L185.4,276.8 L183.9,278.0M184.5,272.6 L182.3,269.1 L184.0,265.8M181.7,274.6 L184.2,272.9M-145.2,319.9 L-137.2,330.6M-145.2,319.9 L-144.5,313.1M-145.2,319.9 L-153.8,324.0 L-158.7,327.8M-144.5,313.1 L-149.5,312.1M-144.5,313.1 L-145.2,319.9M-144.5,313.1 L-142.2,303.5M-158.7,327.8 L-161.5,329.6M-158.7,327.8 L-153.8,324.0 L-145.2,319.9M-179.5,342.8 L-184.2,346.6M-179.5,342.8 L-173.2,338.5M-184.2,346.6 L-179.5,342.8M-184.2,346.6 L-186.9,349.3M-184.2,346.6 L-191.3,328.8M-186.9,349.3 L-184.2,346.6M-191.3,328.8 L-184.2,346.6M-150.2,242.0 L-141.8,241.6 L-139.2,239.3M-135.5,245.0 L-136.4,241.6 L-139.2,239.3M-125.4,235.8 L-133.3,236.1 L-139.2,239.3M625.0,445.9 L629.7,446.2M625.0,445.9 L623.5,451.8M628.3,453.0 L633.4,452.7 L635.2,450.8M628.3,453.0 L623.5,451.8M637.6,447.5 L636.1,447.1 L632.0,451.7 L628.6,451.6M628.6,451.6 L625.4,450.8M628.6,451.6 L632.0,451.7 L636.1,447.1 L637.6,447.5M646.5,521.1 L652.1,521.7M646.5,521.1 L645.9,528.3M646.5,521.1 L636.6,520.9M652.8,525.6 L652.1,521.7M645.9,528.3 L646.5,521.1M628.1,519.7 L632.7,525.3 L636.6,520.9M607.1,541.9 L601.2,536.6M573.1,529.5 L590.7,545.5M573.1,529.5 L565.3,522.7M573.1,529.5 L581.9,528.9 L601.2,536.6M-166.3,-10.1 L-162.0,-7.7M-166.3,-10.1 L-170.6,-12.6M-162.0,-7.7 L-166.3,-10.1M-162.0,-7.7 L-155.5,-3.6M-170.6,-12.6 L-166.3,-10.1M-170.6,-12.6 L-177.0,-16.2M565.7,617.7 L562.0,611.8M565.7,617.7 L557.6,624.5M565.7,617.7 L571.5,614.6M562.0,611.8 L565.7,617.7M557.6,624.5 L552.8,628.6M557.6,624.5 L565.7,617.7M557.6,624.5 L550.7,617.5 L541.3,616.3M571.5,614.6 L574.1,620.5M571.5,614.6 L565.7,617.7M571.5,614.6 L567.0,604.6M552.8,628.6 L557.6,624.5M541.3,616.3 L550.7,617.5 L557.6,624.5M-142.3,286.1 L-141.0,290.8M-142.3,286.1 L-145.4,281.6M-142.3,286.1 L-134.3,288.1M-120.4,252.7 L-122.6,259.9M-120.4,252.7 L-119.6,251.5 L-116.9,252.6 L-117.8,253.5 L-120.4,252.7M-120.4,252.7 L-117.8,253.5 L-116.9,252.6 L-119.6,251.5 L-120.4,252.7M268.9,326.2 L274.8,325.3 L278.2,322.1M278.2,322.1 L274.8,325.3 L268.9,326.2M478.3,449.7 L473.6,452.7M478.3,449.7 L477.0,444.8M478.3,449.7 L482.1,448.2M473.6,452.7 L467.9,456.0M473.6,452.7 L478.3,449.7M473.6,452.7 L481.9,465.2M477.0,444.8 L476.2,439.6 L463.3,422.0M477.0,444.8 L478.3,449.7M477.0,444.8 L472.7,445.0 L469.4,443.7M482.1,448.2 L478.3,449.7M467.9,456.0 L462.7,459.1M467.9,456.0 L473.6,452.7M481.9,465.2 L473.6,452.7M462.7,459.1 L467.9,456.0M462.7,459.1 L456.9,462.2M463.4,460.4 L466.0,469.4M456.9,462.2 L462.7,459.1M456.5,462.3 L452.1,462.2 L449.7,460.3M449.7,460.3 L447.5,457.0M449.7,460.3 L452.1,462.2 L456.5,462.3M449.7,460.3 L447.4,462.6 L448.2,464.0 L445.6,465.8 L447.3,468.2M447.5,457.0 L442.2,449.7M447.5,457.0 L449.7,460.3M447.5,457.0 L430.9,469.0M447.3,468.2 L445.6,465.8 L448.2,464.0 L447.4,462.6 L449.7,460.3M442.2,449.7 L447.5,457.0M442.2,449.7 L436.3,453.7M430.9,469.0 L447.5,457.0M441.9,449.4 L436.3,441.1M436.3,453.7 L423.2,462.7M436.3,453.7 L442.2,449.7M614.9,442.7 L615.5,445.9M614.9,442.7 L614.8,437.7M616.3,442.3 L621.3,441.5 L621.6,440.5M61
380775.5,445.9 L607.1,445.5M615.5,445.9 L614.9,442.7M614.8,437.7 L616.0,424.5M614.8,437.7 L614.9,442.7M616.3,437.8 L618.3,434.1M616.0,424.5 L616.0,419.5M616.0,424.5 L614.8,437.7M-54.6,227.7 L-64.8,224.5M-54.6,227.7 L-45.6,225.2 L-42.5,217.9M-54.6,227.7 L-55.3,219.0 L-54.5,216.0M-62.4,220.0 L-64.8,224.5M336.5,182.1 L333.7,180.4M337.4,350.3 L341.8,350.0M337.4,350.3 L340.3,353.2M335.7,350.4 L349.9,363.3M336.1,349.0 L320.6,334.8M341.8,350.0 L340.0,351.4 L340.3,353.2M341.8,350.0 L351.2,349.2M341.8,350.0 L337.4,350.3M340.3,353.2 L340.0,351.4 L341.8,350.0M340.3,353.2 L349.9,363.3M340.3,353.2 L337.4,350.3M380.2,366.3 L383.2,360.9M380.2,366.3 L384.5,368.8M380.2,366.3 L373.2,362.1M383.2,360.9 L380.2,366.3M383.2,360.9 L384.7,355.2 L388.1,351.4M384.5,368.8 L387.0,370.2M384.5,368.8 L379.8,376.6M384.5,368.8 L380.2,366.3M373.2,362.1 L380.2,366.3M387.0,370.2 L384.5,368.8M387.0,370.2 L390.4,365.5M387.0,370.2 L392.5,374.8M379.8,376.6 L384.5,368.8M379.8,376.6 L382.5,382.2 L385.1,383.6 L387.6,383.3 L395.5,377.3M392.5,374.8 L395.5,377.3M392.5,374.8 L399.7,369.1M392.5,374.8 L387.0,370.2M395.5,377.3 L392.5,374.8M395.5,377.3 L387.6,383.3 L385.1,383.6 L382.5,382.2 L379.8,376.6M395.5,377.3 L404.0,384.4M399.7,369.1 L392.5,374.8M399.7,369.1 L403.1,365.1M404.0,384.4 L395.5,377.3M404.0,384.4 L407.9,387.6M405.0,391.2 L407.9,387.6M444.3,404.4 L452.0,404.7M444.3,404.4 L441.3,409.1M444.3,404.4 L433.0,403.0M441.3,409.1 L444.3,404.4M441.3,409.1 L444.9,413.1M433.0,403.0 L427.5,407.8M433.0,403.0 L444.3,404.4M452.1,400.5 L452.0,404.7M477.3,409.9 L476.9,403.3 L475.1,398.0M750.2,544.3 L743.6,550.1M750.2,544.3 L744.0,538.7 L742.2,527.5 L739.1,523.6M750.2,544.3 L753.7,551.2 L760.8,558.0 L767.7,568.8 L774.0,575.0 L781.3,578.0 L786.3,582.7M725.5,530.6 L722.1,533.4M725.5,530.6 L735.6,521.9 L739.1,523.6M725.5,530.6 L743.6,550.1M739.1,523.6 L735.6,521.9 L725.5,530.6M739.1,523.6 L742.2,527.5 L744.0,538.7 L750.2,544.3M786.3,582.7 L789.7,586.9 L789.1,591.0 L774.5,602.8M786.3,582.7 L783.1,585.6M786.3,582.7 L781.3,578.0 L774.0,575.0 L767.7,568.8 L760.8,558.0 L753.7,551.2 L750.2,544.3M106.8,5.9 L108.9,10.3M-149.4,250.5 L-149.4,257.5M-149.4,250.5 L-143.1,251.0 L-142.8,257.5 L-149.4,257.5M-149.4,250.5 L-155.6,250.4M-149.4,257.5 L-149.2,263.8M-149.4,257.5 L-149.4,250.5M-149.4,257.5 L-142.8,257.5 L-143.1,251.0 L-149.4,250.5M-155.6,250.4 L-154.7,264.3M-155.6,250.4 L-149.4,250.5M-149.2,263.8 L-149.4,257.5M-149.2,263.8 L-154.7,264.3M-149.2,263.8 L-148.6,267.6 L-145.9,269.5M267.8,346.1 L263.1,341.7M263.1,341.7 L267.8,346.1M-42.5,217.9 L-45.6,225.2 L-54.6,227.7M-54.5,216.0 L-55.3,219.0 L-54.6,227.7M124.0,369.8 L114.8,360.5M124.0,369.8 L126.3,372.2M124.0,369.8 L127.1,365.1 L128.6,359.2 L122.2,344.0M124.0,369.8 L121.1,372.7M114.8,360.5 L108.1,353.4M114.8,360.5 L124.0,369.8M114.8,360.5 L118.2,356.4M126.3,372.2 L124.0,369.8M126.3,372.2 L129.2,375.2M121.1,372.7 L119.2,374.6M121.1,372.7 L124.0,369.8M131.5,336.4 L128.1,341.0 L122.2,344.0M-213.5,633.3 L-212.9,629.3M-213.5,633.3 L-214.6,639.0M-185.8,642.9 L-189.4,645.1 L-214.6,639.0M468.4,183.1 L470.6,184.9M468.4,183.1 L466.0,185.9M468.4,183.1 L460.8,176.5 L459.9,177.1M470.6,184.9 L468.4,183.1M466.0,185.9 L468.4,183.1M466.0,185.9 L463.7,188.2 L459.9,184.5M280.1,335.4 L285.0,339.8M287.5,342.4 L289.8,344.4M287.5,342.4 L285.0,339.8M287.5,342.4 L290.2,339.6 L291.0,340.3M465.4,637.6 L463.0,638.4M465.4,637.6 L468.2,638.9M465.4,637.6 L462.4,640.2M465.4,637.6 L466.6,635.3M463.0,638.4 L465.4,637.6M468.2,638.9 L465.4,637.6M462.4,640.2 L460.7,642.0M462.4,640.2 L465.4,637.6M466.6,635.3 L465.4,637.6M452.0,648.6 L447.9,648.1M448.2,645.0 L447.9,648.1M208.4,-52.5 L209.9,-38.1M-15.7,431.5 L-20.2,428.3M-15.7,431.5 L-15.0,425.8 L-16.1,419.8M-15.7,432.0 L-15.5,435.6M-20.2,428.3 L-15.7,431.5M-10.4,444.8 L-9.6,454.8M-10.4,444.8 L-15.5,435.6M-10.4,444.8 L-5.0,446.9M-9.6,454.8 L-10.4,444.8M-15.5,435.6 L-15.7,432.0M-15.5,435.6 L-10.4,444.8M-5.0,446.9 L-10.4,444.8M378.3,553.0 L377.2,561.7M377.2,561.7 L378.3,553.0M377.2,561.7 L369.4,559.0M379.1,562.3 L385.7,564.2M379.1,562.3 L377.8,568.5 L374.2,568.0M369.4,559.0 L352.8,551.4M369.4,559.0 L377.2,561.7M369.4,559.0 L368.1,542.1M369.4,559.0 L364.4,566.7 L357.6,572.9M66.9,112.6 L68.2,115.2M66.9,112.6 L66.0,111.3 L65.1,111.4 L65.4,112.3 L66.9,112.6M66.9,112.6 L65.4,112.3 L65.1,111.4 L66.0,111.3 L66.9,112.6M50.5,120.2 L52.2,120.8 L68.2,115.2M495.5,482.2 L496.6,478.5M495.5,482.2 L495.8,485.0M493.8,481.5 L489.1,479.4M496.6,478.5 L495.5,482.2M495.8,485.0 L499.9,493.0M495.8,485.0 L495.5,482.2M478.1,475.9 L478.1,480.6M478.1,475.9 L466.0,475.9M478.1,475.9 L489.1,479.4M478.1,480.6 L478.1,483.7M478.1,480.6 L478.1,475.9M478.1,480.6 L486.1,487.5M466.0,475.9 L466.0,469.4M466.0,475.9 L440.3,476.5M466.0,475.9 L478.1,475.9M489.1,479.4 L493.8,481.5M489.1,479.4 L478.1,475.9M466.
380770,469.4 L457.7,469.4M466.0,469.4 L466.0,475.9M466.0,469.4 L463.4,460.4M466.0,469.4 L469.6,469.1M440.3,476.5 L466.0,475.9M8.5,81.1 L9.4,83.8M8.6,88.7 L9.4,83.8M15.3,-28.5 L18.7,-25.5M15.3,-28.5 L13.4,-30.1M15.3,-28.5 L21.5,-36.8M18.7,-25.5 L15.3,-28.5M18.7,-25.5 L25.4,-19.8M13.4,-30.1 L15.3,-28.5M13.4,-30.1 L6.3,-36.1M21.5,-36.8 L15.3,-28.5M457.7,469.4 L466.0,469.4M469.6,469.1 L471.6,467.6 L471.7,459.6M469.6,469.1 L466.0,469.4M154.9,616.9 L169.2,631.5M154.9,616.9 L159.4,613.2M154.9,616.9 L146.2,608.2M154.9,616.9 L150.3,620.4M169.2,631.5 L154.9,616.9M169.2,631.5 L163.3,633.7M169.2,631.5 L174.3,632.4 L177.0,631.3M159.4,613.2 L177.0,631.3M159.4,613.2 L163.6,609.3M159.4,613.2 L154.9,616.9M159.4,613.2 L149.0,602.7M146.2,608.2 L154.9,616.9M146.2,608.2 L149.0,602.7M146.2,608.2 L143.3,613.5M150.3,620.4 L157.1,627.3M150.3,620.4 L143.3,613.5M150.3,620.4 L154.9,616.9M150.3,620.4 L144.9,623.1M163.3,633.7 L157.1,627.3M163.3,633.7 L156.4,635.2M163.3,633.7 L169.2,631.5M177.0,631.3 L159.4,613.2M177.0,631.3 L174.3,632.4 L169.2,631.5M177.0,631.3 L178.1,629.2 L177.0,623.4M61.0,682.1 L82.5,687.4M61.0,682.1 L62.3,676.2M62.9,673.4 L62.3,676.2M93.9,684.4 L84.0,681.7M93.9,684.4 L99.5,691.6M93.9,684.4 L94.7,680.3M94.7,680.3 L93.9,684.4M94.7,680.3 L88.2,673.0M15.3,582.3 L18.1,578.8M18.1,578.8 L20.7,575.6M18.1,578.8 L15.3,582.3M14.6,583.1 L13.0,585.0M16.1,583.1 L17.9,584.6M14.2,581.5 L17.1,578.0M40.2,603.9 L34.1,598.7M40.2,603.9 L45.8,602.4M41.1,604.8 L43.6,606.9M34.1,598.7 L40.2,603.9M34.1,598.7 L28.1,593.5M39.5,604.6 L37.4,607.1M45.8,602.4 L48.2,602.0M45.8,602.4 L40.2,603.9M54.6,636.9 L53.7,633.5M51.9,626.6 L53.7,633.5M51.9,626.6 L50.8,622.5M52.7,633.7 L47.8,635.0M65.0,654.2 L59.4,655.7M65.0,654.2 L67.7,664.4M58.7,693.2 L79.9,698.7M58.7,693.2 L57.6,699.2M58.8,692.7 L59.5,689.7M57.6,699.2 L78.0,704.4M57.6,699.2 L54.1,721.6M57.6,699.2 L58.7,693.2M68.9,584.4 L69.5,589.1M68.9,584.4 L72.3,582.5M68.9,584.4 L64.2,588.8 L65.6,598.6M68.7,582.1 L72.3,582.5M68.7,582.1 L68.2,575.9M68.7,582.1 L62.9,582.0M72.3,582.5 L68.7,582.1M72.3,582.5 L77.6,580.0 L80.0,577.4M72.3,582.5 L68.9,584.4M-214.8,280.4 L-210.6,283.7 L-206.7,284.3M-214.8,280.4 L-215.9,275.6 L-212.3,272.5 L-204.2,274.1M-214.8,280.4 L-211.2,278.9 L-208.0,279.4M-206.7,288.4 L-206.0,293.1M-206.7,288.4 L-206.7,284.3M-206.7,288.4 L-217.5,289.4M-206.0,293.1 L-205.7,298.8M-206.0,293.1 L-206.7,288.4M-206.0,293.1 L-209.1,293.8M-217.5,289.4 L-206.7,288.4M-217.5,289.4 L-219.2,290.7 L-218.9,292.6 L-217.1,294.0M-205.7,298.8 L-206.0,293.1M-205.7,298.8 L-207.1,306.6M-205.7,298.8 L-214.7,300.2M-209.1,293.8 L-206.0,293.1M-209.1,293.8 L-211.6,294.2M-207.1,306.6 L-209.5,308.6M-207.1,306.6 L-205.7,298.8M-214.7,300.2 L-205.7,298.8M-209.5,308.6 L-207.1,306.6M370.4,36.8 L367.8,35.1M370.4,36.8 L374.2,27.4 L370.8,25.1M367.8,35.1 L370.4,36.8M370.8,25.1 L371.9,20.3M370.8,25.1 L367.8,24.4M370.8,25.1 L374.2,27.4 L370.4,36.8M258.7,207.5 L255.4,211.5M259.3,207.6 L262.6,210.2M255.4,211.5 L258.7,207.5M677.5,88.3 L683.6,84.7M677.5,88.3 L673.8,93.7M677.5,88.3 L684.3,86.2M683.6,84.7 L677.5,88.3M673.8,93.7 L677.5,88.3M673.8,93.7 L671.0,99.0M684.3,86.2 L693.9,85.6 L706.0,81.8M684.3,86.2 L677.5,88.3M720.2,59.0 L722.6,68.2 L722.2,70.3 L719.5,72.3M714.2,73.7 L719.5,72.3M714.2,73.7 L709.3,75.4M714.9,56.8 L713.8,52.6 L718.6,52.7M714.9,56.8 L719.5,56.1M-11.1,640.9 L-10.4,633.7M-11.3,642.3 L-14.5,665.3M-10.4,633.7 L-10.2,631.1M-10.4,633.7 L-11.1,640.9M-12.1,640.8 L-11.5,635.3M-17.4,645.2 L-27.2,635.6M-17.4,645.2 L-15.2,642.9M-27.2,635.6 L-17.4,645.2M-15.2,642.9 L-17.4,645.2M-23.8,651.5 L-25.5,653.1M-56.1,683.0 L-62.6,688.5M-56.1,683.0 L-41.7,669.0M-63.9,-77.1 L-53.1,-73.5M-63.9,-77.1 L-74.4,-81.4 L-84.0,-87.1M-53.1,-73.5 L-48.3,-71.9M-53.1,-73.5 L-53.8,-70.5 L-51.3,-69.3M-53.1,-73.5 L-63.9,-77.1M-78.1,-57.0 L-83.3,-61.6M-83.3,-61.6 L-78.1,-57.0M-147.3,-4.9 L-152.4,-4.2M-147.3,-4.9 L-145.4,-0.3M-147.3,-4.9 L-150.0,-8.7M-152.4,-4.2 L-147.3,-4.9M-152.4,-4.2 L-155.5,-3.6M-152.4,-4.2 L-158.9,-9.5M-145.4,-0.3 L-148.1,0.6M-145.4,-0.3 L-147.3,-4.9M-145.4,-0.3 L-139.9,-3.5 L-136.4,-10.3M-150.0,-8.7 L-154.3,-12.0M-150.0,-8.7 L-150.6,-15.0 L-152.1,-15.0 L-154.3,-12.0M-150.0,-8.7 L-147.3,-4.9M282.0,94.6 L283.0,98.4M287.6,97.9 L283.0,98.4M287.6,97.9 L290.8,97.4 L293.3,98.4M201.5,226.8 L202.7,224.5M201.5,226.8 L198.8,225.5 L2
3807700.2,225.5M202.7,224.5 L208.3,213.6M202.7,224.5 L201.5,226.8M202.7,224.5 L200.2,225.5M200.2,225.5 L198.8,225.5 L201.5,226.8M200.2,225.5 L202.7,224.5M187.9,205.8 L187.6,209.8M189.1,206.0 L187.6,209.8M187.6,209.8 L189.1,206.0M187.6,209.8 L187.9,205.8M197.6,-78.8 L188.9,-76.5M188.9,-76.5 L197.6,-78.8M188.9,-76.5 L188.7,-69.4M188.0,-76.2 L184.8,-75.2M188.7,-69.4 L188.9,-76.5M184.8,-75.2 L188.0,-76.2M211.0,203.6 L207.4,202.1M211.0,203.6 L208.5,208.3 L206.8,207.6M207.4,202.1 L203.2,200.3M207.4,202.1 L211.0,203.6M211.3,202.9 L213.3,198.4 L202.6,193.9 L201.0,197.7M206.8,207.6 L208.5,208.3 L211.0,203.6M256.6,244.9 L255.3,251.2M256.6,244.9 L258.3,240.7M-156.0,215.3 L-160.6,228.8M-156.0,215.3 L-151.7,203.3 L-140.5,187.6M-156.0,215.3 L-149.2,218.1M-140.5,187.6 L-134.1,178.7M-140.5,187.6 L-151.7,203.3 L-156.0,215.3M-140.5,187.6 L-136.0,189.4 L-127.2,189.3M-140.5,187.6 L-147.1,183.9 L-155.2,184.5M-149.2,218.1 L-146.4,218.5M-149.2,218.1 L-156.0,215.3M-162.7,243.1 L-161.4,253.4M-162.7,243.1 L-162.9,236.1 L-160.6,228.8M-161.4,253.4 L-162.7,243.1M-161.4,253.4 L-159.8,264.6M-161.4,253.4 L-164.9,253.4 L-169.1,247.7M-169.1,247.7 L-169.4,245.7 L-166.2,245.6 L-166.5,246.9 L-169.1,247.7M-169.1,247.7 L-166.5,246.9 L-166.2,245.6 L-169.4,245.7 L-169.1,247.7M-169.1,247.7 L-164.9,253.4 L-161.4,253.4M-154.7,264.3 L-149.2,263.8M-154.7,264.3 L-159.8,264.6M-154.7,264.3 L-155.6,250.4M-141.0,290.8 L-142.3,286.1M-141.0,290.8 L-145.0,292.2M-141.0,290.8 L-140.7,297.1 L-142.2,303.5M511.7,575.5 L516.7,572.1M511.7,575.5 L513.0,577.5M516.7,572.1 L526.1,565.5M516.7,572.1 L511.7,575.5M513.0,577.5 L511.7,575.5M526.1,565.5 L516.7,572.1M526.1,565.5 L519.1,560.4M526.1,565.5 L528.0,574.4M519.1,560.4 L510.6,564.4M519.1,560.4 L526.1,565.5M519.1,560.4 L515.7,553.7 L505.2,549.9M528.0,574.4 L526.1,565.5M189.8,252.0 L191.5,248.8M189.8,252.0 L177.5,274.7M180.6,266.1 L176.4,274.3M180.6,266.1 L183.2,261.3M180.6,266.1 L177.5,274.7M235.8,67.9 L228.1,72.3M226.4,60.8 L225.4,66.7 L228.1,72.3M337.8,307.0 L337.9,303.5M337.8,307.0 L325.9,307.6 L321.1,311.5 L320.9,313.4 L322.8,315.6 L331.4,319.4M337.8,307.0 L354.4,307.3M337.8,307.0 L335.9,313.3M337.9,303.5 L337.8,307.0M335.9,313.3 L331.4,319.4M335.9,313.3 L340.2,315.0 L345.1,313.8M335.9,313.3 L337.8,307.0M325.2,327.7 L331.4,319.4M325.2,327.7 L321.7,331.6M-59.0,610.9 L-49.1,616.3M-59.0,610.9 L-73.9,600.6M-59.0,610.9 L-62.0,616.0M-36.8,624.6 L-46.4,634.7M-36.8,624.6 L-49.1,616.3M-36.8,624.6 L-28.6,634.1M505.2,455.0 L503.1,460.5M505.2,455.0 L499.6,452.5 L499.2,447.8 L497.9,445.7 L493.6,445.1M505.2,455.0 L507.0,449.0M503.1,460.5 L505.2,455.0M493.6,445.1 L487.1,442.7M493.6,445.1 L497.9,445.7 L499.2,447.8 L499.6,452.5 L505.2,455.0M493.6,445.1 L491.7,449.2M507.0,449.0 L509.1,441.6M507.0,449.0 L505.2,455.0M487.1,442.7 L493.6,445.1M487.1,442.7 L486.7,443.6 L485.6,443.1 L486.1,442.2 L487.1,442.7M487.1,442.7 L486.1,442.2 L485.6,443.1 L486.7,443.6 L487.1,442.7M491.7,449.2 L493.6,445.1M140.9,625.0 L150.5,638.9M140.9,625.0 L135.5,627.2M140.9,625.0 L144.9,623.1M133.7,627.9 L129.8,629.3M133.7,627.9 L129.2,623.1M155.0,654.7 L148.3,645.0M155.0,654.7 L159.3,650.9 L157.8,646.4 L155.4,644.5 L148.3,645.0M155.0,654.7 L153.9,662.9M455.7,702.1 L455.4,710.1M-155.5,-3.6 L-152.4,-4.2M-155.5,-3.6 L-153.0,1.6M-155.5,-3.6 L-162.0,-7.7M-153.0,1.6 L-152.4,3.9M-153.0,1.6 L-155.5,-3.6M-135.6,79.9 L-143.3,78.8M-135.6,79.9 L-136.9,90.6M-135.9,78.5 L-149.9,36.8 L-151.2,23.9M-143.3,78.8 L-135.6,79.9M-143.3,78.8 L-149.2,76.9M-136.9,90.6 L-138.1,96.4M-136.9,90.6 L-135.
380776,79.9M-138.3,100.1 L-146.0,97.3 L-152.6,93.1M-138.3,100.1 L-138.3,109.7M-138.3,100.1 L-138.1,96.4M-152.6,93.1 L-155.8,91.4M-152.6,93.1 L-146.0,97.3 L-138.3,100.1M-138.3,109.7 L-149.8,106.5 L-160.9,100.4M-138.3,109.7 L-138.3,100.1M-138.1,96.4 L-138.3,100.1M-138.1,96.4 L-136.9,90.6M-138.3,111.0 L-138.4,127.4M-160.9,100.4 L-155.8,91.4M-160.9,100.4 L-167.3,96.7M-160.9,100.4 L-149.8,106.5 L-138.3,109.7M-138.4,127.4 L-145.9,126.4M-138.4,127.4 L-137.8,135.8M-138.4,127.4 L-138.3,111.0M-145.9,126.4 L-149.4,124.8 L-156.7,117.7M-145.9,126.4 L-138.4,127.4M-137.8,135.8 L-130.5,133.8M-137.8,135.8 L-138.4,127.4M571.1,484.2 L569.2,488.3M571.1,484.2 L575.3,485.7M571.1,484.2 L568.6,479.6M569.2,488.3 L571.1,484.2M568.6,479.6 L561.4,481.0M568.6,479.6 L573.2,477.9 L572.9,474.5M568.6,479.6 L566.8,467.9M568.6,479.6 L571.1,484.2M476.9,111.0 L469.3,112.1M476.9,111.0 L483.0,104.2M476.9,111.0 L481.2,116.0M469.3,112.1 L476.9,111.0M481.2,116.0 L476.9,111.0M464.5,98.8 L465.6,100.9M471.6,99.4 L468.9,99.2 L465.6,100.9M463.9,97.7 L467.9,89.8M462.7,96.2 L461.1,94.1M467.9,89.8 L463.9,97.7M457.9,85.2 L458.8,87.9M458.8,87.9 L457.9,85.2M458.8,87.9 L459.8,91.0M422.1,509.1 L422.5,506.6M-173.1,205.4 L-168.3,205.3 L-166.6,207.0M-173.1,205.4 L-179.4,206.5M-173.1,206.3 L-173.1,210.6M-166.6,207.0 L-166.4,209.8M-166.6,207.0 L-168.3,205.3 L-173.1,205.4M-179.4,206.5 L-181.4,212.1M-179.4,206.5 L-182.4,205.7 L-181.6,209.0M-179.4,206.5 L-173.1,205.4M273.1,316.0 L268.0,316.4 L268.5,313.2M118.2,356.4 L114.8,360.5M159.0,333.4 L156.1,331.9M159.0,333.4 L161.0,334.7M159.0,333.4 L161.9,326.2M158.7,324.8 L160.4,320.5M158.7,324.8 L161.9,326.2M158.7,324.8 L156.1,331.9M161.0,334.7 L159.0,333.4M161.0,334.7 L165.4,339.6M161.0,334.7 L164.4,331.1M165.4,339.6 L161.0,334.7M165.4,339.6 L161.9,346.5M164.4,331.1 L161.0,334.7M164.4,331.1 L167.5,330.4 L178.4,340.2 L178.5,342.5 L176.9,344.2M166.4,340.2 L173.5,345.5 L175.4,345.7 L176.9,344.2M176.9,344.2 L175.4,345.7 L173.5,345.5 L166.4,340.2M176.9,344.2 L182.0,349.2 L183.4,357.0M176.9,344.2 L178.5,342.5 L178.4,340.2 L167.5,330.4 L164.4,331.1M183.4,357.0 L182.0,349.2 L176.9,344.2M183.4,357.0 L184.7,359.5M127.6,678.1 L120.8,691.0M127.6,678.1 L133.7,678.8M127.6,678.1 L122.4,675.9M120.8,691.0 L127.6,678.1M120.8,691.0 L116.3,687.0M120.8,691.0 L125.9,694.0M363.9,43.0 L369.3,38.0M363.9,43.0 L372.2,52.3M369.3,38.0 L363.9,43.0M363.6,43.3 L360.6,46.1M371.9,20.3 L370.8,25.1M371.9,20.3 L372.8,13.0M367.8,24.4 L370.8,25.1M352.8,551.4 L369.4,559.0M352.8,551.4 L335.9,543.1 L333.6,536.8 L328.8,539.3M385.7,564.2 L379.1,562.3M385.7,564.2 L393.0,566.9M385.7,564.2 L387.5,559.0 L391.0,557.0M374.2,568.0 L377.8,568.5 L379.1,562.3M393.0,566.9 L407.1,572.1M393.0,566.9 L385.7,564.2M391.0,557.0 L387.5,559.0 L385.7,564.2M407.1,572.1 L411.6,571.8M407.1,572.1 L393.0,566.9M407.1,572.1 L405.1,578.5 L405.9,580.4M411.6,571.8 L407.1,572.1M411.6,571.8 L424.5,571.0M411.6,571.8 L416.3,554.1M405.9,580.4 L413.5,579.6 L415.2,578.2M405.9,580.4 L405.1,578.5 L407.1,572.1M424.5,571.0 L411.6,571.8M424.5,571.0 L425.6,566.0M416.3,554.1 L411.6,571.8M425.2,570.9 L431.1,570.5 L433.7,569.1M425.2,570.9 L425.6,566.0M425.6,566.0 L425.2,570.9M425.6,566.0 L424.5,571.0M434.2,568.7 L436.1,567.0M434.2,568.7 L435.4,572.1M433.7,569.1 L431.1,570.5 L425.2,570.9M436.1,567.0 L434.2,568.7M435.4,572.1 L434.2,568.7M593.3,577.1 L594.9,578.9M599.1,573.3 L594.9,578.9M599.1,573.3 L606.0,574.9M111.2,-14.6 L112.7,-10.1 L121.0,-4.8M738.0,634.5 L728.8,623.8M738.0,634.5 L753.7,619.9M738.0,634.5 L730.1,641.9M743.7,607.7 L736.9,600.0M743.7,607.7 L749.8,614.7M758.0,607.5 L762.4,612.8M758.0,607.5 L764.0,602.0M758.0,607.5 L749.8,614.7M758.0,607.5 L744.8,592.7M736.9,600.0 L743.7,607.7M736.9,600.0 L725.4,603.5M736.9,600.0 L744.8,592.7M744.8,592.7 L758.0,607.5M744.8,592.7 L736.9,600.0M744.8,592.7 L746.4,589.9M-212.9,629.3 L-213.5,633.3M291.0,340.3 L290.2,339.6 L287.5,342.4M70.2,594.4 L70.1,597.8M70.2,594.4 L69.5,589.1M70.2,594.4 L78.2,591.5 L87.2,585.2M475.8,614.3 L477.7,611.2M475.8,614.3 L473.8,618.8M475.8,614.3 L467.1,608.4M475.8,614.3 L485.0,618.4M477.7,611.2 L475.8,614.3M473.8,618.8 L472.3,622.2M473.8,618.8 L475.8,614.3M467.1,608.4 L475.8,614.3M467.1,608.4 L460.3,616.4M467.1,608.4 L480.9,592.6M485.0,618.4 L475.8,614.3M485.0,618.4 L487.9,619.1M472.3,622.2 L470.9,625.8M472.3,622.2 L473.8,618.8M472.3,622.2 L490.6,629.8M470.9,625.8 L472.3,622.2M456.2,649.2 L452.8,648.7M456.6,648.1 L458.3,644.4M452.8,648.7 L456.2,649.2M459.6,687.3 L459.9,694.1M459.0,686.2 L452.8,674.0M459.9,694.1 L457.3,700.7M459.9,694.1 L459.6,687.3M457.3,700.7 L460.3,699.8M457.3,700.7 L459.9,694.1M-111.0,-106.0 L-84.0,-87.1M-50.9,-116.7 L-58.9,-110.8 L-63.4,-109.1 L-75.0,-109.4 L-80.8,-112.2M10.7,411.5 L6.6,410.4 L-3.0,415.2 L-7.7,415.0 L-14.1,411.9M10.7,411.5 L12.9,413.5 L13.5,416.8 L12.3,421.4M3.1,430.1 L11.5,423.4 L12.3,421.4M-14.1,411.9 L-7.7,415.0 L-3.0,415.2 L6.6,410.4 L10.7,411.5M-13.8,410.5 L-8.8,406.1 L-8.6,399.4 L-6.6,395.9M53.1,440.7 L45.5,441.5 L36.0,436.4M42.3,427.6 L33.7,420.8M42.3,427.6 L36.0,436.4M42.3,427.6 L67.3,434.3M564.6,66.3 L567.7,73.2M564.6,66.3 L562.2,61.0 L577.4,60.1M347.6,330.0 L345.1,331.1M193.1,280.4 L201.1,286.9M193.1,280.4 L188.7,285.4 L196.7,292.4M193.1,280.4 L187.5,275.0 L189.8,272.1M201.1,286.9 L193.1,280.4M196.7,292.4 L188.7,285.4 L193.1,280.4M189.8,272.1 L191.3,270.1M189.8,272.1 L187.5,275.0 L193.1,280.4M186.1,261.9 L189.3,263.9M597.1,550.8 L590.7,545.5M444.5,255.9 L444.1,253.6M444.1,253.6 L444.5,255.9M-0.3,637.4 L3.6,637.8 L3.4,639.3 L-0.6,638.9M-0.3,637.4 L1.0,628.8 L2.8,627.9 L4.6,628.6M-0.6,638.9 L3.4,639.3 L3.6,637.8 L-0.3,637.4M-0.
380776,638.9 L-1.4,647.5 L3.2,651.5M4.6,628.6 L2.8,627.9 L1.0,628.8 L-0.3,637.4M3.2,651.5 L-1.4,647.5 L-0.6,638.9M561.4,481.0 L561.2,477.8 L558.9,474.5M561.4,481.0 L551.7,479.6M561.4,481.0 L568.6,479.6M558.9,474.5 L561.2,477.8 L561.4,481.0M475.4,288.5 L468.7,284.5M475.4,288.5 L481.1,292.1M475.4,288.5 L466.0,303.9M494.0,299.8 L496.1,296.0M494.0,299.8 L481.1,292.1M494.0,299.8 L497.0,301.6M495.3,268.2 L492.0,272.9M495.2,267.6 L493.1,265.7M495.9,268.2 L500.5,272.2M502.7,260.2 L500.2,263.0M501.9,257.5 L503.3,259.6M501.9,257.5 L503.3,255.2M531.1,516.4 L533.4,512.9M531.1,516.4 L527.9,521.1M537.8,508.3 L543.7,500.6M536.8,508.2 L533.7,506.0M536.8,508.2 L533.4,512.9M543.7,500.6 L550.0,506.0M543.7,500.6 L549.5,492.0M543.7,500.6 L537.8,508.3M550.0,506.0 L543.7,500.6M550.0,506.0 L556.3,511.5 L563.5,503.2M543.1,500.0 L540.1,497.7M543.1,500.0 L537.0,507.8M543.1,500.0 L548.7,491.7M557.4,497.7 L563.5,503.2M557.4,497.7 L549.5,492.0M545.7,477.5 L546.2,466.3 L544.2,463.9M545.7,477.5 L536.7,472.7 L530.9,467.0M545.7,477.5 L551.7,479.6M479.5,260.1 L476.2,261.0M476.2,261.0 L479.5,260.1M473.2,262.5 L473.5,265.5M472.4,262.0 L463.8,264.4M463.8,264.4 L472.4,262.0M391.0,271.3 L393.3,260.8M362.9,262.8 L364.0,259.9M362.2,263.1 L355.3,260.2M355.3,260.2 L362.2,263.1M355.5,259.7 L357.0,255.2M345.0,255.0 L347.6,256.3M345.0,255.0 L341.5,253.3M344.7,255.6 L340.2,264.5M347.6,256.3 L350.3,257.6M347.6,256.3 L345.0,255.0M336.7,250.9 L340.4,252.7M336.7,250.9 L333.9,249.5M336.4,251.4 L331.9,260.5M333.9,249.5 L336.7,250.9M333.9,248.7 L337.0,240.1M312.7,242.0 L315.6,242.6M312.7,242.0 L310.0,241.6M312.6,242.7 L311.5,246.8M315.6,242.6 L312.7,242.0M310.0,241.6 L312.7,242.0M296.0,241.7 L293.6,247.8M295.9,240.4 L29
380771.4,239.7M270.7,233.4 L267.8,232.0M270.3,234.2 L266.8,240.2M267.8,232.0 L270.7,233.4M263.0,230.4 L261.6,233.4M514.6,422.2 L512.2,430.5M507.3,429.3 L512.2,430.5M-158.9,-9.5 L-152.4,-4.2M-154.3,-12.0 L-150.0,-8.7M-154.3,-12.0 L-152.1,-15.0 L-150.6,-15.0 L-150.0,-8.7M-154.3,-12.0 L-163.2,-16.1M-163.2,-16.1 L-165.3,-12.0M-163.2,-16.1 L-170.5,-20.0M-163.2,-16.1 L-154.3,-12.0M-163.2,-16.1 L-159.7,-21.0 L-155.6,-24.3M-165.3,-12.0 L-163.2,-16.1M-170.5,-20.0 L-163.2,-16.1M-155.6,-24.3 L-159.7,-21.0 L-163.2,-16.1M-69.0,213.3 L-72.7,199.5M-69.0,213.3 L-73.9,214.0M-69.0,213.3 L-62.1,210.6M-74.8,208.2 L-75.3,205.6 L-76.1,205.5 L-76.1,208.1 L-74.8,208.2M-74.8,208.2 L-76.1,208.1 L-76.1,205.5 L-75.3,205.6 L-74.8,208.2M-74.8,208.2 L-73.9,214.0M517.8,410.5 L518.7,407.4M505.4,566.2 L507.1,568.6M505.4,566.2 L510.6,564.4M505.4,566.2 L502.0,566.7M507.1,568.6 L509.8,572.9M507.1,568.6 L505.4,566.2M510.6,564.4 L519.1,560.4M510.6,564.4 L505.4,566.2M502.0,566.7 L505.4,566.2M505.2,549.9 L499.8,549.5M505.2,549.9 L505.3,560.6M505.2,549.9 L515.7,553.7 L519.1,560.4M403.1,365.1 L405.6,368.3M403.1,365.1 L399.7,369.1M403.1,365.1 L405.8,360.7M405.6,368.3 L403.1,365.1M405.6,368.3 L406.1,369.8 L410.5,372.0 L410.6,370.8 L405.6,368.3M405.6,368.3 L410.6,370.8 L410.5,372.0 L406.1,369.8 L405.6,368.3M680.3,156.7 L683.1,153.7M680.3,156.7 L688.7,164.0M680.3,156.7 L668.1,146.8M402.1,260.9 L401.8,253.6M402.1,260.9 L393.3,260.8M402.1,260.9 L402.5,270.7M401.8,253.6 L402.1,260.9M402.5,270.7 L402.1,260.9M156.6,344.0 L161.9,346.5M238.6,223.2 L246.5,225.3M246.5,225.3 L238.6,223.2M491.1,407.9 L494.3,408.9M491.1,407.9 L490.7,403.6 L495.7,404.0M491.1,407.9 L489.9,410.8 L489.0,410.5M489.0,410.5 L489.9,410.8 L491.1,407.9M629.7,446.2 L625.0,445.9M631.6,545.4 L623.7,567.7M631.6,545.4 L637.9,548.6M623.7,567.7 L630.6,574.0M623.7,567.7 L631.6,545.4M623.7,567.7 L618.2,562.9 L617.5,558.7 L621.0,548.3 L629.0,544.9M657.9,162.7 L654.8,163.1M657.9,162.7 L653.1,172.6M657.9,162.7 L665.8,158.6M654.8,163.1 L657.9,162.7M654.8,163.1 L646.5,166.2 L640.4,166.3 L636.1,168.9 L632.2,168.9M653.1,172.6 L657.9,162.7M144.9,623.1 L156.4,635.2M144.9,623.1 L139.9,617.9M144.9,623.1 L150.3,620.4M144.9,623.1 L140.9,625.0M156.4,635.2 L144.9,623.1M156.4,635.2 L150.5,638.9M156.4,635.2 L163.3,633.7M139.9,617.9 L144.9,623.1M139.9,617.9 L143.3,613.5M139.9,617.9 L129.2,623.1M80.3,339.9 L81.8,349.6M80.3,339.9 L84.3,333.0 L89.3,329.5M80.3,339.9 L74.6,338.3 L70.2,333.9M76.9,310.0 L70.1,309.6M76.9,310.0 L79.4,302.3 L74.6,300.9M76.9,310.0 L76.9,314.3 L78.5,317.5 L89.3,329.5M468.8,128.2 L474.5,122.3M447.9,121.2 L450.2,123.3M447.9,121.2 L444.4,124.9M447.9,121.2 L453.3,115.5M629.0,544.9 L621.0,548.3 L617.5,558.7 L618.2,562.9 L623.7,567.7M518.1,196.2 L511.3,204.6M518.1,196.2 L512.8,195.3 L510.0,197.3 L507.5,201.4M622.8,700.1 L625.8,713.8M622.8,700.1 L621.2,693.1M622.8,700.1 L616.5,700.7M625.8,713.8 L622.8,700.1M625.8,713.8 L625.8,720.0 L620.9,727.8 L613.5,750.5M621.2,693.1 L622.8,700.1M621.2,693.1 L620.5,689.7M446.3,-81.4 L459.5,-84.8M446.3,-81.4 L450.1,-77.9 L450.1,-73.8M445.8,-81.2 L440.4,-79.6M459.5,-84.8 L469.5,-85.9M459.5,-84.8 L446.3,-81.4M450.1,-73.8 L450.1,-77.9 L446.3,-81.4M426.5,560.1 L430.1,560.1M426.5,560.1 L425.2,555.3M426.5,560.1 L426.2,563.2M430.1,560.1 L426.5,560.1M425.2,555.3 L426.5,560.1M426.2,563.2 L426.5,560.1M421.9,549.8 L420.4,547.0M420.4,547.0 L418.5,544.2M420.4,547.0 L421.9,549.8M420.7,550.5 L418.7,552.5M418.5,544.2 L420.4,547.0M502.4,437.4 L503.5,432.3 L497.0,430.1M502.4,437.4 L500.4,442.2 L494.3,440.7M502.4,437.4 L509.7,439.4M497.0,430.1 L489.2,428.0M497.0,430.1 L503.5,432.3 L502.4,437.4M494.3,440.7 L500.4,442.2 L502.4,437.4M494.3,440.7 L485.6,438.4M617.7,429.1 L618.3,434.1M618.3,434.1 L616.3,437.8M618.3,434.1 L617.7,429.1M382.5,386.7 L377.6,381.7M382.5,386.7 L377.6,390.4 L380.2,395.9 L384.4,395.7M382.5,386.7 L384.4,390.4 L384.4,395.7M377.6,381.7 L375.7,384.0M377.6,381.7 L382.5,386.7M377.6,381.7 L374.2,379.8M191.0,-30.4 L187.9,-29.7M191.0,-30.4 L197.4,-6.4M191.0,-30.4 L198.8,-32.5M187.9,-29.7 L191.0,-30.4M187.9,-29.7 L177.1,-28.3M197.4,-6.4 L191.0,-30.4M198.8,-32.5 L202.5,-34.2M198.8,-32.5 L205.2,-17.2 L208.4,-15.6 L211.3,-15.9 L213.6,-17.9M198.8,-32.5 L191.0,-30.4M163.6,609.3 L166.3,606.9M163.6,609.3 L159.4,613.2M163.6,609.3 L177.0,623.4M163.6,609.3 L157.3,602.8 L151.7,601.9 L149.0,602.7M149.0,602.7 L159.4,613.2M149.0,602.7 L151.7,601.9 L157.3,602.8 L163.6,609.3M149.0,602.7 L146.2,608.2M177.0,623.4 L178.1,629.2 L177.0,631.3M177.0,623.4 L163.6,609.3M137.6,-61.4 L141.1,-53.8 L141.1,-49.5M141.1,-49.5 L147.7,-48.2M141.1,-49.5 L141.1,-53.8 L137.6,-61.4M141.1,-49.5 L130.3,-48.8M147.7,-48.2 L141.1,-49.5M147.7,-48.2 L156.9,-52.6M147.7,-48.2 L149.6,-44.6M130.3,-48.8 L120.0,-42.5M130.3,-48.8 L141.1,-49.5M652.4,499.5 L650.7,492.1M652.4,499.5 L652.3,501.8 L654.5,504.9 L661.4,507.4M270.2,107.3 L268.5,100.2M268.5,100.2 L267.9,97.8M268.5,100.2 L270.2,107.3M660.9,-1.0 L666.0,-4.9M660.9,-1.0 L655.0,3.4M650.3,-3.9 L655.0,3.4M-23.2,690.6 L-29.5,689.3M-224.1,223.7 L-217.5,223.5M-215.9,238.2 L-217.2,244.6M-215.9,238.2 L-209.8,238.6M-215.9,238.2 L-217.5,223.5M551.7,-53.8 L548.3,-53.9 L546.1,-51.7 L541.2,-52.1 L539.7,-54.2 L540.1,-61.3M551.7,-53.8 L556.3,-54.9 L562.5,-63.0M551.7,-53.8 L549.5,-43.7M551.7,-53.8 L558.0,-68.6 L557.4,-74.2M540.1,-61.3 L539.7,-54.2 L541.2,-52.1 L546.1,-51.7 L548.3,-53.9 L551.7,-53.8M562.5,-63.0 L556.3,-54.9 L551.7,-53.8M549.5,-43.7 L551.7,-53.8M557.4,-74.2 L558.0,-68.6 L551.7,-53.8M418.0,222.0 L416.3,229.5M418.0,222.0 L419.0,217.4M418.0,222.0 L435.3,225.9M416.3,229.5 L418.0,222.0M416.3,229.5 L415.6,232.8M435.3,225.9 L438.2,226.5M435.3,225.9 L418.0,222.0M46.4,399.9 L48.3,398.1 L55.9,400.6 L56.5,401.8 L52.2,404.2 L47.0,402.2M47.0,402.2 L52.2,404.2 L56.5,401.8 L55.9,400.6 L48.3,398.1 L46.4,399.9M39.9,404.6 L38.7,409.3 L39.3,411.6 L43.6,414.2M39.9,404.6 L43.1,400.2M38.1,404.0 L35.2,403.4M38.1,404.0 L35.4,402.7M43.6,414.2 L39.3,411.6 L38.7,409.3 L39.9,404.6M43.1,400.2 L39.9,404.6M336.0,42.8 L342.1,49.4M336.0,42.8 L329.0,49.3M342.1,49.4 L336.0,42.8M329.0,49.3 L336.0,42.8M722.7,650.0 L717.3,643.7M722.7,650.0 L730.1,641.9M722.7,650.0 L715.7,657.5 L712.3,654.5M712.3,654.5 L715.7,657.5 L722.7,650.0M712.3,654.5 L700.6,640.9M728.8,623.8 L738.0,634.5M728.8,623.8 L721.4,615.2M774.5,602.8 L762.4,612.8M774.5,602.8 L789.1,591.0 L789.7,586.9 L786.3,582.7M774.5,602.8 L769.7,597.1M769.7,597.1 L773.1,594.1M769.7,597.1 L764.0,602.0M769.7,597.1 L746.3,569.9M769.7,597.1 L774.5,602.8M783.1,585.6 L781.2,587.2M783.1,585.6 L786.3,582.7M362.0,265.0 L358.6,272.9M365.1,275.6 L358.6,272.9M462.9,245.7 L462.7,250.4M463.0,245.0 L463.5,238.8M455.4,244.6 L462.9,245.4M463.5,238.8 L463.0,245.0M463.5,238.8 L456.5,241.0 L455.1,244.2M455.1,244.2 L456.5,241.0 L463.5,238.8M296.0,248.5 L293.6,247.8M296.0,266.1 L304.9,269.3M296.0,266.1 L287.8,263.1M286.4,288.0 L286.5,290.4M285.8,299.1 L284.5,301.8 L280.6,302.9M285.8,299.1 L285.2,303.9M285.8,299.1 L286.6,294.1M280.6,302.9 L285.2,303.9M280.6,302.9 L284.5,301.8 L285.8,299.1M280.6,302.9 L237.8,304.2 L215.2,313.4 L204.5,314.0 L194.2,313.3 L186.3,311.2 L182.3,307.4 L177.9,299.4 L172.3,295.9M285.2,303.9 L280.6,302.9M285.2,303.9 L285.8,299.1M285.2,303.9 L286.8,299.3M285.2,303.9 L290.3,305.8M286.6,294.1 L282.7,294.1M286.6,294.1 L285.8,299.1M286.6,294.1 L286.9,297.0M443.7,284.3 L436.5,287.0M443.7,284.3 L441.7,277.6M443.7,284.3 L446.4,291.6M436.5,287.0 L443.7,284.3M436.5,287.0 L434.7,289.1M441.7,277.6 L443.7,284.3M-84.4,206.3 L-83.7,208.9M34.2,668.7 L37.9,675.3M3.5,651.7 L5.5,653.4M3.8,651.3 L8.5,643.9M5.5,653.4 L3.5,651.7M-183.0,218.5 L-186.5,218.2M-183.0,218.5 L-181.6,212.8M-183.0,218.5 L-183.0,223.8M-186.5,218.2 L-183.0,218.5M-183.0,223.8 L-183.0,218.5M675.3,749.1 L683.4,746.2M675.3,749.1 L671.7,750.3M675.3,749.1 L678.1,757.2M675.3,749.1 L672.2,741.7M671.7,750.3 L675.3,749.1M425.9,316.8 L423.2,314.2M425.9,316.8 L432.7,321.7M53.5,588.6 L53.5,600.9M53.5,588.6 L57.0,584.4 L62.9,582.0M48.2,602.0 L45.8,602.4M48.2,602.0 L53.5,600.9M68.2,575.9 L68.7,582.1M62.9,582.0 L57.0,584.4 L53.5,588.6M62.9,582.0 L68.7,582.1M100.7,558.0 L97.0,566.1M100.7,558.0 L95.4,546.4 L96.3,544.9 L99.1,544.4M100.7,558.0 L102.3,552.0 L99.1,544.4M99.1,544.4 L96.3,544.9 L95.4,546.4 L100.7,558.0M99.1,544.4 L102.3,552.0 L100.7,558.0M437.9,131.8 L435.4,134.6M434.0,133.5 L424.3,129.1M415.7,155.0 L413.5,157.3M415.7,155.0 L418.0,152.7M407.1,152.1 L404.8,150.0M407.1,152.1 L413.5,157.3M613.5,750.5 L610.7,760.4 L611.2,771.2M613.5,750.5 L620.9,727.8 L625.8,720.0 L625.8,713.8M-181.4,212.1 L-179.4,206.5M-171.4,217.7 L-173.6,215.5 L-181.6,212.8M-171.4,217.7 L-166.6,225.3M529.2,227.3 L536.4,233.6M529.4,226.6 L534.7,220.5M528.7,227.5 L524.9,232.0M488.7,193.1 L481.2,186.7M488.7,193.1 L514.7,214.9M489.3,191.4 L476.7,181.3 L476.0,179.3M489.3,191.4 L496.2,186.8 L501.0,181.8M514.7,214.9 L518.5,218.1M514.7,214.9 L488.7,193.1M-208.0,279.4 L-211.2,278.9 L-214.8,280.4M487.1,113.5 L493.2,116.5M491.2,123.0 L492.8,125.4M491.2,123.0 L493.2,120.6 L493.2,116.5M491.2,123.0 L486.8,123.4 L482.8,125.8M227.2,-1.6 L233.0,5.9M227.2,-1.6 L227.9,-3.5 L230.4,-3.2 L235.9,3.1M233.0,5.9 L227.2,-1.6M233.0,5.9 L235.9,3.1M233.0,5.9 L229.7,9.8M235.9,3.1 L233.0,5.9M235.9,3.1 L230.4,-3.2 L227.9,-3.5 L227.2,-1.6M463.3,148.1 L456.1,141.5M365.1,126.4 L360.2,131.3M365.1,126.4 L362.9,123.8M360.2,131.3 L365.1,126.4M360.2,131.3 L362.8,137.3M362.9,123.8 L365.1,126.4M362.9,123.8 L353.1,132.8M365.6,126.9 L367.4,129.0M362.8,137.3 L360.2,131.3M222.9,123.8 L220.8,111.3M222.9,123.8 L220.4,130.4 L210.5,141.1M220.8,111.3 L222.9,123.8M210.5,141.1 L220.4,130.4 L222.9,123.8M723.7,44.8 L716.5,45.9 L717.3,48.8M717.3,48.8 L718.6,52.7M717.3,48.8 L716.5,45.9 L723.7,44.8M394.7,222.1 L391.8,220.1M394.7,222.1 L400.4,225.9M638.5,469.8 L644.3,468.7M638.5,469.8 L644.9,476.6M638.5,469.8 L633.3,468.6 L622.0,472.9 L618.5,476.2 L616.9,481.7M644.3,468.7 L646.0,468.7 L646.3,467.1M644.3,468.7 L646.3,467.1M644.3,468.7 L638.5,469.8M644.9,476.6 L647.5,477.8 L649.1,480.7 L649.1,486.4 L647.7,488.7M644.9,476.6 L638.5,469.8M616.9,481.7 L618.5,476.2 L622.0,472.9 L633.3,468.6 L638.5,469.8M616.9,481.7 L610.7,483.0 L602.0,487.0M616.9,481.7 L636.4,481.8 L640.3,483.2 L647.7,488.7M646.3,467.1 L644.3,468.7M646.3,467.1 L646.0,468.7 L644.3,468.7M219.9,81.8 L225.3,86.3M-106.9,342.1 L-109.5,348.5M-106.9,342.1 L-101.5,346.1M-106.9,342.1 L-115.8,338.7 L-126.2,331.7 L-131.3,330.1 L-137.2,330.6M-134.1,178.7 L-140.5,187.6M-134.1,178.7 L-129.5,172.5M-134.1,178.7 L-136.8,176.4M-128.0,170.3 L-129.5,172.5M-128.0,170.3 L-127.4,166.8M-136.8,176.4 L-134.1,178.7M-155.2,184.5 L-157.0,177.3M-155.2,184.5 L-162.6,186.0M-155.2,184.5 L-147.1,183.9 L-140.5,187.6M298.6,380.5 L298.6,384.5 L302.4,387.4M302.4,387.4 L298.6,384.5 L298.6,380.5M302.4,387.4 L304.1,388.0 L306.9,384.2M263.3,495.4 L260.7,500.2M290.1,481.5 L302.1,477.4M290.1,481.5 L270.9,485.7 L263.6,494.7M290.1,481.5 L285.6,474.4M302.1,477.4 L290.1,481.5M285.6,474.4 L290.1,481.5M285.6,474.4 L283.6,471.2 L275.6,465.2M308.8,474.1 L311.9,474.4M308.8,474.1 L303.3,476.6M308.7,480.7 L311.9,474.4M308.7,480.7 L300.1,498.1M352.8,474.3 L346.7,476.3M352.8,474.3 L353.7,482.2 L351.8,504.9 L348.9,506.8M353.4,474.0 L355.7,472.9M346.7,476.3 L352.8,474.3M346.7,476.3 L343.1,477.5M348.9,506.8 L351.8,504.9 L353.7,482.2 L352.8,474.3M113.7,636.5 L122.4,649.2M113.7,636.5 L116.2,635.1M113.7,636.5 L111.1,638.4M307.6,126.3 L310.6,125.3M310.6,125.3 L307.8,122.4M310.6,125.3 L307.6,126.3M310.6,125.3 L314.4,127.9M548.9,429.0 L542.3,425.2 L543.2,420.7M-206.4,70.6 L-212.7,72.9 L-217.7,72.9M-219.8,79.5 L-219.8,83.7M-219.8,79.5 L-217.7,72.9M-219.8,79.5 L-220.9,83.7M460.3,616.4 L457.9,619.4M460.3,616.4 L467.1,608.4M480.9,592.6 L467.1,608.4M480.9,592.6 L484.1,586.0M480.9,592.6 L482.6,599.8M202.5,-34.2 L198.8,-32.5M202.5,-34.2 L209.9,-38.1M213.6,-17.9 L211.3,-15.9 L208.4,-15.6 L205.2,-17.2 L198.8,-32.5M177.1,-28.3 L187.9,-29.7M177.1,-28.3 L160.5,-35.1M177.1,-28.3 L172.1,-22.5M160.5,-35.1 L157.8,-35.8M160.5,-35.1 L177.1,-28.3M172.1,-22.5 L168.5,-18.7M172.1,-22.5 L177.1,-28.3M157.8,-35.8 L160.5,-35.1M154.5,-35.0 L149.6,-44.6M154.5,-35.0 L157.3,-35.8M154.0,-34.7 L151.2,-32.3M149.6,-44.6 L154.5,-35.0M149.6,-44.6 L147.7,-48.2M157.3,-35.8 L154.5,-35.0M92.5,42.5 L102.5,30.2M92.5,42.5 L86.4,50.7 L87.9,55.7M92.5,42.5 L85.5,36.5M81.5,65.6 L89.7,59.1M81.5,65.6 L78.2,68.3M87.9,55.7 L89.7,59.1M87.9,55.7 L86.4,50.7 L92.5,42.5M722.1,533.4 L725.5,530.6M774.9,579.6 L781.2,587.2M544.2,463.9 L546.2,466.3 L545.7,477.5M544.2,463.9 L533.2,465.5 L530.9,467.0M530.9,467.0 L533.2,465.5 L544.2,463.9M530.9,467.0 L536.7,472.7 L545.7,477.5M572.9,474.5 L573.2,477.9 L568.6,479.6M566.8,467.9 L568.6,479.6M566.8,467.9 L571.6,466.5M718.2,77.8 L714.6,81.3M706.0,81.8 L710.5,89.7M706.0,81.8 L711.7,79.5 L714.6,81.3M706.0,81.8 L693.9,85.6 L684.3,86.2M520.8,429.3 L522.7,425.8M515.5,421.8 L522.7,425.8M515.1,420.8 L516.6,415.5M463.3,422.0 L460.2,417.6M463.3,422.0 L456.3,426.9M463.3,422.0 L469.2,417.8M463.3,422.0 L476.2,439.6 L477.0,444.8M461.1,405.9 L469.2,417.8M456.3,426.9 L449.9,431.2M456.3,426.9 L463.3,422.0M456.3,426.9 L469.4,443.7M449.9,431.2 L451.6,433.9M449.9,431.2 L443.9,435.4M449.9,431.2 L456.3,426.9M469.4,443.7 L472.7,445.0 L477.0,444.8M469.4,443.7 L456.3,426.9M451.6,433.9 L449.9,431.2M443.9,435.4 L449.9,431.2M651.8,13.4 L661.9,16.3M651.8,13.4 L644.3,11.1M641.9,12.9 L644.3,11.1M641.9,12.9 L631.1,21.8 L624.9,31.9M72
380771.6,15.3 L724.1,14.1 L726.7,15.0M720.6,15.8 L710.8,17.2M75.8,596.4 L91.6,586.5M75.8,596.4 L70.1,597.8M-48.3,-71.9 L-53.1,-73.5M-48.3,-71.9 L-45.4,-74.1M-48.3,-71.9 L-27.0,-62.9 L-9.3,-49.5M-45.4,-74.1 L-48.3,-71.9M-9.3,-49.5 L1.7,-40.1M-9.3,-49.5 L-12.6,-45.3M-9.3,-49.5 L-27.0,-62.9 L-48.3,-71.9M1.7,-40.1 L3.9,-38.2M1.7,-40.1 L-9.3,-49.5M3.9,-38.2 L1.7,-40.1M3.9,-38.2 L6.3,-36.1M2.3,-41.4 L6.3,-36.1M2.3,-41.4 L-1.0,-45.5M71.6,43.3 L75.0,58.0M71.6,43.3 L67.6,28.1M381.9,175.8 L387.0,180.4M381.9,175.8 L372.5,186.4M381.9,175.8 L381.8,169.7 L379.5,166.4 L379.9,162.4 L381.4,160.8M387.0,180.4 L392.0,184.9M387.0,180.4 L381.9,175.8M387.0,180.4 L376.6,192.0M387.0,180.4 L391.2,171.6M372.5,186.4 L381.9,175.8M372.5,186.4 L361.4,199.1M372.5,186.4 L376.6,192.0M372.5,186.4 L368.4,182.7 L359.0,190.9M381.4,160.8 L387.0,161.3 L390.1,168.0M381.4,160.8 L379.9,162.4 L379.5,166.4 L381.8,169.7 L381.9,175.8M376.6,192.0 L381.7,196.6M376.6,192.0 L387.0,180.4M376.6,192.0 L366.3,203.6M376.6,192.0 L372.5,186.4M391.2,171.6 L398.4,177.8M391.2,171.6 L390.1,168.0M391.2,171.6 L387.0,180.4M409.1,415.0 L413.1,414.8M409.1,415.0 L406.7,416.6 L408.9,420.7M409.1,415.0 L403.2,410.5M413.1,414.8 L409.1,415.0M413.1,414.8 L415.0,417.8 L416.7,416.3M413.1,414.8 L414.7,412.7M408.9,420.7 L406.7,416.6 L409.1,415.0M408.9,420.7 L406.6,422.5 L407.8,424.2 L410.0,422.5 L408.9,420.7M408.9,420.7 L410.0,422.5 L407.8,424.2 L406.6,422.5 L408.9,420.7M403.2,410.5 L403.2,408.2 L400.3,405.0M403.2,410.5 L396.9,410.9M403.2,410.5 L409.1,415.0M-94.4,622.5 L-97.6,625.3M-97.6,625.3 L-94.4,622.5M-97.6,625.3 L-100.5,636.2 L-102.3,638.4M407.1,547.8 L407.1,550.2M407.1,550.2 L407.1,547.8M349.3,201.9 L359.0,190.9M449.3,375.7 L457.7,377.8M676.9,182.7 L680.9,179.3M-155.8,91.4 L-160.9,100.4M-155.8,91.4 L-152.6,93.1M-155.8,91.4 L-163.0,87.5M-163.0,87.5 L-171.9,82.7M-163.0,87.5 L-155.8,91.4M-167.3,96.7 L-160.9,100.4M521.9,235.4 L518.0,239.9M521.9,235.4 L526.8,239.5M521.9,235.4 L524.9,232.0M526.8,239.5 L521.9,235.4M526.8,239.5 L529.4,241.5M524.9,232.0 L521.9,235.4M524.9,232.0 L528.7,227.5M-134.3,625.6 L-130.5,632.9M70.1,597.8 L70.2,594.4M70.1,597.8 L65.6,598.6M70.1,597.8 L75.8,596.4M79.3,616.9 L81.8,626.2M85.3,617.1 L79.3,616.7M85.3,617.1 L97.7,618.0M406.9,-90.5 L407.1,-84.8M406.9,-90.5 L405.6,-95.0M-145.9,269.5 L-148.6,267.6 L-149.2,263.8M-145.9,269.5 L-149.0,273.5 L-147.9,274.4M324.7,275.4 L323.0,274.7 L320.7,278.6 L318.5,279.8M318.5,279.8 L320.7,278.6 L323.0,274.7 L324.7,275.4M274.8,274.5 L278.5,268.0M439.6,303.1 L437.2,296.2M439.6,303.1 L442.0,309.6M439.6,303.1 L429.5,307.3M434.9,289.6 L437.0,295.6M-166.6,225.3 L-171.4,217.7M-168.4,218.7 L-162.4,220.7 L-166.3,225.7M414.7,412.7 L412.3,410.8M414.7,412.7 L413.1,414.8M414.7,412.7 L416.8,408.6M412.3,410.8 L414.7,412.7M416.8,408.6 L413.9,406.4M416.8,408.6 L418.8,410.0M416.8,408.6 L414.7,412.7M416.8,408.6 L420.0,406.1M-10.1,-64.3 L-15.7,-69.7 L-22.0,-73.2M-10.1,-64.3 L-2.5,-69.2M-9.4,-63.3 L-5.5,-54.7M300.1,498.1 L308.7,480.7M299.4,499.5 L295.9,506.8M401.2,94.0 L389.9,82.0M384.3,87.7 L389.9,82.0M523.1,248.7 L529.4,241.5M523.0,249.3 L525.5,254.0M250.3,485.6 L253.9,487.5M251.4,376.0 L253.6,373.8M251.4,376.0 L249.4,377.9 L243.1,379.0M325.3,196.8 L326.9,192.5M325.3,196.8 L320.8,196.9 L316.0,200.5M325.3,196.8 L330.0,201.5M413.9,59.3 L408.9,64.0M413.9,59.3 L417.8,63.5 L415.2,64.8M408.9,64.0 L413.9,59.3M408.9,64.0 L415.4,70.4M415.2,64.8 L417.8,63.5 L413.9,59.3M407.8,64.9 L404.4,68.2M415.4,70.4 L408.9,64.0M384.8,88.6 L387.1,93.1M387.1,93.1 L385.9,97.8M387.1,93.1 L384.8,88.6M674.9,-81.7 L668.2,-78.2M674.9,-81.7 L687.9,-90.7M674.9,-81.7 L679.4,-74.6M668.2,-78.2 L674.9,-81.7M687.9,-90.7 L689.7,-92.6M687.9,-90.7 L674.9,-81.7M679.4,-74.6 L674.9,-81.7M679.4,-74.6 L673.8,-72.5M-112.7,270.9 L-109.8,264.7M-112.7,270.9 L-116.0,273.3M734.6,72.8 L738.4,76.9M745.9,67.1 L738.4,76.9M306.6,198.8 L299.1,194.6M306.6,198.8 L316.2,188.7M306.6,198.8 L309.6,200.4 L316.0,200.5M299.1,194.6 L306.6,198.8M299.1,194.6 L297.3,197.7 L294.7,198.8M299.1,194.6 L293.7,190.7 L292.6,188.0 L293.6,186.5M-129.0,207.1 L-127.6,210.4M-129.0,207.1 L-114.4,200.9M-129.0,207.1 L-131.1,204.3M-8.6,209.1 L9.1,219.9M-8.6,209.1 L-18.3,204.6 L-72.7,199.5M25.9,223.1 L31.1,223.9M25.9,223.1 L22.4,222.4M31.1,223.9 L25.9,223.1M22.4,222.4 L25.9,223.1M22.4,222.4 L19.2,221.9M31.3,224.0 L36.1,224.7M36.1,224.7 L31.3,224.0M36.1,224.7 L42.1,225.8 L48.5,229.3M677.2,-11.9 L683.2,-6.6M677.2,-11.9 L680.2,-18.0 L680.6,-25.8M683.2,-6.6 L677.2,-11.9M683.2,-6.6 L687.9,-4.4 L703.6,-6.2 L707.5,-9.8 L706.6,-13.4M676.0,-11.5 L670.3,-7.8M680.6,-25.8 L680.2,-18.0 L677.2,-11.9M680.6,-25.8 L678.6,-28.2 L676.7,-35.1M703.7,-15.8 L706.6,-13.4M706.6,-13.4 L703.7,-15.8M706.6,-13.4 L707.5,-9.8 L703.6,-6.2 L687.9,-4.4 L683.2,-6.6M449.6,241.2 L449.4,243.8M449.4,243.8 L449.6,241.2M449.5,244.2 L454.7,244.6M673.9,212.9 L682.7,206.8 L682.1,202.3 L684.3,201.8 L685.1,206.2 L687.0,205.9 L687.7,207.0M478.1,483.7 L478.7,486.2M478.1,483.7 L478.1,480.6M478.1,483.7 L474.1,482.8M478.7,486.2 L478.1,483.7M478.7,486.2 L481.1,493.6 L480.6,495.8M478.7,486.2 L483.7,492.9M474.1,482.8 L470.2,482.7M474.1,482.8 L478.1,483.7M465.6,482.6 L469.0,482.7M469.0,482.7 L465.6,482.6M548.3,344.0 L553.5,351.1M559.3,358.9 L555.7,361.7M559.3,358.9 L554.0,351.9M559.3,358.9 L562.1,362.5 L565.7,359.8M555.7,361.7 L546.8,368.1 L544.1,364.9 L553.0,357.9M555.7,361.7 L559.3,358.9M554.0,351.9 L559.3,358.9M548.7,342.7 L545.2,334.6M361.4,199.1 L372.5,186.4M361.4,199.1 L357.0,204.7M366.3,203.6 L376.6,192.0M366.3,203.6 L364.7,206.7M373.8,205.3 L381.7,196.6M373.8,205.3 L371.9,208.5M138.8,662.4 L137.6,660.0M138.8,662.4 L131.3,661.6M138.8,662.4 L144.1,669.2 L151.0,669.7M153.9,662.9 L146.8,653.7M153.9,662.9 L154.1,667.9 L151.
380770,669.7M153.9,662.9 L155.0,654.7M22.5,512.2 L24.9,509.2M428.7,169.9 L426.4,167.9M428.7,169.9 L432.2,166.4M426.4,167.9 L428.7,169.9M10.4,389.5 L8.7,384.3M478.8,257.4 L478.9,248.7M478.9,248.7 L475.3,248.5 L474.1,246.5M478.9,248.7 L478.8,257.4M583.1,299.8 L585.0,302.2M585.0,302.2 L583.1,299.8M585.0,310.9 L582.0,313.0M585.0,310.9 L589.1,307.7M592.7,305.1 L589.1,307.7M592.7,305.1 L598.3,300.9M587.1,305.1 L585.5,303.0M587.1,305.1 L589.1,307.7M607.8,337.7 L610.3,336.0M607.8,337.7 L603.1,341.3 L598.5,335.3M615.5,332.1 L610.3,336.0M615.5,332.1 L619.3,329.2M-128.9,183.0 L-127.2,189.3M-86.7,187.6 L-96.4,188.6M499.8,549.5 L505.2,549.9M505.3,560.6 L505.2,549.9M350.6,365.3 L317.9,401.3 L305.5,394.0 L286.9,410.6 L279.3,419.7 L287.0,427.4 L284.3,431.0M351.9,365.7 L357.9,372.5M349.9,363.3 L340.3,353.2M349.9,363.3 L335.7,350.4M284.3,431.0 L287.0,427.4 L279.3,419.7 L286.9,410.6 L305.5,394.0 L317.9,401.3 L350.6,365.3M540.4,339.4 L542.2,344.0M540.0,339.6 L535.7,343.2M542.2,344.0 L543.4,346.5M542.2,344.0 L540.4,339.4M535.7,343.2 L540.0,339.6M474.1,246.5 L475.3,248.5 L478.9,248.7M-54.0,668.4 L-57.2,668.3 L-60.4,664.5M674.9,652.4 L668.0,666.6 L671.7,668.5M-221.4,249.7 L-222.3,251.8 L-223.7,251.9 L-222.8,248.8M-221.4,249.7 L-219.9,248.4 L-220.4,247.4 L-222.8,248.8M492.8,125.4 L491.2,123.0M657.9,581.0 L658.7,578.2M656.9,581.0 L652.5,580.9M658.7,578.2 L657.9,581.0M97.7,618.4 L98.3,622.0M85.4,617.5 L87.3,624.8M67.1,615.9 L70.5,629.2M-47.5,360.3 L-44.6,362.0M-47.5,360.3 L-50.8,366.7M-47.5,360.3 L-52.2,351.6M-44.6,362.0 L-47.5,360.3M-44.6,362.0 L-41.9,363.6M-50.8,366.7 L-47.5,360.3M-50.8,366.7 L-52.1,369.4 L-50.8,376.8 L-51.8,379.8 L-55.5,383.7 L-58.4,384.7M-52.2,351.6 L-53.1,348.4M-52.2,351.6 L-47.5,360.3M-53.1,348.4 L-52.2,351.6M157.1,627.3 L163.3,633.7M157.1,627.3 L150.3,620.4M143.3,613.5 L150.3,620.4M143.3,613.5 L146.2,608.2M143.3,613.5 L139.9,617.9M337.0,240.1 L333.9,248.7M97.7,618.0 L102.9,616.9 L107.6,611.4M97.7,618.0 L85.3,617.1M680.5,733.8 L682.8,734.6M680.5,733.8 L654.8,742.9M680.5,733.8 L676.3,731.1M676.3,731.1 L696.5,723.9M676.3,731.1 L669.6,725.9M676.3,731.1 L680.5,733.8M121.2,636.9 L127.2,645.7M121.2,636.9 L119.0,633.7M129.8,629.3 L136.9,638.8M129.8,629.3 L133.7,627.9M101.7,649.6 L114.7,667.9M101.7,649.6 L105.4,645.0M141.9,586.8 L148.3,591.4 L159.5,594.6 L166.7,599.0 L166.8,601.0 L164.1,603.6 L166.3,606.9M35.8,689.7 L41.7,686.5 L44.4,691.3 L41.3,693.7 L37.5,693.2 L35.2,690.5 L35.8,689.7M35.8,689.7 L35.2,690.5 L37.5,693.2 L41.3,693.7 L44.4,691.3 L41.7,686.5 L35.8,689.7M745.9,573.4 L735.0,574.0M745.9,573.4 L746.3,569.9M735.0,574.0 L745.9,573.4M356.7,205.8 L363.8,207.5M357.0,204.7 L361.4,199.1M355.6,205.6 L349.8,204.2M363.8,207.5 L356.7,205.8M364.7,258.1 L368.7,245.7M357.0,255.2 L361.1,244.5M357.0,255.2 L355.5,259.7M611.8,137.8 L607.1,139.9M611.8,137.8 L610.3,130.4M607.1,146.6 L607.1,139.9M-215.1,169.2 L-212.7,175.8 L-204.0,180.4 L-201.3,184.5M-201.3,184.5 L-201.2,187.6M-201.3,184.5 L-204.0,180.4 L-212.7,175.8 L-215.1,169.2M-201.2,187.6 L-201.3,184.5M-201.2,187.6 L-197.8,187.8M-197.8,187.8 L-201.2,187.6M-197.8,187.8 L-174.5,187.1M195.7,117.3 L193.1,118.1M195.7,117.3 L198.9,116.3M193.1,118.1 L187.9,119.1M193.1,118.1 L195.7,117.3M198.9,116.3 L195.7,117.3M196.0,118.9 L200.5,125.6M193.4,119.0 L195.9,118.4M200.5,125.6 L203.1,128.7M200.5,125.6 L197.8,128.0M200.5,125.6 L196.0,118.9M203.1,128.7 L200.5,125.6M197.8,128.0 L200.5,125.6M316.0,200.5 L309.6,200.4 L306.6,198.8M316.0,200.5 L320.8,196.9 L325.3,196.8M330.0,201.5 L325.3,196.8M330.0,201.5 L332.5,203.8 L343.4,205.3M624.9,31.9 L631.1,21.8 L641.9,12.9M624.9,31.9 L622.4,37.4M622.4,37.4 L624.9,31.9M666.0,-4.9 L670.3,-7.8M666.0,-4.9 L660.9,-1.0M666.0,-4.9 L657.1,-12.7 L660.4,-19.2M670.3,-7.8 L666.0,-4.9M670.3,-7.8 L676.0,-11.5M660.4,-19.2 L657.1,-12.7 L666.0,-4.9M63.8,368.1 L84.0,381.3 L86.2,384.4M86.2,384.4 L84.0,381.3 L63.8,368.1M309.2,299.3 L304.6,295.7M309.2,299.3 L315.2,303.8M309.2,299.3 L306.2,302.8 L300.0,306.2M304.6,295.7 L309.2,299.3M315.2,303.8 L309.2,299.3M300.0,306.2 L297.7,304.0M300.0,306.2 L302.4,308.1 L307.5,309.0 L309.9,307.3M300.0,306.2 L306.2,302.8 L309.2,299.3M300.0,306.2 L295.0,309.5M371.6,209.3 L376.3,210.4M371.9,208.5 L373.8,205.3M370.1,209.0 L365.0,207.8M399.5,-95.8 L402.3,-98.5M399.5,-95.8 L401.4,-93.5M399.5,-95.8 L396.6,-99.2M398.4,-104.6 L401.1,-106.2 L398.9,-109.5 L397.9,-108.5 L398.4,-104.6M398.4,-104.6 L397.9,-108.5 L398.9,-109.5 L401.1,-106.2 L398.4,-104.6M398.4,-104.6 L402.3,-98.5M401.4,-93.5 L399.5,-95.8M396.6,-99.2 L399.5,-95.8M474.6,396.9 L473.5,396.3 L473.4,395.6 L474.4,395.7 L474.6,396.9M474.6,396.9 L474.4,395.7 L473.4,395.6 L473.5,396.3 L474.6,396.9M475.1,398.0 L476.9,403.3 L477.3,409.9M490.6,263.5 L485.6,259.0M388.4,57.6 L384.0,58.9 L375.2,57.2M615.2,406.7 L616.3,401.4M615.2,406.7 L609.2,409.3M609.2,409.3 L615.2,406.7M424.0,405.3 L426.4,403.3M424.0,405.3 L423.3,404.4 L426.4,403.3M424.0,405.3 L420.7,406.0M426.4,403.3 L424.0,405.3M426.4,403.3 L423.3,404.4 L424.0,405.3M426.4,403.3 L427.1,400.8M420.7,406.0 L424.0,405.3M420.0,406.1 L419.0,402.5 L419.8,401.3M420.0,406.1 L416.8,408.6M419.8,401.3 L419.0,402.5 L420.0,406.1M540.1,497.7 L543.1,500.0M276.2,363.9 L278.2,361.7M264.2,351.5 
38077L265.5,350.1 L267.3,351.5M542.7,487.7 L540.4,490.4M542.7,487.7 L548.7,491.7M542.7,487.7 L539.2,484.7 L533.1,491.1 L535.4,493.2M540.4,490.4 L542.7,487.7M535.4,493.2 L533.1,491.1 L539.2,484.7 L542.7,487.7M333.2,232.9 L337.2,222.5M334.2,212.4 L331.3,219.8M375.7,384.0 L377.6,381.7M374.2,379.8 L377.6,381.7M441.4,276.8 L440.1,273.3M440.1,273.3 L441.4,276.8M764.0,602.0 L769.7,597.1M764.0,602.0 L757.0,593.6M764.0,602.0 L758.0,607.5M757.0,593.6 L764.0,602.0M332.3,236.7 L329.1,246.5M33.7,420.8 L42.3,427.6M67.3,434.3 L42.3,427.6M-93.3,266.1 L-94.7,270.5M-92.4,272.1 L-94.7,270.5M-213.8,126.7 L-212.6,134.7M320.4,352.4 L323.8,348.5M320.4,352.4 L318.3,355.6 L318.5,358.4M318.7,350.8 L311.4,344.8M323.8,348.5 L320.4,352.4M323.8,348.5 L327.6,344.3M318.5,358.4 L321.7,358.4 L325.8,361.5 L320.5,368.2 L317.1,365.2M318.5,358.4 L314.4,362.9 L317.1,365.2M318.5,358.4 L319.0,361.6 L317.1,365.2M318.5,358.4 L318.3,355.6 L320.4,352.4M317.1,365.2 L320.5,368.2 L325.8,361.5 L321.7,358.4 L318.5,358.4M317.1,365.2 L314.4,362.9 L318.5,358.4M317.1,365.2 L319.0,361.6 L318.5,358.4M317.1,365.2 L312.8,371.1M312.8,371.1 L307.8,376.7M312.8,371.1 L317.1,365.2M265.2,73.2 L260.3,79.1 L256.3,81.4M257.0,73.1 L255.3,77.3 L256.3,81.4M694.6,711.3 L695.3,718.4M304.4,118.9 L306.8,121.5M304.4,118.9 L304.4,118.1 L300.4,114.6 L300.0,115.7 L304.4,118.9M304.4,118.9 L300.0,115.7 L300.4,114.6 L304.4,118.1 L304.4,118.9M306.8,121.5 L304.4,118.9M306.8,121.5 L303.5,124.4M306.8,121.5 L309.9,118.1 L310.3,115.5M-209.7,86.3 L-210.1,82.8M-209.7,86.3 L-209.2,97.5 L-212.9,105.0M-210.1,82.8 L-209.7,86.3M-210.1,82.8 L-219.8,83.7M-210.1,82.8 L-203.3,82.2M-212.9,105.0 L-209.2,97.5 L-209.7,86.3M452.4,150.9 L449.6,148.3M452.4,150.9 L457.1,155.2M446.5,151.5 L449.6,148.3M246.5,262.7 L246.4,266.9 L248.2,272.9M248.2,272.9 L252.9,273.0M248.2,272.9 L246.4,266.9 L246.5,262.7M248.2,272.9 L238.6,272.8M252.9,273.0 L248.2,272.9M252.9,273.0 L259.1,269.4M238.6,272.8 L234.7,268.5M238.6,272.8 L248.2,272.9M414.3,288.8 L416.2,291.1M414.3,288.8 L412.7,286.8M536.3,482.2 L537.5,482.3 L537.1,483.7 L531.0,489.2M531.0,489.2 L537.1,483.7 L537.5,482.3 L536.3,482.2M-62.1,210.6 L-69.0,213.3M-109.5,348.5 L-106.9,342.1M-101.5,346.1 L-99.7,348.4M-101.5,346.1 L-106.9,342.1M619.9,42.1 L621.9,38.3M619.9,42.1 L625.6,44.7 L632.4,44.3 L647.7,32.9 L664.4,33.7M619.9,42.1 L612.6,54.6M619.9,42.1 L613.2,38.5 L610.0,30.3M600.0,41.1 L608.6,51.6 L612.6,54.6M600.0,41.1 L587.6,25.8M616.9,114.3 L613.0,109.4M616.9,114.3 L617.6,118.7 L616.1,122.4 L613.8,127.1 L610.3,130.4M560.7,329.6 L563.6,333.8M559.3,329.6 L555.4,330.7M563.6,333.8 L560.7,329.6M582.6,359.5 L580.2,356.3M-102.2,174.3 L-101.7,177.3 L-103.1,180.7M595.9,297.7 L598.3,300.9M595.9,297.7 L593.7,294.8M603.4,297.1 L605.4,299.7M603.4,297.1 L598.3,300.9M619.3,329.2 L614.8,323.2M619.3,329.2 L615.5,332.1M619.3,329.2 L627.1,323.3 L630.5,313.5 L629.0,313.0M629.0,313.0 L630.5,313.5 L627.1,323.3 L619.3,329.2M496.1,296.0 L494.0,299.8M497.0,301.6 L494.0,299.8M344.3,35.7 L343.9,36.9 L345.0,37.2M344.3,35.7 L345.7,27.2M540.3,-20.2 L553.6,1.5M540.3,-20.2 L527.1,-41.8 L523.8,-55.0M536.8,-22.8 L538.9,-19.3M536.8,-22.8 L531.5,-31.0M515.4,256.3 L517.7,258.3M508.8,256.3 L508.2,259.0M508.8,256.3 L506.7,254.8 L503.3,255.2M509.4,256.3 L513.2,256.3M503.3,255.2 L501.9,257.5M503.3,255.2 L506.7,254.8 L508.8,256.3M85.5,36.5 L92.5,42.5M363.0,104.1 L359.4,100.3 L360.6,97.3M329.7,201.7 L323.2,205.9M343.4,205.3 L332.5,203.8 L330.0,201.5M323.2,205.9 L329.7,201.7M423.2,314.2 L425.9,316.8M423.2,314.2 L428.7,308.0M664.4,33.7 L663.2,39.5M664.4,33.7 L677.0,34.1 L688.9,28.5 L693.2,30.5 L693.8,33.6 L692.5,38.2M664.4,33.7 L647.7,32.9 L632.4,44.3 L625.6,44.7 L619.9,42.1M663.2,39.5 L659.7,42.5 L657.9,42.2M663.2,39.5 L664.4,33.7M692.5,38.2 L693.8,33.6 L693.2,30.5 L688.9,28.5 L677.0,34.1 L664.4,33.7M99.5,12.7 L101.4,16.0 L101.1,20.6M97.1,19.1 L101.1,20.6M525.8,585.6 L529.4,586.1M525.8,585.6 L524.2,589.1M529.4,586.1 L525.8,585.6M524.2,589.1 L525.8,585.6M556.7,264.7 L562.6,269.7M555.9,264.2 L552.8,261.5M574.1,620.5 L555.1,636.7M574.1,620.5 L575.2,622.8M574.1,620.5 L571.5,614.6M555.1,636.7 L574.1,620.5M575.2,622.8 L577.6,628.4M575.2,622.8 L574.1,620.5M595.9,676.6 L597.5,673.2 L605.6,666.9M620.5,689.7 L621.2,693.1M621.8,689.1 L620.0,687.4M488.2,395.9 L489.6,390.8M137.8,133.5 L131.9,135.4M140.0,132.9 L150.9,129.6M459.8,484.7 L453.1,482.5 L450.5,484.1M450.5,484.1 L453.1,482.5 L459.8,484.7M49.3,533.4 L52.3,529.1M49.3,533.4 L53.1,535.0 L55.6,532.7M52.3,529.1 L49.3,533.4M52.3,529.1 L53.9,526.6M52.3,529.1 L55.8,529.7 L55.6,532.7M48.5,534.5 L45.1,539.1M55.6,532.7 L57.6,529.5M55.6,532.7 L55.8,529.7 L52.3,529.1M55.6,532.7 L53.1,535.0 L49.3,533.4M-6.2,42.9 L8.0,48.6M-2.8,61.4 L5.3,58.4 L7.1,55.2 L8.0,48.6M555.7,516.2 L549.3,523.3M555.7,516.2 L567.4,501.0 L575.3,485.7M571.6,466.5 L566.8,467.9M-12.7,582.5 L-21.7,594.2M-12.7,582.5 L-21.8,578.7M364.7,206.7 L366.3,203.6M365.0,207.8 L370.1,209.0M-211.7,242.6 L-217.2,244.6M690.0,753.0 L686.2,754.4M471.7,459.6 L471.6,467.6 L469.6,469.1M535.9,339.1 L539.3,337.9M539.3,337.9 L535.9,339.1M122.4,649.2 L131.3,661.6M122.4,649.2 L113.7,636.5M122.4,649.2 L127.2,645.7M416.1,334.5 L413.7,341.2M4
3807716.1,334.5 L427.1,338.6M427.1,338.6 L421.7,353.0M427.1,338.6 L430.3,339.1M427.1,338.6 L416.1,334.5M353.7,593.6 L354.3,597.3M353.7,593.6 L343.1,605.5 L344.3,610.1M353.7,593.6 L353.2,588.3M354.3,597.3 L354.8,599.7M354.3,597.3 L353.7,593.6M344.3,610.1 L343.1,605.5 L353.7,593.6M353.2,588.3 L353.7,593.6M353.2,588.3 L352.7,585.5M174.2,-62.5 L172.2,-72.0M174.2,-62.5 L156.9,-52.6M174.2,-62.5 L182.7,-62.7 L188.2,-67.9M172.2,-72.0 L174.2,-62.5M172.2,-72.0 L170.8,-75.7 L158.5,-69.3M156.9,-52.6 L147.7,-48.2M156.9,-52.6 L174.2,-62.5M156.9,-52.6 L152.8,-70.5 L156.6,-74.1M188.2,-67.9 L182.7,-62.7 L174.2,-62.5M529.9,635.6 L532.8,633.7M529.9,635.6 L523.2,640.0M396.9,410.9 L401.0,416.2 L401.3,418.3M396.9,410.9 L394.2,412.4 L392.7,415.7M396.9,410.9 L403.2,410.5M401.3,418.3 L401.0,416.2 L396.9,410.9M-181.6,209.0 L-182.4,205.7 L-179.4,206.5M345.1,313.8 L340.2,315.0 L335.9,313.3M-35.2,571.0 L-45.1,565.7 L-47.4,561.7M353.1,132.8 L362.9,123.8M523.8,167.0 L524.8,157.3M507.9,150.2 L509.8,151.0 L520.4,146.8 L525.2,152.4 L526.0,155.6 L524.8,157.3M507.9,150.2 L518.9,143.1 L550.4,126.9 L564.5,116.2 L572.8,107.5M507.9,150.2 L500.4,156.0M259.1,269.4 L252.9,273.0M266.5,277.5 L259.6,269.1M266.5,277.5 L268.5,279.9M-219.8,83.7 L-210.1,82.8M-219.8,83.7 L-219.8,79.5M-203.3,82.2 L-210.1,82.8M-203.3,82.2 L-176.7,81.8M462.9,415.0 L460.2,417.6M270.7,98.8 L271.9,103.9M-46.4,634.7 L-36.8,624.6M401.3,155.7 L405.6,160.7 L413.5,164.0M631.3,-14.3 L627.3,-16.1 L611.6,-16.1M631.3,-14.3 L624.8,-7.6 L623.0,-2.8 L625.8,10.6M631.3,-14.3 L644.2,-28.7 L646.3,-36.1 L646.2,-41.7M611.6,-16.1 L612.2,-20.3M611.6,-16.1 L627.3,-16.1 L631.3,-14.3M611.6,-16.1 L607.7,-8.9 L605.0,-7.0 L602.0,-5.6 L596.0,-6.6M625.8,10.6 L623.0,-2.8 L624.8,-7.6 L631.3,-14.3M646.2,-41.7 L646.3,-36.1 L644.2,-28.7 L631.3,-14.3M646.2,-41.7 L647.0,-47.0 L656.0,-60.8M621.9,38.3 L619.9,42.1M610.0,30.3 L613.2,38.5 L619.9,42.1M604.3,613.8 L601.8,614.4M157.5,324.3 L168.3,295.1M157.5,324.3 L149.4,345.5M160.4,320.5 L158.7,324.8M160.4,320.5 L163.0,316.4 L166.6,314.4 L211.8,315.8 L217.8,314.3 L235.9,306.4 L253.4,305.0M160.4,320.5 L170.0,295.1M161.9,326.2 L159.0,333.4M161.9,326.2 L158.7,324.8M42.3,543.2 L40.7,545.4M42.9,543.6 L47.3,546.3M42.7,542.5 L44.5,540.0M42.7,542.5 L44.8,537.4M40.7,545.4 L42.3,543.2M32.7,556.7 L35.9,552.0M31.0,559.1 L28.8,562.6M472.1,186.0 L474.5,183.4M470.8,674.1 L471.1,682.4M476.0,682.8 L471.1,682.4M423.0,490.6 L420.3,493.6M422.1,495.9 L420.3,493.6M650.7,113.5 L654.2,115.8M650.7,113.5 L644.7,109.4M654.2,115.8 L658.3,118.6M654.2,115.8 L650.7,113.5M644.7,109.4 L650.7,113.5M644.7,109.4 L640.1,105.3M670.0,126.6 L664.1,122.6M670.0,126.6 L673.7,129.3 L675.1,132.5M-73.9,600.6 L-79.7,599.6 L-83.7,597.0M-73.9,600.6 L-59.0,610.9M-62.0,616.0 L-59.0,610.9M289.3,325.4 L294.1,329.6M224.6,124.1 L224.0,121.2 L225.7,117.1 L224.3,111.3 L228.7,110.4 L232.1,116.9M224.6,124.1 L225.1,130.1 L224.7,130.1 L222.7,129.2 L224.6,124.1M224.6,124.1 L222.7,129.2 L224.7,130.1 L225.1,130.1 L224.6,124.1M232.1,116.9 L234.2,120.2M232.1,116.9 L228.7,110.4 L224.3,111.3 L225.7,117.1 L224.0,121.2 L224.6,124.1M232.1,116.9 L235.5,115.1M234.2,120.2 L232.1,116.9M438.2,234.3 L432.4,233.0M438.2,234.3 L443.0,228.4M432.4,233.0 L433.7,226.8M432.4,233.0 L438.2,234.3M443.0,228.4 L438.2,234.3M486.1,487.5 L478.1,480.6M480.6,495.8 L481.1,493.6 L478.7,486.2M483.7,492.9 L478.7,486.2M746.4,589.9 L744.8,592.7M746.4,589.9 L748.3,584.8M41.4,515.4 L47.4,518.3M41.4,515.4 L37.7,519.8M277.5,60.3 L290.3,73.9 L292.0,77.5M292.0,77.5 L292.5,87.5M292.0,77.5 L290.3,73.9 L277.5,60.3M457.1,155.2 L452.4,150.9M602.0,487.0 L590.4,489.2 L585.4,492.1 L574.0,511.3 L565.3,522.7M602.0,487.0 L610.7,483.0 L616.9,481.7M647.7,488.7 L650.7,492.1M647.7,488.7 L649.1,486.4 L649.1,480.7 L647.5,477.8 L644.9,476.6M647.7,488.7 L640.3,483.2 L636.4,481.8 L616.9,481.7M650.7,492.1 L647.7,488.7M650.7,492.1 L652.4,499.5M673.0,757.8 L678.1,757.2M296.5,94.3 L293.3,98.4M562.6,269.7 L556.7,264.7M-166.4,209.8 L-166.6,207.0M-166.4,209.8 L-166.5,213.4 L-170.9,217.3M-165.9,209.8 L-160.5,209.0M-170.9,217.3 L-166.5,213.4 L-166.4,209.8M320.2,334.3 L321.3,332.1M320.6,334.8 L336.1,349.0M321.3,332.1 L319.4,333.7M321.3,332.1 L320.2,334.3M311.4,344.8 L314.6,340.9M311.4,344.8 L304.2,353.1M311.4,344.8 L318.7,350.8M314.6,340.9 L311.4,344.8M314.6,340.9 L317.8,337.1M352.9,264.8 L350.9,270.1M352.9,264.8 L354.5,260.5M413.9,406.4 L416.8,408.6M418.8,410.0 L416.8,408.6M-66.7,674.9 L-70.6,670.2M-70.6,670.2 L-66.7,674.9M-70.6,670.2 L-76.0,668.3M-114.4,200.9 L-129.0,207.1M-131.1,204.3 L-129.0,207.1M341.0,509.0 L344.0,481.9 L343.1,477.5M343.1,477.5 L335.5,479.5M343.1,477.5 L346.7,476.3M343.1,477.5 L344.0,481.9 L341.0,509.0M564.1,357.7 L565.7,359.8M564.1,357.7 L557.8,349.2M466.0,303.9 L475.4,288.5M710.5,89.7 L706.0,81.8M640.1,598.6 L633.9,599.1M640.1,598.6 L644.7,597.5M634.1,590.3 L633.9,599.1M638.9,621.3 L644.8,619.4M638.9,621.3 L634.0,620.5M250.1,495.3 L243.7,507.3M44.0,292.9 L45.7,295.0M44.0,292.9 L41.3,289.8M44.0,292.9 L41.0,295.4M45.7,295.0 L44.0,292.9M41.3,289.8 L44.0,292.9M41.0,295.4 L44.0,292.9M44.6,292.4 L41.9,289.2M44.6,292.4 L46.3,294.5M285.0,207.0 L289.1,204.0M285.0,207.0 L277.5,212.5M277.5,212.5 L285.0,207.0M277.5,212.5 L273.2,214.4M78.0,704.4 L57.6,699.2M78.0,704.4 L95.1,708.6M78.0,704.4 L79.9,698.7M-211.0,252.0 L-213.1,253.8M-211.0,252.0 L-213.0,248.4 L-211.6,247.7 L-209.6,251.1 L-211.0,252.0M-211.0,252.0 L-209.6,251.1 L-211.6,247.7 L-213.0,248.4 L-211.0,252.0M-176.7,258.7 L-171.6,261.3M-176.7,258.7 L-181.5,259.4M-176.7,258.7 L-176.4,253.5 L-178.5,251.5 L-180.8,251.8M-180.8,251.8 L-178.5,251.5 L-176.4,253.5 L-176.7,258.7M618.6,631.8 L617.3,629.8M617.3,629.8 L618.6,631.8M269.9,309.6 L270.2,313.1M269.9,309.6 L274.4,309.8M269.9,309.6 L266.3,309.7 L265.4,311.0M554.5,427.1 L543.2,420.7M517.4,412.0 L516.6,415.5M517.4,412.0 L521.5,413.1M516.6,415.5 L515.1,420.8M516.6,415.5 L517.4,412.0M521.5,413.1 L517.4,412.0M508.5,401.8 L510.6,394.7M156.6,-74.1 L152.8,-70.5 L156.9,-52.6M120.0,-42.5 L130.3,-48.8M423.2,462.7 L436.3,453.7M697.6,193.2 L703.2,187.6M697.6,193.2 L698.4,194.3 L697.2,195.6 L696.3,193.5M457.9,619.4 L460.3,616.4M395.4,424.5 L393.5,419.3M395.4,424.5 L398.7,424.8 L402.0,427.1M395.4,424.5 L393.0,428.8M402.0,427.1 L398.7,424.8 L395.4,424.5M393.0,428.8 L392.1,427.5 L393.5,425.2M393.0,428.8 L395.4,424.5M393.0,428.8 L389.8,431.2M415.3,236.1 L406.2,229.9M415.3,237.1 L416.0,242.8M406.2,229.9 L415.3,236.1M400.4,225.9 L403.5,228.0M400.4,225.9 L394.7,222.1M400.4,225.9 L397.6,232.1M403.5,228.0 L400.4,225.9M397.6,232.1 L400.4,225.9M316.0,200.8 L315.0,207.6M294.7,198.8 L297.3,197.7 L299.1,194.6M607.7,409.9 L588.3,417.3M240.7,29.3 L234.4,34.5M236.9,1.0 L237.8,-2.1 L236.0,-3.7 L235.3,-2.7 L236.9,1.0M236.9,1.0 L235.3,-2.7 L236.0,-3.7 L237.8,-2.1 L236.9,1.0M402.4,-60.5 L401.8,-59.5 L402.2,-58.7 L402.6,-59.4 L402.4,-60.5M402.4,-60.5 L402.6,-59.4 L402.2,-58.7 L401.8,-59.5 L402.4,-60.5M402.4,-60.5 L404.0,-69.4 L408.7,-75.7 L408.6,-79.1M408.6,-79.1 L402.0,-75.2M408.6,-79.1 L408.7,-75.7 L404.0,-69.4 L402.4,-60.5M612.2,-20.3 L612.9,-25.8M612.2,-20.3 L611.6,-16.1M596.0,-6.6 L594.6,-3.2M596.0,-6.6 L602.0,-5.6 L605.0,-7.0 L607.7,-8.9 L611.6,-16.1M596.0,-6.6 L596.5,-9.8 L592.2,-17.5M-220.9,83.7 L-219.8,79.5M278.9,202.9 L276.0,209.1 L277.2,212.1M277.2,212.1 L276.0,209.1 L278.9,202.9M572.8,33.0 L556.5,6.2M47.3,546.3 L42.9,543.6M605.4,299.7 L603.4,297.1M582.0,313.0 L585.0,310.9M582.0,313.0 L584.2,316.0M582.0,313.0 L574.6,318.7M574.6,318.7 L582.0,313.0M574.6,318.7 L572.5,315.8M581.1,311.9 L577.9,307.7M575.2,319.4 L576.7,321.5M572.5,315.8 L574.6,318.7M610.3,130.4 L613.8,127.1 L616.1,122.4 L617.6,118.7 L616.9,114.3M610.3,130.4 L611.8,137.8M610.3,130.4 L604.6,121.9 L599.0,118.5M311.5,246.8 L310.1,252.5M311.5,246.8 L312.6,242.7M306.6,251.5 L310.1,252.5M306.6,251.5 L298.2,249.1M314.4,253.7 L310.1,252.5M247.6,116.0 L250.5,117.1M247.6,116.0 L243.9,119.8M247.6,116.0 L248.6,111.9 L246.5,103.0M250.5,117.1 L247.6,116.0M243.9,119.8 L241.2,121.2M243.9,119.8 L239.6,111.6M243.9,119.8 L247.6,116.0M246.5,103.0 L242.3,104.1M246.5,103.0 L248.6,111.9 L247.6,116.0M246.5,103.0 L254.8,100.7M239.6,111.6 L243.9,119.8M594.6,-3.2 L596.0,-6.6M592.2,-17.5 L596.5,-9.8 L596.0,-6.6M592.2,-17.5 L589.5,-21.3M416.7,416.3 L415.0,417.8 L413.1,414.8M297.7,304.0 L300.0,306.2M309.9,307.3 L307.5,309.0 L302.4,308.1 L300.0,306.2M295.0,309.5 L299.0,313.9M295.0,309.5 L300.0,306.2M295.0,309.5 L290.3,305.8M299.0,313.9 L295.0,309.5M298.1,314.9 L293.7,310.2M299.9,314.9 L301.9,317.1M280.1,294.1 L276.9,294.1M280.1,294.1 L276.3,289.6M276.9,294.1 L280.1,294.1M276.9,294.1 L277.0,298.4M276.9,294.1 L225.3,294.9M281.0,294.1 L282.1,296.9M276.3,289.6 L273.2,285.7M276.3,289.6 L280.1,294.1M-124.4,214.2 L-121.9,213.9M607.3,388.2 L609.9,388.7M98.0,357.6 L97.0,355.0 L100.6,351.9 L102.4,355.0 L104.7,356.2 L108.1,353.4M426.6,195.1 L423.7,200.8M426.8,194.7 L428.3,192.1M423.7,200.8 L421.2,208.3M423.7,200.8 L426.6,195.1M454.5,195.1 L450.9,199.2M454.5,195.1 L467.3,206.3 L485.9,226.9M450.9,199.2 L454.5,195.1M450.9,199.2 L449.0,200.7 L438.5,202.2 L433.8,200.9M453.9,194.7 L437.3,181.1M485.9,226.9 L49
380776.1,236.3M485.9,226.9 L467.3,206.3 L454.5,195.1M485.9,226.9 L489.7,233.6 L491.0,241.7M575.9,458.3 L588.8,460.7M575.9,458.3 L576.8,465.6M593.9,461.9 L599.6,463.2M593.9,461.9 L588.8,460.7M415.7,237.1 L428.6,239.7M416.0,242.8 L416.1,247.6M416.0,242.8 L415.3,237.1M598.5,478.4 L585.1,475.4M585.1,475.4 L598.5,478.4M585.1,475.4 L586.7,467.9M585.1,475.4 L584.0,478.2 L577.9,477.1M693.4,167.8 L696.0,169.9M693.4,167.8 L688.7,164.0M553.0,357.9 L544.1,364.9 L546.8,368.1 L555.7,361.7M507.9,269.2 L511.3,272.0M-157.0,177.3 L-155.2,184.5M-162.6,186.0 L-174.5,187.1M-162.6,186.0 L-155.2,184.5M427.1,400.8 L426.4,403.3M427.1,400.8 L419.9,396.4M427.1,400.8 L431.8,402.6M478.5,246.5 L474.1,246.2M455.0,245.0 L454.7,249.7M454.7,244.6 L449.5,244.2M32.9,43.2 L30.0,39.5 L24.0,35.6M415.3,242.9 L411.6,243.1 L410.1,242.0M416.1,247.6 L416.0,242.8M416.8,229.5 L419.6,230.2M415.6,232.8 L416.3,229.5M437.3,181.1 L433.3,185.6M437.3,181.1 L453.9,194.7M437.3,181.1 L433.2,177.8M438.0,180.3 L454.8,193.7M438.0,180.3 L420.5,166.0M438.0,180.3 L443.2,174.6M433.3,185.6 L437.3,181.1M433.3,185.6 L429.3,190.7M433.2,177.8 L430.8,175.9M433.2,177.8 L437.3,181.1M274.4,309.8 L269.9,309.6M265.4,311.0 L266.3,309.7 L269.9,309.6M586.7,467.9 L601.3,471.2M586.7,467.9 L576.8,465.6M586.7,467.9 L585.1,475.4M555.1,515.7 L543.0,505.0M549.3,523.3 L555.7,516.2M404.6,547.4 L401.9,546.2M728.5,606.9 L725.4,603.5M-172.8,65.8 L-161.3,72.0M-161.3,72.0 L-172.8,65.8M478.8,351.2 L485.7,347.9M485.7,347.9 L478.8,351.2M42.4,683.6 L50.5,678.9M41.9,682.7 L37.9,675.3M50.5,678.9 L42.4,683.6M315.0,207.6 L316.0,200.8M168.5,-18.7 L172.1,-22.5M-144.8,270.3 L-143.4,264.4M-144.8,270.3 L-147.9,274.4M-147.9,274.4 L-144.8,270.3M-147.9,274.4 L-149.0,273.5 L-145.9,269.5M-143.4,264.4 L-144.8,270.3M-54.9,302.7 L-50.1,304.6 L-28.2,299.2M-28.2,299.2 L-50.1,304.6 L-54.9,302.7M-28.2,299.2 L-24.6,300.1 L-19.7,305.8M543.4,346.5 L542.2,344.0M-156.7,117.7 L-159.2,115.4M-156.7,117.7 L-149.4,124.8 L-145.9,126.4M-156.7,117.7 L-162.4,124.0 L-165.8,133.1M-159.2,115.4 L-156.7,117.7M-159.2,115.4 L-163.2,112.0 L-170.8,109.4M-165.8,133.1 L-173.2,141.0M-165.8,133.1 L-162.4,124.0 L-156.7,117.7M-170.8,109.4 L-163.2,112.0 L-159.2,115.4M444.9,413.1 L448.5,415.3M444.9,413.1 L441.3,409.1M-99.7,348.4 L-101.5,346.1M270.5,449.5 L269.6,451.6 L275.6,465.2M270.5,449.5 L273.4,448.2 L273.7,445.5 L271.0,445.2 L270.5,449.5M270.5,449.5 L271.0,445.2 L273.7,445.5 L273.4,448.2 L270.5,449.5M275.6,465.2 L283.6,471.2 L285.6,474.4M275.6,465.2 L269.6,451.6 L270.5,449.5M275.6,465.2 L273.7,469.0 L271.4,469.6 L252.8,461.3 L249.6,455.3M720.9,26.8 L725.0,21.1 L726.7,15.0M726.7,15.0 L730.7,17.6M726.7,15.0 L724.1,14.1 L721.6,15.3M726.7,15.0 L725.0,21.1 L720.9,26.8M601.3,471.2 L586.7,467.9M162.6,324.2 L164.7,321.6M585.0,-24.1 L582.4,-25.3M585.0,-24.1 L589.5,-21.3M582.7,-26.6 L585.4,-25.4M582.7,-26.6 L579.6,-27.9M421.7,353.0 L427.1,338.6M430.3,339.1 L427.1,338.6M-195.1,283.7 L-198.2,285.1M-195.1,283.7 L-194.1,280.7 L-191.4,280.5M-195.1,283.7 L-192.1,287.2M-192.1,326.9 L-193.6,325.0 L-197.0,326.2M-197.0,326.2 L-193.6,325.0 L-192.1,326.9M442.6,238.6 L444.6,241.4M444.6,241.4 L442.6,238.6M444.6,241.4 L446.5,243.7M351.4,645.4 L352.6,640.5 L360.3,635.1 L361.0,631.8 L358.7,624.0M351.4,645.4 L352.3,646.2 L351.5,646.9 L350.7,646.2 L351.4,645.4M351.4,645.4 L350.7,646.2 L351.5,646.9 L352.3,646.2 L351.4,645.4M276.7,175.1 L274.0,177.5 L275.1,181.1M276.7,175.1 L280.5,178.5 L281.4,183.1M595.6,337.5 L598.5,335.3M595.6,337.5 L592.9,339.5M592.9,339.5 L595.6,337.5M328.1,211.1 L326.7,214.6M129.7,130.1 L131.0,132.6M327.8,511.4 L329.6,509.8M329.6,509.8 L327.8,511.4M329.6,509.8 L330.6,506.4M433.7,226.8 L432.4,233.0M547.8,645.6 L548.3,648.1M548.3,648.1 L547.8,645.6M-191.4,280.5 L-194.1,280.7 L-195.1,283.7M-192.1,287.2 L-195.1,283.7M-114.5,224.2 L-115.0,221.0M108.7,282.7 L117.7,280.9M108.7,282.7 L107.8,278.1M108.7,282.7 L102.1,284.0M109.2,284.8 L110.0,288.5M107.8,278.1 L108.7,282.7M107.8,278.1 L107.2,275.7M102.1,284.0 L108.7,282.7M102.1,284.0 L90.6,286.5 L82.3,284.5M415.2,578.2 L413.5,579.6 L405.9,580.4M391.2,39.9 L388.9,37.3M543.0,505.0 L555.1,515.7M111.8,297.1 L112.9,303.1M111.8,297.1 L113.8,302.8M112.9,303.1 L118.1,307.9 L125.2,308.3M112.9,303.1 L111.8,297.1M113.8,302.8 L111.8,297.1M113.8,302.8 L118.1,306.9 L125.0,307.4M626.4,413.9 L630.5,415.0M626.4,413.9 L620.4,409.6M626.4,413.9 L622.7,418.6M620.4,409.6 L626.4,413.9M622.7,418.6 L626.4,413.9M586.0,487.6 L587.6,482.0M216.2,295.2 L225.3,294.9M225.3,294.9 L216.2,295.2M225.3,294.9 L276.9,294.1M11.7,612.9 L0.0,603.3M30.3,609.9 L34.9,608.4M22.9,608.0 L21.2,610.1M10.1,624.4 L12.8,621.1M12.8,621.1 L10.1,624.4M28.9,615.1 L25.6,619.2M25.6,619.2 L28.9,615.1M29.1,615.3 L32.7,618.2M17.0,629.8 L19.2,627.1M19.2,627.1 L17.0,629.8M-65.2,695.7 L-67.8,694.1 L-67.1,692.0M-65.2,695.7 L-70.3,695.0M-65.2,695.7 L-61.4,696.3M-61.4,696.3 L-65.2,695.7M-61.4,696.3 L-49.6,698.0M-92.1,692.0 L-110.4,693.9M-92.1,692.0 L-87.7,692.5M-110.4,693.9 L-92.1,692.0M-87.7,692.5 L-92.1,692.0M20.6,606.1 L18.7,608.2M59.3,734.3 L50.8,728.6M59.3,734.3 L58.3,736.8 L58.8,739.1 L63.7,746.1M59.3,734.3 L69.0,739.0M50.8,728.6 L59.3,734.3M69.0,739.0 L76.1,742.0 L78.1,744.5 L77.1,749.7 L67.2,742.9M69.0,739.0 L67.2,742.9M69.0,739.0 L59.3,734.3M67.2,742.9 L63.7,746.1M67.2,742.9 L69.0,739.0M67.2,742.9 L77.1,749.7 L78.1,744.5 L76.1,742.0 L69.0,739.0M60.3,748.3 L63.7,746.1M60.3,748.3 L45.8,730.4M60.6,748.9 L63.7,746.1M45.8,730.4 L60.3,748.3M15.3,707.1 L21.6,709.1 L32.3,715.1 L45.1,729.5M15.3,707.1 L2.4,704.9M15.3,707.1 L4.9,706.3M15.7,706.1 L18.3,699.5M45.1,729.5 L32.3,715.1 L21.6,709.1 L15.3,707.1M2.4,704.9 L-1.9,704.4M2.4,704.9 L15.3,707.1M4.9,706.3 L1.5,705.9M4.9,706.3 L0.1,708.3M4.9,706.3 L15.3,707.1M0.1,708.3 L-3.0,710.2M0.1,708.3 L4.9,706.3M0.1,708.3 L1.5,705.9M-3.0,710.2 L-6.6,712.3M-3.0,710.2 L0.1,708.3M1.5,705.9 L4.9,706.3M1.5,705.9 L-2.8,705.4M1.5,705.9 L0.1,708.3M-2.8,705.4 L1.5,705.9M-2.8,705.4 L-16.1,703.6M-1.9,704.4 L-5.1,704.0M-1.9,704.4 L2.4,704.9M34.8,687.9 L30.5,690.4M46.7,729.7 L53.7,722.9M-20.2,707.0 L-20.9,713.4 L-22.9,718.1M-20.2,707.0 L-19.8,703.0M-20.2,707.0 L-18.4,704.2 L-16.1,703.6M-21.3,705.7 L-21.0,702.9M-21.3,705.7 L-22.3,703.4 L-24.5,702.4M-21.3,705.7 L-22.9,718.1M-21.0,702.9 L-21.3,705.7M-21.0,702.9 L-24.5,702.4M-19.9,694.2 L-21.4,700.5 L-25.4,701.3M-19.9,694.2 L-20.9,702.0M-19.9,694.2 L-18.5,682.0M-17.5,675.2 L-18.5,682.0M-15.9,665.1 L-14.2,655.3M-16.2,667.0 L-17.2,673.1M-16.1,703.6 L-19.8,703.0M-16.1,703.6 L-2.8,705.4M-16.1,703.6 L-18.4,704.2 L-20.2,707.0M-24.5,702.4 L-30.9,701.3M-24.5,702.4 L-21.0,702.9M-24.5,702.4 L-22.3,703.4 L-21.3,705.7M-39.7,699.8 L-32.9,700.8M-39.7,699.8 L-49.6,698.0M-13.4,650.3 L-13.0,647.1M-13.4,650.3 L-14.2,655.3M-13.0,647.1 L-13.4,650.3M-13.0,647.1 L-12.3,642.3M-14.2,655.3 L-15.9,665.1M-14.2,655.3 L-13.4,650.3M-12.3,642.3 L-13.0,647.1M-12.7,640.9 L-14.7,642.4M-11.5,635.3 L-11.0,627.2M-11.5,635.3 L-12.1,640.8M-14.7,642.4 L-13.0,639.7M-14.7,642.4 L-12.7,640.9M-13.0,639.7 L-14.7,642.4M-11.7,636.0 L-12.8,639.4M-11.0,627.2 L-11.5,635.3M-11.0,627.2 L-10.4,621.3M19.5,575.1 L21.0,573.0M21.0,573.0 L19.5,575.1M21.7,574.1 L23.3,571.8M23.3,571.8 L2
380776.7,566.0M23.3,571.8 L21.7,574.1M20.7,575.6 L18.1,578.8M34.8,551.4 L27.0,563.2M35.2,550.8 L41.9,541.3M35.9,552.0 L38.3,548.8M35.9,552.0 L32.7,556.7M27.0,563.2 L25.5,565.6M27.0,563.2 L34.8,551.4M47.4,533.8 L45.8,536.1M53.1,525.4 L48.2,532.7M53.1,525.4 L92.0,457.0M53.9,526.6 L52.3,529.1M53.9,526.6 L57.6,529.5M53.9,526.6 L90.2,462.6 L99.5,442.8M92.0,457.0 L53.1,525.4M92.0,457.0 L98.6,442.3M100.4,438.4 L98.6,442.3M100.4,438.4 L87.6,433.1M100.4,438.4 L107.8,428.9M98.6,442.3 L100.4,438.4M98.6,442.3 L92.0,457.0M87.6,433.1 L100.4,438.4M107.8,428.9 L100.4,438.4M100.7,452.2 L100.2,464.1M100.7,452.2 L101.9,445.2 L99.5,442.8M100.2,464.1 L100.7,452.2M134.8,386.6 L136.4,381.0M134.8,386.6 L126.4,388.5M134.8,386.6 L128.4,405.1M136.4,381.0 L134.8,386.6M136.4,381.0 L135.8,385.9M136.4,381.0 L129.2,375.2M136.4,381.0 L139.3,375.1M136.4,381.0 L143.0,362.5M126.4,388.5 L106.2,395.7M126.4,388.5 L134.8,386.6M128.4,405.1 L123.3,412.8 L117.0,419.5M128.4,405.1 L134.8,386.6M135.8,385.9 L139.3,375.1M135.8,385.9 L136.4,381.0M135.8,385.9 L133.9,393.5M129.2,375.2 L126.3,372.2M129.2,375.2 L136.4,381.0M139.3,375.1 L144.1,361.5M139.3,375.1 L135.8,385.9M139.3,375.1 L136.4,381.0M143.0,362.5 L149.4,345.5M143.0,362.5 L136.4,381.0M141.6,341.0 L139.0,343.3M141.6,341.0 L143.7,343.2 L149.4,345.5M141.6,341.0 L139.1,335.1 L140.0,322.5M142.2,340.5 L139.9,333.3 L140.8,322.6M142.2,340.5 L149.4,345.5M139.6,304.3 L135.0,297.3M139.6,304.3 L139.6,306.9 L137.7,310.2M137.7,310.2 L139.6,306.9 L139.6,304.3M137.3,310.5 L132.4,307.6 L125.0,307.4M137.3,310.5 L140.7,315.9 L140.8,322.6M136.9,311.2 L139.6,315.6 L140.0,322.5M136.9,311.2 L131.3,308.1 L125.2,308.3M125.0,307.4 L118.1,306.9 L113.8,302.8M125.0,307.4 L132.4,307.6 L137.3,310.5M140.8,322.6 L140.7,315.9 L137.3,310.5M140.8,322.6 L139.9,333.3 L142.2,340.5M140.0,322.5 L139.1,335.1 L141.6,341.0M140.0,322.5 L139.6,315.6 L136.9,311.2M140.0,322.5 L136.5,321.9M125.2,308.3 L131.3,308.1 L136.9,311.2M125.2,308.3 L118.1,307.9 L112.9,303.1M168.3,295.1 L157.5,324.3M170.0,295.1 L171.0,292.2M170.0,295.1 L160.4,320.5M170.0,295.1 L172.3,295.9M168.5,294.5 L170.1,290.6M171.0,292.2 L173.0,286.9M171.0,292.2 L170.0,295.1M171.0,292.2 L172.3,295.9M172.3,295.9 L171.0,292.2M172.3,295.9 L170.0,295.1M172.3,295.9 L177.9,299.4 L182.3,307.4 L186.3,311.2 L194.2,313.3 L204.5,314.0 L215.2,313.4 L237.8,304.2 L280.6,302.9M165.9,293.2 L168.3,293.0 L170.1,290.6M170.1,290.6 L168.5,294.5M170.1,290.6 L176.4,274.3M170.1,290.6 L168.3,293.0 L165.9,293.2M138.1,253.0 L139.0,242.3M138.1,253.0 L137.9,254.3 L136.7,254.1 L136.7,253.1 L138.1,253.0M138.1,253.0 L136.7,253.1 L136.7,254.1 L137.9,254.3 L138.1,253.0M523.8,-55.0 L527.1,-41.8 L540.3,-20.2M531.5,-31.0 L536.8,-22.8M581.2,46.5 L578.4,42.0M581.2,46.5 L585.7,55.4 L588.2,64.8M578.4,42.0 L573.8,34.6M578.4,42.0 L581.2,46.5M588.0,77.2 L585.5,76.8M588.0,77.2 L588.2,64.8M588.0,77.2 L584.1,90.9 L578.0,101.2M108.5,428.2 L117.0,419.5M-152.4,3.9 L-153.0,1.6M-152.4,3.9 L-152.1,10.5M-152.1,10.5 L-151.7,20.1M-152.1,10.5 L-152.4,3.9M382.0,416.7 L380.4,416.9 L376.6,413.0M382.9,416.3 L384.0,419.5M382.9,416.3 L380.1,407.4M376.6,413.0 L374.4,410.1M376.6,413.0 L380.4,416.9 L382.0,416.7M295.9,53.2 L302.3,59.9M295.9,53.2 L292.6,49.7M287.9,47.2 L289.3,46.6 L292.6,49.7M324.7,83.3 L318.9,77.3M324.7,83.3 L340.5,100.3 L345.8,99.8 L350.6,103.0M324.7,83.3 L317.6,85.2 L316.4,79.8M324.7,83.3 L328.0,80.3M318.9,77.3 L324.7,83.3M318.9,77.3 L309.3,67.2M350.6,103.0 L345.8,99.8 L340.5,100.3 L324.7,83.3M316.4,79.8 L317.6,85.2 L324.7,83.3M328.0,80.3 L332.2,76.4M328.0,80.3 L324.7,83.3M310.0,89.6 L302.0,89.3 L292.7,91.6M292.7,91.6 L292.5,87.5M292.7,91.6 L302.0,89.3 L310.0,89.6M292.7,91.6 L303.8,90.5 L311.3,91.1M353.0,109.5 L367.0,116.9 L373.2,121.6 L401.4,150.2 L418.5,164.4M292.5,87.5 L292.7,91.6M292.5,87.5 L292.0,77.5M311.3,91.1 L317.0,92.7 L367.2,118.9 L417.7,165.4M311.3,91.1 L303.8,90.5 L292.7,91.6M211.2,211.2 L212.4,208.9M553.4,213.7 L549.4,218.5M503.9,147.1 L495.0,148.7 L495.5,154.1M503.9,147.1 L505.8,147.7 L506.5,146.2 L504.8,145.7 L503.9,147.1M503.9,147.1 L504.8,145.7 L506.5,146.2 L505.8,147.7 L503.9,147.1M523.0,602.5 L521.5,600.5M521.5,600.5 L523.0,602.5M538.6,576.0 L540.8,577.2M538.6,576.0 L537.2,573.6M540.8,577.2 L541.9,579.7M540.8,577.2 L538.6,576.0M537.2,573.6 L538.6,576.0M537.2,573.6 L523.0,550.2 L509.1,536.6M442.6,637.1 L448.1,630.8 L453.7,630.4M482.2,709.3 L464.1,717.0M491.0,671.5 L490.9,674.2M491.0,671.5 L491.2,668.5M550.2,-42.5 L553.3,-40.6M586.0,3.4 L590.3,2.1 L593.7,-1.8M593.7,-1.8 L590.3,2.1 L586.0,3.4M517.7,258.3 L521.3,259.0M517.7,258.3 L515.4,256.3M521.3,259.0 L517.7,258.3M454.8,193.7 L438.0,180.3M119.1,245.3 L113.4,249.3M119.1,245.3 L127.7,239.3M119.1,245.3 L112.2,251.5M113.4,249.3 L119.1,245.3M127.7,239.3 L119.1,245.3M112.2,251.5 L119.1,245.3M112.2,251.5 L108.5,254.6M285.0,305.3 L293.7,310.2M285.0,305.3 L253.4,305.0M293.7,310.2 L285.0,305.3M293.7,310.2 L298.1,314.9M253.4,305.0 L285.0,305.3M253.4,305.0 L235.9,306.4 L217.8,314.3 L211.8,315.8 L166.6,314.4 L163.0,316.4 L160.4,320.5M286.8,299.3 L287.1,303.2 L290.3,305.8M286.8,299.3 L285.2,303.9M290.3,305.8 L287.1,303.2 L286.8,299.3M290.3,305.8 L285.2,303.9M290.3,305.8 L295.0,309.5M106.6,254.8 L109.4,252.5M106.6,254.8 L103.7,257.5M109.4,252.5 L106.6,254.8M109.4,252.5 L111.7,250.7M103.7,257.5 L106.6,254.8M467.9,-34.5 L462.2,-31.5M467.9,-34.5 L475.4,-39.8M462.2,-31.5 L457.8,-26.3M462.2,-31.5 L467.9,-34.5M475.4,-39.8 L467.9,-34.5M475.4,-39.8 L487.5,-43.6 L498.1,-48.9 L500.2,-52.2M45
380777.8,-26.3 L462.2,-31.5M508.3,-39.6 L513.9,-40.2M508.3,-39.6 L493.1,-38.9M508.3,-39.6 L511.2,-29.5 L508.4,-25.1 L509.3,-17.6 L508.0,-4.4 L503.4,-3.9 L497.7,0.2M465.6,-18.3 L462.8,-21.5 L464.5,-24.7 L471.0,-29.6 L478.6,-32.6M478.6,-32.6 L481.6,-34.4M478.6,-32.6 L471.0,-29.6 L464.5,-24.7 L462.8,-21.5 L465.6,-18.3M481.6,-34.4 L493.1,-38.9M481.6,-34.4 L478.6,-32.6M493.1,-38.9 L508.3,-39.6M493.1,-38.9 L481.6,-34.4M497.7,0.2 L503.4,-3.9 L508.0,-4.4 L509.3,-17.6 L508.4,-25.1 L511.2,-29.5 L508.3,-39.6M78.2,68.3 L81.5,65.6M78.2,68.3 L84.3,82.0M78.2,68.3 L75.0,58.0M75.0,58.0 L78.2,68.3M75.0,58.0 L71.6,43.3M103.2,117.7 L105.4,121.2M103.2,117.7 L106.2,115.8M103.2,117.7 L101.0,114.1M105.4,121.2 L103.2,117.7M105.4,121.2 L108.8,126.4M106.2,115.8 L112.0,111.4 L109.1,107.7M106.2,115.8 L103.2,117.7M101.0,114.1 L97.3,108.2M101.0,114.1 L103.2,117.7M106.0,102.2 L107.1,104.8M107.1,104.8 L106.0,102.2M111.3,130.0 L109.9,128.0M111.3,130.0 L114.5,134.0M109.9,128.0 L111.3,130.0M114.5,134.0 L118.8,140.1M114.5,134.0 L111.3,130.0M118.8,140.1 L115.3,135.8M118.8,140.1 L114.5,134.0M119.6,139.3 L132.0,134.4M117.5,140.6 L113.6,141.8M119.9,139.9 L131.9,135.4M115.3,135.8 L118.8,140.1M122.2,151.4 L120.7,145.1M122.2,151.4 L123.5,159.4M120.7,145.1 L122.2,151.4M123.5,159.4 L122.2,151.4M124.9,175.2 L125.2,177.9M124.9,173.8 L124.1,165.4M130.0,186.4 L122.4,183.9M130.0,186.4 L126.7,182.3M277.5,130.8 L278.3,128.8 L276.5,126.2 L269.8,124.5M277.5,130.8 L273.6,129.4 L265.0,129.8M277.5,130.8 L280.9,134.5 L283.2,141.1 L282.7,144.7 L279.3,151.2M265.0,129.8 L273.6,129.4 L277.5,130.8M265.0,129.8 L257.7,130.1M279.3,151.2 L276.8,164.9 L284.8,178.8 L287.1,191.4M279.3,151.2 L282.7,144.7 L283.2,141.1 L280.9,134.5 L277.5,130.8M279.3,151.2 L261.3,151.8M261.3,151.8 L252.5,155.8M261.3,151.8 L279.3,151.2M252.5,155.8 L261.3,151.8M247.5,158.2 L250.5,156.8M246.5,158.7 L235.9,161.1 L220.8,159.9M250.5,156.8 L247.5,158.2M156.3,173.7 L163.2,170.3M155.8,174.6 L150.0,183.5M163.2,170.3 L171.5,168.4M163.2,170.3 L156.3,173.7M170.7,203.8 L172.2,207.4M170.7,203.8 L179.7,205.0M172.2,207.4 L170.7,203.8M172.2,207.4 L170.9,211.7M172.2,207.4 L173.0,210.2M169.6,203.4 L163.4,201.2 L165.5,202.5M179.7,205.0 L173.0,210.2M179.7,205.0 L170.7,203.8M162.6,235.2 L159.0,233.4M149.8,228.6 L157.3,232.6M150.5,228.2 L163.0,234.4M157.3,232.6 L149.8,228.6M148.1,226.9 L142.9,222.3M150.0,226.9 L153.2,223.5M181.1,205.1 L184.6,205.3M180.3,205.7 L175.4,209.3M173.0,210.2 L170.9,211.7M173.0,210.2 L179.7,205.0M173.0,210.2 L172.2,207.4M170.9,211.7 L168.0,213.9M170.9,211.7 L173.0,210.2M170.9,211.7 L172.2,207.4M172.1,211.4 L168.0,213.9M168.0,213.9 L172.1,211.4M168.0,213.9 L170.9,211.7M184.6,205.3 L181.1,205.1M206.0,207.2 L202.1,205.6M206.0,209.6 L196.7,207.4M233.7,111.7 L235.5,115.1M233.7,111.7 L231.0,107.9M209.7,140.9 L218.9,130.9 L221.4,126.1 L222.2,120.3 L220.0,111.6M209.3,142.1 L208.2,150.9M220.0,111.6 L222.2,120.3 L221.4,126.1 L218.9,130.9 L209.7,140.9M208.2,150.9 L208.9,158.8M208.2,150.9 L209.3,142.1M208.9,158.8 L208.2,150.9M209.3,161.1 L209.9,164.5M208.3,160.2 L198.2,162.3M210.1,142.2 L209.1,148.8 L210.0,158.7M210.9,163.3 L210.4,160.9M210.9,163.3 L218.2,193.1 L217.5,199.0 L212.4,208.9M211.7,161.3 L214.4,159.6M210.4,160.9 L210.9,163.3M212.4,208.9 L211.2,211.2M212.4,208.9 L213.4,211.8M212.4,208.9 L217.5,199.0 L218.2,193.1 L210.9,163.3M214.4,159.6 L211.7,161.3M214.4,159.6 L210.9,159.8M214.9,159.6 L219.7,159.8M210.9,159.8 L214.4,159.6M210.0,158.7 L209.1,148.8 L210.1,142.2M209.9,164.5 L209.3,161.1M209.9,164.5 L207.6,161.3 L198.2,162.3M209.9,164.5 L217.5,194.5 L210.9,208.8M198.2,162.3 L207.6,161.3 L209.9,164.5M198.2,162.3 L208.3,160.2M198.2,162.3 L188.5,164.5M210.9,208.8 L217.5,194.5 L209.9,164.5M210.9,208.8 L207.3,210.0M731.4,170.6 L729.0,170.9 L723.9,176.5M632.2,168.9 L636.1,168.9 L640.4,166.3 L646.5,166.2 L654.8,163.1M-226.7,238.9 L-222.3,238.8M-228.4,244.2 L-226.1,240.5M-191.8,244.4 L-191.6,238.9M-199.4,228.9 L-200.8,232.1M413.5,273.7 L413.5,277.7M426.0,276.3 L423.9,277.5M423.9,277.5 L419.1,279.0M423.9,277.5 L426.0,276.3M492.1,246.1 L491.0,241.7M183.2,261.3 L180.6,266.1M183.2,261.3 L187.9,253.3M187.9,253.3 L188.3,249.8 L186.6,247.6M187.9,253.3 L189.9,249.7 L186.6,247.6M187.9,253.3 L183.2,261.3M176.4,274.3 L180.6,266.1M176.4,274.3 L170.1,290.6M176.4,274.3 L175.3,280.9M178.4,5.9 L171.5,4.3M140.3,59.5 L134.2,55.5 L122.0,52.3M122.0,52.3 L134.2,55.5 L140.3,59.5M131.9,135.4 L137.8,133.5M131.9,135.4 L119.9,139.9M132.0,134.4 L119.6,139.3M150.9,129.6 L140.0,132.9M153.2,128.9 L158.6,127.1M159.7,126.8 L170.3,123.7M159.5,125.9 L177.3,121.1M158.6,127.1 L153.2,128.9M206.4,114.4 L203.2,115.6M206.4,114.4 L208.7,113.8M208.7,113.8 L206.4,114.4M232.3,107.0 L236.3,105.7M232.0,107.7 L233.6,110.7M236.3,105.7 L240.1,104.6M236.3,105.7 L232.3,107.0M240.1,104.6 L236.3,105.7M242.3,104.1 L246.5,103.0M254.8,100.7 L257.9,99.9M254.8,100.7 L246.5,103.0M254.8,100.7 L242.1,103.0M261.9,98.8 L264.6,98.0M261.9,98.8 L257.9,99.9M264.6,98.0 L261.9,98.8M257.9,99.9 L261.9,98.8M257.9,99.9 L254.8,100.7M266.
380770,97.6 L267.7,96.9 L267.9,97.8M267.9,97.8 L268.5,100.2M267.9,97.8 L267.7,96.9 L266.0,97.6M231.9,106.0 L242.1,103.0M187.9,119.1 L193.1,118.1M186.1,119.5 L177.3,121.1M177.3,121.1 L159.5,125.9M177.3,121.1 L186.1,119.5M177.1,120.6 L174.9,113.9M158.5,126.1 L152.6,127.9M152.6,127.9 L158.5,126.1M150.7,128.6 L139.8,132.0M139.8,132.0 L150.7,128.6M137.9,132.6 L134.3,133.7M134.3,133.7 L137.9,132.6M390.4,365.5 L387.0,370.2M413.8,364.5 L414.4,358.4M420.7,355.8 L414.4,358.4M420.7,355.8 L431.2,362.2M431.2,362.2 L420.7,355.8M431.2,362.2 L439.9,363.3M464.0,378.7 L458.3,377.9M458.3,377.9 L464.0,378.7M463.0,388.6 L459.0,386.9M463.0,388.6 L463.2,389.6 L464.2,389.3 L464.0,388.4 L463.0,388.6M463.0,388.6 L464.0,388.4 L464.2,389.3 L463.2,389.6 L463.0,388.6M459.0,386.9 L463.0,388.6M459.0,386.9 L452.8,385.9M448.3,385.8 L446.5,379.7 L447.4,374.9M449.0,385.8 L452.8,385.9M447.4,374.9 L446.5,379.7 L448.3,385.8M447.4,374.9 L456.5,358.1M447.4,374.9 L444.6,370.3M464.1,345.3 L457.7,356.5M457.7,356.5 L464.1,345.3M456.5,358.1 L447.4,374.9M444.6,370.3 L442.1,366.1M444.6,370.3 L447.4,374.9M439.9,363.3 L431.2,362.2M440.5,363.9 L442.1,366.1M461.6,358.3 L466.4,354.5M383.9,333.9 L379.2,331.1M383.9,333.9 L384.2,334.9 L385.1,334.5 L384.8,333.8 L383.9,333.9M383.9,333.9 L384.8,333.8 L385.1,334.5 L384.2,334.9 L383.9,333.9M504.6,502.0 L504.0,505.6M504.0,501.0 L502.9,498.9M505.8,503.7 L508.7,509.4 L506.5,508.2M504.0,505.6 L504.6,502.0M385.7,479.7 L384.6,480.4 L385.4,481.5 L386.5,480.6 L385.7,479.7M385.7,479.7 L386.5,480.6 L385.4,481.5 L384.6,480.4 L385.7,479.7M386.8,477.7 L390.7,473.7M448.7,486.8 L455.7,490.8M448.7,486.8 L440.5,480.4M455.7,490.8 L459.6,494.0M455.7,490.8 L448.7,486.8M440.5,480.4 L448.7,486.8M384.0,419.5 L389.1,431.8M384.0,419.5 L382.9,416.3M380.1,407.4 L382.9,416.3M389.1,431.8 L384.0,419.5M389.8,431.2 L393.0,428.8M393.2,429.0 L394.6,431.2M393.5,425.2 L392.1,427.5 L393.0,428.8M418.3,430.9 L417.0,433.1M388.9,421.8 L390.3,422.5 L393.5,419.3M419.9,396.4 L427.1,400.8M431.8,402.6 L427.5,407.8M431.8,402.6 L427.1,400.8M441.2,469.3 L435.8,472.8M400.3,405.0 L403.2,408.2 L403.2,410.5M-193.5,205.2 L-193.5,209.8M-151.7,20.1 L-152.1,10.5M-151.7,20.8 L-151.2,23.9M-151.2,23.9 L-149.9,36.8 L-135.9,78.5M-151.2,23.9 L-151.7,20.8M625.4,450.8 L628.6,451.6M635.2,450.8 L633.4,452.7 L628.3,453.0M633.3,683.6 L635.2,684.4 L634.9,687.4 L628.4,694.9M628.4,694.9 L625.4,692.3M628.4,694.9 L634.9,687.4 L635.2,684.4 L633.3,683.6M625.4,692.3 L628.4,694.9M625.4,692.3 L623.6,690.6M566.4,585.9 L568.6,583.5M566.4,585.9 L569.0,588.3M568.6,583.5 L566.4,585.9M569.0,588.3 L566.4,585.9M-5.1,704.0 L-14.7,702.9M-5.1,704.0 L-1.9,704.4M-18.3,689.2 L-19.1,696.9M-18.3,689.2 L-17.2,679.8M207.3,210.0 L210.9,208.8M207.3,210.0 L209.9,210.8M209.9,210.8 L207.3,210.0M213.4,211.8 L212.4,208.9M228.5,218.2 L228.9,219.3 L230.6,219.0M230.6,219.0 L228.9,219.3 L228.5,218.2M206.9,211.0 L208.3,213.6M208.3,213.6 L202.7,224.5M208.3,213.6 L206.9,211.0M173.0,286.9 L175.3,280.9M173.0,286.9 L171.0,292.2M429.3,190.7 L433.3,185.6M262.6,210.2 L259.3,207.6M307.8,122.4 L310.6,125.3M307.8,122.4 L304.5,124.9 L301.1,125.5M307.8,122.4 L311.1,118.8 L311.9,115.4M301.1,125.5 L297.8,125.4M301.1,125.5 L304.5,124.9 L307.8,122.4M311.9,115.4 L311.1,118.8 L307.8,122.4M311.9,115.4 L309.4,110.1M427.3,173.2 L423.4,170.0M427.3,173.2 L430.8,175.9M423.4,170.0 L427.3,173.2M423.4,170.0 L419.8,167.1M430.8,175.9 L433.2,177.8M430.8,175.9 L427.3,173.2M313.0,106.3 L309.4,110.1M313.0,106.3 L314.4,101.1M314.6,107.2 L317.1,108.7M297.8,125.4 L301.1,125.5M297.8,125.4 L295.0,125.6 L293.5,127.9M303.5,124.4 L306.8,121.5M310.3,115.5 L308.0,111.6M310.3,115.5 L309.9,118.1 L306.8,121.5M375.0,215.7 L376.3,210.4M375.0,215.7 L371.3,231.5M315.0,121.2 L314.8,121.8 L315.9,122.6 L316.3,121.8 L315.0,121.2M315.0,121.2 L316.3,121.8 L315.9,122.6 L314.8,121.8 L315.0,121.2M315.0,121.2 L316.1,116.9 L313.0,115.3M313.0,115.3 L316.1,116.9 L315.0,121.2M313.0,115.3 L312.2,111.3M293.5,127.9 L295.0,125.6 L297.8,125.4M290.4,113.4 L291.2,110.1M364.0,259.9 L362.9,262.8M308.0,111.6 L310.3,115.5M282.7,223.1 L282.4,221.2 L284.7,219.0M282.7,223.1 L281.1,222.7 L281.3,218.3M282.8,223.1 L296.3,225.0M284.7,219.0 L282.4,221.2 L282.7,223.1M281.3,218.3 L281.1,222.7 L282.7,223.1M314.4,127.9 L310.6,125.3M334.1,67.0 L328.8,61.1M334.1,67.0 L335.8,68.7M428.3,192.1 L426.8,194.7M421.2,208.3 L420.5,210.8M421.2,208.3 L423.7,200.8M413.5,280.5 L413.5,277.7M469.5,-85.9 L475.0,-86.9 L478.6,-85.9 L487.4,-73.7M469.5,-85.9 L459.5,-84.8M469.5,-85.9 L468.3,-90.3 L466.3,-92.1M466.3,-92.1 L468.3,-90.3 L469.5,-85.9M396.1,-77.9 L402.0,-75.2M408.6,-79.9 L423.3,-80.3M423.3,-80.3 L426.6,-81.1M423.3,-80.3 L408.6,-79.9M407.1,-84.8 L406.9,-80.3M407.1,-84.8 L406.9,-90.5M440.4,-79.6 L445.8,-81.2M440.4,-79.6 L435.6,-79.3 L426.6,-81.1M440.4,-79.6 L434.4,-72.2 L433.9,-69.7 L434.1,-65.8 L436.7,-62.4 L436.9,-58.0 L438.1,-55.8 L440.7,-54.7 L437.9,-54.2M426.6,-81.1 L435.6,-79.3 L440.4,-79.6M426.6,-81.1 L423.3,-80.3M437.9,-54.2 L440.7,-54.7 L438.1,-55.8 L436.9,-58.0 L436.7,-62.4 L434.1,-65.8 L433.9,-69.7 L434.4,-72.2 L440.4,-79.6M201.3,230.3 L191.5,248.8M191.5,248.8 L201.3,230.3M191.5,248.8 L189.8,252.0M144.3,191.1 L145.6,190.5 L145.1,191.7M145.1,191.7 L145.6,190.5 L144.3,191.1M141.4,191.8 L138.8,190.6M138.8,190.6 L141.4,191.8M184.0,265.8 L182.3,269.1 L184.5,272.6M186.6,247.6 L188.3,249.8 L187.9,253.3M186.6,247.6 L189.9,249.7 L187.9,253.3M186.6,247.6 L179.6,244.0 L178.1,253.6M178.1,253.6 L179.6,244.0 L186.6,247.6M184.2,272.9 L181.7,274.6M191.7,246.1 L189.4,247.4M189.4,247.4 L191.7,246.1M64.4,167.4 L61.2,167.5M61.2,167.5 L64.4,166.7M61.2,167.5 L64.4,167.4M61.2,167.5 L56.1,172.2 L50.8,172.4M64.4,166.7 L61.2,167.5M50.8,172.4 L50.0,181.8 L53.5,184.0M50.8,172.4 L56.1,172.2 L61.2,167.5M53.5,184.0 L50.0,181.8 L50.8,172.4M85.1,165.0 L76.8,165.9M76.8,165.9 L85.1,165.0M76.8,165.9 L72.2,166.4M-21.8,578.7 L-12.7,582.5M38.3,548.8 L35.9,552.0M57.6,529.5 L55.6,532.7M57.6,529.5 L60.0,526.8 L64.4,525.3M57.6,529.5 L53.9,526.6M64.4,525.3 L66.2,522.6M64.4,525.3 L60.0,526.8 L57.6,529.5M6.3,-36.1 L13.4,-30.1M6.3,-36.1 L2.3,-41.4M6.3,-36.1 L3.9,-38.2M-1.0,-45.5 L2.3,-41.4M-1.0,-45.5 L-5.5,-54.2M460.7,250.8 L455.1,250.3M455.1,250.3 L460.7,250.8M464.8,250.6 L466.0,251.0 L464.7,251.2M462.7,250.4 L455.1,249.7M462.7,250.4 L462.9,245.7M464.7,251.2 L466.0,251.0 L464.8,250.6M493.2,229.4 L495.0,227.4M493.2,229.4 L490.0,224.7M455.1,249.7 L462.7,250.4M454.7,249.7 L455.0,245.0M495.0,227.4 L493.2,229.4M495.0,227.4 L496.6,225.5M490.0,224.7 L488.7,222.2M490.0,224.7 L493.2,229.4M474.1,246.2 L471.6,246.1M474.1,246.2 L478.5,246.5M513.2,256.3 L509.4,256.3M539.8,266.0 L542.1,262.5M401.9,546.2 L404.6,547.4M282.7,294.1 L286.6,294.1M286.6,293.6 L286.5,290.4M286.9,297.0 L286.6,294.1M477.9,430.1 L475.4,427.7 L474.7,423.5M616.6,443.8 L617.0,447.8 L620.7,449.9M618.6,444.0 L621.3,447.7 L620.7,449.9M617.3,424.5 L618.2,421.8 L620.9,420.1M620.9,420.1 L618.2,421.8 L617.3,424.5M-148.1,0.6 L-145.4,-0.3M-136.4,-10.3 L-140.0,-11.8M-136.4,-10.3 L-134.5,-14.4M-136.4,-10.3 L-139.9,-3.5 L-145.4,-0.3M-140.0,-11.8 L-136.4,-10.3M-134.5,-14.4 L-136.4,-10.3M-181.5,-18.7 L-185.7,-12.4M-181.5,-18.7 L-191.0,-24.4M-179.5,-17.6 L-177.0,-16.2M-185.7,-12.4 L-190.1,-13.9 L-196.8,-13.0 L-191.0,-24.4M-185.7,-12.4 L-181.5,-18.7M-191.0,-24.4 L-196.8,-13.0 L-190.1,-13.9 L-185.7,-12.4M-191.0,-24.4 L-181.5,-18.7M-191.0,-24.4 L-192.9,-26.5M-197.8,-99.9 L-200.2,-104.1M42.3,540.8 L44.6,537.7M41.9,541.3 L35.2,550.8M44.6,537.7 L42.3,540.8M41.8,540.6 L21.9,529.1M62.9,190.1 L70.5,191.0M66.7,190.9 L70.5,191.3M327.7,247.5 L326.3,250.3M322.3,244.3 L328.1,246.7M322.3,244.3 L317.6,243.1M18.4,385.6 L23.7,383.4 L28.2,384.6M20.0,392.3 L27.1,399.0 L33.8,402.5M20.0,392.3 L16.4,386.5M7.4,396.3 L-1.4,392.4 L-4.0,393.1 L-6.6,395.9M-6.6,395.9 L-4.0,393.1 L-1.4,392.4 L7.4,396.3M-6.6,395.9 L-8.6,399.4 L-8.8,406.1 L-13.8,410.5M-6.6,365.7 L-11.1,368.0 L-23.2,362.9M-6.6,365.7 L-5.6,366.3 L-5.1,365.1 L-6.2,364.6 L-6.6,365.7M-6.6,365.7 L-6.2,364.6 L-5.1,365.1 L-5.6,366.3 L-6.6,365.7M-23.2,362.9 L-11.1,368.0 L-6.6,365.7M-12.4,344.9 L-19.8,353.4 L-24.0,362.7M8.1,352.6 L16.8,352.1 L18.3,347.8 L15.7,344.8 L11.5,344.8 L8.7,348.4 L8.1,352.6M8.1,352.6 L8.7,348.4 L11.5,344.8 L15.7,344.8 L18.3,347.8 L16.8,352.1 L8.1,352.6M8.1,352.6 L2.5,356.0M42.5,348.4 L39.7,344.7 L36.7,343.8M36.7,343.8 L39.7,344.7 L42.5,348.4M36.7,343.8 L33.4,342.8 L31.9,347.5M38.5,390.2 L39.5,388.9 L38.7,388.2 L38.0,388.9 L38.5,390.2M38.5,390.2 L38.0,388.9 L38.7,388.2 L39.5,388.9 L38.5,390.2M38.5,390.2 L35.7,393.2M-8.5,346.0 L2.5,356.0M-8.5,346.0 L-11.3,343.6M45.9,414.9 L53.1,418.5 L54.7,417.6 L53.8,416.2 L45.9,414.9M45.9,414.9 L53.8,416.2 L54.7,417.6 L53.1,418.5 L45.9,414.9M240.8,530.6 L243.3,526.4M240.8,530.6 L238.6,534.7 L235.5,535.5 L233.0,537.8M233.0,537.8 L235.5,535.5 L238.6,534.7 L240.8,530.6M303.3,476.6 L308.8,474.1M275.6,568.0 L273.7,566.9 L272.6,563.2M272.6,563.2 L273.7,566.9 L275.6,568.0M272.6,563.2 L271.8,556.3 L287.3,524.8M746.1,574.1 L748.3,584.8M748.3,584.8 L746.4,589.9M748.3,584.8 L746.1,574.1M219.0,110.9 L210.6,113.1M221.2,110.2 L230.1,107.6M219.7,109.0 L217.4,103.7M220.8,109.3 L229.9,106.7M218.8,109.7 L212.9,111.4M585.5,76.8 L588.0,77.2M476.0,179.3 L486.3,167.2M476.0,179.3 L476.7,181.3 L489.3,191.4M501.0,181.8 L496.2,186.8 L489.3,191.4M616.0,419.5 L616.2,412.8M616.0,419.5 L616.0,424.5M616.2,412.8 L616.0,419.5M617.6,410.8 L619.7,409.8M548.0,406.2 L542.5,401.7M548.0,406.2 L553.4,413.2 L552.5,416.9 L550.1,417.9M550.1,417.9 L552.5,416.9 L553.4,413.2 L548.0,406.2M532.4,388.6 L534.4,382.8M530.6,387.7 L528.0,386.4M534.4,382.8 L532.4,388.6M534.4,382.8 L536.4,375.8 L540.3,371.5M570.9,382.4 L576.0,378.3M570.9,382.4 L567.1,382.7 L563.9,380.5M576.0,378.3 L577.8,376.1M576.0,378.3 L570.9,382.4M563.9,380.5 L567.1,382.7 L570.9,382.4M562.4,378.7 L553.8,374.8M562.6,378.3 L560.9,375.3 L555.6,373.0 L553.8,374.8M577.8,376.1 L576.0,378.3M492.3,273.1 L499.6,278.2M492.0,272.9 L495.3,268.2M467.2,255.2 L425.1,248.7M425.1,248.7 L419.0,247.8M425.1,248.7 L467.2,255.2M-62.6,688.5 L-65.2,690.4M-62.6,688.5 L-56.1,683.0M317.9,109.6 L320.9,112.4 L324.6,108.9 L321.3,105.3 L317.5,108.4M317.1,108.7 L314.6,107.2M317.5,108.4 L321.3,105.3 L324.6,108.9 L320.9,112.4 L317.9,109.6M472.7,147.9 L471.2,148.0 L472.4,147.3M472.7,147.9 L483.0,145.0 L494.2,155.5M625.8,114.7 L626.7,109.4 L624.2,104.5M643.9,102.6 L641.0,102.9M643.9,102.6 L662.4,102.9M587.6,25.8 L600.0,41.1M299.0,315.7 L301.3,318.3M178.7,230.4 L175.1,228.6M178.7,233.7 L177.7,236.1M182.4,227.7 L183.8,225.2M177.7,236.1 L178.7,233.7M177.4,237.1 L176.5,240.6M178.2,236.2 L179.4,234.0M179.4,234.0 L178.2,236.2M181.7,233.6 L184.5,235.0M190.4,235.8 L192.8,233.3 L192.5,231.1M190.4,235.8 L193.5,233.3M192.5,231.1 L192.8,233.3 L190.4,235.8M193.5,233.3 L193.1,231.0M193.5,233.3 L190.4,235.8M178.1,231.7 L174.4,229.8M188.3,237.0 L184.5,235.0M189.0,235.8 L185.3,234.0M167.2,224.9 L164.9,223.6M182.3,232.4 L185.3,234.0M164.2,234.3 L167.5,228.2M163.0,234.4 L150.5,228.2M192.5,230.6 L192.2,228.7 L194.1,224.7M194.1,224.7 L192.2,228.7 L192.5,230.6M193.1,231.0 L193.5,233.3M166.9,225.4 L163.5,223.8M167.5,228.2 L164.2,234.3M169.7,227.3 L174.4,229.8M174.4,229.8 L169.7,227.3M174.4,229.8 L178.1,231.7M183.8,225.2 L182.4,227.7M170.6,226.3 L175.1,228.6M188.6,241.6 L189.2,238.1M189.2,238.1 L188.6,241.6M183.9,244.5 L185.9,241.6M185.9,241.6 L183.9,244.5M189.0,238.1 L188.2,240.8M188.2,240.8 L189.0,238.1M163.0,223.5 L159.9,221.5M163.5,223.8 L166.9,225.4M163.4,222.8 L160.6,220.8M159.9,221.5 L163.0,223.5M175.4,209.3 L180.3,205.7M164.9,223.6 L167.2,224.9M160.6,220.8 L163.4,222.8M434.5,576.3 L435.4,572.5M435.4,572.5 L434.5,576.3M435.6,502.9 L434.6,510.0M434.6,510.0 L435.6,502.9M21.0,624.8 L24.0,627.1M24.0,627.1 L21.0,624.8M35.7,611.9 L39.9,614.8 L38.7,616.4 L37.4,615.1M35.7,611.9 L35.1,609.1M37.4,615.1 L38.7,616.4 L39.9,614.8 L35.7,611.9M35.1,609.1 L35.7,611.9M34.9,608.4 L37.4,607.1M34.9,608.4 L30.3,609.9M37.4,607.1 L39.5,604.6M37.4,607.1 L34.9,608.4M217.6,416.7 L223.5,399.9 L227.7,392.9 L234.8,386.8M264.6,379.9 L270.1,376.7M264.8,380.6 L270.1,376.7M270.1,376.7 L264.6,379.9M270.1,376.7 L264.8,380.6M270.1,376.7 L274.2,371.5M274.2,371.5 L275.7,369.6M274.2,371.5 L270.1,376.7M263.1,373.4 L269.7,370.0 L267.3,367.0M263.1,373.4 L262.3,374.3 L262.2,373.1M267.3,367.0 L269.7,370.0 L263.1,373.4M262.2,373.1 L262.3,374.3 L263.1,373.4M286.9,347.4 L289.8,344.4M286.9,347.4 L288.8,350.0M286.9,347.4 L284.8,347.9 L281.0,352.1M290.8,347.7 L288.8,350.0M72.2,166.4 L68.9,166.7M72.2,166.4 L76.8,165.9M-2.1,174.7 L0.8,174.7M-2.1,174.7 L-13.6,177.0M0.8,174.7 L19.4,177.7M0.8,174.7 L-2.1,174.7M36.0,199.5 L36.9,195.9M36.9,195.9 L36.0,199.5M36.9,195.9 L37.8,193.5M19.4,177.7 L27.4,178.6 L33.1,181.8M19.4,177.7 L0.8,174.7M37.8,193.5 L36.9,195.9M37.8,193.5 L38.7,190.9M732.1,130.9 L720.8,135.4M732.1,130.9 L735.0,127.1 L737.6,125.8M720.8,135.4 L716.2,137.5 L705.4,145.9M720.8,135.4 L732.1,130.9M107.2,275.7 L107.8,278.1M107.2,275.7 L105.8,268.6M105.8,268.6 L107.2,275.7M105.8,268.6 L105.0,264.8M124.2,268.1 L125.0,273.9M124.2,268.1 L124.2,260.0M498.6,513.2 L500.3,510.7M498.6,513.2 L497.4,515.9M195.7,616.4 L197.9,618.4M195.7,616.4 L188.5,610.2M195.7,616.4 L199.8,611.9M199.8,611.9 L195.7,616.4M132.6,604.6 L131.0,609.2M133.2,602.6 L130.5,599.7 L124.8,603.4M175.9,584.0 L183.1,587.7 L184.3,589.9M54.1,721.6 L57.6,699.2M-69.3,246.1 L-77.6,242.4M-77.6,242.4 L-73.1,230.1M-77.6,242.4 L-79.9,253.3 L-71.1,258.0 L-66.3,264.4 L-66.2,272.6M-77.6,242.4 L-69.3,246.1M-66.2,272.6 L-66.3,264.4 L-71.1,258.0 L-79.9,253.3 L-77.6,242.4M-222.3,238.8 L-220.6,240.1 L-220.5,241.4 L-221.7,241.0 L-222.3,238.8M-222.3,238.8 L-221.7,241.0 L-220.5,241.4 L-220.6,240.1 L-222.3,238.8M-222.3,238.8 L-226.7,238.9M-60.6,235.5 L-61.4,234.0 L-73.1,230.1M-160.5,209.0 L-165.9,209.8M-160.5,209.0 L-159.0,206.8 L-159.2,204.6 L-160.7,204.6 L-160.5,209.0M-160.5,209.0 L-160.7,204.6 L-159.2,204.6 L-159.0,206.8 L-160.5,209.0M171.5,168.4 L163.2,170.3M172.4,168.2 L182.0,165.9M182.0,165.9 L184.9,165.3M182.0,165.9 L172.4,168.2M123.8,161.3 L124.1,164.2M124.1,164.2 L123.8,161.3M124.1,165.4 L124.9,173.8M188.5,164.5 L198.2,162.3M-6.6,712.3 L-3.0,710.2M-6.6,712.3 L-13.4,716.2M-17.2,679.8 L-18.3,689.2M-17.2,679.8 L-14.9,667.2M2.1,662.1 L1.0,667.5M2.1,662.1 L6.8,654.6 L5.7,
38077653.7M1.2,661.8 L-0.2,667.3M1.2,661.8 L5.7,653.7M5.7,653.7 L1.2,661.8M5.7,653.7 L6.8,654.6 L2.1,662.1M-0.9,668.0 L-5.9,667.4M-0.9,668.1 L-6.0,668.2M-0.2,667.3 L1.2,661.8M-21.3,649.0 L-19.5,647.3M-19.5,647.3 L-21.3,649.0M-10.4,621.3 L-10.2,618.6M-10.4,621.3 L-11.0,627.2M-10.2,618.6 L-10.4,621.3M-10.2,618.6 L-9.6,613.7M-10.0,613.0 L-13.5,610.7M-9.1,611.9 L-4.8,604.9M17.1,578.0 L14.2,581.5M-184.2,689.2 L-193.6,689.9 L-205.0,692.9M-184.2,689.2 L-172.9,690.5 L-151.3,695.8 L-138.2,696.2M-136.9,691.1 L-132.5,686.3M-136.9,691.1 L-138.2,696.2M-143.7,672.3 L-138.2,673.0 L-133.9,676.5M-133.9,676.5 L-138.2,673.0 L-143.7,672.3M-133.9,676.5 L-132.2,681.2 L-132.5,686.3M33.7,404.9 L30.8,404.4 L29.6,411.5 L32.2,411.7 L33.7,404.9M33.7,404.9 L32.2,411.7 L29.6,411.5 L30.8,404.4 L33.7,404.9M-157.3,281.4 L-154.7,279.3M-157.3,281.4 L-156.1,283.2 L-154.0,281.2 L-154.7,279.3M-142.2,303.5 L-144.5,313.1M-142.2,303.5 L-140.7,297.1 L-141.0,290.8M-145.0,292.2 L-141.0,290.8M-145.0,292.2 L-146.5,290.9 L-148.7,292.1 L-150.3,296.4 L-149.6,298.3 L-146.4,299.4M-145.0,292.2 L-146.4,299.4M-146.4,299.4 L-145.0,292.2M-146.4,299.4 L-149.6,298.3 L-150.3,296.4 L-148.7,292.1 L-146.5,290.9 L-145.0,292.2M-143.7,349.3 L-142.2,352.4M-143.7,349.3 L-143.9,346.5M-148.3,361.2 L-142.2,352.4M-148.4,361.6 L-151.7,362.6M-147.1,363.2 L-143.0,367.4M-151.7,362.6 L-157.4,364.4 L-158.6,371.9M-151.7,362.6 L-148.4,361.6M-217.0,135.4 L-212.6,134.7M-217.0,135.4 L-220.8,135.8M740.0,114.7 L741.8,117.4M705.4,145.9 L702.4,149.0 L699.7,154.7 L700.8,157.0 L716.7,170.9M705.4,145.9 L716.2,137.5 L720.8,135.4M739.3,114.0 L675.1,104.1M6.5,590.7 L2.1,596.2M6.5,590.7 L11.1,585.1M2.1,596.2 L6.5,590.7M11.1,585.1 L6.5,590.7M253.9,428.2 L257.5,424.1 L254.3,418.8M269.0,408.1 L270.3,404.4 L266.1,402.1M260.9,371.7 L254.8,365.6M266.5,366.1 L260.3,360.3M271.3,343.0 L269.2,341.2M273.3,336.9 L269.2,341.2M237.5,335.2 L239.4,328.4M257.4,334.5 L260.7,335.0M257.4,334.5 L258.3,331.0M265.0,328.6 L261.3,332.7 L260.7,335.0M256.8,334.3 L249.7,332.4M258.3,331.0 L257.4,334.5M258.3,331.0 L252.6,329.4M258.3,331.0 L259.7,325.8M249.7,332.4 L256.8,334.3M252.6,329.4 L258.3,331.0M259.7,325.8 L258.3,331.0M259.7,325.8 L246.5,322.4M247.3,331.5 L239.4,328.4M241.5,320.7 L239.4,328.4M246.5,322.4 L259.7,325.8M366.5,387.1 L366.4,390.5M366.5,387.1 L366.5,384.5M366.4,390.5 L366.5,387.1M366.4,390.5 L366.3,397.2M369.1,386.6 L370.8,389.0M370.8,389.0 L372.2,391.2M370.8,389.0 L369.1,386.6M360.6,375.7 L363.6,379.1M360.6,375.7 L358.8,373.4M355.2,347.6 L358.3,348.1 L358.6,349.3 L356.2,348.8 L355.2,347.6M355.2,347.6 L356.2,348.8 L358.6,349.3 L358.3,348.1 L355.2,347.6M355.2,347.6 L352.3,346.5M361.9,339.4 L368.0,340.8M361.2,338.3 L360.4,335.3 L356.9,331.1 L356.5,334.6 L361.2,338.3M361.2,338.3 L356.5,334.6 L356.9,331.1 L360.4,335.3 L361.2,338.3M170.5,121.1 L168.9,116.1M168.9,116.1 L174.9,113.9M168.9,116.1 L170.5,121.1M168.9,116.1 L164.9,103.1M174.9,113.9 L168.9,116.1M174.9,113.9 L170.7,101.2M174.9,113.9 L180.7,111.5M174.9,113.9 L177.1,120.6M164.9,103.1 L168.9,116.1M164.9,103.1 L170.7,101.2M164.9,103.1 L161.5,103.5 L160.7,101.1M170.7,101.2 L169.8,98.3M170.7,101.2 L174.9,113.9M170.7,101.2 L176.4,99.5M170.7,101.2 L164.9,103.1M180.7,111.5 L176.4,99.5M180.7,111.5 L174.9,113.9M176.4,99.5 L180.7,111.5M176.4,99.5 L173.0,90.2M176.4,99.5 L170.7,101.2M160.7,101.1 L161.5,103.5 L164.9,103.1M160.7,101.1 L158.0,90.7 L158.5,86.5 L161.2,84.0 L162.5,80.7 L160.0,76.7 L157.7,75.7M169.8,98.3 L170.7,101.2M169.8,98.3 L168.3,92.0 L173.0,90.2M173.0,90.2 L176.4,99.5M173.0,90.2 L171.5,85.8M173.0,90.2 L168.3,92.0 L169.8,98.3M171.5,85.8 L173.0,90.2M193.0,67.0 L196.4,70.6M-17.2,673.1 L-16.2,667.0M23.2,569.8 L25.5,565.6M25.5,565.6 L23.2,569.8M25.5,565.6 L27.0,563.2M45.8,536.1 L47.4,533.8M44.8,537.4 L42.7,542.5M366.3,17.6 L368.3,11.8M366.3,17.6 L361.3,14.2 L363.2,11.1M365.9,18.8 L365.3,21.8M368.3,11.8 L366.3,17.6M368.3,11.8 L372.8,13.0M363.2,11.1 L361.3,14.2 L366.3,17.6M133.9,393.5 L135.8,385.9M133.9,393.5 L146.4,395.8 L149.4,401.2M149.8,363.7 L144.1,361.5M500.5,530.5 L502.8,530.6 L509.1,536.6M446.7,-14.5 L447.0,-20.0 L453.1,-20.5 L456.6,-24.7M456.6,-24.7 L453.1,-20.5 L447.0,-20.0 L446.7,-14.5M730.7,17.6 L726.7,15.0M732.2,18.6 L735.6,21.7 L735.0,25.5M432.7,240.5 L428.6,239.7M-119.9,163.9 L-113.7,162.7M-121.2,164.1 L-124.8,164.5M49.7,200.7 L51.2,200.6 L52.3,196.6M52.3,196.6 L51.2,200.6 L49.7,200.7M38.7,190.9 L37.8,193.5M70.5,191.3 L66.7,190.9M280.1,75.3 L282.8,84.3 L280.6,86.8 L281.6,92.7M281.6,92.7 L280.6,86.8 L282.8,84.3 L280.1,75.3M393.5,334.1 L391.1,332.0M676.7,-35.1 L678.6,-28.2 L680.6,-25.8M184.9,165.3 L182.0,165.9M150.0,183.5 L155.8,174.6M149.2,185.3 L146.5,191.0M146.5,191.0 L149.2,185.3M147.0,192.3 L148.9,194.7 L146.0,193.4M326.3,250.3 L324.8,253.7M326.3,250.3 L327.7,247.5M26.7,566.0 L28.2,563.5M26.7,566.0 L23.3,571.8M28.2,563.5 L26.7,566.0M28.8,562.6 L31.0,559.1M35.9,568.7 L38.1,564.4M35.9,568.7 L34.0,573.7 L36.8,575.5M38.1,564.4 L35.9,568.7M36.8,575.5 L34.0,573.7 L35.9,568.7M40.2,559.5 L38.3,563.1M38.3,563.1 L40.2,559.5M39.1,548.7 L61.3,564.4 L63.5,564.6M63.5,564.6 L61.3,564.4 L39.1,548.7M18.3,699.5 L15.7,706.1M11.9,674.6 L6.2,670.1 L1.5,668.4M11.9,674.6 L14.7,678.6M20.7,688.9 L19.3,686.3M20.7,688.9 L23.4,693.5M-11.8,667.7 L-6.0,668.2M-6.0,668.2 L-0.9,668.1M-6.0,668.2 L-11.8,667.7M112.6,-97.5 L109.5,-95.7M112.6,-97.5 L118.5,-98.8M419.1,279.0 L423.9,277.5M576.7,321.5 L579.2,324.8M576.7,321.5 L575.2,319.4M578.2,629.5 L582.0,637.6M584.3,636.7 L582.0,637.6M459.8,91.0 L458.8,87.9M459.8,91.0 L460.7,93.6M460.7,93.6 L459.8,91.0M461.1,94.1 L462.7,96.2M461.1,105.6 L448.2,100.3M165.5,202.5 L168.3,203.6M16
380775.5,202.5 L163.4,201.2 L169.6,203.4M518.5,218.1 L514.7,214.9M518.5,218.1 L523.0,222.0M90.5,267.3 L92.9,266.1M90.5,267.3 L86.3,268.4M92.9,266.1 L90.5,267.3M86.3,268.4 L83.3,269.6M86.3,268.4 L90.5,267.3M86.3,268.4 L76.6,270.3M335.5,479.5 L343.1,477.5M335.5,479.5 L332.4,496.6M332.4,496.6 L331.5,501.4M332.4,496.6 L335.5,479.5M531.7,358.8 L526.0,357.3M526.0,357.3 L531.7,358.8M511.5,374.9 L512.8,370.9M490.2,345.9 L486.6,347.5M490.2,345.9 L492.7,344.9M486.6,347.5 L490.2,345.9M490.3,346.5 L491.3,348.9M498.0,350.1 L498.8,352.5M491.3,348.9 L490.3,346.5M491.3,348.9 L493.1,351.6 L497.9,350.0M499.2,334.7 L495.1,335.9M499.2,334.7 L499.7,333.8 L500.6,334.4 L500.0,335.3 L499.2,334.7M499.2,334.7 L500.0,335.3 L500.6,334.4 L499.7,333.8 L499.2,334.7M506.4,339.1 L508.6,338.0M506.1,338.5 L503.6,337.6 L502.3,335.2M502.3,335.2 L503.6,337.6 L506.1,338.5M512.0,332.2 L524.5,325.8M-220.8,135.8 L-217.0,135.4M-220.8,135.8 L-224.8,134.5M-224.8,134.5 L-220.8,135.8M470.2,482.7 L474.1,482.8M527.9,521.1 L531.1,516.4M509.1,536.6 L523.0,550.2 L537.2,573.6M509.1,536.6 L502.8,530.6 L500.5,530.5M537.0,507.8 L543.1,500.0M500.3,510.7 L498.6,513.2M533.7,506.0 L536.8,508.2M621.6,440.5 L621.3,441.5 L616.3,442.3M271.3,121.6 L269.8,124.5M271.3,121.6 L274.3,122.2M271.3,121.6 L266.1,116.5M274.3,122.2 L271.3,121.6M266.1,116.5 L271.3,121.6M328.8,539.3 L333.6,536.8 L335.9,543.1 L352.8,551.4M418.7,552.5 L420.7,550.5M423.6,556.2 L421.3,557.6M421.3,557.6 L423.6,556.2M421.9,546.3 L424.1,545.3M424.1,545.3 L421.9,546.3M438.7,557.3 L438.5,554.5M438.5,554.5 L438.7,557.3M438.8,542.5 L438.1,545.8M439.1,540.4 L439.1,537.3M439.1,537.3 L439.1,540.4M439.0,536.0 L438.7,532.3M438.7,532.3 L439.0,536.0M430.9,535.9 L430.8,533.5M430.8,533.5 L430.9,535.9M430.7,532.5 L430.4,529.6M430.4,529.6 L430.7,532.5M426.4,523.4 L428.1,525.3M431.6,525.3 L433.5,523.8M433.5,523.8 L431.6,525.3M435.8,516.6 L435.4,514.2M435.4,514.2 L435.8,516.6M419.9,537.1 L422.8,538.4M422.8,538.4 L419.9,537.1M420.7,517.3 L421.2,514.6M421.2,514.6 L420.7,517.3M422.5,506.6 L422.1,509.1M501.5,566.7 L498.4,566.5M498.4,566.5 L501.5,566.7M509.8,572.9 L507.1,568.6M499.7,576.7 L501.4,578.7M501.4,578.7 L499.7,576.7M508.7,589.0 L510.3,591.3M510.3,591.3 L508.7,589.0M509.4,595.2 L506.4,596.3M506.4,596.3 L509.4,595.2M508.0,604.2 L510.6,603.5M511.9,613.4 L513.2,611.4M486.9,615.6 L487.9,619.1M488.0,617.3 L487.3,614.6M488.5,619.0 L491.3,629.6M487.9,619.1 L485.0,618.4M487.9,619.1 L490.6,629.8M487.9,619.1 L486.9,615.6M513.1,577.6 L514.7,579.8M514.7,579.8 L513.1,577.6M530.5,592.9 L530.2,590.5M530.2,590.5 L530.5,592.9M530.8,594.9 L532.6,609.9M532.6,609.9 L530.8,594.9M519.9,598.0 L521.5,600.4M521.5,600.4 L519.9,598.0M525.7,606.4 L527.5,609.0M527.5,609.0 L525.7,606.4M529.5,611.8 L531.7,613.9M531.7,613.9 L529.5,611.8M532.5,613.3 L532.7,610.3M532.7,610.3 L532.5,613.3M533.1,627.6 L535.1,629.5M532.8,633.7 L529.9,635.6M537.7,635.3 L537.0,631.9M539.1,629.1 L537.0,630.7M552.0,640.0 L553.6,638.2M553.6,638.2 L552.0,640.0M577.6,628.4 L575.2,622.8M609.2,705.1 L609.2,708.7M609.2,708.7 L609.2,705.1M608.2,712.5 L606.1,717.6M606.1,717.6 L608.2,712.5M601.6,730.4 L600.9,733.1M600.9,733.1 L601.6,730.4M600.0,741.6 L599.6,749.0M-12.6,-45.3 L-28.9,-31.1M-12.6,-45.3 L-9.3,-49.5M-12.6,-45.3 L-3.2,-36.7M-28.9,-31.1 L-12.6,-45.3M-3.2,-36.7 L-12.6,-45.3M282.9,299.8 L283.5,298.7 L282.1,296.9M282.1,296.9 L277.0,298.4M282.1,296.9 L281.0,294.1M282.1,296.9 L283.5,298.7 L282.9,299.8M277.0,298.4 L276.9,294.1M277.0,298.4 L282.1,296.9M130.9,327.2 L131.5,324.7M131.5,324.7 L130.9,327.2M131.5,324.7 L133.2,324.3 L133.9,321.5M131.5,324.7 L128.8,323.4M126.6,327.0 L128.8,323.4M128.8,323.4 L131.5,324.7M128.8,323.4 L126.6,327.0M135.4,326.6 L136.5,321.9M136.5,321.9 L135.4,326.6M136.5,321.9 L133.9,321.5M136.5,321.9 L140.0,322.5M133.9,321.5 L129.4,322.4M133.9,321.5 L136.5,321.9M133.9,321.5 L133.2,324.3 L131.5,324.7M129.4,322.4 L128.8,320.1M129.4,322.4 L133.9,321.5M122.5,322.8 L128.8,320.1M128.8,320.1 L129.4,322.4M128.8,320.1 L135.8,319.2M128.8,320.1 L122.5,322.8M135.8,319.2 L128.8,320.1M119.2,374.6 L121.1,372.7M75.1,352.7 L82.3,351.5M82.3,351.5 L86.6,361.4 L84.9,369.8 L71.2,367.2M82.3,351.5 L75.1,352.7M81.8,349.6 L80.3,339.9M71.2,367.2 L84.9,369.8 L86.6,361.4 L82.3,351.5M70.2,333.9 L64.5,337.5M70.2,333.9 L74.6,338.3 L80.3,339.9M70.2,333.9 L64.0,321.9 L58.4,318.3 L52.1,328.5M64.5,337.5 L70.2,333.9M52.1,328.5 L58.4,318.3 L64.0,321.9 L70.2,333.9M121.8,327.0 L118.2,328.7M107.9,319.3 L104.8,319.3M107.9,319.3 L107.9,321.9M107.9,319.3 L113.2,320.6 L118.2,328.7M104.8,319.3 L107.9,319.3M104.8,319.3 L96.5,319.3M70.1,309.6 L76.9,310.0M74.6,300.9 L79.4,302.3 L76.9,310.0M-49.4,419.5 L-48.9,416.6 L-43.3,415.4M-43.3,415.4 L-36.9,402.9M-43.3,415.4 L-48.9,416.6 L-49.4,419.5M-32.5,409.5 L-32.4,410.8 L-33.9,410.9 L-33.8,409.7 L-32.5,409.5M-32.5,409.5 L-33.8,409.7 L-33.9,410.9 L-32.4,410.8 L-32.5,409.5M-32.5,409.5 L-27.4,401.9M177.0,405.9 L175.9,408.1 L174.7,407.6 L1
3807774.9,406.4 L177.0,405.9M177.0,405.9 L174.9,406.4 L174.7,407.6 L175.9,408.1 L177.0,405.9M177.0,405.9 L176.7,401.3 L173.1,395.8M173.1,395.8 L166.1,386.4M173.1,395.8 L166.8,385.9M173.1,395.8 L176.7,401.3 L177.0,405.9M149.4,401.2 L146.4,395.8 L133.9,393.5M163.8,398.1 L159.2,391.1M163.8,398.1 L163.7,399.4 L164.9,399.6 L165.1,398.4 L163.8,398.1M163.8,398.1 L165.1,398.4 L164.9,399.6 L163.7,399.4 L163.8,398.1M159.2,391.1 L166.1,386.4M159.2,391.1 L163.8,398.1M159.2,391.1 L157.0,387.8M166.1,386.4 L159.2,391.1M166.1,386.4 L173.1,395.8M166.1,386.4 L161.5,377.8 L153.2,371.4M166.8,385.9 L162.0,377.3 L155.4,372.8 L152.8,369.1 L152.1,365.3M166.8,385.9 L173.1,395.8M133.7,394.0 L132.4,398.4M157.0,387.8 L159.2,391.1M157.0,387.8 L157.3,386.6 L156.1,386.3 L155.8,387.5 L157.0,387.8M157.0,387.8 L155.8,387.5 L156.1,386.3 L157.3,386.6 L157.0,387.8M153.2,371.4 L161.5,377.8 L166.1,386.4M153.2,371.4 L150.7,373.3 L149.6,372.9 L152.0,369.7M152.0,369.7 L149.6,372.9 L150.7,373.3 L153.2,371.4M152.0,369.7 L151.1,365.4M151.1,365.4 L152.0,369.7M152.1,365.3 L152.4,363.7 L150.8,363.6M152.1,365.3 L152.8,369.1 L155.4,372.8 L162.0,377.3 L166.8,385.9M150.8,363.6 L152.4,363.7 L152.1,365.3M25.9,336.9 L22.5,338.0M47.3,296.2 L49.8,299.4 L48.2,300.7M46.3,294.5 L44.6,292.4M-3.6,286.0 L-2.1,283.9M-3.6,286.0 L-2.8,289.4 L5.5,296.8M-2.1,283.9 L-3.6,286.0M5.5,296.8 L-2.8,289.4 L-3.6,286.0M5.5,296.8 L11.1,298.1 L19.4,296.0M-1.3,283.2 L8.9,275.3M222.4,228.1 L220.9,230.2M222.4,228.1 L225.0,229.9 L224.6,231.3 L223.6,231.0M220.9,230.2 L222.4,228.1M220.9,230.2 L217.8,234.4M223.6,231.0 L224.6,231.3 L225.0,229.9 L222.4,228.1M-5.9,667.4 L-0.9,668.0M-5.9,667.4 L-13.8,666.1M367.4,129.0 L365.6,126.9M367.4,129.0 L371.9,132.8 L379.9,132.3 L384.8,138.3 L388.1,139.6 L390.3,138.6 L390.8,137.0 L388.1,132.9M345.7,27.2 L346.3,22.5 L344.9,21.7 L344.0,22.4 L345.7,27.2M345.7,27.2 L344.0,22.4 L344.9,21.7 L346.3,22.5 L345.7,27.2M345.7,27.2 L344.3,35.7M527.9,514.0 L525.2,511.0 L526.1,507.4M526.1,507.4 L529.6,502.6M526.1,507.4 L525.3,506.7 L528.0,502.4 L529.6,502.6M526.1,507.4 L525.2,511.0 L527.9,514.0M529.6,502.6 L526.1,507.4M529.6,502.6 L528.0,502.4 L525.3,506.7 L526.1,507.4M529.6,502.6 L532.2,505.0M532.2,505.0 L529.6,502.6M673.8,-72.5 L679.4,-74.6M673.8,-72.5 L671.2,-70.8 L672.9,-66.5M41.9,289.2 L44.6,292.4M40.1,286.9 L37.4,283.5M41.1,287.1 L47.0,282.5M36.6,284.2 L39.3,287.5M37.4,283.5 L40.1,286.9M-47.4,561.7 L-45.1,565.7 L-35.2,571.0M450.3,183.1 L449.1,174.0M459.9,184.5 L456.4,180.8M459.9,184.5 L463.7,188.2 L466.0,185.9M294.7,334.2 L296.3,331.7 L294.1,329.6M294.7,334.2 L293.6,335.5 L294.7,336.4 L295.7,335.2 L294.7,334.2M294.7,334.2 L295.7,335.2 L294.7,336.4 L293.6,335.5 L294.7,334.2M294.1,329.6 L289.3,325.4M294.1,329.6 L296.3,331.7 L294.7,334.2M155.2,472.8 L160.2,468.4M170.9,482.1 L168.3,481.4 L165.0,476.0 L165.1,472.7 L160.2,468.4M388.1,351.4 L384.7,355.2 L383.2,360.9M388.1,351.4 L389.2,351.3 L389.1,350.2 L388.1,350.3 L388.1,351.4M388.1,351.4 L388.1,350.3 L389.1,350.2 L389.2,351.3 L388.1,351.4M312.2,111.3 L313.0,115.3M556.3,230.6 L558.1,233.4M556.3,230.6 L553.6,226.5M549.5,237.2 L551.6,239.1M551.6,239.1 L549.5,237.2M48.2,300.7 L49.8,299.4 L47.3,296.2M110.9,293.0 L110.0,288.5M110.0,288.5 L110.9,293.0M110.0,288.5 L109.2,284.8M107.9,289.0 L107.4,286.5 L98.5,288.4 L99.5,293.6 L108.3,291.7 L107.9,289.0M107.9,289.0 L108.3,291.7 L99.5,293.6 L98.5,288.4 L107.4,286.5 L107.9,289.0M55.3,286.9 L54.2,284.4M54.2,284.4 L52.2,280.1M54.2,284.4 L55.3,286.9M55.8,283.7 L59.9,281.8M59.9,281.8 L55.8,283.7M59.9,281.8 L64.5,279.8M82.3,284.5 L90.6,286.5 L102.1,284.0M82.3,284.5 L79.3,282.0 L76.8,276.8M64.5,279.8 L68.2,278.9M64.5,279.8 L59.9,281.8M68.2,278.9 L64.5,279.8M57.2,276.2 L66.7,272.8M66.7,272.8 L57.2,276.2M66.7,272.8 L74.0,270.8M76.8,276.8 L79.3,282.0 L82.3,284.5M76.8,276.8 L76.2,274.3M75.2,277.2 L70.1,278.5M76.2,274.3 L76.8,276.8M80.2,276.2 L84.1,275.5M84.1,275.5 L80.2,276.2M85.9,275.1 L87.1,280.5 L93.4,278.2 L91.0,269.2M85.9,275.1 L85.4,272.5 L87.4,270.3M91.0,269.2 L93.4,278.2 L87.1,280.5 L85.9,275.1M87.4,270.3 L90.2,269.4M87.4,270.3 L85.4,272.5 L85.9,275.1M68.4,272.9 L74.2,271.6M74.0,270.8 L66.7,272.8M90.2,269.4 L87.4,270.3M124.2,260.0 L124.4,254.8 L123.2,252.5M124.2,260.0 L124.2,268.1M105.0,264.8 L105.8,268.6M105.0,264.8 L103.9,259.5M123.2,252.5 L124.4,254.8 L124.2,260.0M479.2,154.7 L477.1,155.0 L475.4,157.6M479.2,154.7 L479.8,157.6 L476.9,159.1M642.0,-2.5 L636.3,4.9 L628.8,9.1 L627.2,12.6M627.2,12.6 L628.8,9.1 L636.3,4.9 L642.0,-2.5M626.0,12.6 L626.1,15.0M626.1,15.0 L626.0,12.6M626.1,15.0 L625.5,28.1M626.1,15.0 L610.1,13.8 L606.6,11.2M733.4,34.2 L734.6,35.8 L738.7,37.1M733.4,34.2 L734.2,29.0M738.7,37.1 L742.2,38.4 L743.0,43.2M738.7,37.1 L734.6,35.8 L733.4,34.2M734.2,29.0 L733.4,34.2M546.4,-35.3 L549.9,-36.4 L553.3,-40.6M75.1,549.0 L71.6,546.0M71.6,546.0 L77.2,537.8 L78.0,532.5M71.6,546.0 L75.1,549.0M71.6,546.0 L59.5,537.1M78.0,532.5 L77.2,537.8 L71.6,546.0M59.5,537.1 L64.8,526.5M59.5,537.1 L56.5,535.3M59.5,537.1 L71.6,546.0M64.8,526.5 L59.5,537.1M56.5,535.3 L59.5,537.1M66.2,522.6 L68.0,519.5M66.2,522.6 L64.4,525.3M194.4,375.1 L186.4,364.2 L184.7,359.5M184.7,359.5 L183.4,357.0M184.7,359.5 L186.4,364.2 L194.4,375.1M183.6,358.7 L181.4,359.8M403.5,446.7 L406.7,442.2M404.9,449.3 L407.8,451.5M404.9,449.3 L402.9,447.6M58.8,689.6 L51.9,689.3M51.9,689.3 L51.6,688.7 L51.0,689.0 L51.4,689.6 L51.9,689.3M51.9,689.3 L51.4,689.6 L51.0,689.0 L51.6,688.7 L51.9,689.3M51.9,689.3 L58.8,689.6
38077M97.9,188.8 L92.7,189.8M97.9,188.8 L101.4,188.2M538.1,350.4 L536.7,347.9M535.3,345.8 L536.7,347.9M536.7,347.9 L538.1,350.4M536.7,347.9 L535.3,345.8M253.5,213.9 L251.8,216.1M253.5,213.9 L249.0,210.4M251.8,216.1 L253.5,213.9M249.0,210.4 L253.5,213.9M273.2,214.4 L277.5,212.5M273.2,214.4 L269.6,214.4M248.0,210.1 L243.8,208.7M243.8,208.7 L248.0,210.1M253.6,204.8 L251.4,199.4 L243.9,200.1 L241.6,202.3M241.6,202.3 L243.9,200.1 L251.4,199.4 L253.6,204.8M241.6,202.3 L241.4,207.2 L243.4,208.5M243.4,208.5 L241.4,207.2 L241.6,202.3M466.4,354.5 L466.0,352.2 L467.6,351.5 L467.9,353.9 L466.4,354.5M466.4,354.5 L467.9,353.9 L467.6,351.5 L466.0,352.2 L466.4,354.5M466.4,354.5 L461.6,358.3M421.7,415.6 L423.1,412.4M423.1,412.4 L421.7,415.6M423.1,412.4 L427.5,407.8M427.5,407.8 L433.0,403.0M427.5,407.8 L431.8,402.6M427.5,407.8 L423.1,412.4M181.0,336.4 L182.5,335.7 L183.4,338.7 L181.0,336.4M181.0,336.4 L183.4,338.7 L182.5,335.7 L181.0,336.4M181.0,336.4 L164.7,321.6M164.7,321.6 L181.0,336.4M164.7,321.6 L162.6,324.2M577.9,307.7 L581.1,311.9M220.0,201.7 L221.3,198.5M220.0,201.7 L218.5,204.9M676.3,-56.8 L672.9,-66.5M672.9,-66.5 L671.2,-70.8 L673.8,-72.5M672.9,-66.5 L676.3,-56.8M286.5,290.4 L286.6,293.6M286.5,290.4 L286.4,288.0M413.2,172.0 L409.3,176.1M394.4,238.2 L393.3,242.5M393.5,103.6 L384.8,100.4M196.7,207.4 L206.0,209.6M192.3,206.5 L189.8,206.1M20.1,683.0 L21.6,681.9 L20.4,679.8M20.4,679.8 L21.6,681.9 L20.1,683.0M18.1,675.7 L15.5,672.1M15.5,672.1 L18.1,675.7M108.8,126.4 L105.4,121.2M48.5,229.3 L52.9,234.9M48.5,229.3 L42.1,225.8 L36.1,224.7M52.9,234.9 L56.7,240.1M52.9,234.9 L48.5,229.3M327.4,50.7 L324.9,53.1M317.9,36.5 L318.7,39.8M81.2,154.0 L80.2,148.0M82.2,153.2 L81.7,147.9M82.2,153.2 L85.2,156.2 L91.6,155.5 L90.4,146.8M80.2,148.0 L81.2,154.0M80.2,148.0 L75.9,149.0M81.7,147.9 L82.2,153.2M81.7,147.9 L84.5,147.5M90.4,146.8 L84.5,147.5M90.4,146.8 L91.6,155.5 L85.2,156.2 L82.2,153.2M75.9,149.0 L80.2,148.0M84.5,147.5 L81.7,147.9M84.5,147.5 L90.4,146.8M206.7,361.4 L209.9,358.7 L214.6,359.5M203.1,364.2 L206.2,361.8 L207.9,362.3 L212.5,359.5 L214.6,359.5M277.9,248.4 L280.3,249.4M280.3,249.4 L277.9,248.4M287.7,239.1 L291.4,239.7M285.2,244.4 L286.4,240.8M285.2,244.4 L283.4,249.7 L282.0,250.1M286.4,240.8 L285.2,244.4M282.0,250.1 L283.4,249.7 L285.2,244.4M354.7,259.9 L350.9,257.9M354.5,260.5 L352.9,264.8M350.9,257.9 L354.7,259.9M220.8,159.9 L235.9,161.1 L246.5,158.7M219.7,159.8 L214.9,159.6M623.6,690.6 L625.4,692.3M404.9,145.7 L402.9,147.9 L404.8,150.0M404.8,150.0 L407.1,152.1M404.8,150.0 L402.9,147.9 L404.9,145.7M548.9,224.6 L553.6,226.5M548.9,224.6 L546.1,223.0M553.6,226.5 L556.3,230.6M553.6,226.5 L548.9,224.6M549.6,233.7 L542.4,227.3M543.3,215.3 L548.0,219.4M543.3,215.3 L541.2,213.5M471.4,166.3 L473.5,168.1 L480.9,161.5 L484.3,162.5M471.4,166.3 L473.1,163.2M19.2,221.9 L22.4,222.4M9.1,219.9 L16.0,221.4M9.1,219.9 L-8.6,209.1M16.0,221.4 L9.1,219.9M176.5,240.6 L177.4,237.1M-192.9,-26.5 L-191.0,-24.4M-192.9,-26.5 L-196.9,-46.9M-196.9,-46.9 L-192.9,-26.5M-196.9,-46.9 L-200.6,-64.9M-177.0,-16.2 L-179.5,-17.6M-177.0,-16.2 L-170.6,-12.6M-25.0,-104.3 L-36.6,-101.7M-94.0,664.9 L-96.5,673.4M-76.0,668.3 L-70.6,670.2M-76.0,668.3 L-75.7,662.3M-76.0,668.3 L-78.5,672.0 L-83.7,674.9 L-90.3,675.0 L-96.5,673.4M-75.7,662.3 L-76.0,668.3M0.0,603.3 L11.7,612.9M502.9,498.9 L501.6,496.2M502.9,498.9 L504.0,501.0M63.3,671.6 L67.9,668.5M63.3,671.6 L62.4,667.6M61.5,672.6 L55.3,676.2M67.9,668.5 L63.3,671.6M67.7,664.4 L68.6,668.1M67.7,664.4 L65.0,654.2M-12.8,639.4 L-11.7,636.0M313.6,330.4 L318.6,334.7M311.9,328.9 L307.0,324.2M318.6,334.7 L316.2,337.3M318.6,334.7 L313.6,330.4M319.8,335.8 L327.5,342.5M317.8,337.1 L314.6,340.9M329.2,344.0 L332.4,347.1M327.5,342.5 L319.8,335.8M327.6,344.3 L323.8,348.5M332.4,347.1 L335.3,349.9M332.4,347.1 L329.2,344.0M335.3,349.9 L332.4,347.1M351.2,349.2 L341.8,350.0M504.1,506.8 L506.5,508.2M316.2,337.3 L313.8,340.2M316.2,337.3 L318.6,334.7M321.7,331.6 L325.2,327.7M743.0,43.2 L742.2,38.4 L738.7,37.1M661.9,16.3 L651.8,13.4M661.9,16.3 L674.8,19.7 L691.8,18.7M691.8,18.7 L702.8,17.9M691.8,18.7 L674.8,19.7 L661.9,16.3M209.9,-38.1 L208.4,-52.5M209.9,-38.1 L202.5,-34.2M209.9,-38.1 L218.6,-40.6 L218.7,-43.0 L216.9,-43.6M216.9,-43.6 L218.7,-43.0 L218.6,-40.6 L209.9,-38.1M480.8,-62.0 L476.6,-54.2 L469.8,-51.8 L460.6,-52.7 L459.6,-50.9 L462.1,-49.5M313.8,340.2 L310.6,344.1M313.8,340.2 L316.2,337.3M606.0,574.9 L599.1,573.3M606.0,574.9 L610.3,562.8 L608.8,558.2M607.6,575.5 L611.4,576.8M608.8,558.2 L610.3,562.8 L606.0,574.9M653.7,570.1 L650.4,565.6M650.4,565.6 L653.7,570.1M634.0,620.5 L638.9,621.3M634.0,620.5 L631.5,619.4 L628.3,615.3 L626.9,608.0M599.6,463.2 L593.9,461.9M599.6,463.2 L605.4,464.5 L606.7,462.8M606.7,462.8 L605.4,464.5 L599.6,463.2M528.0,386.4 L530.6,387.7M493.1,265.7 L495.2,267.6M233.6,533.5 L233.9,528.8M233.9,528.8 L229.3,529.2M233.9,528.8 L236.3,523.0M233.9,528.8 L233.6,533.5M229.3,529.2 L233.9,528.8M236.3,523.0 L243.3,526.4M236.3,523.0 L233.9,528.8M243.4,491.4 L260.7,500.2M307.0,324.2 L311.9,328.9M307.0,324.2 L301.3,318.3M301.3,318.3 L299.0,315.7M301.3,318.3 L307.0,324.2M273.2,285.7 L269.3,280.9M273.2,285.7 L276.3,289.6M269.3,280.9 L273.2,285.7M-158.6,371.9 L-157.4,364.4 L-151.7,362.6M-143.0,367.4 L-147.1,363.2M-166.0,359.8 L-168.3,354.5 L-168.3,346.6 L-164.7,343.2M134.9,347.2 L139.0,343.3M134.9,347.2 L138.9,351.9M134.9,347.2 L133.8,349.1 L138.1,352.6M139.0,343.3 L141.6,341.0M139.0,343.3 L134.9,347.2M139.0,343.3 L136.4,340.5M139.0,343.3 L144.9,348.3M138.9,351.9 L134.9,347.2M138.9,351.9 L143.0,354.3M138.1,352.6 L133.8,349.1 L134.9,347.2M136.4,340.5 L139.0,343.3M144.9,348.3 L139.0,343.3M-44.0,311.9 L-19.7,305.8M-19.7,305.8 L-44.0,311.9M-19.7,305.8 L-24.6,300.1 L-28.2,299.2M-19.7,305.8 L-13.9,310.0M-119.0,304.7 L-118.5,300.5 L-125.4,299.2M-13.9,310.0 L-4.7,312.7M-13.9,310.0 L-19.7,305.8M-127.0,306.7 L-125.4,299.2M309.3,67.2 L305.8,63.4M309.3,67.2 L318.9,77.3M253.9,55.0 L250.3,51.2M158.5,-69.3 L170.8,-75.7 L172.2,-72.0M-6.6,609.5 L-8.0,612.6M263.6,10.4 L261.0,14.2M264.3,9.5 L267.9,4.7M267.9,4.7 L264.3,9.5M267.9,4.7 L272.2,1.9M-149.5,312.1 L-144.5,313.1M389.5,432.6 L393.6,438.8M502.9,354.5 L505.5,353.4M488.7,647.
380770 L485.6,648.6M488.7,647.0 L490.8,645.9M488.2,641.7 L490.8,645.9M126.0,302.8 L124.2,300.0M124.2,300.0 L126.0,302.8M127.5,297.9 L129.4,300.6M129.4,300.6 L127.5,297.9M129.6,301.1 L129.4,303.7M129.4,303.7 L129.6,301.1M129.4,304.0 L131.9,304.7M131.9,304.7 L134.5,305.4M131.9,304.7 L129.4,304.0M130.8,295.6 L132.8,298.4M132.8,298.4 L130.8,295.6M133.3,299.1 L135.3,301.8M134.5,305.4 L131.9,304.7M134.5,305.4 L136.3,305.5 L137.2,302.2M134.6,305.1 L135.3,301.8M137.2,302.2 L136.3,305.5 L134.5,305.4M676.8,582.0 L677.0,578.9M666.2,585.2 L666.9,588.2M666.9,588.2 L666.2,585.2M674.1,588.0 L672.0,590.1M672.0,590.1 L674.1,588.0M666.3,595.4 L664.6,597.3M665.4,548.3 L663.9,550.2M663.9,550.2 L665.4,548.3M650.8,573.0 L649.4,575.4M649.4,575.4 L650.8,573.0M649.2,576.1 L649.2,578.8M649.2,578.8 L649.2,576.1M646.1,585.7 L648.8,586.5M35.2,403.4 L38.1,404.0M28.2,384.6 L23.7,383.4 L18.4,385.6M-11.9,344.3 L-9.2,346.8M-11.3,343.6 L-8.5,346.0M-12.6,343.8 L-14.5,342.3M-11.9,343.2 L-14.5,342.3M-10.8,343.2 L-5.6,337.5M-5.6,337.5 L-1.3,332.6M-5.6,337.5 L-10.8,343.2M-49.6,698.0 L-61.4,696.3M-49.6,698.0 L-39.7,699.8M533.8,203.7 L538.5,198.9 L544.5,200.4M544.5,200.4 L549.9,195.0 L555.0,193.6M544.5,200.4 L538.5,198.9 L533.8,203.7M555.0,193.6 L559.3,192.7M555.0,193.6 L549.9,195.0 L544.5,200.4M131.3,187.1 L136.6,189.6M136.6,189.6 L131.3,187.1M189.8,206.1 L192.3,206.5M-204.6,132.7 L-206.9,133.7M-173.2,141.0 L-177.0,148.9M-173.2,141.0 L-165.8,133.1M-137.4,137.1 L-136.2,139.9M-136.2,139.9 L-130.3,148.4M-136.2,139.9 L-137.4,137.1M-48.9,-68.7 L-51.3,-69.3M-51.3,-69.3 L-48.9,-68.7M-51.3,-69.3 L-52.0,-62.6M-51.3,-69.3 L-53.8,-70.5 L-53.1,-73.5M-52.0,-62.6 L-51.3,-69.3M433.8,200.9 L438.5,202.2 L449.0,200.7 L450.9,199.2M429.0,196.9 L432.7,200.0M432.7,200.0 L429.0,196.9M0.2,598.5 L-4.8,604.9M44.5,540.0 L42.7,542.5M547.1,586.5 L544.2,583.6M265.9,212.7 L263.6,211.0M267.0,213.4 L269.6,214.4M263.6,211.0 L265.9,212.7M-103.3,159.6 L-111.1,161.9M70.5,191.0 L62.9,190.1M81.9,192.1 L78.6,192.0M78.6,192.0 L73.0,191.6M78.6,192.0 L81.9,192.1M78.6,192.0 L84.2,190.9M73.0,191.6 L78.6,192.0M84.2,190.9 L78.6,192.0M68.0,519.5 L66.2,522.6M358.1,473.8 L360.2,488.3 L360.3,500.8M358.1,473.8 L358.9,469.9M355.7,472.9 L353.4,474.0M698.2,579.4 L701.5,580.6 L705.5,579.6M50.8,622.5 L51.9,626.6M50.8,622.5 L49.3,615.9M46.0,609.1 L43.6,606.9M46.0,609.1 L48.4,612.5M43.6,606.9 L46.0,609.1M43.6,606.9 L41.1,604.8M242.1,103.0 L254.8,100.7M242.1,103.0 L231.9,106.0M230.1,107.6 L221.2,110.2M231.0,107.9 L233.7,111.7M229.9,106.7 L220.8,109.3M233.6,110.7 L232.0,107.7M203.5,253.7 L204.9,251.8M203.5,253.7 L202.1,255.7M204.9,251.8 L208.1,247.5M204.9,251.8 L203.5,253.7M202.1,255.7 L203.5,253.7M619.7,409.8 L617.6,410.8M135.3,301.8 L134.6,305.1M135.3,301.8 L133.3,299.1M143.0,354.3 L138.9,351.9M317.6,243.1 L322.3,244.3M201.0,280.8 L198.5,278.8M201.0,280.8 L203.9,283.1M201.0,280.8 L204.1,276.6 L201.6,274.5M198.5,278.8 L196.0,276.8M198.5,278.8 L201.0,280.8M198.5,278.8 L201.6,274.5M203.9,283.1 L201.0,280.8M201.6,274.5 L198.5,278.8M201.6,274.5 L204.1,276.6 L201.0,280.8M201.6,274.5 L199.3,272.6M197.8,271.5 L195.0,275.2 L196.0,276.8M197.8,271.5 L193.2,267.9 L191.3,270.1M196.0,276.8 L198.5,278.8M196.0,276.8 L199.3,272.6M196.0,276.8 L195.0,275.2 L197.8,271.5M199.3,272.6 L196.0,276.8M199.3,272.6 L201.6,274.5M191.3,270.1 L189.8,272.1M191.3,270.1 L193.2,267.9 L197.8,271.5M-130.5,133.8 L-124.1,129.6M-130.5,133.8 L-137.8,135.8M-130.5,133.8 L-131.6,128.3M-111.3,129.2 L-112.8,127.9 L-118.3,127.3M-118.3,127.3 L-112.8,127.9 L-111.3,129.2M-118.3,127.3 L-122.2,128.4M-118.3,127.3 L-118.7,120.9 L-116.7,117.5M-122.2,128.4 L-118.3,127.3M-116.7,117.5 L-118.7,120.9 L-118.3,127.3M-116.7,117.5 L-116.2,116.2 L-115.0,116.5M-115.0,116.5 L-116.2,116.2 L-116.7,117.5M-124.1,129.6 L-130.5,133.8M-131.6,128.3 L-130.5,133.8M-131.6,128.3 L-132.2,127.1 L-131.0,126.9M29.8,-90.8 L22.7,-90.6M-102.3,638.4 L-100.5,636.2 L-97.6,625.3M-102.3,638.4 L-105.3,639.4M259.0,36.0 L263.6,43.5M259.0,36.0 L258.5,30.7 L263.7,18.6 L263.1,16.1 L261.0,14.2M263.6,43.5 L259.0,36.0M625.5,28.1 L626.1,15.0M606.6,11.2 L610.1,13.8 L626.1,15.0M287.3,524.8 L271.8,556.3 L272.6,563.2M67.6,254.9 L65.6,252.2M68.6,256.3 L73.8,264.6M73.8,264.6 L68.6,256.3M217.4,417.5 L214.3,426.3M291.2,516.8 L289.0,521.5M291.2,516.8 L295.9,506.8M289.0,521.5 L287.9,523.6M289.0,521.5 L291.2,516.8M295.9,506.8 L291.2,516.8M295.9,506.8 L299.4,499.5M-176.7,81.8 L-203.3,82.2M-176.7,81.8 L-171.9,82.7M480.3,325.5 L484.0,334.9M111.7,250.7 L109.4,252.5M506.5,508.2 L504.1,506.8M506.5,508.2 L508.7,509.4 L505.8,503.7M-83.7,597.0 L-79.7,599.6 L-73.9,600.6M287.9,523.6 L289.0,521.5M411.2,458.3 L406.6,458.6 L402.5,461.1M206.1,447.1 L194.6,469.9 L197.3,475.9 L201.4,480.6 L210.6,483.9M210.6,483.9 L201.4,480.6 L197.3,475.9 L194.6,469.9 L206.1,447.1M356.0,606.4 L354.8,599.7M356.0,606.4 L357.0,611.4M-130.3,148.4 L-127.5,151.8M-130.3,148.4 L-136.2,139.9M216.1,210.9 L217.0,208.3M217.0,208.3 L216.1,210.9M218.5,204.9 L220.0,201.7M97.8,262.8 L95.7,264.3M99.4,261.5 L101.8,259.5M95.7,264.3 L93.5,265.7M95.7,264.3 L97.8,262.8M223.3,214.0 L220.7,215.5M248.4,220.5 L249.8,218.6M249.8,218.6 L248.4,220.5M258.6,227.4 L256.4,226.4M256.4,226.4 L258.6,227.4M395.8,468.3 L392.1,472.3M397.4,466.6 L401.0,462.7M392.1,472.3 L395.8,468.3M41.6,307.4 L32.7,299.4 L31.3,296.1M297.5,275.6 L294.4,274.4M269.6,214.4 L273.2,214.4M269.6,214.4 L267.0,213.4M306.9,278.9 L303.2,277.6M306.9,278.9 L309.8,279.9M307.8,376.7 L312.8,371.1M589.5,-21.3 L592.2,-17.5M589.5,-21.3 L585.4,-25.4M589.5,-21.3 L585.0,-24.1M208.1,247.5 
38077L211.7,242.6M208.1,247.5 L204.9,251.8M211.7,242.6 L208.1,247.5M483.4,603.4 L485.4,610.1M483.4,603.4 L482.6,599.8M354.8,599.7 L356.0,606.4M354.8,599.7 L354.3,597.3M611.4,576.8 L615.6,578.3M611.4,576.8 L607.6,575.5M-174.5,187.1 L-197.8,187.8M-174.5,187.1 L-162.6,186.0M702.8,17.9 L705.4,17.7M702.8,17.9 L691.8,18.7M705.4,17.7 L702.8,17.9M659.8,-69.2 L657.9,-64.4M659.8,-69.2 L664.8,-76.4M47.0,282.5 L41.1,287.1M147.4,-28.5 L151.2,-32.3M147.4,-28.5 L142.1,-22.8M-5.5,-54.2 L-1.0,-45.5M-200.2,-104.1 L-197.8,-99.9M-200.2,-104.1 L-201.6,-106.7M735.0,25.5 L735.6,21.7 L732.2,18.6M305.8,63.4 L309.3,67.2M305.8,63.4 L302.3,59.9M302.3,59.9 L305.8,63.4M302.3,59.9 L295.9,53.2M-108.3,296.0 L-97.1,308.2M-109.2,295.2 L-116.2,290.2M159.0,233.4 L162.6,235.2M70.1,278.5 L75.2,277.2M19.4,296.0 L11.1,298.1 L5.5,296.8M19.4,296.0 L23.7,300.1M21.2,283.5 L24.3,287.2M117.0,419.5 L108.5,428.2M117.0,419.5 L123.3,412.8 L128.4,405.1M181.4,359.8 L183.6,358.7M-216.7,707.3 L-214.5,712.9M-216.7,707.3 L-219.4,701.7M249.6,455.3 L252.8,461.3 L271.4,469.6 L273.7,469.0 L275.6,465.2M656.0,-60.8 L647.0,-47.0 L646.2,-41.7M656.0,-60.8 L657.9,-64.4M657.9,-64.4 L659.8,-69.2M657.9,-64.4 L656.0,-60.8M664.1,122.6 L670.0,126.6M662.4,102.9 L666.6,103.3M662.4,102.9 L643.9,102.6M662.5,121.5 L660.1,119.8M10.5,516.2 L11.5,520.4 L16.8,523.3 L17.1,526.3 L21.9,529.1M21.9,529.1 L41.8,540.6M21.9,529.1 L17.1,526.3 L16.8,523.3 L11.5,520.4 L10.5,516.2M-132.5,686.3 L-132.2,681.2 L-133.9,676.5M-132.5,686.3 L-136.9,691.1M-44.4,-74.2 L-38.4,-74.6M352.7,585.5 L353.2,588.3M352.3,583.3 L351.7,579.7M547.4,323.9 L548.9,327.3M547.4,323.9 L545.7,320.1M-171.9,82.7 L-176.7,81.8M-171.9,82.7 L-163.0,87.5M344.6,62.2 L346.2,59.9M344.6,62.2 L342.2,66.8M230.6,251.9 L231.4,249.1M-149.2,76.9 L-143.3,78.8M-149.2,76.9 L-160.6,72.3M-160.6,72.3 L-149.2,76.9M390.7,473.7 L386.8,477.7M401.0,462.7 L402.5,461.1M401.0,462.7 L397.4,466.6M402.5,461.1 L401.0,462.7M402.5,461.1 L406.6,458.6 L411.2,458.3M51.5,678.3 L55.3,676.2M55.3,676.2 L61.5,672.6M55.3,676.2 L51.5,678.3M-41.9,363.6 L-44.6,362.0M-41.9,363.6 L-38.7,365.4M-38.7,365.4 L-41.9,363.6M-38.7,365.4 L-30.6,369.9M-58.4,384.7 L-55.5,383.7 L-51.8,379.8 L-50.8,376.8 L-52.1,369.4 L-50.8,366.7M689.7,-92.6 L687.9,-90.7M541.2,365.5 L539.4,363.0M506.3,541.7 L501.5,538.7M501.5,538.7 L506.3,541.7M501.6,496.2 L502.9,498.9M501.6,496.2 L499.9,493.0M499.9,493.0 L501.6,496.2M499.9,493.0 L495.8,485.0M485.6,438.4 L494.3,440.7M485.6,438.4 L481.4,437.3 L480.3,426.8 L481.8,425.9 L489.2,428.0M489.2,428.0 L481.8,425.9 L480.3,426.8 L481.4,437.3 L485.6,438.4M489.2,428.0 L497.0,430.1M25.4,-19.8 L27.3,-18.3M25.4,-19.8 L18.7,-25.5M355.1,155.1 L353.5,158.1M400.3,80.1 L402.1,82.1M402.1,82.1 L400.3,80.1M452.8,385.9 L449.0,385.8M452.8,385.9 L459.0,386.9M302.4,259.9 L304.6,260.7M301.9,259.7 L294.1,256.8M294.4,274.4 L291.8,273.4M294.4,274.4 L297.5,275.6M285.6,279.5 L285.4,276.2M285.8,280.9 L286.1,283.9M286.1,283.9 L285.8,280.9M268.5,279.9 L266.5,277.5M312.2,280.8 L309.8,279.9M309.8,279.9 L306.9,278.9M309.8,279.9 L312.2,280.8M312.9,290.8 L313.4,288.6 L317.0,285.6M317.0,285.6 L313.4,288.6 L312.9,290.8M313.4,292.0 L317.5,293.0M142.9,222.3 L139.4,219.3M142.9,222.3 L148.1,226.9M139.4,219.3 L142.9,222.3M153.2,223.5 L150.0,226.9M-101.1,232.7 L-104.8,233.7M-118.6,221.3 L-115.0,221.0M-121.3,217.2 L-121.9,213.9M266.2,241.2 L262.9,247.3 L260.2,246.4 L262.7,240.3 L266.2,241.2M266.2,241.2 L262.7,240.3 L260.2,246.4 L262.9,247.3 L266.2,241.2M266.8,240.2 L270.3,234.2M302.5,241.3 L305.5,241.5M298.2,249.1 L306.6,251.5M291.4,239.7 L295.9,240.4M291.4,239.7 L287.7,239.1M199.1,259.7 L197.1,262.4M199.1,259.7 L200.8,257.4M92.7,189.8 L97.9,188.8M109.7,186.5 L112.5,185.9M107.3,105.1 L109.1,107.7M109.1,107.7 L107.3,105.1M109.1,107.7 L112.0,111.4 L106.2,115.8M658.3,118.6 L654.2,115.8M74.0,265.4 L75.3,269.8M75.3,269.8 L74.0,265.4M436.3,441.1 L441.9,449.4M436.3,441.1 L442.6,436.4M-233.2,623.2 L-229.1,628.0M339.5,-7.0 L342.1,-8.1M339.5,-7.0 L340.7,-10.0 L342.1,-8.1M339.5,-7.0 L333.4,-0.9 L328.2,1.3 L305.2,3.4 L295.2,2.2 L289.6,4.3M342.1,-8.1 L340.7,-10.0 L339.5,-7.0M342.1,-8.1 L339.5,-7.0M21.7,338.0 L18.3,336.7 L13.6,331.6 L11.7,325.8 L8.0,322.1M22.5,338.0 L25.9,336.9M234.7,268.5 L238.6,272.8M391.1,332.0 L393.5,334.1M391.1,332.0 L384.1,325.8M45.1,539.1 L48.5,534.5M209.2,112.5 L212.9,111.4M208.3,112.8 L201.5,115.3M212.9,111.4 L209.2,112.5M212.9,111.4 L218.8,109.7M217.4,103.7 L213.6,94.3M217.4,103.7 L219.7,109.0M357.9,372.5 L351.9,365.7M358.8,373.4 L360.6,375.7M-5.5,-54.7 L-9.4,-63.3M565.2,-47.8 L567.8,-50.8M565.2,-47.8 L562.8,-44.7M368.7,265.3 L365.6,264.3M365.6,264.3 L368.7,265.3M-214.5,712.9 L-216.7,707.3M-214.5,712.9 L-212.7,717.5M-212.7,717.5 L-214.5,712.9M225.4,224.2 L223.8,226.4M220.7,215.5 L223.3,214.0M223.8,226.4 L225.4,224.2M303.9,319.2 L306.1,321.6M-81.6,693.4 L-86.3,692.7M-86.3,692.7 L-81.6,693.4M583.2,-69.8 L574.8,-59.1M574.8,-59.1 L572.5,-56.4M574.8,-59.1 L583.2,-69.8M113.6,141.8 L117.5,140.6M526.6,275.9 L524.5,278.4M526.6,275.9 L530.3,278.2M56.7,240.1 L65.6,252.2M56.7,240.1 L52.9,234.9M28.1,593.5 L26.1,591.8M28.1,593.5 L34.1,598.7M26.1,591.8 L28.1,593.5M26.1,591.8 L23.5,589.5M23.5,589.5 L26.1,591.8M17.9,584.6 L16.1,583.1M10.3,588.2 L13.0,585.0M13.0,585.0 L10.3,588.2M13.0,585.0 L14.6,583.1M8.9,589.9 L6.6,592.8M131.6,237.1 L128.0,239.1M128.0,239.1 L131.6,237.1M202.1,205.6 L206.0,207.2M238.7,110.0 L237.1,107.1M237.1,107.1 L238.7,110.0M200.8,257.4 L199.1,259.7M101.8,259.5 L99.4,261.5M375.7,397.5 L377.2,400.3M375.7,397.5 L374.2,394.6M374.2,394.6 L375.7,397.5M68.9,166.7 L72.2,166.4M188.0,199.6 L184.9,198.0 L184.1,199.6 L182.6,199.3M182.6,199.3 L184.1,199.6 L184.9,198.0 L188.0,199.6M191.5,201.3 L194.1,202.7M217.8,234.4 L220.9,230.2M93.5,265.7 L95.7,264.3M261.3,234.0 L258.6,240.2M261.6,233.4 L263.0,230.4M258.6,240.2 L261.3,234.0M673.4,664.9 L671.7,668.5M673.4,664.9 L675.1,661.3M306.4,235.2 L306.7,231.3M-126.4,156.1 L-126.9,161.4M-126.4,156.1 L-127.1,152.5M-11.5,612.8 L-13.5,610.7M131.0,132.6 L129.7,130.1M372.2,391.2 L370.8,389.0M371.5,406.0 L369.0,401.2M371.5,406.0 L373.0,408.2M593.3,294.2 L591.8,292.1M593.7,294.8 L595.9,297.7M591.8,292.1 L593.3,294.2M112.5,185.9 L109.7,186.5M-228.4,677.9 L-228.9,674.5M-228.9,674.5 L-228.4,677.9M-228.9,674.5 L-227.1,654.2M87.1,385.8 L96.3,398.5 L106.2,395.7M106.2,395.7 L96.3,398.5 L87.1,385.8M106.2,395.7 L126.4,388.5M490.9,349.1 L488.5,350.2 L490.9,355.7 L498.8,352.5M462.1,-49.5 L459.6,-50.9 L460.6,-52.7 L469.8,-51.8 L476.6,-54.2 L480.8,-62.0M106.9,143.0 L101.1,143.7M101.1,143.7 L106.9,143.0M101.1,143.7 L96.9,144.1M442.6,436.4 L436.3,441.1M24.3,287.2 L21.2,283.5M24.3,287.2 L30.2,294.5M365.3,21.8 L365.9,18.8M664.8,-76.4 L659.8,-69.2M6.6,592.8 L8.9,589.9M4.3,595.6 L1.9,598.6M237.4,262.6 L234.0,262.8M237.4,262.6 L240.1,262.4M234.0,262.8 L223.6,263.5M234.0,262.8 L237.4,262.6M42.7,-98.5 L38.0,-97.1M618.4,528.8 L616.8,531.0 L614.0,531.0M53.7,722.9 L46.7,729.7M373.0,408.2 L371.5,406.0M374.4,410.1 L376.6,413.0M372.8,13.0 L368.3,11.8M372.8,13.0 L371.9,20.3M-10.2,631.1 L-9.9,627.9M-10.2,631.1 L-10.4,633.7M-9.9,627.9 L-10.2,631.1M-9.9,627.9 L-9.5,623.5M-4.8,604.9 L-9.1,611.9M-4.8,604.9 L0.2,598.5M-127.5,151.8 L-130.3,148.4M191.6,119.4 L185.8,120.4M500.2,263.0 L502.7,260.2M485.8,253.9 L484.5,257.9M-9.5,623.5 L-9.9,627.9M251.6,229.8 L253.1,226.1M251.6,229.8 L249.9,235.0M424.3,129.1 L434.0,133.5M550.2,42.1 L548.1,41.1 L548.0,40.2 L549.9,40.2 L550.2,42.1M550.2,42.1 L549.9,40.2 L548.0,40.2 L548.1,41.1 L550.2,42.1M550.3,43.3 L550.7,47.1M550.7,47.1 L550.3,43.3M83.3,269.6 L86.3,268.4M83.3,269.6 L78.3,270.7M78.3,270.7 L83.3,269.6M521.9,363.1 L524.4,363.7M524.4,363.7 L529.7,365.2M524.4,363.7 L521.9,363.1M-228.0,681.3 L-228.0,688.5M76.6,270.3 L86.3,268.4M314.5,253.7 L318.0,254.7M470.9,248.8 L471.1,246.3M470.9,248.8 L470.8,254.1M470.8,254.1 L470.9,248.8M470.8,254.1 L470.7,255.6 L472.6,255.2 L472.4,254.1 L470.8,254.1M470.8,254.1 L472.4,254.1 L472.6,255.2 L470.7,255.6 L470.8,254.1M96.9,144.1 L101.1,143.7M701.4,219.9 L704.9,221.2M701.4,219.9 L697.6,218.5M704.9,221.2 L708.9,222.7M704.9,221.2 L701.4,219.9M-193.1,227.9 L-189.8,229.5 L-192.4,234.3M37.9,675.3 L41.9,682.7M37.9,675.3 L34.2,668.7M-9.3,621.8 L-9.1,619.4M480.5,668.2 L475.4,668.1M412.7,286.8 L409.8,283.0M412.7,286.8 L414.3,288.8M533.6,324.6 L530.6,326.6M140.2,430.7 L144.5,430.5 L142.1,433.4 L140.2,430.7M140.2,430.7 L142.1,433.4 L144.5,430.5 L140.2,430.7M140.2,430.7 L137.7,431.6M318.0,254.7 L314.5,253.7M373.4,272.3 L371.8,278.5M6.8,-71.6 L9.5,-68.8 L9.4,-65.8 L7.7,-64.4M7.7,-64.4 L9.4,-65.8 L9.5,-68.8 L6.8,-71.6M374.0,270.7 L374.9,267.8M586.5,24.4 L578.6,18.4M301.9,317.1 L299.9,314.9M-177.0,148.9 L-173.2,141.0M590.6,290.4 L592.9,288.2 L591.5,286.0 L588.9,288.4 L590.6,290.4M590.6,290.4 L588.9,288.4 L591.5,286.0 L592.9,288.2 L590.6,290.4M-217.1,294.0 L-214.8,294.5M-217.1,294.0 L-218.9,292.6 L-219.2,290.7 L-217.5,289.4M-203.0,-109.4 L-201.6,-106.7M-201.6,-106.7 L-200.2,-104.1M-201.6,-106.7 L-203.0,-109.4M407.8,451.5 L404.9,449.3M579.2,324.8 L576.7,321.5M-127.1,152.5 L-126.4,156.1M703.8,162.1 L697.2,156.5M552.8,261.5 L549.5,258.7M552.8,261.5 L555.9,264.2M549.5,258.7 L552.8,261.5M146.0,193.4 L148.9,194.7 L147.0,192.3M705.4,200.4 L702.6,197.9M705.4,200.4 L711.9,206.6M702.6,197.9 L705.4,200.4M660.1,119.8 L662.5,121.5M585.4,-25.4 L582.7,-26.6M585.4,-25.4 L589.5,-21.3M675.1,661.3 L673.4,664.9M95.5,144.3 L92.0,144.8M92.0,144.8 L95.5,144.3M331.5,501.4 L330.6,506.4M331.5,501.4 L332.4,496.6M330.6,506.4 L331.5,501.4M330.6,506.4 L329.6,509.8M440.8,686.4 L441.4,688.9 L443.2,690.3M443.2,690.3 L441.4,688.9 L440.8,686.4M657.9,42.2 L659.7,42.5 L663.2,39.5M359.7,93.5 L357.1,90.6M585.5,303.0 L587.1,305.1M457.7,377.8 L449.3,375.7M413.5,277.7 L413.5,280.5M413.5,277.7 L413.5,273.7M151.2,-32.3 L154.0,-34.7M151.2,-32.3 L147.4,-28.5M201.5,115.3 L208.3,112.8M210.6,113.1 L219.0,110.9M314.4,278.9 L315.4,275.9M572.5,-56.4 L574.8,-59.1M572.5,-56.4 L567.8,-50.8M567.8,-50.8 L572.5,-56.4M567.8,-50.8 L565.2,-47.8M573.8,34.6 L578.4,42.0M350.3,257.6 L347.6,256.3M490.3,266.9 L487.9,270.5M457.8,496.4 L456.0,498.7M457.8,496.4 L459.6,494.0M456.0,498.7 L457.8,496.4M456.0,498.7 L458.1,500.4M32.7,618.2 L29.1,615.3M419.0,247.8 L425.1,248.7M562.0,328.0 L567.0,324.3M410.1,242.0 L411.6,243.1 L415.3,242.9M433.3,281.7 L432.0,275.6M432.0,275.6 L433.3,281.7M487.9,270.5 L486.1,273.7M487.9,270.5 L490.3,266.9M486.1,273.7 L484.8,276.1M486.1,273.7 L487.9,270.5M491.4,274.0 L489.0,278.3M544.2,583.6 L547.1,586.5M543.2,582.4 L541.9,579.7M549.3,588.5 L553.6,592.4M558.7,594.2 L560.7,592.2M564.1,588.3 L562.4,590.2M505.5,353.4 L502.9,354.5M716.7,170.9 L723.9,176.5M716.7,170.9 L700.8,157.0 L699.7,154.7 L702.4,149.0 L705.4,145.9M426.5,231.8 L421.7,230.6M421.7,230.6 L426.5,231.8M419.6,230.2 L416.8,229.5M428.6,239.7 L415.7,237.
380771M428.6,239.7 L432.7,240.5M442.1,366.1 L440.5,363.9M442.1,366.1 L444.6,370.3M416.7,425.4 L419.1,427.1M393.6,438.8 L389.5,432.6M394.6,431.2 L396.1,430.3 L396.9,431.8 L395.7,432.5 L394.6,431.2M394.6,431.2 L395.7,432.5 L396.9,431.8 L396.1,430.3 L394.6,431.2M394.6,431.2 L393.2,429.0M18.7,608.2 L20.6,606.1M21.2,610.1 L22.9,608.0M25.9,628.6 L27.7,630.1 L35.3,620.4M35.3,620.4 L27.7,630.1 L25.9,628.6M8.5,643.9 L3.8,651.3M-131.0,126.9 L-132.2,127.1 L-131.6,128.3M599.3,614.8 L601.8,614.4M572.7,602.0 L569.9,602.1M601.8,614.4 L604.3,613.8M601.8,614.4 L599.3,614.8M464.1,717.0 L482.2,709.3M466.3,509.1 L458.1,500.4M466.3,509.1 L469.4,511.3M458.1,500.4 L456.0,498.7M458.1,500.4 L466.3,509.1M469.4,511.3 L466.3,509.1M469.4,511.3 L472.9,512.5M469.4,511.3 L466.1,524.9 L469.8,527.1 L472.8,525.3 L476.7,514.7 L476.0,512.1M476.0,512.1 L472.9,512.5M476.0,512.1 L477.8,507.7M476.0,512.1 L476.7,514.7 L472.8,525.3 L469.8,527.1 L466.1,524.9 L469.4,511.3M472.9,512.5 L469.4,511.3M472.9,512.5 L476.0,512.1M472.9,512.5 L474.9,506.9 L477.8,507.7M175.1,228.6 L178.7,230.4M175.1,228.6 L170.6,226.3M458.8,638.6 L456.0,639.0M460.7,642.0 L462.4,640.2M458.3,644.4 L456.6,648.1M456.7,626.8 L456.9,629.2M475.4,668.1 L471.7,668.0M475.4,668.1 L480.5,668.2M464.7,618.6 L462.4,617.4M462.4,617.4 L464.7,618.6M456.0,639.0 L458.8,638.6M455.6,652.2 L455.2,654.6M474.2,643.2 L476.1,644.6M476.1,644.6 L474.2,643.2M474.7,650.0 L471.6,649.6M471.6,649.6 L474.7,650.0M455.2,654.6 L455.6,652.2M497.1,664.5 L494.2,666.0M485.0,637.8 L487.1,639.9M487.1,639.9 L485.0,637.8M485.6,648.6 L488.7,647.0M453.0,670.4 L452.8,674.0M452.8,674.0 L453.0,670.4M452.8,674.0 L459.0,686.2M65.6,252.2 L67.6,254.9M65.6,252.2 L56.7,240.1M501.0,538.6 L498.0,538.0M498.0,538.0 L501.0,538.6M223.6,263.5 L234.0,262.8M295.6,218.3 L297.2,224.2M295.2,218.0 L291.1,214.9M606.0,601.1 L605.0,603.4M605.0,603.4 L606.0,601.1M541.9,579.7 L543.2,582.4M541.9,579.7 L540.8,577.2M289.2,208.3 L287.1,210.2 L287.5,212.1M-214.8,294.5 L-217.1,294.0M-214.8,294.5 L-211.6,294.2M-211.6,294.2 L-209.1,293.8M-211.6,294.2 L-214.8,294.5M478.4,683.1 L488.8,684.1M495.9,695.6 L498.4,694.9M498.4,694.9 L495.9,695.6M503.7,693.0 L506.4,691.6M506.4,691.6 L508.6,690.4M506.4,691.6 L503.7,693.0M508.6,690.4 L506.4,691.6M456.8,722.0 L453.5,724.2M451.4,722.0 L451.8,716.2M451.8,716.2 L451.4,713.8M451.8,716.2 L451.4,722.0M450.6,709.2 L450.1,705.9 L448.2,705.1M448.2,705.1 L450.1,705.9 L450.6,709.2M446.9,665.4 L443.9,664.8M446.9,665.4 L449.4,665.8M443.9,664.8 L440.4,664.3M443.9,664.8 L446.9,665.4M490.8,220.7 L493.0,222.7M490.8,220.7 L488.2,219.3 L488.7,222.2M488.7,222.2 L490.0,224.7M488.7,222.2 L488.2,219.3 L490.8,220.7M489.6,390.8 L490.9,386.4M489.6,390.8 L488.2,395.9M490.9,386.4 L489.6,390.8M498.8,352.5 L490.9,355.7 L488.5,350.2 L490.9,349.1M498.8,352.5 L498.0,350.1M509.8,351.5 L514.0,349.8M502.7,390.1 L509.7,391.9M464.4,486.8 L466.7,488.2 L465.4,490.4M465.4,490.4 L466.7,488.2 L464.4,486.8M480.9,606.5 L479.2,609.0M479.2,609.0 L480.9,606.5M497.9,549.4 L495.5,549.2M168.3,203.6 L165.5,202.5M85.2,94.3 L82.2,95.7M104.0,257.9 L108.5,254.6M108.5,254.6 L112.2,251.5M108.5,254.6 L104.0,257.9M157.7,75.7 L160.0,76.7 L162.5,80.7 L161.2,84.0 L158.5,86.5 L158.0,90.7 L160.7,101.1M185.3,234.0 L182.3,232.4M185.3,234.0 L189.0,235.8M184.5,235.0 L188.3,237.0M184.5,235.0 L181.7,233.6M258.3,240.7 L256.6,244.9M287.5,212.1 L291.1,214.9M287.5,212.1 L287.1,210.2 L289.2,208.3M291.1,214.9 L295.2,218.0M291.1,214.9 L287.5,212.1M446.5,243.7 L444.6,241.4M481.5,246.8 L487.0,247.4M-173.1,210.6 L-173.1,206.3M509.7,391.9 L502.7,390.1M553.5,351.1 L548.3,344.0M560.8,345.6 L556.2,339.1"/><path class="lu lu-park" data-lu="park" d="M72.7,597.4 L89.6,594.4 L88.4,598.4 L99.6,597.0 L100.3,600.9 L73.3,600.9 L72.7,597.4ZM26.5,389.1 L28.5,391.3 L25.2,394.3 L23.2,392.2 L26.5,389.1ZM189.7,382.2 L189.7,383.5 L187.4,385.5 L187.4,388.9 L185.3,390.1 L173.9,390.8 L166.0,377.9 L165.4,378.4 L163.9,376.5 L164.6,375.8 L156.9,364.6 L153.8,364.6 L154.1,357.1 L155.2,353.8 L164.9,359.4 L170.1,361.6 L176.5,361.2 L176.4,364.0 L177.5,366.3 L184.4,374.5 L186.7,378.6 L189.7,382.2ZM136.6,311.8 L139.4,321.4 L137.0,321.2 L136.5,318.7 L132.5,317.0 L131.4,314.7 L133.7,313.6 L133.6,313.1 L132.6,310.8 L130.4,308.8 L134.6,310.2 L136.6,311.8ZM137.7,308.6 L137.0,309.1 L135.0,307.8 L137.7,302.4 L138.7,305.5 L137.7,308.6ZM131.6,293.9 L128.6,296.1 L128.5,295.2 L130.7,293.9 L127.9,290.1 L125.5,290.0 L126.5,287.9 L125.8,283.8 L126.4,284.0 L127.6,287.5 L131.6,293.9ZM249.3,276.7 L249.4,280.0 L254.9,280.1 L259.9,276.1 L261.3,277.8 L264.4,275.5 L275.3,289.1 L226.6,290.3 L226.5,276.9 L249.3,276.7ZM38.4,228.9 L39.5,243.4 L42.2,242.8 L40.0,245.4 L34.2,246.3 L13.8,259.6 L0.0,253.0 L0.0,231.6 L38.4,228.9ZM180.5,257.8 L180.0,256.1 L179.8,244.6 L187.5,249.1 L188.1,250.9 L184.8,257.3 L180.5,257.8ZM167.0,217.5 L166.0,216.8 L168.8,214.4 L169.5,214.8 L169.9,213.7 L171.7,212.5 L177.3,214.4 L176.5,219.2 L167.0,217.5ZM173.9,209.5 L172.1,204.9 L178.8,205.6 L173.9,209.5ZM175.4,198.1 L178.1,199.9 L178.1,201.6 L176.6,203.0 L173.2,203.1 L169.0,202.2 L165.1,200.3 L169.6,199.1 L172.8,199.2 L173.6,198.3 L175.4,198.1ZM163.3,194.6 L163.5,195.3 L164.7,195.2 L165.5,194.5 L172.2,192.6 L173.8,191.0 L175.5,192.3 L175.4,193.3 L158.7,198.0 L158.1,197.6 L163.0,196.0 L163.3,194.6ZM124.1,184.9 L125.2,185.3 L126.3,193.7 L119.0,194.3 L118.5,185.7 L124.1,184.9ZM53.3,187.5 
38077L43.2,184.7 L43.2,184.2 L40.6,183.6 L26.0,177.4 L9.9,175.9 L3.9,174.7 L0.0,173.2 L0.0,162.4 L2.7,160.0 L2.7,159.4 L1.7,156.5 L0.0,155.0 L0.0,66.0 L7.2,64.3 L10.1,62.0 L9.8,54.8 L10.3,54.0 L12.0,53.4 L12.7,54.0 L12.4,54.9 L13.8,55.8 L14.2,57.6 L16.8,58.5 L17.8,56.9 L16.6,54.5 L16.9,52.7 L18.6,51.9 L24.9,51.9 L26.1,50.6 L23.6,49.5 L23.6,48.6 L26.4,49.4 L28.1,48.8 L29.2,47.3 L34.6,46.6 L38.6,44.8 L39.0,44.0 L37.6,41.6 L37.4,39.7 L36.0,36.8 L34.3,36.2 L32.4,34.1 L33.9,33.2 L34.8,31.7 L34.5,29.0 L35.7,25.5 L38.5,24.7 L41.3,22.4 L43.7,23.8 L43.1,28.2 L44.7,32.2 L47.3,32.7 L50.8,32.0 L53.1,33.2 L59.7,29.4 L60.6,29.3 L61.3,30.0 L61.2,30.8 L60.0,32.3 L61.4,33.0 L61.2,35.6 L61.9,36.2 L66.0,34.5 L67.1,33.0 L67.8,33.5 L70.6,43.0 L63.6,46.5 L62.4,48.0 L61.9,50.6 L63.1,52.0 L64.9,52.3 L66.9,54.0 L71.3,54.9 L72.9,54.0 L71.0,46.7 L71.6,47.3 L72.6,48.9 L74.6,59.3 L73.7,59.8 L70.0,59.0 L70.0,60.7 L71.3,63.0 L72.2,63.1 L73.3,61.8 L74.2,62.0 L75.8,64.4 L76.6,68.0 L73.2,66.8 L71.4,67.7 L71.4,70.4 L75.0,69.7 L75.2,71.5 L74.7,72.2 L68.9,75.4 L63.7,69.0 L58.6,68.6 L57.0,69.6 L55.8,72.0 L56.4,73.8 L54.8,76.1 L54.4,75.5 L55.4,73.7 L55.3,72.4 L53.9,70.3 L55.0,68.1 L59.1,66.1 L61.8,63.4 L61.7,61.1 L59.2,58.3 L59.3,55.6 L57.4,54.9 L55.8,55.8 L54.8,59.4 L53.5,58.2 L52.7,60.8 L53.5,62.5 L53.6,64.3 L52.6,67.9 L48.1,67.4 L45.5,62.3 L42.7,61.9 L41.0,58.8 L39.3,57.8 L36.5,57.3 L35.6,57.5 L35.3,58.4 L33.6,57.7 L32.6,59.2 L30.6,59.4 L29.7,61.0 L28.0,61.8 L25.9,64.8 L29.7,68.3 L31.6,68.1 L32.2,67.4 L31.5,66.7 L33.2,67.3 L33.5,68.2 L35.4,69.6 L35.4,70.6 L33.6,71.2 L34.3,73.7 L35.2,73.8 L34.3,75.4 L35.1,76.2 L33.8,78.6 L34.2,80.4 L35.0,80.0 L34.3,81.8 L34.7,82.6 L35.5,83.0 L37.0,81.8 L37.6,83.6 L39.9,82.3 L43.0,83.5 L46.4,86.5 L49.0,90.5 L48.9,92.3 L48.1,92.6 L45.4,91.3 L43.7,85.9 L40.8,83.5 L37.1,84.0 L35.5,85.1 L35.6,86.9 L34.7,88.4 L35.4,90.0 L34.5,90.3 L28.9,89.2 L28.3,88.5 L24.6,90.0 L23.7,89.6 L23.8,88.7 L26.3,87.8 L26.7,86.0 L26.1,84.2 L24.2,83.7 L20.7,85.1 L19.3,83.8 L21.1,83.3 L22.9,80.3 L22.6,79.3 L23.0,78.5 L25.5,77.5 L26.1,75.8 L25.0,74.3 L20.6,72.3 L15.2,74.1 L15.7,80.4 L15.0,81.0 L13.3,80.5 L12.2,79.1 L10.5,80.1 L9.9,77.2 L9.3,76.6 L8.4,77.0 L7.1,79.3 L6.2,79.3 L4.7,80.4 L4.0,82.1 L5.3,85.5 L4.7,90.0 L6.0,92.4 L8.1,94.1 L9.4,92.9 L12.9,92.8 L14.6,90.8 L14.3,88.1 L15.2,88.0 L16.9,89.0 L18.6,88.6 L20.9,92.5 L20.7,93.4 L18.8,95.3 L18.8,99.1 L16.5,100.8 L13.8,100.7 L11.6,102.4 L11.1,104.1 L11.6,105.7 L8.0,109.8 L9.5,105.7 L7.6,105.4 L6.0,106.3 L1.9,117.5 L1.8,119.3 L3.3,123.7 L2.1,126.7 L2.1,128.4 L3.3,131.0 L3.1,131.9 L2.3,132.0 L2.3,132.8 L4.3,132.8 L5.6,131.4 L7.4,131.3 L11.2,128.9 L11.7,126.0 L10.1,123.8 L9.7,122.0 L22.8,126.4 L23.5,126.9 L23.5,128.7 L24.3,129.0 L26.1,129.0 L26.9,127.2 L27.8,127.6 L29.5,126.8 L28.6,125.2 L26.7,124.7 L27.1,123.8 L30.6,122.9 L30.9,122.0 L29.3,121.2 L25.4,122.0 L24.6,121.7 L24.0,120.0 L26.0,117.1 L28.3,115.6 L30.1,115.6 L31.3,114.3 L31.6,111.5 L32.6,110.1 L32.2,109.2 L30.6,108.4 L30.4,107.5 L31.1,107.0 L30.7,105.5 L29.6,104.1 L28.7,104.0 L29.7,102.6 L31.6,102.4 L33.0,104.5 L34.8,104.5 L36.3,100.0 L37.7,99.8 L40.5,97.5 L40.6,98.4 L39.2,100.7 L40.2,102.1 L42.8,102.7 L45.4,101.7 L51.3,102.1 L55.4,101.5 L60.3,97.7 L61.8,95.4 L63.1,96.5 L63.6,99.8 L65.3,99.8 L65.7,99.0 L65.8,100.8 L66.7,101.0 L68.1,99.9 L68.3,98.1 L72.1,96.2 L72.1,98.1 L70.5,99.0 L69.7,100.6 L70.8,102.0 L72.3,102.6 L75.0,106.0 L73.9,109.4 L67.9,109.7 L66.5,108.3 L62.8,107.4 L61.8,107.6 L61.6,112.3 L59.5,114.9 L57.2,113.5 L57.2,111.6 L55.0,110.1 L54.0,111.6 L54.5,113.3 L52.1,114.6 L50.8,118.1 L48.9,120.3 L46.0,120.6 L43.6,121.9 L42.4,124.4 L47.7,123.0 L48.9,120.7 L49.0,121.6 L48.1,123.3 L48.4,124.2 L51.0,124.5 L52.8,124.1 L56.2,123.1 L61.1,120.7 L63.8,120.6 L65.2,119.5 L67.0,119.4 L79.0,115.4 L81.8,115.1 L84.2,114.0 L88.8,114.9 L89.9,118.3 L91.5,119.1 L92.5,120.7 L92.9,122.4 L91.9,129.7 L90.3,131.9 L74.9,134.6 L74.2,135.3 L73.0,136.9 L73.1,138.8 L74.1,144.1 L76.1,145.7 L71.9,148.0 L66.9,154.1 L65.1,158.8 L65.1,165.0 L64.5,166.1 L60.9,167.0 L56.8,171.0 L54.8,171.7 L54.7,168.1 L53.4,167.2 L50.9,166.7 L50.1,165.5 L48.3,165.6 L47.3,169.5 L47.9,170.8 L46.9,181.3 L46.1,181.6 L45.9,180.3 L45.6,182.2 L45.8,182.9 L49.1,181.9 L45.3,183.6 L46.9,184.8 L54.0,186.9 L53.3,187.5ZM8.2,151.3 L2.1,155.8 L3.3,159.2 L4.5,159.0 L10.5,154.2 L10.5,152.4 L8.2,151.3ZM32.4,0.1 L31.3,2.5 L31.6,3.4 L30.4,4.8 L28.3,6.1 L24.5,6.6 L22.6,7.5 L23.6,9.5 L18.7,10.5 L17.2,12.8 L17.0,13.7 L17.6,14.3 L21.2,14.9 L19.7,
3807717.1 L19.5,19.0 L22.3,21.1 L21.6,23.7 L19.7,23.7 L17.6,21.9 L12.4,21.7 L9.4,19.5 L4.7,19.7 L3.1,20.7 L3.3,22.5 L4.6,23.9 L7.2,24.3 L9.0,26.2 L9.8,29.8 L9.4,30.6 L11.4,32.2 L11.9,34.0 L11.6,35.7 L8.0,35.0 L7.2,35.4 L9.0,40.3 L9.7,40.8 L8.2,43.0 L7.0,40.7 L7.1,39.8 L5.5,37.9 L2.7,37.7 L0.0,35.9 L0.0,0.0 L32.4,0.1ZM66.2,174.9 L66.8,176.1 L65.8,177.6 L66.7,187.9 L67.6,188.7 L66.8,189.3 L66.9,190.1 L65.7,190.0 L64.8,180.4 L58.7,181.2 L57.9,183.3 L57.6,188.8 L55.2,187.8 L56.5,185.4 L56.6,182.7 L55.8,180.8 L51.5,182.0 L54.6,180.5 L55.7,180.5 L53.1,177.2 L53.3,176.1 L55.0,175.4 L54.8,173.6 L57.7,171.8 L61.4,168.2 L64.4,167.8 L65.5,169.2 L66.6,174.8 L66.2,174.9ZM186.7,172.9 L185.5,174.4 L184.4,174.5 L182.2,173.7 L181.0,172.5 L184.8,171.1 L186.4,171.9 L186.7,172.9ZM244.6,142.0 L253.7,143.1 L255.8,144.0 L263.4,143.8 L262.1,144.3 L261.6,145.1 L262.0,145.8 L266.1,146.6 L261.3,146.5 L260.5,147.0 L259.1,146.5 L254.2,147.2 L249.8,146.0 L249.0,144.2 L244.5,143.1 L244.2,142.5 L244.6,142.0ZM256.9,99.1 L242.6,102.5 L241.1,98.8 L243.4,98.2 L239.2,88.1 L252.4,82.6 L259.0,95.7 L255.5,96.6 L256.9,99.1ZM252.0,89.8 L249.7,90.0 L249.5,91.0 L251.7,91.0 L252.2,90.6 L252.0,89.8ZM182.2,33.7 L182.2,37.0 L185.7,41.5 L188.8,43.8 L187.7,46.3 L187.8,49.2 L185.8,53.7 L186.2,58.1 L187.4,59.8 L184.0,63.6 L182.9,67.3 L184.1,72.5 L182.1,72.8 L179.4,69.8 L172.3,73.6 L168.2,77.2 L164.2,78.8 L160.7,81.2 L155.1,80.5 L148.6,82.0 L144.1,81.3 L144.3,77.3 L152.5,74.4 L164.1,73.6 L170.3,70.5 L174.9,69.1 L178.7,65.1 L181.4,60.9 L181.6,53.8 L183.6,47.4 L182.5,44.3 L180.5,42.1 L179.8,39.3 L177.1,37.1 L172.7,37.3 L170.4,38.3 L165.6,36.1 L161.4,36.0 L161.1,34.5 L166.0,32.7 L171.3,34.4 L177.8,32.3 L178.8,30.2 L181.9,27.2 L183.5,22.1 L186.6,17.3 L189.5,14.6 L187.5,17.6 L188.6,17.2 L188.9,16.0 L190.3,15.5 L189.7,16.9 L190.3,17.7 L191.0,15.9 L192.9,14.8 L197.2,14.0 L199.5,11.6 L203.0,10.6 L201.0,11.9 L200.1,14.1 L195.1,15.5 L193.6,17.4 L193.5,19.2 L189.3,20.1 L188.0,25.4 L188.0,29.2 L185.2,32.4 L182.2,33.7ZM186.2,30.0 L187.7,25.5 L186.6,24.7 L186.8,22.8 L185.0,25.7 L183.9,25.3 L183.6,27.5 L182.3,29.3 L183.1,30.0 L186.2,30.0ZM293.2,36.8 L291.9,37.0 L290.7,36.3 L288.2,37.9 L286.6,36.1 L290.6,34.2 L293.9,31.1 L296.8,32.0 L294.2,33.3 L295.0,33.8 L297.4,32.8 L298.2,35.1 L296.5,34.6 L293.2,36.8ZM491.2,546.0 L492.7,549.0 L494.4,549.1 L493.4,568.8 L489.9,575.6 L487.5,574.8 L472.3,597.5 L467.7,600.9 L380.6,600.9 L377.5,597.7 L373.0,596.3 L373.5,594.3 L372.9,590.5 L375.1,586.2 L375.7,581.8 L376.6,580.2 L384.0,583.3 L388.3,584.1 L389.3,584.9 L392.0,589.6 L394.1,590.1 L397.1,589.9 L407.7,592.3 L409.9,591.8 L412.1,589.8 L415.6,584.6 L414.6,584.1 L411.7,585.3 L415.9,582.4 L421.9,580.6 L444.1,578.0 L445.8,522.2 L472.8,533.2 L478.8,518.2 L482.5,519.7 L484.8,514.0 L485.5,514.2 L486.4,512.3 L489.2,511.8 L489.9,510.5 L488.0,508.3 L490.4,508.9 L495.2,513.6 L495.0,515.1 L496.2,518.7 L491.9,528.6 L492.0,536.7 L490.5,540.0 L491.2,546.0ZM480.1,495.7 L466.6,491.1 L469.6,486.0 L479.7,490.9 L480.6,493.6 L480.1,495.7ZM441.8,481.9 L447.1,486.3 L446.3,488.5 L442.5,487.7 L441.4,486.6 L441.0,482.3 L441.8,481.9ZM438.6,347.4 L442.5,346.9 L441.4,344.1 L441.5,339.8 L446.2,336.3 L449.8,335.8 L455.4,335.3 L458.6,335.9 L462.8,341.9 L465.1,342.5 L466.3,344.2 L454.3,363.3 L447.1,377.2 L446.9,380.7 L447.9,386.6 L452.9,395.2 L441.9,403.6 L432.5,402.2 L426.4,399.4 L413.3,390.3 L418.5,383.7 L419.8,374.4 L422.9,364.3 L429.0,364.7 L431.5,359.9 L435.6,354.9 L437.3,348.9 L438.6,347.4ZM377.6,285.6 L378.4,281.7 L381.1,282.2 L380.2,286.2 L377.6,285.6ZM409.4,282.1 L402.1,285.8 L400.1,285.3 L400.1,273.1 L409.1,273.2 L409.4,282.1ZM428.2,268.3 L422.5,268.7 L423.5,265.1 L428.3,264.3 L429.2,267.5 L428.1,267.8 L428.2,268.3ZM411.8,260.8 L416.4,272.9 L406.9,272.0 L407.9,259.6 L411.0,259.8 L411.8,260.8ZM417.6,258.8 L422.5,256.8 L424.1,257.6 L421.6,266.9 L421.4,272.6 L420.1,273.4 L416.4,272.9 L415.3,267.8 L415.1,264.2 L417.6,258.8ZM429.0,239.0 L430.2,235.8 L433.7,236.7 L432.2,239.7 L429.0,239.0ZM489.3,237.5 L488.0,242.0 L479.4,235.3 L479.2,238.9 L475.7,238.6 L475.6,240.1 L472.3,239.9 L472.2,241.7 L466.2,241.3 L466.4,239.3 L463.0,237.3 L463.4,234.4 L464.9,232.7 L468.3,230.7 L468.0,229.3 L470.3,228.2 L474.1,222.3 L478.0,222.0 L479.2,222.8 L480.3,226.2 L482.3,226.1 L487.0,230.5 L489.3,237.5ZM415.0,203.7 L415.7,204.4 L415.5,205.1 L411.5,208.3 L410.7,208.4 L410.2,207.5 L407.1,211.0 L405.9,209.5 L404.8,210.2 L398.2,201.6 L398.8,201.1 L398.2,197.6 L399.8,197.3 L401.4,193.8 L400.4,192.6 L403.1,190.5 L404.0,191.7 L407.9,190.9 L408.4,189.7 L410.1,190.3 L409.7,191.4 L411.0,192.1 L412.7,190.9 L419.0,199.0 L418.1,199.8 L419.3,201.4 L417.5,202.8 L417.0,202.2 L415.0,203.7ZM430.6,179.4 L427.9,178.6 L425.4,180.1 L414.6,171.4 L418.4,167.5 L419.4,167.6 L435.1,180.3 L435.7,181.7 L432.1,185.8 L429.7,183.2 L431.3,180.8 L430.6,180.3 L430.6,179.4ZM505.2,524.7 L509.2,519.3 L512.8,521.4 L515.0,519.8 L518.9,522.4 L509.0,536.2 L502.7,529.2 L505.2,524.7ZM481.6,493.7 L483.8,493.7 L489.8,483.5 L492.5,487.6 L495.1,486.5 L497.9,492.0 L492.5,500.0 L481.3,496.1 L481.6,493.7ZM502.7,481.9 L502.2,483.8 L497.8,485.8 L496.5,482.6 L497.9,476.7 L502.7,481.9ZM497.5,282.5 L501.4,285.5 L499.8,287.4 L496.3,284.3 L497.5,282.5ZM519.8,258.5 L517.6,257.7 L515.3,255.8 L514.8,255.0 L514.8,254.2 L514.9,252.9 L516.3,250.6 L517.9,249.4 L521.7,249.2 L524.5,251.3 L525.0,254.5 L523.4,257.7 L519.8,258.5ZM519.6,252.3 L517.7,251.0 L515.4,253.1 L515.0,254.7 L516.3,255.8 L517.2,255.4 L518.7,256.8 L520.7,254.6 L519.2,253.3 L519.6,252.3ZM510.9,215.0 L508.5,217.8 L506.3,216.0 L508.7,213.2 L510.9,215.0ZM493.7,218.6 L491.6,218.8 L488.8,216.1 L496.7,206.9 L499.8,211.5 L496.6,215.8 L493.7,218.6ZM486.8,212.2 L492.5,209.9 L499.3,202.5 L500.0,203.1 L490.1,213.7 L489.1,212.7 L488.0,213.2 L486.3,216.0 L485.7,215.2 L486.8,212.2ZM511.6,204.4 L518.3,196.5 L524.0,199.2 L534.6,208.4 L526.8,217.3 L511.6,204.4ZM531.2,183.5 L530.5,185.2 L526.5,187.0 L524.4,186.4 L518.5,182.5 L516.4,182.7 L512.1,184.6 L510.7,184.7 L509.5,183.8 L515.6,180.9 L517.3,175.6 L518.1,175.4 L524.4,167.8 L525.4,167.5 L529.4,174.9 L531.2,183.5ZM560.6,557.2 L583.1,566.8 L576.2,583.6 L567.1,578.4 L554.6,592.3 L543.3,581.2 L542.4,578.0 L560.6,557.2ZM637.3,520.2 L637.4,518.6 L636.7,518.1 L635.4,518.1 L634.2,520.1 L627.8,515.5 L626.7,515.4 L625.0,516.0 L621.4,519.5 L619.5,520.2 L614.7,520.7 L610.0,522.3 L608.8,520.1 L607.2,520.1 L604.9,521.9 L604.0,524.5 L603.5,527.4 L605.5,528.1 L605.1,530.0 L603.0,530.1 L602.6,532.2 L599.7,533.4 L593.2,529.4 L592.4,529.7 L591.4,532.4 L588.8,530.7 L589.4,528.5 L586.8,528.2 L586.8,527.2 L585.3,526.7 L584.3,525.5 L579.8,525.1 L579.3,527.6 L578.3,527.7 L578.5,524.8 L574.8,524.9 L574.8,523.5 L572.5,523.8 L571.2,521.5 L568.4,519.5 L571.0,516.3 L573.4,519.8 L577.5,517.9 L583.5,516.4 L588.1,516.4 L592.2,515.3 L606.4,509.1 L615.2,506.9 L616.5,505.7 L616.2,502.6 L616.8,501.7 L620.7,501.7 L625.2,495.2 L627.4,495.9 L627.9,496.9 L627.3,497.8 L624.7,498.1 L624.0,499.7 L624.3,500.4 L626.1,500.6 L629.7,499.8 L635.1,501.0 L638.6,503.1 L642.8,507.6 L645.9,508.7 L649.6,507.7 L652.8,510.3 L653.9,510.1 L654.5,508.5 L654.1,505.4 L661.1,507.8 L659.2,509.1 L658.4,511.2 L657.1,512.4 L656.0,514.5 L657.2,516.5 L655.7,517.8 L654.4,516.4 L649.7,517.7 L641.3,517.1 L638.9,518.5 L638.5,520.1 L637.3,520.2ZM591.6,498.9 L592.0,501.4 L588.1,502.0 L587.7,499.5 L591.6,498.9ZM586.9,403.0 L590.2,398.9 L593.3,398.2 L592.8,399.1 L593.4,400.0 L597.4,402.0 L598.5,402.0 L600.6,399.3 L608.8,400.5 L615.6,402.0 L615.5,404.6 L615.0,406.4 L587.1,417.2 L584.9,412.1 L586.1,411.6 L585.6,409.6 L586.9,403.0ZM550.5,395.2 L551.1,396.7 L542.1,400.1 L523.9,391.2 L524.5,389.6 L529.0,392.6 L532.0,391.6 L536.1,393.7 L536.8,392.1 L545.7,39
380776.3 L550.5,395.2ZM601.4,333.7 L603.4,336.2 L601.1,338.0 L599.1,335.5 L601.4,333.7ZM538.5,277.2 L541.5,279.3 L541.1,280.0 L542.4,281.3 L540.4,283.6 L535.7,280.1 L535.6,278.7 L536.4,277.8 L538.5,277.2ZM548.1,278.3 L544.3,281.8 L542.3,279.4 L547.2,275.6 L548.1,278.3ZM566.8,260.2 L571.3,265.0 L569.6,266.5 L567.7,266.1 L564.8,269.4 L561.6,267.2 L560.7,265.4 L557.7,262.9 L560.1,260.1 L559.6,259.7 L562.4,257.3 L565.6,260.0 L566.8,260.2ZM586.4,248.5 L581.7,254.0 L579.5,252.1 L584.2,246.6 L586.4,248.5ZM567.7,248.3 L565.9,250.4 L561.0,246.2 L562.8,244.1 L567.7,248.3ZM542.2,248.7 L538.9,245.8 L543.8,240.3 L547.0,243.2 L542.2,248.7ZM553.4,225.8 L546.3,222.5 L557.2,210.3 L561.8,214.2 L561.2,215.1 L563.6,217.2 L564.6,216.7 L569.6,221.1 L558.8,232.7 L557.3,232.1 L555.8,228.2 L553.4,225.8ZM558.5,205.8 L555.7,209.1 L554.9,209.0 L551.8,206.2 L552.2,204.9 L550.9,203.8 L552.7,201.8 L554.0,202.9 L555.1,202.2 L556.0,203.0 L556.8,202.2 L558.3,203.6 L557.7,204.4 L558.5,205.8ZM573.4,91.6 L578.4,91.1 L575.4,101.3 L571.6,106.4 L571.8,107.1 L569.6,109.3 L566.1,112.7 L558.2,118.6 L556.4,115.9 L559.7,111.3 L561.7,106.1 L562.5,98.8 L566.0,97.5 L573.4,91.6ZM671.6,600.9 L672.3,597.6 L680.0,590.1 L680.0,600.9 L671.6,600.9ZM677.8,514.7 L675.3,514.4 L672.4,512.3 L670.7,512.3 L669.4,511.1 L668.2,510.8 L666.9,512.0 L665.9,511.0 L667.3,507.1 L669.4,504.4 L675.9,501.4 L677.2,501.4 L678.6,502.5 L678.3,503.9 L680.0,50
380775.3 L680.0,513.4 L677.8,514.7ZM665.2,507.1 L664.6,509.4 L662.5,507.1 L669.0,499.2 L671.0,499.8 L671.1,500.7 L670.4,501.7 L665.2,507.1ZM649.8,486.4 L651.6,487.6 L653.2,487.3 L653.5,484.2 L654.1,483.8 L655.2,485.4 L659.1,487.6 L660.4,491.0 L660.5,493.6 L661.2,494.0 L662.0,493.4 L663.2,489.5 L664.5,487.8 L665.2,488.5 L665.1,491.5 L663.8,493.2 L664.1,496.3 L665.8,497.7 L666.7,499.6 L665.0,501.5 L663.2,501.0 L662.2,502.7 L662.5,504.7 L661.0,506.8 L655.1,504.6 L656.4,499.4 L657.8,497.3 L657.7,496.2 L651.3,492.0 L648.5,488.7 L649.8,486.4ZM678.3,495.2 L680.0,497.8 L680.0,501.2 L679.2,501.9 L678.1,500.8 L678.8,498.8 L675.5,494.9 L673.6,494.5 L672.6,495.3 L671.0,498.6 L669.4,498.0 L668.1,491.7 L668.2,488.2 L670.4,488.0 L671.7,487.0 L675.3,493.5 L678.3,495.2ZM637.9,488.6 L637.5,487.5 L638.9,486.4 L640.8,487.4 L641.5,488.8 L642.6,489.4 L643.3,488.4 L643.7,488.7 L643.4,489.7 L644.3,490.5 L645.5,490.7 L646.8,489.1 L647.8,489.5 L650.0,492.6 L648.6,493.5 L647.3,493.4 L643.9,492.2 L640.0,489.1 L637.9,488.6ZM678.0,120.5 L678.4,116.9 L677.8,115.4 L679.4,104.4 L653.3,102.0 L643.9,102.3 L638.7,98.5 L636.6,90.5 L632.3,79.3 L627.8,57.3 L633.2,53.3 L638.1,52.0 L643.9,58.7 L647.1,69.6 L648.2,83.0 L664.8,87.6 L673.3,91.4 L680.0,89.1 L680.0,120.7 L678.0,120.5ZM660.9,26.4 L654.5,24.6 L655.9,19.0 L660.0,20.2 L661.4,16.4 L666.7,18.0 L666.1,21.7 L666.4,24.8 L664.7,25.8 L660.9,26.4Z"/><path class="lu lu-ins" data-lu="ins" d="M54.5,600.9 L72.7,597.4 L73.3,600.9 L54.5,600.9ZM367.9,400.4 L371.3,407.1 L379.6,416.9 L380.5,417.5 L382.1,417.4 L386.9,429.4 L391.5,437.4 L388.0,440.9 L399.2,451.5 L399.4,454.2 L364.7,448.5 L366.5,400.5 L367.9,400.4ZM360.0,365.6 L358.1,368.5 L356.9,367.8 L358.0,365.9 L355.3,364.4 L356.1,363.1 L360.0,365.6ZM372.9,284.7 L376.1,285.4 L376.9,281.7 L378.3,282.0 L377.6,285.6 L380.2,286.2 L381.0,282.5 L382.5,282.8 L381.5,287.5 L379.5,287.0 L379.8,287.7 L379.0,290.3 L377.0,289.9 L377.2,287.3 L377.7,287.5 L377.9,286.6 L375.9,286.2 L375.3,288.8 L371.1,287.8 L371.4,286.6 L373.6,287.0 L374.0,285.3 L372.9,284.7ZM13.8,259.6 L13.4,261.6 L16.8,265.1 L17.3,267.1 L16.8,270.2 L23.5,270.2 L23.2,278.3 L25.7,281.6 L22.5,284.2 L30.6,294.2 L22.0,301.5 L19.6,297.2 L8.2,300.1 L1.0,298.9 L0.0,303.0 L0.0,253.0 L13.8,259.6ZM280.2,258.7 L276.1,266.1 L266.0,260.2 L267.7,249.8 L272.9,250.9 L275.4,243.8 L278.8,244.9 L276.5,251.7 L289.1,257.1 L287.7,261.2 L281.3,258.2 L280.2,258.7ZM370.0,212.2 L369.7,213.4 L374.6,214.6 L368.9,239.3 L333.8,233.8 L339.7,217.2 L349.4,219.5 L350.1,217.2 L350.9,217.4 L354.1,205.7 L373.6,210.4 L372.8,212.8 L370.0,212.2ZM230.2,185.0 L232.6,183.2 L241.0,189.7 L230.1,198.5 L221.3,194.4 L230.2,185.0ZM207.4,135.2 L216.0,132.8 L210.0,138.5 L207.6,139.5 L207.1,141.6 L208.1,142.8 L207.6,150.9 L207.9,158.9 L197.2,161.7 L194.5,135.6 L200.3,136.9 L203.0,136.0 L204.9,136.2 L205.9,137.2 L207.4,135.2ZM238.4,154.7 L235.3,155.1 L230.1,158.5 L229.7,159.7 L210.8,158.8 L209.9,151.9 L210.0,146.6 L212.1,140.0 L214.2,137.2 L218.6,134.4 L221.1,137.9 L224.0,140.2 L226.0,139.9 L229.7,143.8 L233.1,142.9 L234.9,143.4 L236.9,145.2 L241.9,146.0 L243.0,146.8 L242.5,150.5 L238.4,154.7ZM217.8,139.6 L218.1,137.6 L216.8,136.9 L215.7,136.8 L213.8,138.4 L216.3,141.0 L217.8,139.6ZM51.6,73.1 L63.0,63.4 L68.2,75.6 L78.0,69.5 L83.3,81.6 L67.5,88.9 L51.6,73.9 L51.6,73.1ZM219.8,74.0 L212.6,66.8 L214.1,65.0 L221.4,72.3 L219.8,74.0ZM542.6,583.0 L553.5,593.6 L548.2,600.9 L546.1,600.9 L546.7,599.5 L546.3,598.9 L544.6,599.2 L541.8,597.4 L541.4,598.3 L544.1,600.9 L536.0,600.9 L532.4,573.0 L534.6,574.7 L536.1,572.9 L542.6,583.0ZM516.9,478.3 L522.2,473.5 L529.1,470.4 L537.9,477.8 L538.9,480.2 L538.9,483.4 L531.6,491.3 L516.9,478.3ZM461.8,454.0 L456.7,456.8 L457.1,457.5 L455.3,458.2 L454.3,456.6 L455.1,456.1 L452.4,451.4 L454.1,450.4 L456.8,455.1 L460.8,452.4 L461.8,454.0ZM574.6,335.0 L568.6,339.8 L560.9,329.3 L567.0,324.9 L574.6,335.0ZM425.5,305.9 L426.4,307.8 L417.0,311.6 L413.8,310.3 L411.0,311.8 L410.0,309.6 L413.1,308.6 L411.9,306.1 L413.5,305.4 L415.1,308.9 L417.1,309.8 L425.5,305.9ZM529.5,287.3 L529.0,287.9 L525.7,285.1 L526.7,284.0 L530.0,286.7 L533.1,283.0 L537.4,286.4 L534.9,289.4 L534.3,288.9 L533.1,290.3 L529.5,287.3ZM540.8,275.5 L541.9,276.5 L541.1,277.8 L538.7,275.8 L539.4,275.1 L538.3,274.2 L537.8,274.8 L537.0,274.2 L538.9,272.0 L539.6,272.6 L539.3,273.2 L541.3,274.9 L540.8,275.5ZM522.8,221.0 L500.8,202.4 L507.8,196.8 L514.0,193.8 L518.8,195.0 L524.0,197.4 L524.4,198.2 L532.9,201.4 L533.1,200.6 L534.8,200.5 L537.9,197.0 L545.0,199.9 L549.7,194.5 L558.5,192.0 L558.9,192.4 L564.9,185.4 L594.1,210.7 L587.7,218.7 L592.7,223.0 L601.6,230.6 L606.3,225.2 L605.6,224.6 L606.9,223.0 L607.7,223.6 L608.7,223.2 L620.1,233.1 L615.3,238.6 L614.8,238.1 L591.4,265.2 L581.8,266.8 L581.9,267.5 L574.8,268.8 L572.1,266.4 L566.7,272.7 L555.7,263.2 L558.8,259.5 L553.6,254.9 L557.4,250.5 L544.7,239.7 L549.8,233.7 L549.7,232.9 L529.3,215.4 L524.2,221.1 L522.8,221.0ZM455.2,230.9 L451.3,223.8 L453.4,222.5 L454.8,223.9 L453.2,224.9 L456.4,230.1 L455.2,230.9ZM488.1,218.1 L486.3,216.0 L488.0,213.2 L489.1,212.7 L490.1,213.7 L500.0,203.1 L527.8,227.3 L515.8,241.3 L488.1,218.1ZM654.7,195.
380776 L657.0,192.6 L651.5,191.6 L652.4,190.2 L651.8,189.8 L653.5,187.8 L652.3,186.7 L658.8,177.5 L655.0,174.8 L653.9,176.8 L639.6,167.1 L635.7,172.8 L634.0,173.4 L633.0,172.6 L630.5,175.4 L632.9,178.0 L628.3,185.4 L627.1,180.1 L628.1,173.4 L629.2,172.8 L630.1,170.2 L630.3,159.8 L629.9,158.3 L628.7,156.9 L624.6,156.1 L623.3,152.5 L624.7,153.8 L625.4,151.9 L627.0,152.2 L628.3,148.5 L625.7,144.6 L624.2,144.0 L624.0,143.5 L625.7,143.1 L624.0,136.0 L622.2,136.4 L621.0,132.1 L623.6,121.1 L624.4,120.1 L633.7,116.0 L634.9,115.0 L637.4,103.2 L623.8,57.5 L643.2,59.2 L643.3,54.3 L649.4,54.7 L659.1,61.8 L660.7,62.5 L666.1,62.8 L672.6,65.7 L677.1,86.6 L680.0,88.0 L680.0,199.0 L676.6,198.7 L675.2,197.9 L677.0,193.0 L670.5,189.4 L668.6,193.7 L667.0,192.4 L661.3,204.0 L657.8,206.5 L655.2,204.8 L657.7,201.5 L655.9,200.2 L657.6,197.8 L654.7,195.6ZM634.6,147.4 L630.7,148.3 L627.9,153.7 L630.3,156.8 L631.5,161.2 L632.5,160.7 L635.0,161.1 L635.3,160.6 L634.3,159.5 L635.0,157.4 L643.6,150.7 L646.3,150.0 L649.2,150.7 L651.2,153.5 L653.5,152.3 L652.4,150.8 L652.1,148.7 L653.5,146.5 L658.1,145.1 L663.9,140.9 L668.5,136.4 L667.1,135.1 L652.1,142.9 L643.1,146.5 L641.0,146.3 L636.4,143.9 L634.6,144.1 L634.6,147.4ZM472.5,170.8 L494.3,160.4 L513.8,148.5 L516.3,145.8 L519.5,144.0 L521.2,143.4 L522.6,147.7 L533.7,143.7 L547.7,184.3 L537.7,187.7 L532.4,184.3 L530.7,185.8 L526.1,187.6 L523.2,186.6 L519.3,183.4 L517.1,183.2 L506.1,187.9 L505.2,189.9 L503.7,190.1 L503.3,188.8 L502.7,189.1 L501.8,185.4 L499.7,184.7 L491.1,192.2 L491.6,193.2 L490.9,194.1 L476.6,182.2 L471.9,172.5 L472.5,170.8ZM430.1,141.1 L435.6,135.1 L441.0,140.4 L435.4,146.5 L430.1,141.1Z"/><path class="lu lu-com" data-lu="com" d="M4.7,597.1 L9.7,600.9 L1.5,600.9 L4.7,597.1ZM12.7,581.6 L1.7,595.3 L0.0,593.9 L0.0,587.4 L4.5,581.9 L6.1,583.1 L9.2,579.3 L12.7,581.6ZM34.1,537.6 L33.1,539.3 L36.0,540.8 L34.7,543.1 L38.3,545.2 L26.0,563.5 L13.6,580.3 L10.1,578.1 L14.3,571.8 L4.4,564.4 L17.4,546.4 L21.5,544.6 L23.3,542.5 L22.3,540.0 L23.4,536.5 L25.5,533.7 L26.4,533.7 L34.1,537.6ZM143.9,296.9 L145.3,301.2 L146.2,306.6 L146.4,313.6 L147.1,315.4 L133.9,317.0 L121.4,322.2 L115.4,310.9 L111.5,313.1 L94.6,311.8 L95.6,291.6 L94.2,286.4 L88.5,287.4 L83.5,286.7 L58.2,301.8 L56.6,299.5 L49.4,305.6 L43.6,297.7 L41.3,299.0 L34.5,292.1 L23.2,278.3 L23.5,270.2 L32.8,269.4 L33.7,270.2 L41.5,266.8 L40.3,262.6 L49.4,260.4 L48.2,255.2 L54.3,254.6 L55.1,249.9 L64.3,242.9 L69.7,240.0 L84.8,236.4 L106.1,237.6 L115.0,244.6 L115.3,246.2 L114.8,247.1 L116.2,248.8 L117.6,247.7 L120.6,248.2 L124.0,253.6 L127.2,256.5 L130.7,263.1 L136.3,281.5 L139.2,288.8 L143.9,296.9ZM132.0,270.5 L130.5,269.7 L129.8,270.2 L130.4,272.5 L131.0,272.6 L132.2,271.9 L132.0,270.5ZM12.3,219.9 L13.7,214.2 L21.8,210.7 L44.0,215.2 L45.7,217.1 L50.4,219.3 L62.0,220.1 L63.6,221.8 L65.2,222.2 L68.4,229.7 L59.4,241.1 L49.5,227.8 L45.5,225.6 L12.3,219.9ZM122.5,240.9 L103.4,229.6 L101.0,226.1 L100.9,224.2 L102.1,221.6 L104.7,218.8 L109.8,216.4 L154.5,203.3 L160.1,206.3 L162.2,201.6 L169.7,204.8 L170.6,205.7 L171.8,209.3 L171.5,210.2 L169.4,211.8 L150.5,224.9 L122.5,240.9ZM71.7,200.7 L69.9,200.1 L72.5,192.7 L79.7,192.8 L99.1,190.0 L100.2,198.3 L92.6,200.0 L93.9,210.8 L84.0,211.1 L76.7,209.5 L71.0,206.6 L71.7,200.7ZM61.3,199.8 L58.5,199.3 L59.0,196.0 L53.6,195.0 L51.9,202.0 L49.5,202.4 L34.8,201.5 L32.6,199.2 L29.6,198.7 L28.6,194.6 L21.7,192.4 L23.8,183.2 L25.8,178.8 L34.9,183.4 L44.3,186.3 L55.3,189.3 L70.2,192.3 L69.9,200.1 L61.4,199.2 L61.3,199.8ZM65.8,176.8 L67.2,176.4 L69.8,180.4 L70.8,185.3 L70.3,190.0 L56.9,188.6 L58.5,181.4 L65.8,176.8ZM112.0,169.0 L113.3,184.7 L82.0,190.5 L78.4,191.0 L72.8,190.4 L72.6,182.9 L68.0,173.2 L66.9,160.2 L68.6,155.4 L71.9,150.8 L74.2,148.8 L77.7,147.2 L91.7,145.5 L92.2,150.1 L120.0,147.7 L122.2,157.8 L116.4,158.5 L116.9,164.1 L123.0,163.6 L124.4,182.5 L119.5,183.5 L118.1,168.3 L112.0,169.0ZM70.0,154.0 L69.9,155.3 L70.8,155.4 L76.7,155.6 L78.1,154.9 L76.6,152.1 L74.2,150.5 L71.5,151.7 L70.0,154.0ZM266.6,276.1 L271.4,272.5 L280.3,278.0 L284.9,278.0 L285.9,293.4 L280.5,293.6 L266.6,276.1ZM166.1,297.8 L161.4,300.9 L156.9,300.6 L153.7,299.3 L149.2,296.1 L143.1,285.9 L141.4,282.3 L139.8,276.6 L141.6,274.6 L147.0,265.4 L148.5,264.9 L151.7,265.4 L155.6,267.0 L158.0,268.9 L159.7,271.7 L168.7,279.9 L171.7,284.6 L166.1,297.8ZM161.7,275.2 L159.9,274.3 L158.9,278.2 L161.1,279.8 L163.7,277.7 L161.7,275.2ZM159.7,261.4 L160.7,253.7 L150.3,261.3 L149.9,263.5 L143.6,262.2 L138.4,256.9 L140.1,242.5 L142.6,240.2 L139.2,234.2 L149.1,228.9 L179.8,244.6 L180.0,256.1 L176.2,261.4 L170.4,266.5 L167.8,266.6 L159.7,261.4ZM266.2,249.2 L259.3,246.2 L262.8,239.8 L269.6,243.4 L266.2,249.2ZM204.4,229.2 L214.8,236.8 L201.6,255.1 L193.6,250.4 L192.8,248.5 L201.5,230.7 L202.3,229.7 L204.4,229.2ZM254.0,226.0 L272.4,234.6 L269.8,239.4 L260.8,234.0 L251.9,230.2 L253.4,226.2 L254.0,226.0ZM248.5,221.7 
38077L249.1,220.1 L247.9,219.7 L247.1,221.0 L231.6,216.8 L236.7,203.4 L238.2,201.6 L232.8,198.3 L242.0,190.7 L232.6,183.2 L267.3,164.6 L265.0,182.1 L261.0,186.6 L270.3,197.8 L270.8,204.7 L268.1,210.8 L271.5,211.6 L275.1,211.0 L275.2,208.0 L278.7,202.1 L275.7,198.1 L271.9,187.8 L273.8,185.8 L277.4,187.3 L286.7,195.5 L289.0,204.7 L279.3,212.7 L277.3,225.4 L261.1,222.8 L261.2,221.7 L257.7,221.2 L257.6,222.3 L261.0,223.0 L260.9,223.5 L277.6,226.0 L277.5,226.4 L297.5,229.4 L297.7,228.5 L305.7,229.8 L306.2,231.2 L305.3,240.7 L281.3,237.1 L273.2,234.0 L248.5,221.7ZM199.3,226.8 L199.7,227.8 L190.4,245.8 L188.7,246.7 L184.3,245.1 L166.7,235.4 L153.5,229.3 L151.3,227.5 L166.0,216.8 L167.0,217.5 L176.5,219.2 L177.3,214.4 L171.7,212.5 L181.0,205.8 L187.2,206.6 L185.7,217.4 L187.6,221.4 L199.3,226.8ZM212.3,213.4 L227.0,217.7 L228.2,218.6 L215.8,235.8 L205.2,228.5 L204.3,226.2 L210.7,214.2 L212.3,213.4ZM207.5,213.3 L201.6,224.7 L199.7,225.2 L190.5,221.7 L188.1,220.1 L187.1,217.7 L188.7,206.6 L194.4,207.9 L207.2,212.1 L207.5,213.3ZM202.1,202.1 L205.6,203.5 L206.4,201.8 L210.3,203.7 L208.7,207.5 L207.7,207.7 L200.8,204.7 L202.1,202.1ZM196.1,204.8 L195.8,206.3 L183.9,204.2 L184.3,201.8 L187.6,202.3 L188.1,200.5 L196.1,204.8ZM152.3,179.9 L157.4,174.2 L164.5,170.9 L206.9,161.9 L208.3,163.7 L210.3,175.8 L209.7,178.5 L208.0,181.4 L203.3,184.9 L158.1,197.7 L147.9,193.0 L147.1,191.5 L147.3,189.7 L152.3,179.9ZM179.8,135.6 L194.3,133.3 L197.2,161.7 L181.6,165.2 L169.3,167.8 L160.3,170.3 L155.6,172.8 L151.5,177.1 L145.2,189.9 L144.0,190.6 L142.6,190.6 L130.7,184.9 L128.5,183.0 L126.3,179.9 L124.5,157.7 L120.4,140.5 L132.3,135.8 L162.5,126.6 L167.7,134.8 L177.7,132.0 L179.8,135.6ZM188.9,138.8 L185.1,138.2 L184.4,140.8 L188.1,141.6 L191.5,141.2 L192.5,138.2 L192.3,137.6 L190.9,137.6 L188.9,138.8ZM174.1,134.2 L171.7,136.1 L172.9,136.3 L174.9,139.2 L176.5,140.2 L177.3,137.7 L175.6,134.7 L174.3,134.7 L174.1,134.2ZM236.4,106.5 L241.2,115.4 L237.5,117.3 L232.8,107.8 L233.0,107.2 L236.4,106.5ZM548.8,532.9 L545.5,538.0 L548.0,543.0 L545.1,544.9 L539.2,541.9 L533.9,534.5 L539.7,530.1 L534.4,525.3 L533.2,517.3 L532.3,516.7 L536.1,511.4 L541.0,508.9 L547.6,515.3 L549.1,523.5 L544.5,528.9 L548.8,532.9ZM526.8,520.5 L525.3,518.9 L528.0,514.7 L532.7,517.4 L534.1,525.0 L526.8,520.5ZM527.9,514.6 L525.2,518.9 L525.7,521.8 L522.8,526.4 L509.3,518.8 L504.4,525.2 L500.2,522.5 L493.2,510.4 L498.3,502.4 L496.1,501.2 L496.9,499.9 L495.0,498.3 L497.5,493.2 L500.5,495.4 L504.1,502.6 L504.1,504.3 L500.2,509.9 L501.4,510.8 L503.4,507.8 L504.2,507.6 L513.8,513.7 L519.7,507.8 L527.9,514.6ZM531.8,387.5 L525.7,384.7 L529.7,370.4 L535.7,365.8 L537.2,367.9 L540.4,365.6 L543.0,369.0 L537.5,373.1 L535.8,375.5 L531.8,387.5ZM587.0,303.8 L595.5,297.8 L597.8,301.0 L589.4,307.2 L587.0,303.8ZM287.4,298.0 L292.3,298.3 L289.0,304.0 L287.3,302.4 L287.4,298.0ZM284.9,300.7 L283.4,302.3 L275.8,302.4 L275.7,297.6 L276.6,294.7 L285.6,294.9 L284.9,300.7ZM375.3,267.9 L388.1,271.5 L387.9,281.4 L380.5,279.3 L380.3,280.1 L372.3,277.7 L375.3,267.9ZM307.2,231.2 L311.8,231.8 L310.8,240.9 L309.2,242.7 L307.2,251.4 L297.3,248.6 L307.3,251.8 L309.3,242.8 L310.9,240.9 L311.9,231.9 L333.2,235.3 L328.9,246.8 L312.4,242.4 L310.2,252.2 L323.4,255.7 L324.9,254.5 L328.6,256.3 L327.7,258.3 L323.9,256.9 L308.2,290.1 L302.6,298.4 L294.1,307.5 L289.1,303.9 L294.3,296.0 L287.6,293.2 L287.1,286.8 L289.5,285.6 L292.0,279.5 L287.1,277.5 L280.3,277.9 L278.7,276.5 L282.3,270.8 L285.1,272.2 L286.7,271.6 L288.0,264.3 L296.4,241.5 L298.5,241.6 L296.4,248.4 L298.7,241.5 L306.3,242.2 L307.2,231.2ZM366.3,264.8 L364.1,269.4 L360.9,268.2 L362.8,263.6 L366.3,264.8ZM531.8,267.9 L530.7,268.1 L517.4,264.8 L517.6,264.1 L515.3,263.1 L515.9,261.1 L516.7,261.3 L517.6,258.8 L520.9,259.8 L521.1,259.2 L522.2,259.4 L522.3,258.9 L523.7,259.3 L529.3,263.7 L529.0,264.5 L539.1,267.3 L538.5,269.0 L534.6,268.1 L534.2,269.5 L532.5,271.5 L531.5,270.8 L532.3,269.5 L531.6,268.8 L531.8,267.9ZM540.6,261.0 L541.7,262.1 L539.2,265.3 L539.5,266.1 L532.7,265.0 L533.7,260.5 L536.9,262.4 L537.5,261.5 L538.4,262.1 L539.2,261.1 L540.1,261.7 L540.6,261.0ZM325.0,254.1 L323.3,255.5 L310.5,252.0 L312.9,242.7 L322.7,245.3 L333.7,250.2 L330.2,257.1 L325.0,254.1ZM277.6,237.8 L286.3,240.3 L283.2,249.1 L278.2,247.1 L278.9,244.8 L275.7,243.7 L277.6,237.8ZM440.2,163.8 L443.9,167.3 L446.5,164.4 L449.4,166.8 L437.8,179.0 L431.2,173.2 L440.2,163.8Z"/><g class="pl" tabindex="0" data-v="Historic downtown" data-k="State House, City Dock and the densest walkable core"><circle class="pl-hit" cx="517.6" cy="253.8" r="12"/><circle class="pl-dot" cx="517.6" cy="253.8" r="4.5"/><text class="pl-t" x="509.6" y="270.8" text-anchor="end">Historic downtown</text></g><g class="pl" tabindex="0" data-v="Naval Academy" data-k="The U.S. Naval Academy, the city's largest institution"><circle class="pl-hit" cx="571.6" cy="230.8" r="12"/><circle class="pl-dot" cx="571.6" cy="230.8" r="4.5"/><text class="pl-t" x="571.6" y="218.8" text-anchor="middle">Naval Academy</text></g><g class="pl" tabindex="0" data-v="St. John's College" data-k="Liberal-arts college beside the historic core"><circle class="pl-hit" cx="505.8" cy="220.6" r="12"/><circle class="pl-dot" cx="505.8" cy="220.6" r="4.5"/><text class="pl-t" x="495.8" y="224.6" text-anchor="end">St. John's College</text></g><g class="pl" tabindex="0" data-v="Eastport" data-k="Residential and maritime neighbourhood across Spa Creek"><circle class="pl-hit" cx="603.9" cy="320.0" r="12"/><circle class="pl-dot" cx="603.9" cy="320.0" r="4.5"/><text class="pl-t" x="611.9" y="334.0" text-anchor="start">Eastport</text></g><g class="pl" tabindex="0" data-v="Medical center" data-k="Regional hospital and medical offices on Jennifer Road"><circle class="pl-hit" cx="226.5" cy="147.6" r="12"/><circle class="pl-dot" cx="226.5" cy="147.6" r="4.5"/><text class="pl-t" x="226.5" y="135.6" text-anchor="middle">Medical center</text></g><g class="pl" tabindex="0" data-v="Annapolis Mall / Parole" data-k="Regional retail and employment node west of the city line"><circle class="pl-hit" cx="139.3" cy="157.0" r="12"/><circle class="pl-dot" cx="139.3" cy="157.0" r="4.5"/><text class="pl-t" x="133.3" y="145.0" text-anchor="middle">Annapolis Mall / Parole</text></g><g class="pl" tabindex="0" data-v="Harbour Center" data-k="Shopping centre on Solomons Island Road"><circle class="pl-hit" cx="156.5" cy="283.5" r="12"/><circle class="pl-dot" cx="156.5" cy="283.5" r="4.5"/><text class="pl-t" x="148.5" y="299.5" text-anchor="middle">Harbour Center</text></g>
38077<g class="pl" tabindex="0" data-v="Forest Drive corridor" data-k="Arterial lined with shopping centres and residential subdivisions"><circle class="pl-hit" cx="332.7" cy="347.4" r="12"/><circle class="pl-dot" cx="332.7" cy="347.4" r="4.5"/><text class="pl-t" x="340.7" y="363.4" text-anchor="start">Forest Drive corridor</text></g><g class="pl" tabindex="0" data-v="West Street" data-k="Commercial corridor linking downtown to Parole"><circle class="pl-hit" cx="266.1" cy="231.1" r="12"/><circle class="pl-dot" cx="266.1" cy="231.1" r="4.5"/><text class="pl-t" x="274.1" y="247.1" text-anchor="start">West Street</text></g><g class="pl" tabindex="0" data-v="Navy–Marine Corps Stadium" data-k="Event venue on Rowe Boulevard"><circle class="pl-hit" cx="408.6" cy="200.4" r="12"/><circle class="pl-dot" cx="408.6" cy="200.4" r="4.5"/><text class="pl-t" x="400.6" y="192.4" text-anchor="end">Navy–Marine Corps Stadium</text></g><g class="scale"><line x1="528.8" y1="583" x2="656" y2="583"/><text x="592.4" y="577" text-anchor="middle">1 mile</text></g></svg>
38078  <figcaption><b>Figure 1 · Land use and destinations</b>Commercial land, institutions and parks; unshaded land is predominantly residential. Go! Time’s zone extends west past the city line to Parole. Hover a place for detail, or a legend key to isolate one land use.</figcaption>
38079</figure>
38080
38081<p>That shape matters for transit. Trips begin on residential streets, end at a handful of scattered destinations, and spill into evenings and weekends, when hospital shifts, retail jobs and errands carry on after the weekday commute has ended. A fixed route serves a corridor well. It has a harder time serving a pattern like this at every hour.</p>
38082</section>
38083
38084<section class="sec">
38085<span class="tick"></span>
38086<h2>Five years of on-demand pilots in Maryland</h2>
38087<p>For most of the last half-century, public transit in Maryland meant fixed routes, supplemented by dial-a-ride and ADA paratransit for riders who could not use them. On-demand service for the general public arrived as a series of county pilots. Montgomery County’s Ride On Flex zones won a national county innovation award in 2020, and Prince George’s County launched its Link pilot around Fort Washington the same year.<sup class="fn"><a href="#r3">3</a></sup><sup class="fn"><a href="#r4">4</a></sup> The state’s own microtransit pilot near BWI was postponed by the pandemic.<sup class="fn"><a href="#r5">5</a></sup></p>
38088<p>The pace has picked up since. Howard County opened a microtransit service along the Route 1 corridor in March 2025 with support from a state transit innovation grant,<sup class="fn"><a href="#r6">6</a></sup> and the Maryland Transit Administration’s regional bus plan identifies four zones around Baltimore for on-demand service.<sup class="fn"><a href="#r7">7</a></sup> National coverage has followed the same arc, from <em>The Washington Post</em> asking in 2018 whether microtransit might help agencies that were losing riders, to <em>Bloomberg CityLab</em> making the case in 2024 for leaving room to innovate.<sup class="fn"><a href="#r8">8</a></sup><sup class="fn"><a href="#r9">9</a></sup> The question agencies now ask is where on-demand service fits, and how to run it well.</p>
38089<p>Annapolis took up the first half of that question in its 2019 Transit Development Plan, which recommended replacing the Orange and Purple routes with an on-demand zone. Go! Time launched in July 2024. After a four-week parallel run, the City retired both routes.<sup class="fn"><a href="#r10">10</a></sup><sup class="fn"><a href="#r11">11</a></sup></p>
38090<blockquote><p>“Annapolis is a compact city, and we can offer more efficient service to customers…”</p><cite>City of Annapolis Transportation Director, at the launch of Go! Time<sup class="fn"><a href="#r10">10</a></sup></cite></blockquote>
38091</section>
38092
38093<section class="sec">
38094<!-- When microtransit fits a city (removed from the published text)
38095<span class="tick"></span>
38096<h2>When microtransit fits a city</h2>
38097<p>Transit planners describe the choice as a trade between two goals, ridership and coverage. A fixed route is the most efficient way to move many people along a dense corridor, because one vehicle on a timetable serves everyone waiting along the line. Where demand is thin, or scattered in space and time, the same bus runs with empty seats and each trip becomes expensive. Demand-responsive service exchanges a fixed path for a fixed area, so vehicle-hours follow requests instead of the timetable. Federal technical-assistance guidance recommends it for “less dense and less walkable communities—or to any location at less busy times of day.”<sup class="fn"><a href="#r12">12</a></sup></p>
38098<p>In practice the fit comes down to a few measurable conditions: moderate or low demand density, trip ends spread across a zone of a few square miles, hours in which a fixed route cannot justify a useful frequency, and a fixed-route spine that riders can still reach for longer trips. Annapolis meets all four. It is small enough for a single zone, its destinations are dispersed, much of its demand falls in the evening and on Sunday, and three citywide routes still carry the busiest corri
38098dors.</p>
38099<p>We judged the pilot on three questions, which also organise the rest of this post (Figure 2).</p>
38100-->
38101
38102<figure class="diagram">
38103  <svg class="diag" viewBox="0 0 680 318" role="img" aria-label="Three pillars of a lasting microtransit service: coverage, convenience, cost."><polygon class="ped" points="40,78 340,14 640,78"/><rect class="ent" x="30" y="78" width="620" height="14" rx="2"/><text class="dg-t" x="340" y="64" text-anchor="middle">A microtransit service that lasts</text><rect class="ent" x="30" y="252" width="620" height="12" rx="2"/><a href="#coverage" class="pil" aria-label="Coverage: jump to section"><rect class="col-cap" x="82" y="96" width="96" height="10" rx="2"/><rect class="col-sh" x="92" y="106" width="76" height="140"/><line class="flute" x1="104.7" y1="110" x2="104.7" y2="242"/><line class="flute" x1="117.4" y1="110" x2="117.4" y2="242"/><line class="flute" x1="130.1" y1="110" x2="130.1" y2="242"/><line class="flute" x1="142.8" y1="110" x2="142.8" y2="242"/><line class="flute" x1="155.5" y1="110" x2="155.5" y2="242"/><rect class="col-cap" x="82" y="244" width="96" height="8" rx="2"/><rect class="lbl-bg" x="68" y="150" width="124" height="30" rx="4"/><text class="dg-h" x="130" y="171" text-anchor="middle">Coverage</text><text class="dg-s" x="130" y="288" text-anchor="middle">Where and when</text><text class="dg-s" x="130" y="304" text-anchor="middle">a ride is available</text></a><a href="#convenience" class="pil" aria-label="Convenience: jump to section"><rect class="col-cap" x="292" y="96" width="96" height="10" rx="2"/><rect class="col-sh" x="302" y="106" width="76" height="140"/><line class="flute" x1="314.7" y1="110" x2="314.7" y2="242"/><line class="flute" x1="327.4" y1="110" x2="327.4" y2="242"/><line class="flute" x1="340.1" y1="110" x2="340.1" y2="242"/><line class="flute" x1="352.8" y1="110" x2="352.8" y2="242"/><line class="flute" x1="365.5" y1="110" x2="365.5" y2="242"/><rect class="col-cap" x="292" y="244" width="96" height="8" rx="2"/><rect class="lbl-bg" x="278" y="150" width="124" height="30" rx="4"/><text class="dg-h" x="340" y="171" text-anchor="middle">Convenience</text><text class="dg-s" x="340" y="288" text-anchor="middle">How reliably and how</text><text class="dg-s" x="340" y="304" text-anchor="middle">soon the ride arrives</text></a><a href="#cost" class="pil" aria-label="Cost: jump to section"><rect class="col-cap" x="502" y="96" width="96" height="10" rx="2"/><rect class="col-sh" x="512" y="106" width="76" height="140"/><line class="flute" x1="524.7" y1="110" x2="524.7" y2="242"/><line class="flute" x1="537.4" y1="110" x2="537.4" y2="242"/><line class="flute" x1="550.1" y1="110" x2="550.1" y2="242"/><line class="flute" x1="562.8" y1="110" x2="562.8" y2="242"/><line class="flute" x1="575.5" y1="110" x2="575.5" y2="242"/><rect class="col-cap" x="502" y="244" width="96" height="8" rx="2"/><rect class="lbl-bg" x="488" y="150" width="124" height="30" rx="4"/><text class="dg-h" x="550" y="171" text-anchor="middle">Cost</text><text class="dg-s" x="550" y="288" text-anchor="middle">What each trip costs</text><text class="dg-s" x="550" y="304" text-anchor="middle">the City to provide</text></a></svg>
38104  <figcaption><b>Figure 2 · What we measured</b>Coverage, convenience and cost. Select a pillar to jump to its section.</figcaption>
38105</figure>
38106</section>
38107
38108<section class="sec" id="coverage">
38109<span class="tick"></span>
38110<h2>Coverage: more of the city, more of the week</h2>
38111<p>Before the pilot, the five fixed routes covered about 4.2 square miles by that rule. With Orange and Purple replaced by Go! Time, the network covers about 5.0. <strong>The change gained close to a square mile of walkable access and gave up effectively none</strong>, because virtual stops sit where riders actually board, and are not spaced along a single line (Figure 3).</p>
38112
38113<figure class="mapfig" id="walkfig">
38114  <div class="mapbar">
38115    <div class="grp" role="group" aria-label="View">
38116      <span class="glab">View</span>
38117      <button class="chip" type="button" data-preset="before">Before the pilot</button>
38118      <button class="chip" type="button" data-preset="pilot">During the pilot</button>
38119      <button class="chip" type="button" data-preset="diff">What changed</button>
38120    </div>
38121    <div class="grp" role="group" aria-label="Layers">
38122      <span class="glab">Layers</span>
38123      <button class="chip" type="button" data-layer="before"><span class="sq" style="--c:#9DB8CC"></span>Before</button>
38124      <button class="chip" type="button" data-layer="pilot"><span class="sq" style="--c:#F2BE6A"></span>Pilot</button>
38125      <button class="chip" type="button" data-layer="gained"><span class="sq" style="--c:#1E6F63"></span>Gained</button>
38126      <button class="chip" type="button" data-layer="lost"><span class="sq" style="--c:#C2570F"></span>Lost</button>
38127    </div>
38128    <div class="grp" role="group" aria-label="Fixed routes">
38129      <span class="glab">Routes</span>
38130      <button class="chip" type="button" data-route="Red"><span class="sw" style="--c:#C8102E"></span>Red</button>
38131      <button class="chip" type="button" data-route="Green"><span class="sw" style="--c:#2E8B3E"></span>Green</button>
38132      <button class="chip" type="button" data-route="Brown"><span class="sw" style="--c:#8B5A2B"></span>Brown</button>
38133      <button class="chip" type="button" data-route="Orange"><span class="sw" style="--c:#E07B00"></span>Orange</button>
38134      <button class="chip" type="button" data-route="Purple"><span class="sw" style="--c:#6A3FA0"></span>Purple</button>
38135    </div>
38136  </div>
38137  <p class="mapstat" id="walkstat" aria-live="polite"></p>
38138  <svg class="map" id="walkmap" viewBox="0 0 680 601" role="img" aria-label="Ten-minute walkable access to transit, before and during the pilot"><rect class="m-land" x="0" y="0" width="680" height="601"/><path class="m-water" d="M9.9,500.1 L11.6,506.6 L13.9,510.2 L13.1,511.5 L5.8,515.4 L0.0,514.3 L0.0,512.4 L2.1,510.8 L7.4,509.5 L4.4,504.3 L6.0,499.3 L4.6,497.1 L0.0,498.1 L0.0,444.4 L1.4,441.5 L0.8,440.9 L0.0,441.7 L0.0,433.9 L1.9,436.7 L4.0,436.5 L4.8,435.0 L6.6,434.4 L9.1,435.3 L7.1,442.4 L5.3,442.6 L3.6,441.3 L3.4,442.9 L17.9,449.0 L19.7,449.0 L22.5,447.1 L26.9,442.8 L31.2,441.7 L34.4,442.5 L41.1,447.0 L44.4,448.1 L56.2,443.5 L62.0,446.0 L67.1,451.2 L68.0,451.3 L69.3,448.8 L68.6,447.4 L59.2,443.1 L56.9,440.7 L59.7,437.7 L63.7,436.7 L65.2,438.1 L69.6,437.0 L71.3,433.4 L70.6,431.6 L65.3,428.4 L62.2,427.7 L60.7,425.3 L61.2,423.6 L68.3,415.8 L62.2,411.2 L66.0,406.3 L65.5,398.5 L58.8,392.5 L58.8,390.1 L60.2,388.4 L59.8,382.7 L58.0,380.8 L53.2,366.5 L54.9,363.5 L55.2,357.6 L56.7,360.5 L57.0,365.5 L60.7,373.4 L64.3,375.8 L63.4,380.8 L67.0,383.3 L66.1,392.0 L71.5,393.6 L71.1,400.7 L82.6,404.7 L82.4,406.4 L81.1,407.0 L76.3,407.2 L74.3,410.8 L75.8,416.2 L81.2,418.0 L75.8,422.4 L77.7,424.4 L79.0,428.5 L77.4,430.8 L84.7,435.3 L85.5,438.2 L84.6,441.4 L79.8,444.7 L82.6,453.6 L82.1,455.7 L84.2,463.4 L88.2,468.6 L87.8,471.7 L91.0,475.5 L89.2,477.6 L91.5,480.0 L98.0,475.3 L104.1,472.8 L124.0,473.6 L128.6,477.4 L134.8,490.6 L136.5,491.7 L138.9,491.3 L150.4,484.1 L154.8,483.1 L160.6,482.8 L171.6,486.7 L176.5,485.1 L177.1,484.4 L170.5,476.1 L169.0,470.8 L171.4,466.7 L172.6,461.4 L175.7,458.7 L178.0,454.7 L177.7,449.3 L179.8,447.0 L173.8,445.9 L167.8,440.1 L160.4,442.0 L160.1,440.0 L152.4,437.7 L151.9,435.3 L153.0,433.9 L156.3,434.4 L163.2,432.9 L167.9,429.7 L168.4,427.2 L164.2,424.8 L163.6,422.9 L164.6,420.5 L165.7,420.3 L173.6,423.3 L175.7,430.9 L178.5,430.7 L179.2,429.5 L177.9,426.3 L178.4,423.5 L179.9,421.5 L184.4,419.2 L183.8,416.6 L186.4,409.6 L186.7,403.9 L186.8,396.5 L185.3,390.1 L187.4,388.9 L187.4,385.5 L189.7,383.5 L189.7,382.2 L177.5,366.3 L176.4,364.0 L176.5,361.2 L177.5,361.0 L185.5,368.5 L190.6,374.0 L191.0,375.6 L195.9,375.4 L190.5,365.4 L189.2,359.1 L191.5,353.4 L191.2,338.2 L195.8,331.7 L195.7,328.1 L197.1,324.3 L199.4,326.4 L200.1,332.4 L199.8,334.3 L195.6,339.6 L195.3,353.2 L196.1,354.8 L206.9,350.0 L209.7,347.4 L210.6,344.9 L211.9,349.1 L208.7,353.7 L200.1,357.8 L196.6,362.9 L197.0,365.5 L200.8,369.6 L205.0,371.8 L201.0,378.4 L199.3,386.2 L197.7,388.4 L199.1,391.1 L198.4,396.8 L199.5,399.8 L196.2,402.5 L194.9,404.9 L200.2,409.2 L200.1,411.6 L195.3,414.3 L193.4,416.8 L194.9,420.5 L198.2,423.5 L188.9,429.5 L192.3,435.6 L192.5,442.3 L191.3,448.4 L193.6,452.2 L187.9,457.0 L190.4,458.7 L191.5,461.2 L189.9,466.6 L191.4,470.5 L190.3,472.9 L191.9,476.7 L193.6,477.8 L192.6,478.5 L194.4,483.1 L201.0,486.0 L205.2,486.3 L208.4,488.8 L215.0,483.8 L215.2,482.8 L210.9,481.9 L208.4,478.9 L202.8,475.6 L205.4,469.6 L209.7,466.1 L212.8,461.7 L216.7,461.3 L216.6,465.0 L218.4,468.1 L221.7,468.9 L230.0,466.6 L226.9,462.7 L227.5,459.8 L229.4,458.8 L229.1,451.5 L233.2,449.2 L233.7,443.6 L235.5,439.0 L244.5,431.7 L242.5,426.8 L235.4,416.4 L236.6,411.2 L237.9,411.2 L246.6,423.0 L250.8,429.3 L252.1,434.0 L255.8,435.1 L257.9,430.2 L263.2,423.7 L260.6,416.8 L262.3,413.0 L261.2,409.3 L262.0,405.2 L260.4,403.2 L261.7,401.7 L262.9,401.5 L265.2,404.2 L266.4,418.1 L269.6,423.5 L269.3,427.1 L273.4,425.5 L277.3,427.3 L282.3,434.3 L285.4,436.6 L288.6,437.4 L292.3,436.8 L292.5,440.1 L293.6,441.3 L297.4,441.0 L301.8,442.2 L308.4,440.7 L321.0,443.2 L323.8,449.5 L316.9,446.1 L307.0,445.4 L302.0,449.0 L298.2,446.6 L292.5,447.1 L288.0,449.5 L286.7,452.7 L284.2,451.2 L282.6,446.7 L281.8,439.0 L276.2,436.1 L265.2,436.8 L259.0,450.6 L245.7,452.6 L245.0,457.7 L241.2,459.3 L243.8,464.1 L247.8,466.7 L247.2,471.9 L240.5,471.6 L235.5,477.1 L236.8,479.3 L236.2,480.3 L231.9,478.3 L230.7,476.6 L230.5,473.4 L229.7,473.4 L230.3,477.1 L232.2,480.3 L233.6,492.3 L232.6,500.5 L231.7,500.5 L231.1,504.6 L230.1,504.9 L228.4,512.3 L227.9,518.9 L228.3,532.8 L230.1,533.1 L229.5,537.6 L230.6,540.9 L232.3,541.8 L235.5,538.5 L252.3,535.6 L252.4,534.1 L251.6,533.9 L248.5,535.0 L247.9,532.6 L251.2,530.4 L252.4,530.6 L252.9,532.6 L254.2,532.3 L256.7,531.5 L258.4,529.4 L260.8,521.6 L258.7,522.1 L257.6,520.9 L257.6,517.8 L259.0,515.7 L258.1,514.4 L259.4,511.8 L258.8,511.4 L261.0,508.9 L262.9,504.0 L273.6,505.5 L273.8,506.9 L265.4,508.9 L264.1,510.6 L266.1,515.4 L264.9,517.8 L266.4,520.8 L270.5,524.7 L271.6,529.2 L270.6,531.1 L268.8,530.6 L264.4,538.2 L269.5,541.3 L269.1,545.3 L266.0,544.7 L265.9,540.5 L263.2,540.0 L265.1,544.5 L273.1,577.5 L283.7,582.3 L287.1,580.4 L289.7,576.7 L291.5,576.1 L288.2,573.3 L285.3,573.4 L281.6,570.9 L280.4,568.1 L280.3,558.5 L286.4,549.8 L309.2,533.2 L308.4,532.5 L304.5,535.7 L301.2,532.3 L301.2,530.6 L302.0,529.3 L304.2,529.7 L307.1,528.1 L308.6,524.7 L307.3,523.7 L307.3,521.4 L309.2,517.0 L314.6,512.9 L313.4,509.6 L314.8,502.8 L323.6,504.8 L324.0,507.0 L318.2,509.1 L320.3,513.4 L319.5,515.4 L316.5,516.6 L315.1,514.4 L314.5,514.8 L318.1,518.8 L326.9,523.4 L336.4,516.9 L341.9,519.8 L343.4,519.7 L343.9,514.6 L345.9,511.4 L356.7,507.2 L358.6,505.3 L359.5,505.1 L360.1,507.4 L358.3,509.7 L352.1,511.8 L350.4,514.7 L351.4,519.3 L348.7,524.0 L345.5,526.4 L341.3,527.6 L334.9,527.3 L329.7,531.7 L321.7,533.6 L320.2,537.5 L322.2,543.7 L329.3,543.0 L331.5,545.5 L334.1,546.1 L334.4,548.0 L325.4,547.9 L320.3,550.9 L314.8,549.7 L312.7,551.4 L312.6,553.4 L316.2,560.1 L317.9,565.8 L325.0,564.2 L326.7,565.1 L327.4,567.0 L326.6,569.7 L317.9,571.3 L314.9,570.7 L314.5,572.2 L312.1,573.7 L309.5,577.4 L311.8,580.5 L324.6,586.6 L330.6,591.8 L335.0,600.9 L203.0,600.9 L201.5,594.2 L197.1,586.1 L190.8,578.7 L186.8,577.8 L181.4,574.5 L166.8,570.8 L162.8,568.8 L155.2,568.0 L153.7,570.4 L154.9,574.6 L154.0,586.8 L154.8,587.5 L155.0,585.5 L157.7,585.3 L162.0,587.8 L162.5,589.3 L156.8,589.8 L151.6,589.1 L149.5,586.2 L143.8,583.1 L138.0,583.1 L136.2,585.9 L140.4,591.3 L148.0,596.5 L149.6,595.6 L152.6,596.1 L153.1,599.6 L148.8,599.0 L148.1,600.9 L135.0,600.9 L134.2,597.8 L130.5,597.1 L128.5,597.6 L125.5,600.9 L114.7,600.9 L110.6,596.8 L103.9,599.9 L101.6,600.5 L101.2,599.3 L108.6,592.7 L113.5,592.3 L116.8,593.7 L118.1,591.4 L117.9,588.3 L120.1,584.9 L124.7,582.4 L126.8,572.6 L125.2,570.2 L125.9,568.6 L129.7,567.4 L135.4,567.9 L140.0,569.3 L140.8,571.9 L142.4,571.1 L148.1,560.9 L153.7,558.2 L154.6,556.7 L157.0,548.8 L156.5,547.8 L143.3,542.2 L133.9,541.8 L122.4,537.3 L121.0,538.5 L117.7,536.3 L117.9,532.9 L113.6,532.3 L104.2,533.2 L93.1,540.6 L91.2,544.0 L91.0,545.7 L96.5,556.3 L95.6,559.5 L89.8,560.4 L87.3,562.3 L86.0,564.8 L83.3,566.1 L77.1,565.2 L75.2,565.7 L74.6,571.4 L72.2,575.7 L68.1,575.5 L63.2,573.7 L59.7,574.8 L54.9,574.8 L53.5,576.2 L52.6,579.7 L49.2,582.0 L38.2,583.8 L42.5,577.7 L44.7,576.2 L45.2,572.0 L48.2,568.2 L51.5,567.6 L52.6,568.4 L58.9,566.2 L67.7,568.9 L67.6,559.2 L73.6,559.5 L76.8,558.6 L76.4,555.1 L77.9,552.9 L80.3,552.4 L82.2,554.3 L81.3,551.1 L82.5,540.8 L85.4,538.6 L86.0,536.7 L85.0,528.2 L78.6,518.6 L80.5,514.9 L79.0,513.1 L76.9,514.2 L65.6,512.1 L57.0,50
381385.8 L53.0,499.6 L46.3,496.0 L44.5,493.6 L44.5,491.6 L41.7,489.3 L35.9,489.2 L28.6,485.2 L29.1,484.5 L25.7,480.7 L27.1,477.2 L26.2,476.8 L23.6,477.7 L21.2,480.2 L11.5,493.9 L7.4,497.1 L7.7,500.2 L9.9,500.1ZM361.5,595.4 L363.2,591.0 L363.5,582.3 L366.2,580.4 L369.9,579.6 L372.2,577.1 L372.3,574.3 L374.7,573.1 L388.7,576.8 L394.7,583.7 L398.6,584.3 L400.8,586.6 L408.1,587.2 L413.0,584.7 L415.6,584.6 L412.1,589.8 L407.7,592.3 L392.0,589.6 L388.3,584.1 L376.6,580.2 L372.9,590.5 L373.0,596.3 L377.5,597.7 L380.6,600.9 L362.0,600.9 L361.5,595.4ZM75.4,237.8 L68.1,240.4 L66.8,239.5 L70.4,235.8 L73.1,235.7 L75.4,237.8ZM10.0,151.9 L10.5,154.2 L3.3,159.2 L2.5,155.2 L8.2,151.3 L10.0,151.9ZM70.8,152.6 L74.2,150.5 L76.1,151.6 L78.0,155.1 L69.9,155.3 L70.8,152.6ZM0.0,155.0 L2.7,159.4 L0.0,162.4 L0.0,155.0ZM159.9,274.3 L163.7,277.7 L161.5,279.7 L158.9,278.2 L159.9,274.3ZM219.9,170.6 L223.5,170.4 L223.4,169.5 L225.0,169.2 L228.5,170.7 L228.5,172.4 L224.7,178.5 L221.6,178.3 L220.8,177.4 L219.6,173.6 L218.4,173.4 L219.9,170.6ZM261.6,145.1 L267.9,143.5 L271.2,144.7 L276.0,144.3 L279.2,145.9 L279.3,147.3 L278.8,148.4 L273.7,148.3 L262.8,146.3 L261.6,145.1ZM188.9,138.8 L190.4,137.6 L192.5,138.2 L191.5,141.2 L184.4,140.8 L185.1,138.2 L188.9,138.8ZM216.3,141.0 L213.8,138.4 L215.7,136.8 L218.1,137.6 L217.8,139.6 L216.3,141.0ZM174.0,134.2 L175.4,134.5 L177.3,137.7 L176.5,140.2 L171.7,136.1 L174.0,134.2ZM308.4,71.9 L309.8,72.6 L309.1,74.1 L304.1,74.9 L305.8,72.4 L308.4,71.9ZM186.2,30.0 L182.3,29.3 L183.9,25.3 L185.0,25.7 L186.8,22.8 L186.6,24.7 L187.7,25.5 L186.2,30.0ZM359.5,23.1 L355.9,26.2 L354.2,25.4 L352.2,20.6 L349.2,16.6 L345.5,15.1 L342.6,15.1 L340.3,17.6 L338.5,22.9 L336.9,24.2 L330.9,23.1 L329.9,24.3 L326.9,40.8 L324.8,42.8 L323.4,41.8 L323.0,28.7 L320.4,24.9 L318.7,24.2 L310.9,26.2 L310.5,30.3 L309.5,31.5 L306.2,31.4 L304.0,38.5 L300.8,35.6 L298.2,35.1 L297.4,32.8 L294.2,33.3 L302.6,28.5 L303.6,19.6 L305.3,17.4 L312.2,19.0 L317.8,14.1 L322.5,13.1 L327.5,9.8 L332.6,11.5 L335.2,10.4 L336.9,9.0 L338.4,4.1 L342.0,0.0 L481.1,0.0 L485.7,7.9 L489.5,11.6 L493.7,13.9 L506.8,26.6 L508.6,29.3 L509.2,32.4 L511.0,28.8 L528.0,23.1 L532.3,18.5 L532.3,17.2 L529.4,18.3 L528.1,17.4 L532.0,11.7 L533.0,0.0 L538.7,0.0 L542.6,2.1 L540.4,4.6 L539.3,4.5 L538.0,6.8 L539.5,14.3 L541.4,16.2 L548.7,19.3 L553.5,25.6 L551.5,26.1 L548.3,24.8 L539.2,24.2 L536.7,23.0 L534.9,19.7 L535.3,16.9 L534.7,16.8 L534.4,21.6 L531.2,24.6 L533.8,24.7 L536.5,28.5 L546.7,53.7 L557.3,66.7 L560.5,76.2 L560.8,91.5 L561.9,93.7 L562.5,102.3 L559.7,111.3 L556.4,115.9 L557.7,117.8 L558.2,118.6 L564.8,114.7 L569.7,114.2 L583.2,117.3 L586.3,120.1 L587.7,123.1 L600.0,138.3 L602.5,149.9 L603.9,152.2 L613.3,154.4 L621.0,154.5 L626.9,157.4 L628.7,159.3 L630.3,165.4 L630.1,170.2 L628.1,173.4 L627.1,180.1 L628.4,185.8 L632.5,189.3 L645.8,209.7 L648.8,212.6 L653.9,205.3 L656.9,207.4 L652.3,214.2 L657.6,218.0 L660.9,213.0 L662.6,214.1 L659.3,219.1 L664.9,223.0 L670.6,216.0 L680.0,209.6 L680.0,497.8 L677.6,494.5 L675.3,493.5 L671.1,485.9 L660.1,471.6 L656.8,470.2 L651.4,458.7 L651.3,456.2 L640.4,422.5 L641.2,420.9 L637.1,422.0 L634.5,425.1 L634.5,443.2 L631.9,444.2 L625.8,444.3 L624.0,442.7 L623.6,430.2 L624.9,426.3 L633.7,419.4 L639.7,417.6 L637.7,417.1 L635.6,412.0 L635.1,406.9 L637.3,386.8 L634.8,378.0 L630.8,369.3 L633.9,356.5 L624.2,358.4 L624.0,359.6 L623.6,358.4 L622.0,358.9 L621.8,361.1 L619.7,363.0 L618.9,365.4 L615.1,367.7 L613.0,367.6 L607.2,364.0 L606.2,364.5 L606.0,372.0 L603.7,377.1 L600.0,380.8 L593.9,383.9 L595.7,391.6 L595.0,397.7 L599.9,398.2 L600.6,399.3 L599.1,401.4 L597.4,402.0 L594.8,401.1 L593.0,399.6 L593.3,398.2 L590.2,398.9 L586.9,403.0 L585.6,409.6 L586.1,411.6 L583.5,413.5 L578.5,412.6 L567.3,406.4 L567.2,426.5 L563.5,439.0 L566.4,440.9 L561.2,451.1 L559.0,453.9 L555.5,452.0 L545.6,454.7 L543.4,456.9 L535.4,457.7 L536.5,456.0 L535.3,453.1 L537.2,451.4 L540.8,450.3 L542.6,450.8 L545.7,448.4 L551.2,448.9 L553.8,446.0 L557.5,444.3 L554.8,439.7 L552.3,437.9 L548.0,439.7 L546.4,438.8 L541.5,439.7 L540.3,438.8 L541.1,432.4 L539.6,430.0 L539.6,427.7 L544.6,434.3 L551.7,431.4 L556.3,427.9 L556.6,424.9 L559.4,421.6 L557.5,416.2 L557.7,414.4 L559.5,412.9 L557.2,409.4 L556.8,402.9 L559.9,399.3 L566.4,396.7 L560.4,393.8 L551.7,397.0 L550.7,395.9 L551.1,393.9 L559.8,388.7 L570.2,392.2 L577.2,391.9 L576.3,384.7 L577.5,382.7 L583.7,378.4 L584.6,376.6 L584.1,374.9 L578.2,371.0 L574.9,370.1 L568.0,372.6 L566.5,370.0 L563.8,368.6 L557.7,367.5 L558.5,366.0 L562.8,364.3 L564.3,365.6 L568.9,362.3 L570.5,365.1 L573.8,365.6 L576.6,363.0 L582.6,360.2 L593.2,351.1 L592.1,350.1 L592.7,343.2 L594.7,341.4 L600.4,342.5 L601.4,343.5 L606.1,339.8 L611.5,345.1 L613.0,350.5 L617.1,348.9 L617.0,345.8 L618.7,344.3 L617.8,343.2 L619.2,342.0 L620.2,336.3 L624.3,330.9 L630.4,326.8 L633.2,321.7 L634.5,315.1 L632.9,311.5 L627.8,309.0 L625.8,308.7 L624.5,309.9 L617.1,305.7 L616.0,304.1 L617.5,303.0 L612.5,296.7 L608.4,299.7 L604.4,292.8 L603.4,293.6 L600.2,289.7 L599.6,290.1 L596.5,287.4 L599.9,284.9 L597.9,283.0 L595.2,283.4 L592.4,285.2 L591.5,284.1 L588.4,286.4 L588.9,287.7 L583.7,292.0 L585.8,297.1 L582.3,299.7 L579.3,295.7 L578.1,296.6 L581.5,301.4 L578.6,302.4 L579.0,305.0 L576.0,308.3 L576.6,309.3 L574.9,310.4 L575.7,311.7 L571.9,313.7 L569.7,313.5 L567.4,316.2 L566.7,315.4 L562.0,317.6 L547.7,313.7 L544.5,316.2 L541.4,3
3813817.1 L540.2,314.1 L534.5,316.6 L533.7,315.6 L530.0,317.1 L530.2,318.2 L528.3,319.4 L528.1,317.3 L526.8,317.1 L526.4,318.3 L524.7,316.7 L521.8,310.4 L520.1,310.0 L514.3,314.7 L512.9,316.9 L514.1,322.8 L510.3,324.8 L506.8,330.0 L506.5,333.2 L504.9,333.8 L503.5,331.4 L504.6,331.1 L504.7,326.9 L508.1,320.6 L504.8,310.5 L501.1,312.4 L498.6,311.2 L497.0,311.7 L492.9,320.5 L484.7,319.4 L478.2,321.8 L479.0,323.6 L478.3,327.6 L475.7,332.2 L478.7,337.1 L477.5,337.9 L471.6,331.2 L468.3,337.4 L475.1,345.0 L476.1,353.8 L475.6,356.1 L473.1,358.7 L471.2,347.1 L466.3,344.2 L465.1,342.5 L462.8,341.9 L458.6,335.9 L455.4,335.3 L446.2,336.3 L441.5,339.8 L441.4,344.1 L442.5,346.9 L438.6,347.4 L437.3,348.9 L435.6,354.9 L429.0,364.7 L422.9,364.3 L420.3,372.2 L419.9,369.7 L421.4,363.6 L423.0,361.9 L427.6,360.2 L428.0,358.6 L429.0,358.9 L430.1,355.8 L429.2,355.5 L430.1,352.7 L431.4,351.9 L433.2,345.4 L431.8,344.2 L432.3,342.7 L435.2,341.2 L436.1,336.3 L428.6,334.2 L423.3,329.6 L419.4,329.0 L415.9,326.6 L413.3,330.4 L409.4,332.5 L408.8,330.7 L410.8,330.1 L411.6,327.0 L407.5,326.2 L406.2,325.5 L406.5,324.3 L411.4,323.8 L419.6,320.5 L426.9,325.8 L430.5,326.9 L431.7,326.0 L435.8,329.9 L438.1,330.3 L441.0,328.4 L447.8,326.7 L453.6,327.1 L457.6,324.4 L465.9,325.5 L467.8,311.5 L459.3,305.9 L458.9,303.2 L459.9,301.5 L465.9,305.4 L473.1,306.0 L476.1,309.7 L479.7,308.9 L484.2,310.4 L487.6,303.7 L490.1,302.3 L496.2,302.7 L497.3,301.4 L500.3,295.0 L497.2,292.7 L495.9,294.3 L494.3,293.1 L496.9,292.5 L501.8,285.0 L503.9,286.8 L503.2,289.0 L505.3,291.0 L511.0,293.8 L512.4,293.7 L519.4,300.5 L523.2,300.5 L528.0,298.3 L537.3,303.3 L540.8,297.1 L551.1,297.
381380 L556.2,299.7 L558.1,298.5 L555.5,293.4 L555.0,288.5 L557.8,286.5 L555.8,283.8 L557.6,283.4 L557.9,281.7 L549.9,269.8 L546.1,268.1 L545.4,266.1 L546.7,264.4 L560.1,277.6 L559.4,278.6 L563.4,275.2 L560.7,272.8 L562.5,270.9 L564.5,270.9 L566.7,272.7 L572.1,266.4 L574.8,268.8 L591.4,265.2 L614.8,238.1 L615.3,238.6 L620.1,233.1 L608.7,223.2 L606.9,223.0 L605.6,224.6 L606.3,225.2 L601.6,230.6 L592.7,223.0 L587.7,218.7 L594.1,210.7 L564.9,185.4 L558.9,192.4 L549.7,194.5 L545.0,199.9 L537.8,197.0 L534.8,200.5 L532.8,201.3 L516.2,194.0 L511.4,194.6 L501.8,201.5 L500.0,201.7 L492.5,209.9 L486.8,212.2 L484.0,222.0 L481.6,223.2 L478.9,220.8 L473.7,221.6 L469.9,225.2 L468.3,228.5 L465.0,229.4 L461.5,236.1 L453.4,239.0 L451.8,238.4 L445.2,240.1 L444.6,239.1 L446.4,235.8 L452.1,233.0 L456.6,232.8 L462.0,221.7 L466.7,220.0 L469.2,216.4 L463.5,214.2 L461.1,214.3 L457.0,211.5 L455.8,211.8 L454.0,209.4 L459.2,208.6 L468.4,210.0 L473.1,209.6 L478.3,212.6 L479.2,208.3 L483.4,205.0 L482.2,201.0 L476.0,200.8 L473.6,197.9 L470.3,198.7 L463.8,194.6 L464.9,191.8 L466.5,191.4 L469.7,193.8 L474.9,191.8 L478.0,194.2 L485.3,195.2 L489.3,194.2 L490.1,194.9 L491.6,193.2 L491.1,192.2 L499.7,184.7 L501.8,185.4 L503.7,190.1 L505.2,189.9 L506.1,187.9 L517.1,183.2 L519.3,183.4 L523.2,186.6 L526.1,187.6 L532.4,184.3 L537.7,187.7 L547.7,184.3 L533.7,143.7 L522.6,147.7 L521.2,143.4 L521.6,141.4 L519.6,140.0 L515.4,142.7 L509.1,143.1 L498.6,137.3 L496.5,135.0 L495.0,135.3 L496.1,137.4 L495.7,140.1 L494.7,140.8 L490.9,139.5 L485.1,140.2 L482.3,138.4 L480.0,139.8 L477.9,139.5 L478.2,134.9 L479.7,134.0 L486.7,134.5 L489.3,133.8 L491.8,135.0 L496.1,133.4 L501.5,122.7 L502.3,122.7 L503.1,115.9 L500.8,115.0 L500.8,113.1 L503.1,111.7 L510.4,100.7 L509.9,98.5 L505.6,98.0 L505.2,99.1 L498.4,100.1 L490.1,95.4 L488.7,93.1 L489.5,90.5 L484.5,91.4 L476.5,90.0 L475.5,89.5 L475.6,88.1 L469.7,86.4 L468.3,83.9 L464.2,80.8 L455.1,77.3 L451.8,78.0 L450.8,79.1 L452.9,79.5 L450.2,81.6 L448.5,89.0 L440.6,92.7 L432.0,100.2 L429.8,109.1 L431.0,111.7 L428.6,116.6 L429.2,118.4 L432.5,118.2 L433.1,122.1 L423.0,129.9 L422.7,136.3 L421.0,137.2 L418.4,136.9 L408.6,133.4 L406.8,131.9 L405.0,135.4 L404.5,143.2 L402.0,145.2 L394.7,158.1 L392.2,158.1 L390.6,153.6 L384.2,155.6 L380.4,153.6 L378.8,153.9 L375.6,157.1 L375.7,164.6 L373.9,168.2 L371.6,167.0 L371.2,165.7 L369.3,157.3 L370.1,154.7 L365.9,156.5 L363.6,159.5 L361.1,159.3 L359.3,157.7 L360.5,154.5 L359.9,151.9 L356.6,150.0 L351.5,151.3 L345.3,155.1 L340.4,156.4 L338.2,159.7 L330.9,162.8 L327.1,168.2 L325.3,167.7 L324.8,160.9 L320.5,162.2 L315.0,162.0 L311.4,159.4 L304.5,158.1 L301.5,158.7 L298.0,157.4 L291.9,159.6 L289.5,159.4 L288.8,158.5 L291.5,154.9 L299.2,152.2 L310.9,153.7 L312.9,151.3 L318.6,155.3 L330.1,154.7 L335.2,150.7 L336.6,146.8 L341.9,147.1 L345.4,143.9 L345.8,141.1 L343.5,138.4 L340.9,132.6 L341.4,131.9 L345.2,132.2 L350.4,137.5 L355.4,139.1 L363.7,143.8 L372.8,142.3 L374.0,141.3 L374.7,136.4 L379.0,134.0 L380.8,135.0 L383.3,139.1 L388.7,141.2 L392.3,138.0 L394.5,133.7 L394.7,129.8 L396.2,126.9 L401.2,126.7 L407.3,123.6 L409.6,123.6 L412.2,118.8 L412.4,115.0 L415.1,111.7 L416.4,112.0 L416.7,113.6 L417.5,113.2 L415.2,107.6 L409.4,101.1 L409.9,98.5 L411.8,98.4 L413.2,93.7 L418.1,91.7 L418.4,94.3 L419.4,93.8 L415.6,81.3 L413.6,80.3 L413.2,78.6 L416.9,77.6 L419.9,78.0 L421.3,67.0 L423.0,66.3 L425.6,68.7 L424.5,69.1 L424.7,70.3 L426.9,70.0 L429.0,61.1 L430.7,59.0 L433.3,58.4 L437.5,60.1 L438.5,58.8 L440.5,58.4 L439.6,57.1 L428.4,48.5 L421.5,41.9 L415.0,39.2 L405.6,33.3 L405.5,34.8 L409.1,36.1 L408.7,41.4 L403.8,43.7 L403.8,47.4 L401.0,49.5 L394.7,51.2 L391.3,56.8 L387.0,59.3 L386.0,57.4 L388.7,54.8 L389.3,51.4 L389.3,48.0 L388.1,45.8 L388.8,43.9 L389.4,43.4 L393.3,45.4 L394.9,44.7 L398.9,36.9 L401.1,34.2 L403.9,34.1 L406.9,27.3 L413.0,20.7 L409.2,19.4 L405.8,20.1 L402.7,19.1 L396.1,13.3 L389.2,12.6 L378.2,7.7 L375.9,8.5 L361.6,5.2 L357.2,5.5 L355.7,7.7 L359.5,23.1ZM211.1,1.8 L212.4,7.1 L211.4,8.0 L205.4,10.5 L199.8,11.3 L197.2,14.0 L191.0,15.9 L190.3,17.7 L190.3,15.5 L187.5,17.6 L189.5,14.6 L198.9,7.5 L198.8,5.5 L196.5,1.8 L200.6,3.8 L202.7,3.3 L205.6,0.0 L211.9,0.0 L211.1,1.8ZM679.5,556.7 L676.8,555.4 L675.7,556.2 L678.6,562.5 L677.6,564.3 L676.1,564.3 L675.0,562.1 L671.8,560.7 L668.1,553.1 L669.0,549.1 L670.1,548.1 L669.2,544.6 L667.6,543.9 L660.2,546.3 L657.8,548.9 L652.1,551.5 L651.4,549.5 L656.0,546.4 L654.9,541.9 L651.6,541.5 L650.0,542.5 L644.5,540.7 L640.4,543.7 L639.4,543.1 L640.4,540.0 L637.5,537.5 L636.3,538.9 L634.3,539.0 L627.8,536.7 
38138L614.6,545.6 L612.1,549.0 L607.0,551.3 L606.6,546.8 L610.1,546.8 L611.5,540.2 L614.2,540.1 L626.4,531.1 L624.1,523.6 L624.8,522.3 L627.0,523.8 L633.1,533.0 L635.7,528.8 L639.7,528.0 L641.1,528.5 L641.0,530.7 L646.4,533.8 L648.3,532.7 L653.0,533.7 L655.0,530.0 L661.0,533.2 L666.9,534.0 L671.6,526.9 L671.5,524.3 L672.8,523.6 L675.1,527.4 L680.0,530.7 L679.5,556.7ZM652.7,467.7 L654.3,468.7 L653.9,471.2 L658.4,473.9 L660.7,478.4 L661.2,486.7 L660.2,487.5 L655.2,485.4 L653.5,482.4 L654.0,477.2 L652.0,474.0 L651.6,470.8 L652.7,467.7ZM635.2,457.5 L638.5,457.6 L642.0,451.9 L645.5,457.3 L648.2,458.7 L645.9,463.0 L642.6,463.6 L641.7,465.2 L642.2,467.9 L640.7,468.6 L632.3,466.1 L627.8,462.9 L628.2,461.2 L635.2,457.5ZM625.7,144.6 L628.3,148.5 L627.0,152.2 L625.4,151.9 L624.7,153.8 L622.0,152.2 L621.1,145.6 L623.7,143.9 L625.7,144.6ZM634.6,144.1 L643.1,146.5 L667.1,135.1 L668.5,136.4 L658.1,145.1 L653.5,146.5 L652.1,148.7 L653.5,152.3 L651.2,153.5 L649.2,150.7 L646.3,150.0 L643.6,150.7 L635.0,157.4 L634.3,159.5 L635.0,161.1 L631.5,161.2 L630.3,156.8 L627.9,153.7 L630.7,148.3 L634.6,147.4 L634.6,144.1Z"/><path class="m-street" d="M694.3,701.8 L692.7,705.0M694.3,701.8 L695.9,702.2 L696.4,701.2 L695.4,691.3M694.3,701.8 L665.1,685.2 L664.7,682.1M692.7,705.0 L694.3,701.8M695.4,691.3 L685.9,685.9M695.4,691.3 L696.4,701.2 L695.9,702.2 L694.3,701.8M695.4,691.3 L697.0,682.7 L690.1,678.8M664.7,682.1 L661.3,680.3M664.7,682.1 L665.1,685.2 L694.3,701.8M664.7,682.1 L668.3,676.2M530.2,348.3 L524.2,350.8M530.2,348.3 L526.8,340.1M530.2,348.3 L532.3,353.8M524.2,350.8 L516.7,353.8M524.2,350.8 L530.2,348.3M526.8,340.1 L530.2,348.3M526.8,340.1 L513.2,345.9M526.8,340.1 L523.4,331.8M532.3,353.8 L530.2,348.3M516.2,354.2 L514.3,349.7M515.8,354.3 L511.2,356.3M516.7,353.8 L524.2,350.8M516.3,354.5 L518.2,359.0M514.3,349.7 L516.2,354.2M514.3,349.7 L512.8,346.0M511.2,356.3 L515.8,354.3M511.2,356.3 L512.6,361.3M512.6,361.3 L511.2,356.3M505.2,358.7 L507.5,357.8M507.5,357.8 L505.2,358.7M101.0,658.7 L95.3,662.9M101.0,658.7 L110.0,671.2M101.0,658.7 L97.6,653.8M95.3,662.9 L101.0,658.7M95.3,662.9 L92.1,662.9 L87.1,669.6M95.3,662.9 L105.2,674.6M110.0,671.2 L121.8,673.9M110.0,671.2 L118.5,682.9M110.0,671.2 L101.0,658.7M110.0,671.2 L114.7,667.9M110.0,671.2 L105.2,674.6M97.6,653.8 L101.0,658.7M97.6,653.8 L100.2,651.2M97.6,653.8 L95.2,655.8M329.1,278.0 L331.9,272.4M329.1,278.0 L333.8,279.9 L332.4,283.5M329.1,278.0 L321.7,293.3M331.9,272.4 L327.5,270.2M331.9,272.4 L336.0,274.1M331.9,272.4 L329.1,278.0M332.4,283.5 L333.8,279.9 L329.1,278.0M321.7,293.3 L317.5,293.0M321.7,293.3 L329.1,278.0M321.7,293.3 L326.9,294.0 L330.7,296.8M1.7,356.6 L-9.2,346.8M1.7,356.6 L-0.7,358.3 L-6.1,356.9 L-11.1,357.6M1.7,356.6 L8.5,364.2 L12.2,371.9M-9.2,346.8 L1.7,356.6M-9.2,346.8 L-11.9,344.3M2.5,356.0 L-8.5,346.0M2.5,356.0 L9.2,363.5 L13.0,371.5M2.5,356.0 L8.1,352.6M-11.1,357.6 L-6.1,356.9 L-0.7,358.3 L1.7,356.6M-11.1,357.6 L-12.3,357.8 L-12.2,359.0 L-10.9,358.7 L-11.1,357.6M-11.1,357.6 L-10.9,358.7 L-12.2,359.0 L-12.3,357.8 L-11.1,357.6M12.2,371.9 L14.7,382.4M12.2,371.9 L8.5,364.2 L1.7,356.6M576.7,42.4 L571.4,33.6M576.7,42.4 L566.2,47.6 L551.4,49.4 L550.8,48.5M577.0,42.9 L581.2,51.8 L583.1,59.6M571.4,33.6 L576.7,42.4M571.4,33.6 L566.1,35.2 L554.0,36.2M571.4,33.6 L555.0,7.1M550.8,48.5 L551.4,49.4 L566.2,47.6 L576.7,42.4M583.1,59.6 L577.4,60.1M583.1,59.6 L584.0,69.4 L582.9,76.4M583.1,59.6 L581.2,51.8 L577.0,42.9M577.4,60.1 L567.7,73.2M577.4,60.1 L583.1,59.6M577.4,60.1 L577.4,75.8M577.4,60.1 L562.2,61.0 L564.6,66.3M582.9,76.4 L577.4,75.8M582.9,76.4 L575.2,104.1M582.9,76.4 L584.0,69.4 L583.1,59.6M528.1,169.7 L525.1,163.9 L524.8,157.3M528.1,169.7 L530.6,175.3 L531.7,183.8M524.8,157.3 L523.8,167.0M524.8,157.3 L526.0,155.6 L525.2,152.4 L520.4,146.8 L509.8,151.0 L507.9,150.2M524.8,157.3 L525.1,163.9 L528.1,169.7M531.7,183.8 L530.6,175.3 L528.1,169.7M531.7,183.8 L530.7,185.6 L526.4,187.4 L518.6,182.7 L511.5,184.9 L508.8,184.0M516.5,176.6 L510.3,173.6 L498.3,163.0 L494.2,163.8M516.5,176.6 L515.5,180.6 L508.8,184.0M129.8,405.0 L137.8,412.3M129.8,405.0 L132.4,398.4M129.4,405.7 L118.9,419.1M137.8,412.3 L129.8,405.0M132.4,398.4 L133.7,394.0M132.4,398.4 L129.8,405.0M118.9,419.1 L124.9,424.3M118.9,419.1 L116.5,421.4M118.9,419.1 L129.4,405.7M124.9,424.3 L118.9,419.1M116.5,421.4 L118.9,419.1M116.5,421.4 L111.7,425.9M303.3,352.4 L310.6,344.1M301.8,351.1 L300.0,353.3M304.2,353.1 L311.4,344.8M304.2,353.1 L305.8,354.5 L302.4,358.7M310.6,344.1 L303.3,352.4M310.6,344.1 L306.7,340.6M310.6,344.1 L313.8,340.2M300.0,353.3 L298.3,355.3M300.0,353.3 L301.8,351.1M300.0,353.3 L295.1,348.7M298.3,355.3 L300.0,353.3M295.1,348.7 L292.9,347.0M295.1,348.7 L300.0,353.3M295.1,348.7 L275.7,369.6M295.1,348.7 L304.7,338.8M299.1,355.9 L301.8,358.3M302.4,358.7 L305.8,354.5 L304.2,353.1M301.8,358.3 L299.1,355.9M101.1,604.0 L106.3,603.5M101.1,604.0 L102.6,607.6 L106.3,603.5M106.3,603.5 L101.1,604.0M106.3,603.5 L102.6,607.6 L101.1,604.0M106.3,603.5 L110.9,598.3M100.9,602.4 L100.7,594.4M110.9,598.3 L106.3,603.5M349.3,82.7 L338.0,70.8M349.3,82.7 L352.4,85.8M338.0,70.8 L332.2,76.4M338.0,70.8 L335.8,68.7M338.0,70.8 L342.2,66.8M338.0,70.8 L349.3,82.7M352.4,85.8 L349.3,82.7M-166.3,332.7 L-161.5,329.6M-166.3,332.7 L-159.6,338.3 L-160.4,343.9M-166.3,332.7 L-173.2,338.5M-161.5,329.6 L-166.3,332.7M-161.5,329.6 L-158.7,327.8M-160.4,343.9 L-159.6,338.3 L-166.3,332.7M-160.4,343.9 L-164.7,343.2M-160.4,343.9 L-154.7,345.9 L-142.2,343.1M-173.2,338.5 L-179.5,342.8M-173.2,338.5 L-166.3,332.7M-164.7,343.2 L-168.3,346.6 L-168.3,354.5 L-166.0,359.8M-164.7,343.2 L-160.4,343.9M-142.2,343.1 L-143.9,346.5M-142.2,343.1 L-137.6,339.5 L-136.4,336.9 L-135.9,333.8 L-137.2,330.6M-142.2,343.1 L-154.7,345.9 L-160.4,343.9M501.1,156.8 L505.6,154.3 L520.7,165.7 L521.6,168.9M501.1,156.8 L513.6,167.5 L511.2,170.4M500.4,156.0 L497.7,157.7M500.4,156.0 L507.9,150.2M521.6,168.9 L520.7,165.7 L505.6,154.3 L501.1,156.8M521.6,168.9 L516.6,175.1M511.2,170.4 L513.6,167.5 L501.1,156.8M511.2,170.4 L516.6,175.1M511.2,170.4 L497.6,160.7 L492.7,162.3M-197.6,-99.5 L-195.5,-93.5 L-195.5,-86.5 L-200.9,-71.4M59.4,599.7 L65.6,598.6M59.4,599.7 L53.5,600.9M65.6,598.6 L70.1,597.8M65.6,598.6 L59.4,599.7M65.6,598.6 L64.2,588.8 L68.9,584.4M53.5,600.9 L53.5,588.6M53.5,600.9 L59.4,599.7M53.5,600.9 L48.2,602.0M285.7,311.5 L289.1,312.8M289.1,312.8 L291.5,312.2M289.1,312.8 L285.7,311.5M631.7,415.4 L634.2,415.9M630.5,415.0 L626.4,413.9M634.2,415.9 L631.7,415.4M584.3,424.4 L580.7,437.8M584.3,424.4 L586.0,419.1 L588.3,417.3M580.7,437.8 L579.9,440.7M580.7,437.8 L584.3,424.4M588.3,417.3 L586.0,419.1 L584.3,424.4M588.3,417.3 L607.7,409.9M686.4,168.9 L685.1,173.9M686.4,168.9 L688.7,164.0M685.1,173.9 L686.4,168.9M685.1,173.9 L680.9,179.3M693.2,184.0 L691.9,182.7 L688.4,186.1M693.2,184.0 L697.9,189.2M688.7,164.0 L680.3,156.7M688.7,164.0 L692.4,159.5M688.7,164.0 L693.4,167.8M688.7,164.0 L686.4,168.9M-70.5,222.6 L-64.8,224.5M-70.5,222.6 L-73.1,230.1M-70.5,222.6 L-68.9,214.3M-64.8,224.5 L-
3813854.6,227.7M-64.8,224.5 L-70.5,222.6M-64.8,224.5 L-62.4,220.0M-73.1,230.1 L-70.5,222.6M-73.1,230.1 L-77.6,242.4M-73.1,230.1 L-61.4,234.0 L-60.6,235.5M-68.9,214.3 L-70.5,222.6M358.4,623.1 L362.5,622.2M358.4,623.1 L357.0,611.4M362.5,622.2 L358.4,623.1M358.7,624.0 L361.0,631.8 L360.3,635.1 L352.6,640.5 L351.4,645.4M357.0,611.4 L358.4,623.1M357.0,611.4 L356.0,606.4M529.3,215.0 L526.8,217.8M535.1,219.9 L540.0,224.3 L542.4,224.8M530.2,214.0 L534.9,208.7M526.8,217.8 L511.3,204.6M526.8,217.8 L529.3,215.0M535.8,219.0 L537.5,217.2M542.4,224.8 L540.0,224.3 L535.1,219.9M88.7,292.4 L88.4,312.6 L90.7,316.8 L96.5,319.3M96.5,319.3 L94.6,324.7 L89.3,329.5M96.5,319.3 L90.7,316.8 L88.4,312.6 L88.7,292.4M96.5,319.3 L104.8,319.3M565.9,251.5 L562.9,248.8M562.9,248.8 L565.9,251.5M554.0,36.2 L566.1,35.2 L571.4,33.6M383.6,27.5 L391.5,30.5M383.6,27.5 L382.1,31.4M391.5,30.5 L383.6,27.5M391.5,30.5 L394.6,23.2 L399.1,25.3 L399.6,28.5M391.5,30.5 L393.1,32.6 L388.9,37.3M382.1,31.4 L383.6,27.5M382.1,31.4 L378.2,42.7M382.1,31.4 L388.9,37.3M399.6,28.5 L399.1,25.3 L394.6,23.2 L391.5,30.5M388.9,37.3 L391.2,39.9M388.9,37.3 L393.1,32.6 L391.5,30.5M388.9,37.3 L382.1,31.4M222.3,196.2 L221.3,198.5M222.3,196.2 L230.4,199.3M221.3,198.5 L222.3,196.2M221.3,198.5 L220.0,201.7M230.4,199.3 L222.3,196.2M351.5,578.4 L357.6,572.9M351.7,579.7 L352.3,583.3M357.6,572.9 L351.5,578.4M357.6,572.9 L364.4,566.7 L369.4,559.0M669.2,188.6 L661.3,204.3M669.2,188.6 L684.3,196.7M669.2,188.6 L671.5,181.1 L670.2,172.8M661.3,204.3 L669.2,188.6M661.3,204.3 L661.3,206.8M684.3,196.7 L688.8,200.3M684.3,196.7 L669.2,188.6M670.2,172.8 L658.2,189.7 L655.9,191.0 L652.6,189.9M670.2,172.8 L680.9,179.3M670.2,172.8 L671.5,181.1 L669.2,188.6M670.2,172.8 L665.8,158.6M718.8,53.5 L723.3,51.9M718.8,53.5 L719.5,56.1M723.3,51.9 L718.8,53.5M718.6,52.7 L717.3,48.8M718.6,52.7 L713.8,52.6 L714.9,56.8M719.5,56.1 L718.8,53.5M719.5,56.1 L714.9,56.8M199.7,40.4 L192.9,37.2 L188.3,37.2 L187.9,38.3M199.7,40.4 L205.3,17.5M199.7,40.4 L211.9,42.0 L216.9,44.4M187.9,38.3 L188.3,37.2 L192.9,37.2 L199.7,40.4M205.3,17.5 L199.7,40.4M216.9,44.4 L218.7,39.9M216.9,44.4 L211.9,42.0 L199.7,40.4M216.9,44.4 L221.2,46.6 L226.1,51.9M593.3,210.6 L565.1,186.1 L559.3,192.7M559.3,192.7 L565.1,186.1 L593.3,210.6M559.3,192.7 L555.0,193.6M-148.3,231.7 L-152.7,235.7 L-157.9,235.9M-148.3,231.7 L-152.1,229.7 L-160.6,228.8M-148.3,231.7 L-139.2,239.3M-157.9,235.9 L-152.7,235.7 L-148.3,231.7M-160.6,228.8 L-162.9,236.1 L-162.7,243.1M-160.6,228.8 L-156.0,215.3M-160.6,228.8 L-152.1,229.7 L-148.3,231.7M-160.6,228.8 L-166.3,225.7M-139.2,239.3 L-141.8,241.6 L-150.2,242.0M-139.2,239.3 L-148.3,231.7M-139.2,239.3 L-136.4,241.6 L-135.5,245.0M-139.2,239.3 L-133.3,236.1 L-125.4,235.8M23.8,694.3 L30.5,690.4M23.8,694.3 L18.7,699.1M24.2,694.9 L24.9,699.1M23.4,693.5 L20.7,688.9M30.5,690.4 L23.8,694.3M30.5,690.4 L34.8,687.9M18.7,699.1 L23.8,694.3M24.9,699.1 L24.2,694.9M24.9,699.1 L19.9,699.9M24.9,699.1 L28.0,698.6M19.9,699.9 L24.9,699.1M28.0,698.6 L24.9,699.1M363.8,514.0 L366.3,521.4 L366.8,528.1M363.8,514.0 L360.3,500.8M366.8,528.1 L356.9,523.2M366.8,528.1 L367.1,532.3M366.8,528.1 L366.3,521.4 L363.8,514.0M360.3,500.8 L363.8,514.0M360.3,500.8 L360.2,488.3 L358.1,473.8M356.9,523.2 L366.8,528.1M367.1,532.3 L366.8,528.1M688.4,186.1 L691.5,189.1M688.4,186.1 L683.8,181.6M688.4,186.1 L691.9,182.7 L693.2,184.0M697.9,189.2 L693.2,184.0M688.8,200.3 L684.3,196.7M690.3,202.1 L691.6,214.4 L693.4,216.9M690.3,202.1 L689.3,205.8 L687.7,207.0M694.0,191.5 L691.5,189.1M696.3,193.5 L697.2,195.6 L698.4,194.3 L697.6,193.2M-92.9,391.6 L-91.1,388.0M-92.9,391.6 L-96.9,393.5 L-101.1,392.6M-91.1,388.0 L-91.3,377.2M-91.1,388.0 L-92.9,391.6M-91.1,388.0 L-86.3,389.3 L-85.7,391.0 L-87.2,393.8M-101.1,392.6 L-96.9,393.5 L-92.9,391.6M-101.1,392.6 L-107.1,389.4M-101.1,392.6 L-103.1,396.5 L-107.0,395.3 L-110.1,392.7 L-107.1,389.4M-91.3,377.2 L-90.1,372.8M-91.3,377.2 L-91.1,388.0M-87.2,393.8 L-85.7,391.0 L-86.3,389.3 L-91.1,388.0M-90.1,372.8 L-91.3,377.2M-90.1,372.8 L-90.2,369.8M-90.2,369.8 L-90.1,372.8M-90.8,368.5 L-94.6,365.1 L-100.9,366.4M-143.9,346.5 L-143.7,349.3M-143.9,346.5 L-142.2,343.1M-137.2,330.6 L-135.9,333.8 L-136.4,336.9 L-137.6,339.5 L-142.2,343.1M-137.2,330.6 L-145.2,319.9M-137.2,330.6 L-131.3,330.1 L-126.2,331.7 L-115.8,338.7 L-106.9,342.1M-130.1,365.4 L-126.7,369.0M-130.1,365.4 L-142.2,352.4M-126.7,369.0 L-120.4,375.9M-126.7,369.0 L-130.1,365.4M-142.2,352.4 L-130.1,365.4M-142.2,352.4 L-143.7,349.3M-142.2,352.4 L-148.3,361.2M-116.2,380.4 L-120.4,375.9M-116.2,380.4 L-107.1,389.4M-116.2,380.4 L-100.9,366.4M-120.4,375.9 L-116.2,380.4M-120.4,375.9 L-126.7,369.0M-107.1,389.4 L-101.1,392.6M-107.1,389.4 L-110.1,392.7 L-107.0,395.3 L-103.1,396.5 L-101.1,392.6M-107.1,389.4 L-116.2,380.4M-100.9,366.4 L-116.2,380.4M-100.9,366.4 L-94.6,365.1 L-90.8,368.5M-22.6,174.7 L-18.6,176.6 L-13.6,177.0M-22.6,174.7 L-33.1,165.5 L-39.6,161.5 L-62.2,157.7M-13.6,177.0 L-2.1,174.7M-13.6,177.0 L-18.6,176.6 L-22.6,174.7M-62.2,157.7 L-39.6,161.5 L-33.1,165.5 L-22.6,174.7M-62.2,157.7 L-69.6,151.6M371.5,266.1 L368.9,265.4M371.5,266.1 L374.9,267.8M371.6,265.6 L372.4,263.1M368.9,265.4 L371.5,266.1M374.9,267.8 L374.0,270.7M374.9,267.8 L371.5,266.1M375.9,252.8 L376.8,247.0M375.9,252.8 L372.4,263.1M376.8,247.0 L377.6,242.7M376.8,247.0 L375.9,252.8M372.4,263.1 L375.9,252.8M372.4,263.1 L371.6,265.6M376.2,252.9 L383.8,254.7M377.6,242.7 L376.8,247.0M376.4,246.9 L368.7,245.7M377.2,247.1 L384.9,248.3M377.1,242.6 L369.3,241.3M378.0,242.7 L385.6,243.9M378.1,240.5 L369.6,239.0M379.0,240.5 L386.9,241.9M378.6,240.1 L384.3,215.6M384.4,215.0 L391.8,220.1M391.8,220.1 L384.4,215.0M391.8,220.1 L394.7,222.1M391.8,220.1 L387.0,241.5M384.3,215.6 L378.6,240.1M435.3,322.9 L432.7,321.7M435.3,322.9 L440.7,324.5 L447.1,323.7M434.6,321.1 L431.8,313.8M434.6,321.1 L444.7,316.9M432.7,321.7 L435.3,322.9M432.7,321.7 L425.9,316.8M447.1,323.7 L444.7,316.9M447.1,323.7 L452.0,321.8M447.1,323.7 L440.7,324.5 L435.3,322.9M431.8,313.8 L430.8,311.5M431.8,313.8 L434.6,321.1M431.8,313.8 L442.0,309.6M444.7,316.9 L434.6,321.1M444.7,316.9 L442.0,309.6M444.7,316.9 L447.1,323.7M444.7,316.9 L449.3,314.9M430.8,311.5 L429.4,3
3813808.1M430.8,311.5 L431.8,313.8M442.0,309.6 L439.6,303.1M442.0,309.6 L444.7,316.9M442.0,309.6 L446.3,308.2M442.0,309.6 L431.8,313.8M429.4,308.1 L430.8,311.5M428.7,308.0 L423.2,314.2M429.5,307.3 L439.6,303.1M428.8,306.9 L426.6,304.2M425.2,302.2 L423.3,299.0M425.2,302.2 L426.6,304.2M425.2,302.2 L431.8,297.3 L437.2,296.2M423.3,299.0 L425.2,302.2M423.3,299.0 L421.5,295.2M426.6,304.2 L425.2,302.2M426.6,304.2 L428.8,306.9M437.2,296.2 L439.6,303.1M437.2,296.2 L431.8,297.3 L425.2,302.2M421.2,294.4 L419.1,290.5 L416.2,291.1M421.7,294.2 L425.9,292.6M421.5,295.2 L423.3,299.0M416.2,291.1 L414.3,288.8M416.2,291.1 L419.1,290.5 L421.2,294.4M82.9,677.7 L88.2,673.0M82.9,677.7 L84.0,681.7M82.9,677.7 L78.8,661.3M88.2,673.0 L82.9,677.7M88.2,673.0 L94.7,680.3M88.2,673.0 L87.1,669.6M84.0,681.7 L93.9,684.4M84.0,681.7 L77.4,680.1M84.0,681.7 L82.5,687.4M84.0,681.7 L82.9,677.7M78.8,661.3 L82.9,677.7M78.8,661.3 L74.6,646.1M78.8,661.3 L84.1,658.9M78.8,661.3 L73.7,664.7M642.1,551.9 L649.8,545.8M642.1,551.9 L637.9,548.6M642.1,551.9 L644.9,556.1 L642.7,563.5M649.8,545.8 L642.1,551.9M637.9,548.6 L630.6,574.0M637.9,548.6 L642.1,551.9M637.9,548.6 L631.6,545.4M642.7,563.5 L646.7,564.8M642.7,563.5 L636.6,578.6M642.7,563.5 L644.9,556.1 L642.1,551.9M646.7,564.8 L642.7,563.5M636.6,578.6 L634.4,584.6M636.6,578.6 L630.6,574.0M636.6,578.6 L642.7,563.5M634.4,584.6 L636.6,578.6M634.4,584.6 L640.1,587.9 L647.5,594.4M634.4,584.6 L626.9,582.3M630.6,574.0 L637.9,548.6M630.6,574.0 L623.7,567.7M630.6,574.0 L636.6,578.6M647.5,594.4 L644.7,597.5M647.5,594.4 L649.7,591.4M647.5,594.4 L655.3,601.6 L662.4,604.3M647.5,594.4 L640.1,587.9 L634.4,584.6M626.9,582.3 L621.6,597.0M626.9,582.3 L634.4,584.6M626.9,582.3 L615.6,578.3M721.6,86.5 L727.3,80.6M721.6,86.5 L714.6,81.3M723.3,87.5 L721.4,89.9 L718.0,91.5M723.3,87.5 L740.5,87.7M727.3,80.6 L737.8,80.3M727.3,80.6 L725.5,75.7M727.3,80.6 L721.6,86.5M714.6,81.3 L718.2,77.8M714.6,81.3 L721.6,86.5M714.6,81.3 L711.7,79.5 L706.0,81.8M737.8,80.3 L727.3,80.6M737.8,80.3 L738.4,76.9M737.8,80.3 L740.5,87.7M725.5,75.7 L727.3,80.6M738.4,76.9 L734.6,72.8M738.4,76.9 L737.8,80.3M738.4,76.9 L745.9,67.1M740.5,87.7 L737.8,80.3M740.5,87.7 L723.3,87.5M575.4,542.8 L569.9,549.0M575.4,542.8 L585.4,551.7M575.4,542.8 L560.1,529.0M569.9,549.0 L566.2,553.2M569.9,549.0 L575.4,542.8M569.9,549.0 L574.8,553.8 L591.0,556.9 L585.4,551.7M569.9,549.0 L555.1,535.5M585.4,551.7 L575.4,542.8M585.4,551.7 L590.7,545.5M585.4,551.7 L591.0,556.9 L574.8,553.8 L569.9,549.0M560.1,529.0 L575.4,542.8M560.1,529.0 L555.1,535.5M560.1,529.0 L565.3,522.7M566.2,553.2 L569.9,549.0M555.1,535.5 L560.1,529.0M555.1,535.5 L569.9,549.0M555.1,535.5 L548.2,541.2M418.6,536.3 L420.5,533.7M420.5,533.7 L418.6,536.3M445.5,270.2 L440.7,257.8M440.7,257.8 L445.5,270.2M4.3,-74.3 L-2.5,-69.2M-2.5,-69.2 L-10.1,-64.3M-2.5,-69.2 L4.3,-74.3M637.9,440.6 L641.1,441.8 L642.4,441.1 L643.5,442.6 L642.8,443.4M637.9,440.6 L638.9,433.9 L637.0,430.8 L637.1,425.4M637.9,440.6 L638.1,445.9M642.8,443.4 L643.5,442.6 L642.4,441.1 L641.1,441.8 L637.9,440.6M642.8,443.4 L642.8,445.0 L638.1,445.9M642.8,443.4 L638.8,442.7M637.1,425.4 L637.0,430.8 L638.9,433.9 L637.9,440.6M638.1,445.9 L637.9,440.6M638.1,445.9 L642.8,445.0 L642.8,443.4M226.6,370.9 L214.6,359.5M226.6,370.9 L233.7,377.1 L234.8,386.8M226.6,370.9 L219.3,380.3 L210.7,378.5M214.6,359.5 L212.5,359.5 L207.9,362.3 L206.2,361.8 L203.1,364.2M214.6,359.5 L226.6,370.9M214.6,359.5 L209.9,358.7 L206.7,361.4M234.8,386.8 L233.7,377.1 L226.6,370.9M234.8,386.8 L227.7,392.9 L223.5,399.9 L217.6,416.7M234.8,386.8 L246.0,386.7 L253.2,384.3 L258.2,379.3M210.7,378.5 L207.4,378.1 L207.0,380.6 L208.2,380.8 L210.7,378.5M210.7,378.5 L208.2,380.8 L207.0,380.6 L207.4,378.1 L210.7,378.5M210.7,378.5 L219.3,380.3 L226.6,370.9M48.5,8.6 L50.6,17.9 L47.4,26.9M48.5,8.6 L36.1,10.6 L32.5,14.2 L31.4,17.3M48.5,8.6 L53.6,4.7M47.4,26.9 L50.6,17.9 L48.5,8.6M31.4,17.3 L27.8,28.5 L24.0,35.6M31.4,17.3 L32.5,14.2 L36.1,10.6 L48.5,8.6M53.6,4.7 L48.5,8.6M53.6,4.7 L56.8,8.4M53.6,4.7 L49.1,0.4M242.4,509.7 L253.3,515.1M242.4,509.7 L243.7,507.3M242.4,509.7 L240.2,509.4 L237.1,515.6 L236.3,515.3M253.3,515.1 L242.4,509.7M253.3,515.1 L260.7,500.2M253.3,515.1 L254.6,524.4 L253.7,525.2 L244.7,524.1M253.3,515.1 L244.7,524.1M243.7,507.3 L242.4,509.7M243.7,507.3 L250.1,495.3M236.3,515.3 L237.1,515.6 L240.2,509.4 L242.4,509.7M234.0,518.8 L235.6,522.4M235.6,522.4 L234.0,518.8M244.7,524.1 L243.3,526.4M244.7,524.1 L253.7,525.2 L254.6,524.4 L253.3,515.1M244.7,524.1 L253.3,515.1M243.3,526.4 L244.7,524.1M243.3,526.4 L240.8,530.6M243.3,526.4 L236.3,523.0M684.0,152.6 L692.4,159.5M684.0,152.6 L687.6,148.4M692.4,159.5 L684.0,152.6M692.4,159.5 L688.7,164.0M692.4,159.5 L695.8,155.4M683.1,153.7 L680.3,156.7M687.6,148.4 L689.5,140.9M687.6,148.4 L684.0,152.6M687.6,148.4 L695.8,155.4M687.6,148.4 L684.3,145.6M695.8,155.4 L692.4,159.5M695.8,155.4 L687.6,148.4M697.2,156.5 L703.8,162.1M523.4,222.3 L528.3,226.6M523.4,222.3 L529.2,215.9 L534.7,220.5M523.0,222.0 L518.5,218.1M523.5,220.8 L503.8,204.5 L507.5,201.4M528.3,226.6 L523.4,222.3M534.7,220.5 L529.4,226.6M534.7,220.5 L541.6,226.5M534.7,220.5 L529.2,215.9 L523.4,222.3M507.5,201.4 L511.3,204.6M507.5,201.4 L510.0,197.3 L512.8,195.3 L518.1,196.2M507.5,201.4 L503.8,204.5 L523.5,220.8M511.3,204.6 L518.1,196.2M511.3,204.6 L52
381386.8,217.8M511.3,204.6 L507.5,201.4M535.2,208.3 L541.0,213.3M534.9,208.7 L530.2,214.0M541.0,213.3 L535.2,208.3M535.0,208.1 L532.1,205.5M277.9,339.8 L273.3,344.7M279.3,341.1 L282.0,343.4M279.3,341.1 L280.9,339.3M273.3,344.7 L277.9,339.8M273.3,344.7 L267.3,351.5M273.3,344.7 L277.5,348.9M282.0,343.4 L279.3,341.1M282.0,343.4 L285.0,339.8M282.0,343.4 L277.5,348.9M280.9,339.3 L279.3,341.1M285.0,339.8 L287.5,342.4M285.0,339.8 L280.1,335.4M285.0,339.8 L282.0,343.4M277.5,348.9 L274.6,352.1M277.5,348.9 L282.0,343.4M277.5,348.9 L273.3,344.7M549.8,243.7 L552.5,240.7M552.5,240.7 L549.8,243.7M549.2,244.3 L536.4,233.6M549.2,244.3 L556.3,250.5 L547.3,251.3M440.3,294.2 L437.0,295.6M440.3,294.2 L446.4,291.6M440.3,294.2 L446.3,308.2M437.0,295.6 L434.9,289.6M437.0,295.6 L440.3,294.2M446.4,291.6 L440.3,294.2M446.4,291.6 L443.7,284.3M446.4,291.6 L452.5,305.6M446.3,308.2 L449.3,314.9M446.3,308.2 L452.5,305.6M446.3,308.2 L440.3,294.2M446.3,308.2 L442.0,309.6M452.0,321.8 L447.1,323.7M452.0,321.8 L458.2,319.3M452.0,321.8 L449.3,314.9M458.2,319.3 L452.0,321.8M458.2,319.3 L455.4,312.3M449.3,314.9 L446.3,308.2M449.3,314.9 L455.4,312.3M449.3,314.9 L444.7,316.9M449.3,314.9 L452.0,321.8M455.4,312.3 L449.3,314.9M455.4,312.3 L454.0,309.0M455.4,312.3 L458.2,319.3M455.4,312.3 L460.3,313.0 L461.9,316.7 L460.6,319.1M452.5,305.6 L446.3,308.2M452.5,305.6 L454.0,309.0M452.5,305.6 L446.4,291.6M-223.5,244.7 L-225.5,247.3M-223.5,244.7 L-226.1,240.5M-223.5,244.7 L-217.2,244.6M-225.5,247.3 L-222.8,248.8M-225.5,247.3 L-223.5,244.7M-226.1,240.5 L-223.5,244.7M-226.1,240.5 L-228.4,244.2M-217.2,244.6 L-215.9,238.2M-217.2,244.6 L-211.7,242.6M-217.2,244.6 L-216.6,248.9 L-213.1,253.8M-217.2,244.6 L-223.5,244.7M612.9,676.0 L617.6,673.3M612.9,676.0 L618.1,680.9 L620.0,687.4M612.9,676.0 L605.6,666.9M617.6,673.3 L628.4,666.8M617.6,673.3 L612.9,676.0M620.0,687.4 L621.8,689.1M620.0,687.4 L618.1,680.9 L612.9,676.0M605.6,666.9 L603.5,664.3M605.6,666.9 L597.5,673.2 L595.9,676.6M605.6,666.9 L612.9,676.0M628.4,666.8 L617.6,673.3M628.4,666.8 L631.4,665.8 L638.5,667.9M638.5,667.9 L642.4,665.5M638.5,667.9 L655.6,677.4M638.5,667.9 L631.4,665.8 L628.4,666.8M642.4,665.5 L638.5,667.9M642.4,665.5 L639.6,654.6M642.4,665.5 L648.9,659.8 L650.5,656.9M655.6,677.4 L661.3,680.3M655.6,677.4 L638.5,667.9M655.6,677.4 L663.2,661.3 L664.0,654.6M661.3,680.3 L664.7,682.1M661.3,680.3 L655.6,677.4M661.3,680.3 L665.1,672.7 L664.5,671.8M664.0,654.6 L659.3,650.1M664.0,654.6 L665.3,649.8M664.0,654.6 L663.2,661.3 L655.6,677.4M664.5,671.8 L665.1,672.7 L661.3,680.3M668.3,676.2 L671.6,668.8M668.3,676.2 L678.7,682.0M668.3,676.2 L664.7,682.1M461.5,296.6 L454.0,309.0M461.5,296.6 L465.1,290.6M461.5,296.6 L446.6,287.7M454.0,309.0 L461.5,296.6M454.0,309.0 L452.5,305.6M454.0,309.0 L455.4,312.3M465.1,290.6 L461.5,296.6M465.1,290.6 L468.7,284.5M465.1,290.6 L455.2,284.7M446.6,287.7 L461.5,296.6M652.6,189.9 L648.1,186.4M652.6,189.9 L648.1,199.0M652.6,189.9 L655.9,191.0 L658.2,189.7 L670.2,172.8M648.1,186.4 L652.6,189.9M648.1,186.4 L650.3,183.4 L641.6,177.0 L637.6,176.6 L637.5,181.2 L648.1,186.4M648.1,186.4 L637.5,181.2 L637.6,176.6 L641.6,177.0 L650.3,183.4 L648.1,186.4M648.1,199.0 L653.3,204.0M648.1,199.0 L652.6,189.9M653.3,204.0 L648.5,211.7M653.3,204.0 L657.4,206.4 L659.4,205.7M653.3,204.0 L648.1,199.0M648.5,211.7 L653.3,204.0M659.4,205.7 L657.4,206.4 L653.3,204.0M661.3,206.8 L667.1,210.8M661.3,206.8 L661.3,204.3M667.1,210.8 L661.3,206.8M667.1,210.8 L668.9,208.1 L673.6,205.5 L675.9,199.3 L680.3,201.3 L681.8,205.2 L681.1,207.3 L667.6,211.3M667.1,210.8 L661.7,218.8 L665.1,221.5 L670.3,214.6 L667.6,211.3M667.6,211.3 L670.3,214.6 L665.1,221.5 L661.7,218.8 L667.1,210.8M667.6,211.3 L681.1,207.3 L681.8,205.2 L680.3,201.3 L675.9,199.3 L673.6,205.5 L668.9,208.1 L667.1,210.8M-81.5,211.9 L-85.3,215.7 L-87.9,216.3 L-89.8,213.6 L-90.2,209.5M-81.5,211.9 L-78.1,214.0 L-73.9,214.0M-81.5,211.9 L-83.7,208.9M-90.2,209.5 L-90.5,206.8M-90.2,209.5 L-83.7,208.9M-90.2,209.5 L-89.8,213.6 L-87.9,216.3 L-85.3,215.7 L-81.5,211.9M-73.9,214.0 L-69.0,213.3M-73.9,214.0 L-74.8,208.2M-73.9,214.0 L-78.1,214.0 L-81.5,211.9M-83.7,208.9 L-90.2,209.5M-83.7,208.9 L-84.4,206.3M-83.7,208.9 L-81.5,211.9M-90.5,206.8 L-90.2,209.5M-97.1,158.1 L-96.1,162.6M-97.1,158.1 L-88.8,156.1 L-78.9,150.6 L-74.8,150.1 L-69.6,151.6M-97.1,158.1 L-101.2,159.1M-96.1,162.6 L-97.1,158.1M-69.6,151.6 L-62.2,157.7M-69.6,151.6 L-74.8,150.1 L-78.9,150.6 L-88.8,156.1 L-97.1,158.1M-101.2,159.1 L-97.1,158.1M485.2,285.2 L472.8,277.8M485.2,285.2 L481.1,292.1M485.2,285.2 L488.7,287.3M472.8,277.8 L485.2,285.2M472.8,277.8 L468.7,284.5M472.8,277.8 L462.7,271.8M472.8,277.8 L473.6,272.6M486.0,283.5 L488.7,278.7M486.0,283.5 L489.6,285.8M481.1,292.1 L485.2,285.2M481.1,292.1 L475.4,288.5M481.1,292.1 L477.4,298.4M481.1,292.1 L494.0,299.8M488.7,287.3 L492.1,290.8M488.7,287.3 L485.2,285.2M492.1,290.8 L488.7,287.3M489.6,285.8 L493.7,287.9 L496.0,284.1M489.6,285.8 L486.0,283.5M488.7,278.7 L486.0,283.5M488.7,278.7 L496.0,284.1M-90.4,-109.2 L-91.7,-116.3M-91.7,-116.3 L-90.4,-109.2M-91.7,-116.3 L-86.8,-116.2 L-80.8,-112.2M-80.8,-112.2 L-83.3,-104.7 L-80.8,-95.0 L-81.6,-90.4M-80.8,-112.2 L-75.0,-109.4 L-63.4,-109.1 L-58.9,-110.8 L-50.9,-116.7M-80.8,-112.2 L-86.8,-116.2 L-91.7,-116.3M540.4,286.9 L543.5,289.6M540.4,286.9 L548.3,278.6M539.0,285.8 L531.0,278.8M543.5,289.6 L552.4,296.7M543.5,289.6 L540.4,286.9M543.5,289.6 L546.1,286.4 L550.4,283.8M548.3,278.6 L540.4,286.9M384.4,399.7 L387.5,399.7M383.9,399.8 L384.4,395.7M383.9,399.8 L378.0,402.0M387.5,399.7 L384.4,399.7M387.5,399.7 L395.9,400.2M387.5,399.7 L388.0,392.9M230.6,25.4 L232.4,30.4M232.4,30.4 L230.6,25.4M233.0,31.1 L234.4,34.5M233.0,31.1 L234.1,23.4M234.4,34.5 L233.0,31.1M234.4,34.5 L235.9,39.4 L235.6,45.2M234.4,34.5 L240.7,29.3M234.1,23.4 L233.2,21.2M234.1,23.4 L233.0,31.1M234.1,23.4 L237.6,20.7 L235.
381381,17.9M505.3,616.0 L510.4,614.9M510.4,614.9 L505.3,616.0M515.5,609.5 L513.2,611.4M515.5,609.5 L513.8,605.9M515.5,609.5 L522.8,617.0 L523.4,620.1M513.2,611.4 L515.5,609.5M513.2,611.4 L511.9,613.4M513.8,605.9 L515.5,609.5M523.4,620.1 L507.8,628.1M523.4,620.1 L531.1,626.1M523.4,620.1 L522.8,617.0 L515.5,609.5M523.4,620.1 L523.4,627.6 L521.5,631.0M392.7,163.9 L408.1,177.4M392.7,163.9 L390.1,168.0M408.1,177.4 L392.7,163.9M408.1,177.4 L403.7,182.3M390.1,168.0 L391.2,171.6M390.1,168.0 L392.7,163.9M390.1,168.0 L387.0,161.3 L381.4,160.8M409.3,176.1 L413.2,172.0M403.7,182.3 L398.4,177.8M403.7,182.3 L397.1,189.5M403.7,182.3 L408.1,177.4M129.0,-98.6 L129.0,-101.5 L131.3,-104.2M129.0,-98.6 L118.5,-98.8M129.0,-98.6 L139.0,-100.6 L143.3,-103.1M131.3,-104.2 L126.3,-109.8M131.3,-104.2 L136.0,-108.8 L137.1,-111.6M131.3,-104.2 L129.0,-101.5 L129.0,-98.6M118.5,-98.8 L112.6,-97.5M118.5,-98.8 L129.0,-98.6M143.3,-103.1 L139.0,-100.6 L129.0,-98.6M143.3,-103.1 L150.2,-108.2 L158.9,-108.3M143.3,-103.1 L145.8,-99.7 L148.1,-88.7M126.3,-109.8 L131.3,-104.2M137.1,-111.6 L136.0,-108.8 L131.3,-104.2M458.5,320.0 L459.6,322.6M459.6,322.6 L458.5,320.0M460.6,319.1 L461.9,316.7 L460.3,313.0 L455.4,312.3M141.5,240.6 L139.0,242.3M141.5,240.6 L139.5,237.1M139.0,242.3 L141.5,240.6M139.0,242.3 L138.1,253.0M139.5,237.1 L141.5,240.6M139.5,237.1 L138.2,234.8M-193.1,128.2 L-191.1,150.2 L-187.6,149.0M-193.1,128.2 L-192.7,121.2 L-187.1,117.5 L-183.9,113.6 L-183.8,106.3M-193.1,128.2 L-198.7,129.1 L-202.7,131.3M-187.6,149.0 L-191.1,150.2 L-193.1,128.2M-183.8,106.3 L-183.9,113.6 L-187.1,117.5 L-192.7,121.2 L-193.1,128.2M-202.7,131.3 L-198.7,129.1 L-193.1,128.2M662.8,566.6 L662.4,563.5M662.8,566.6 L658.1,567.5M662.4,563.5 L662.8,566.6M658.1,567.5 L662.8,566.6M656.8,555.8 L654.5,557.0M656.8,555.8 L662.1,551.6M654.5,557.0 L656.8,555.8M662.1,551.6 L656.8,555.8M92.9,623.3 L97.3,640.1M92.9,623.3 L87.3,624.8M92.9,623.3 L98.3,622.0M97.3,640.1 L92.9,623.3M97.3,640.1 L102.7,638.6M97.3,640.1 L91.6,641.6M97.3,640.1 L100.2,651.2M87.3,624.8 L81.8,626.2M87.3,624.8 L92.9,623.3M87.3,624.8 L91.6,641.6M87.3,624.8 L85.4,617.5M98.3,622.0 L92.9,623.3M98.3,622.0 L100.0,627.8M98.3,622.0 L97.7,618.4M102.7,638.6 L97.3,640.1M102.7,638.6 L105.4,645.0M102.7,638.6 L100.0,627.8M91.6,641.6 L97.3,640.1M91.6,641.6 L85.9,643.1M91.6,641.6 L95.2,655.8M91.6,641.6 L87.3,624.8M100.2,651.2 L97.3,640.1M100.2,651.2 L97.6,653.8M493.8,607.7 L495.6,614.8M493.8,607.7 L502.5,605.5M493.8,607.7 L486.0,609.9M495.6,614.8 L493.8,607.7M502.5,605.5 L505.4,604.8M502.5,605.5 L493.8,607.7M502.5,605.5 L503.9,610.7M486.0,609.9 L484.1,603.2M486.0,609.9 L487.3,614.6M486.0,609.9 L493.8,607.7M500.0,632.4 L507.8,628.1M500.0,632.4 L495.9,616.0M500.0,632.4 L492.8,635.6M507.8,628.1 L523.4,620.1M507.8,628.1 L500.0,632.4M507.8,628.1 L506.6,621.3M495.9,616.0 L500.0,632.4M492.8,635.6 L492.5,642.3M492.8,635.6 L491.3,629.6M492.8,635.6 L500.0,632.4M492.8,635.6 L490.6,629.8M244.1,372.2 L245.8,370.4M244.1,372.2 L240.6,369.0M244.1,372.2 L240.3,377.2M245.8,370.4 L244.1,372.2M245.8,370.4 L248.0,368.1M240.6,369.0 L244.7,364.7M240.6,369.0 L244.1,372.2M240.6,369.0 L238.3,366.9M240.3,377.2 L244.1,372.2M240.3,377.2 L231.0,369.1 L235.0,363.8M240.3,377.2 L243.1,379.0M244.7,364.7 L242.7,362.7M244.7,364.7 L249.5,360.2M244.7,364.7 L240.6,369.0M238.3,366.9 L240.6,369.0M238.3,366.9 L235.0,363.8M235.0,363.8 L236.3,361.0M235.0,363.8 L238.3,366.9M235.0,363.8 L231.0,369.1 L240.3,377.2M236.3,361.0 L235.0,363.8M236.3,361.0 L237.8,357.9M691.2,743.4 L694.1,751.7M691.2,743.4 L699.3,740.9M691.2,743.4 L683.4,746.2M691.2,743.4 L687.4,736.9 L682.8,734.6M694.1,751.7 L697.0,759.9M694.1,751.7 L691.2,743.4M694.1,751.7 L702.5,748.9M699.3,740.9 L702.5,748.9M699.3,740.9 L696.7,733.5M699.3,740.9 L691.2,743.4M699.3,740.9 L706.1,738.5M683.4,746.2 L691.2,743.4M683.4,746.2 L675.3,749.1M683.4,746.2 L686.2,754.4M683.4,746.2 L681.0,739.5 L672.2,741.7M682.8,734.6 L680.5,733.8M682.8,734.6 L695.7,730.1M682.8,734.6 L687.4,736.9 L691.2,743.4M697.0,759.9 L699.7,767.6M697.0,759.9 L694.1,751.7M697.0,759.9 L705.1,757.0M697.0,759.9 L688.9,762.2M702.5,748.9 L705.1,757.0M702.5,748.9 L699.3,740.9M702.5,748.9 L709.5,746.4M702.5,748.9 L694.1,751.7M699.7,767.6 L697.0,759.9M699.7,767.6 L707.8,765.0M699.7,767.6 L691.8,770.1M705.1,757.0 L712.8,754.3M705.1,757.0 L697.0,759.9M705.1,757.0 L707.8,765.0M705.1,757.0 L702.5,748.9M688.9,762.2 L697.0,759.9M688.9,762.2 L680.6,765.1M688.9,762.2 L691.8,770.1M688.9,762.2 L686.2,754.4M707.8,765.0 L710.4,772.7M707.8,765.0 L705.1,757.0M707.8,765.0 L699.7,767.6M707.8,765.0 L716.1,762.3 L714.9,758.1M691.8,770.1 L699.7,767.6M691.8,770.1 L683.2,772.8M691.8,770.1 L688.9,762.2M356.8,162.6 L342.3,175.9M356.8,162.6 L353.5,158.1M356.8,162.6 L360.4,165.6 L360.9,167.2 L359.1,170.0M342.3,175.9 L335.9,170.2M342.3,175.9 L347.6,180.6M342.3,175.9 L356.8,162.6M353.5,158.1 L345.4,163.2M353.5,158.1 L356.8,162.6M353.5,158.1 L355.1,155.1M359.1,170.0 L360.9,167.2 L360.4,165.6 L356.8,162.6M359.1,170.0 L347.6,180.6M335.9,170.2 L342.3,175.9M335.9,170.2 L345.4,163.2M335.9,170.2 L333.7,180.4M347.6,180.6 L342.3,175.9M347.6,180.6 L353.4,186.1M347.6,180.6 L359.1,170.0M347.6,180.6 L337.2,192.4M674.5,767.3 L680.6,765.1M680.6,765.1 L688.9,762.2M680.6,765.1 L674.5,767.3M680.6,765.1 L683.2,772.8M680.6,765.1 L678.1,757.2M683.2,772.8 L691.8,770.1M683.2,772.8 L680.6,765.1M678.1,757.2 L686.2,754.4M678.1,757.2 L680.6,765.1M678.1,757.2 L675.3,749.1M678.1,757.2 L673.0,757.8M686.2,754.4 L688.9,762.2M686.2,754.4 L683.4,746.2M686.2,754.4 L690.0,753.0M686.2,754.4 L678.1,757.2M712.8,754.3 L705.1,757.0M594.4,122.0 L599.0,118.5M594.4,122.0 L591.4,118.4M594.4,122.0 L601.7,127.8 L607.1,139.9M599.0,118.5 L594.4,122.0M599.0,118.5 L604.6,121.9 L610.3,130.4M591.4,118.4 L594.4,122.0M607.1,139.9 L611.8,137.8M607.1,139.9 L607.1,146.6M607.1,139.9 L601.7,127.8 L594.4,122.0M599.1,117.9 L584.3,115.4 L580.1,110.2M600.1,118.0 L604.0,116.9 L613.0,109.4M580.1,110.2 L584.3,115.4 L599.1,117.9M580.1,110.2 L578.1,106.4M107.1,52.7 L106.7,58.7 L102.4,68.7 L106.0,78.0 L108.8,80.5 L112.6,81.4 L119.9,79.9 L128.3,80.6M107.1,52.7 L121.0,52.0M107.1,52.7 L98.2,50.1M128.3,80.6 L119.9,79.9 L112.6,81.4 L108.8,80.5 L106.0,78.0 L102.4,68.7 L106.7,58.7 L107.1,52.7M121.0,52.0 L107.1,52.7M98.2,50.1 L102.5,30.2M98.2,50.1 L107.1,52.7M98.2,50.1 L93.9,55.8 L89.7,59.1M-115.8,645.1 L-125.2,647.3M-115.8,645.1 L-115.1,641.9 L-113.0,639.7 L-105.3,639.4M-115.8,645.1 L-114.7,654.4 L-111.1,666.2M-125.2,647.3 L-132.1,648.8M-125.2,647.3 L-115.8,645.1M-125.2,647.3 L-129.1,634.1M-105.3,639.4 L-102.3,638.4M-105.3,639.4 L-113.0,639.7 L-115.1,641.9 L-115.8,645.1M-111.1,666.2 L-114.7,654.4 L-115.8,645.1M-111.1,666.2 L-115.5,674.9M-111.1,666.2 L-104.6,667.5 L-96.5,673.4M-132.1,648.8 L-125.2,647.3M-129.1,634.1 L-125.2,647.3M-129.1,634.1 L-125.2,625.4M476.8,265.4 L473.5,265.5M476.8,265.4 L476.7,273.0M476.8,265.4 L481.9,264.5M473.5,265.5 L473.5,269.2M473.5,265.5 L476.8,265.4M473.5,265.5 L473.2,262.5M476.7,273.0 L473.6,272.6M476.7,273.0 L476.8,265.4M476.7,273.0 L480.8,274.4M481.9,264.5 L481.5,259.4M481.9,264.5 L476.8,265.4M481.9,264.5 L481.2,273.4M473.6,272.6 L476.7,273.0M473.6,272.6 L473.5,269.2M473.6,272.6 L472.8,277.8M480.8,274.4 L483.4,275.8M480.8,274.4 L476.7,273.0M29.5,371.4 L34.6,371.8M29.5,371.4 L24.4,370.6M29.5,371.4 L30.4,361.0 L28.1,354.8 L31.9,347.5M34.6,371.8 L29.5,371.4M34.6,371.8 L33.9,376.9M34.6,371.8 L41.0,372.6 L46.7,375.7M34.6,371.8 L36.1,364.0 L40.4,362.8 L45.1,364.0 L47.2,365.7 L48.1,369.2 L46.7,375.7M24.4,370.6 L29.5,371.4M24.4,370.6 L24.9,365.6M24.4,370.6 L18.3,3
3813869.7M24.4,370.6 L25.6,378.0 L24.4,379.4 L21.4,379.5 L18.7,377.1 L18.3,369.7M31.9,347.5 L33.4,342.8 L36.7,343.8M31.9,347.5 L28.1,354.8 L30.4,361.0 L29.5,371.4M-19.6,702.1 L-19.1,696.9M-19.6,702.1 L-14.7,702.9M-20.9,702.0 L-25.4,701.3M-20.9,702.0 L-19.9,694.2M-19.8,703.0 L-16.1,703.6M-19.8,703.0 L-20.2,707.0M-19.1,696.9 L-18.3,689.2M-19.1,696.9 L-18.3,701.6 L-14.7,702.9M-19.1,696.9 L-19.6,702.1M-14.7,702.9 L-5.1,704.0M-14.7,702.9 L-18.3,701.6 L-19.1,696.9M-14.7,702.9 L-19.6,702.1M125.8,279.2 L125.0,273.9M125.8,279.2 L117.7,280.9M125.8,279.2 L127.8,286.8 L135.0,297.3M125.0,273.9 L124.2,268.1M125.0,273.9 L125.8,279.2M117.7,280.9 L125.8,279.2M117.7,280.9 L108.7,282.7M135.0,297.3 L127.8,286.8 L125.8,279.2M135.0,297.3 L139.6,304.3M613.2,307.2 L618.4,310.2 L624.0,316.4 L620.7,318.9M612.4,307.7 L606.5,312.0M612.4,307.7 L620.7,318.9M606.5,312.0 L614.8,323.2M606.5,312.0 L597.5,318.9M606.5,312.0 L612.4,307.7M606.5,312.0 L601.1,304.7M620.7,318.9 L614.8,323.2M620.7,318.9 L612.4,307.7M620.7,318.9 L624.0,316.4 L618.4,310.2 L613.2,307.2M614.8,323.2 L619.3,329.2M614.8,323.2 L606.5,312.0M614.8,323.2 L605.8,330.0M614.8,323.2 L620.7,318.9M597.5,318.9 L593.6,321.8M597.5,318.9 L606.5,312.0M597.5,318.9 L605.8,330.0M597.5,318.9 L589.1,307.7M601.1,304.7 L606.1,300.9M601.1,304.7 L598.3,300.9M601.1,304.7 L606.5,312.0M593.6,321.8 L597.5,318.9M605.8,330.0 L598.5,335.3M605.8,330.0 L614.8,323.2M605.8,330.0 L610.3,336.0M605.8,330.0 L597.5,318.9M589.1,307.7 L585.0,310.9M589.1,307.7 L592.7,305.1M589.1,307.7 L597.5,318.9M589.1,307.7 L587.1,305.1M590.3,324.3 L582.9,329.7M590.3,324.3 L592.3,322.7M590.3,324.3 L598.5,335.3M590.3,324.3 L584.2,316.0M582.9,329.7 L575.6,335.1M582.9,329.7 L590.3,324.3M582.9,329.7 L591.2,340.8M582.9,329.7 L580.2,326.2M592.3,322.7 L590.3,324.3M598.5,335.3 L605.8,330.0M598.5,335.3 L595.6,337.5M598.5,335.3 L590.3,324.3M598.5,335.3 L603.1,341.3 L607.8,337.7M584.2,316.0 L590.3,324.3M584.2,316.0 L582.0,313.0M575.6,335.1 L582.9,329.7M575.6,335.1 L567.4,324.0M575.6,335.1 L583.9,346.2M591.2,340.8 L582.9,329.7M591.2,340.8 L583.9,346.2M580.2,326.2 L582.9,329.7M567.4,324.0 L575.6,335.1M567.4,324.0 L563.2,318.3M567.4,324.0 L572.9,319.8M583.9,346.2 L591.2,340.8M583.9,346.2 L575.6,335.1M583.9,346.2 L576.7,351.6M568.7,340.9 L576.7,351.6M557.8,349.2 L564.1,357.7M539.4,363.0 L541.2,365.5M274.6,352.1 L278.0,355.3M274.6,352.1 L271.6,355.5M274.6,352.1 L277.5,348.9M278.0,355.3 L274.6,352.1M278.0,355.3 L275.1,358.7M278.0,355.3 L281.0,352.1M271.6,355.5 L275.1,358.7M271.6,355.5 L274.6,352.1M271.6,355.5 L267.3,351.5M275.1,358.7 L278.2,361.7M275.1,358.7 L271.6,355.5M275.1,358.7 L278.0,355.3M281.0,352.1 L284.3,354.9M281.0,352.1 L278.0,355.3M281.0,352.1 L284.8,347.9 L286.9,347.4M492.4,645.8 L492.3,649.0M492.4,645.8 L492.5,642.3M492.3,649.0 L492.4,645.8M492.5,642.3 L492.4,645.8M492.5,642.3 L492.8,635.6M490.8,645.9 L488.7,647.0M490.8,645.9 L488.2,641.7M521.5,631.0 L531.3,626.2M521.5,631.0 L503.6,640.3M521.5,631.0 L520.7,635.2 L523.2,640.0M521.5,631.0 L523.4,627.6 L523.4,620.1M531.3,626.2 L521.5,631.0M503.6,640.3 L521.5,631.0M523.2,640.0 L505.7,649.6M523.2,640.0 L529.9,635.6M523.2,640.0 L520.7,635.2 L521.5,631.0M531.1,626.1 L523.4,620.1M552.4,296.7 L543.5,289.6M550.4,283.8 L546.1,286.4 L543.5,289.6M531.0,278.8 L538.7,269.5M531.0,278.8 L539.0,285.8M538.7,269.5 L531.0,278.8M530.3,278.2 L526.6,275.9M516.2,267.0 L511.7,272.2M606.7,694.4 L606.1,696.8M606.1,696.8 L606.7,694.4M608.1,701.8 L616.5,700.7M608.1,701.8 L596.3,707.0 L589.1,707.9 L582.3,706.1 L577.1,707.2 L572.1,705.9 L568.6,707.0 L563.9,715.1 L558.9,718.9 L557.7,721.9 L561.2,728.1 L565.7,729.9 L567.6,732.2 L570.3,732.2M616.5,700.7 L622.8,700.1M616.5,700.7 L608.1,701.8M570.3,732.2 L567.6,732.2 L565.7,729.9 L561.2,728.1 L557.7,721.9 L558.9,718.9 L563.9,715.1 L568.6,707.0 L572.1,705.9 L577.1,707.2 L582.3,706.1 L589.1,707.9 L596.3,707.0 L608.1,701.8M603.3,771.5 L599.6,749.0M603.3,771.5 L611.2,771.2M599.6,749.0 L603.3,771.5M599.6,749.0 L600.0,741.6M611.2,771.2 L603.3,771.5M611.2,771.2 L610.7,760.4 L613.5,750.5M285.5,271.8 L285.4,276.2M283.5,270.8 L278.5,268.0M285.7,271.4 L291.8,273.4M285.7,271.4 L286.5,267.3M285.4,276.2 L285.6,279.5M285.4,276.2 L285.5,271.8M27
381387.9,267.7 L275.3,266.2M277.9,267.7 L280.5,263.2M275.3,266.2 L269.2,262.7M275.3,266.2 L277.9,267.7M278.5,268.0 L283.5,270.8M278.5,268.0 L274.8,274.5M280.5,263.2 L277.9,267.7M269.2,262.7 L265.4,260.5M269.2,262.7 L275.3,266.2M269.2,262.7 L259.6,269.1M265.4,260.5 L254.5,257.8M265.4,260.5 L269.2,262.7M265.4,260.5 L266.5,253.9M259.6,269.1 L266.5,277.5M259.6,269.1 L269.2,262.7M259.6,269.1 L255.1,264.7 L251.0,262.8M254.5,257.8 L265.4,260.5M254.5,257.8 L251.0,262.8M254.5,257.8 L255.3,251.2M266.5,253.9 L255.3,251.2M266.5,253.9 L265.4,260.5M251.0,262.8 L254.5,257.8M251.0,262.8 L255.1,264.7 L259.6,269.1M251.0,262.8 L246.6,262.1M255.3,251.2 L254.5,257.8M255.3,251.2 L266.5,253.9M255.3,251.2 L256.6,244.9M541.2,400.6 L539.2,404.2M541.2,400.6 L531.1,395.4M539.2,404.2 L537.0,408.0M539.2,404.2 L541.2,400.6M539.2,404.2 L529.4,401.4M531.1,395.4 L541.2,400.6M531.1,395.4 L527.1,393.5M531.1,395.4 L529.4,401.4M542.5,401.7 L548.0,406.2M537.0,408.0 L539.2,404.2M537.0,408.0 L535.4,412.0M529.4,401.4 L525.3,400.3M529.4,401.4 L539.2,404.2M529.4,401.4 L531.1,395.4M535.4,412.0 L522.9,408.6M535.4,412.0 L537.2,412.8 L536.5,417.1M535.4,412.0 L537.0,408.0M522.9,408.6 L535.4,412.0M522.9,408.6 L518.7,407.4M536.5,417.1 L543.2,420.7M536.5,417.1 L537.2,412.8 L535.4,412.0M543.2,420.7 L536.5,417.1M543.2,420.7 L542.3,425.2 L548.9,429.0M543.2,420.7 L554.5,427.1M531.2,418.8 L525.3,417.3 L525.6,414.2 L521.9,413.1M521.9,413.1 L525.6,414.2 L525.3,417.3 L531.2,418.8M577.4,75.8 L567.7,75.0M577.4,75.8 L577.4,60.1M577.4,75.8 L582.9,76.4M577.4,75.8 L574.2,86.8 L571.8,85.7M575.2,104.1 L578.0,101.2M575.2,104.1 L572.8,107.5M575.2,104.1 L578.1,106.4M575.2,104.1 L582.9,76.4M567.7,75.0 L577.4,75.8M567.7,75.0 L568.0,83.5M571.8,85.7 L568.0,83.5M571.8,85.7 L567.8,85.9 L568.0,83.5M571.8,85.7 L574.2,86.8 L577.4,75.8M568.0,83.5 L567.7,75.0M568.0,83.5 L571.8,85.7M568.0,83.5 L567.8,85.9 L571.8,85.7M567.7,73.2 L577.4,60.1M567.7,73.2 L564.6,66.3M397.6,-71.3 L398.4,-67.5 L397.2,-64.6M397.6,-71.3 L402.0,-75.2M397.2,-64.6 L398.4,-67.5 L397.6,-71.3M402.0,-75.2 L397.6,-71.3M402.0,-75.2 L408.6,-79.1M402.0,-75.2 L396.1,-77.9M-30.8,700.6 L-25.4,701.3M-30.8,700.6 L-29.5,689.3M-30.9,701.3 L-24.5,702.4M-32.9,700.8 L-39.7,699.8M-25.4,701.3 L-30.8,700.6M-25.4,701.3 L-20.9,702.0M-25.4,701.3 L-21.4,700.5 L-19.9,694.2M-29.5,689.3 L-23.2,690.6M-29.5,689.3 L-30.8,700.6M-29.5,689.3 L-27.8,679.8M-71.0,694.9 L-75.0,694.3M-71.0,694.9 L-67.1,692.0M-70.3,695.0 L-65.2,695.7M-75.0,694.3 L-69.8,693.4 L-65.2,690.4M-75.0,694.3 L-71.0,694.9M-67.1,692.0 L-65.2,690.4M-67.1,692.0 L-67.8,694.1 L-65.2,695.7M-67.1,692.0 L-71.0,694.9M-65.2,690.4 L-67.1,692.0M-65.2,690.4 L-62.6,688.5M-65.2,690.4 L-69.8,693.4 L-75.0,694.3M-119.6,695.2 L-120.5,684.8 L-117.5,678.2M-119.6,695.2 L-138.2,696.2M-119.6,695.2 L-112.0,694.2M-117.5,678.2 L-115.5,674.9M-117.5,678.2 L-120.5,684.8 L-119.6,695.2M-138.2,696.2 L-151.3,695.8 L-172.9,690.5 L-184.2,689.2M-138.2,696.2 L-119.6,695.2M-138.2,696.2 L-136.9,691.1M-112.0,694.2 L-119.6,695.2M-223.9,694.9 L-219.4,701.7M-223.9,694.9 L-228.0,688.5M-223.9,694.9 L-228.8,695.0M-223.9,694.9 L-205.0,692.9M-219.4,701.7 L-223.9,694.9M-219.4,701.7 L-216.7,707.3M-228.0,688.5 L-223.9,694.9M-228.0,688.5 L-228.0,681.3M-228.8,695.0 L-223.9,694.9M-205.0,692.9 L-223.9,694.9M-205.0,692.9 L-193.6,689.9 L-184.2,689.2M24.9,365.6 L25.8,363.7 L24.4,362.1 L23.2,363.6 L24.9,365.6M24.9,365.6 L23.2,363.6 L24.4,362.1 L25.8,363.7 L24.9,365.6M24.9,365.6 L24.4,370.6M18.3,369.7 L13.0,371.5M18.3,369.7 L24.4,370.6M18.3,369.7 L18.7,377.1 L21.4,379.5 L24.4,379.4 L25.6,378.0 L24.4,370.6M18.3,369.7 L15.6,362.8M491.3,667.3 L491.7,662.2M491.3,667.3 L494.2,666.0M491.2,668.5 L491.0,671.5M491.2,668.5 L482.8,668.3M491.7,662.2 L491.3,667.3M494.2,666.0 L497.1,664.5M494.2,666.0 L491.3,667.3M482.8,668.3 L483.0,660.0M482.8,668.3 L491.2,668.5M483.0,660.0 L482.8,668.3M483.0,660.0 L482.3,650.3M483.0,660.0 L463.5,659.2M462.2,667.4 L463.5,659.2M462.2,667.4 L463.8,679.1 L466.4,683.0M462.2,667.4 L471.7,668.0M463.5,659.2 L462.2,667.4M463.5,659.2 L464.9,650.3 L466.2,649.6M463.5,659.2 L483.0,660.0M466.4,683.0 L471.4,696.1M466.4,683.0 L463.8,679.1 L462.2,667.4M466.4,683.0 L460.9,686.6M466.4,683.0 L471.1,682.4M471.7,668.0 L475.4,668.1M471.7,668.0 L462.2,667.4M453.3,666.2 L453.7,663.6M453.3,666.2 L449.4,665.8M453.3,666.2 L458.3,666.9M453.7,663.6 L453.3,666.2M453.7,663.6 L454.7,657.9M449.4,665.8 L446.9,665.4M449.4,665.8 L453.3,666.2M458.3,666.9 L453.3,666.2M438.8,663.9 L440.9,656.0M440.9,656.0 L438.8,663.9M440.9,656.0 L441.9,647.2M440.9,656.0 L454.7,657.9M440.4,664.3 L443.9,664.8M607.9,95.9 L611.4,99.4 L615.9,100.7M607.9,95.9 L606.3,91.9 L607.7,83.3M607.9,95.9 L614.2,92.3 L618.2,92.3M607.9,95.9 L602.9,99.9 L597.0,102.5M615.9,100.7 L611.4,99.4 L607.9,95.9M607.7,83.3 L610.3,83.1M607.7,83.3 L597.9,84.0M607.7,83.3 L606.3,91.9 L607.9,95.9M618.2,92.3 L614.2,92.3 L607.9,95.9M597.0,102.5 L602.9,99.9 L607.9,95.9M610.3,83.1 L618.8,82.3M610.3,83.1 L607.7,83.3M610.3,83.1 L609.7,77.4M618.8,82.3 L610.3,83.1M618.8,82.3 L616.3,59.5 L612.6,54.6M618.8,82.3 L623.5,92.9 L622.9,100.8M609.7,77.4 L610.3,83.1M609.7,77.4 L605.3,77.3 L603.2,75.0 L601.6,64.4 L599.8,60.6M609.7,77.4 L608.8,65.5 L611.0,60.0M448.6,249.8 L449.3,244.5M448.6,249.8 L454.6,250.5M449.3,244.5 L448.6,249.8M454.6,250.5 L448.6,249.8M550.4,487.0 L561.
381386,489.8 L564.9,492.6 L569.6,493.6 L563.5,503.2M550.4,487.0 L546.0,485.4 L543.8,483.2M550.4,487.0 L549.5,492.0M550.4,487.0 L551.7,479.6M550.4,487.0 L548.7,491.7M563.5,503.2 L557.4,497.7M563.5,503.2 L569.6,493.6 L564.9,492.6 L561.6,489.8 L550.4,487.0M563.5,503.2 L556.3,511.5 L550.0,506.0M543.8,483.2 L546.0,485.4 L550.4,487.0M549.5,492.0 L550.4,487.0M549.5,492.0 L543.7,500.6M549.5,492.0 L557.4,497.7M551.7,479.6 L545.7,477.5M551.7,479.6 L561.4,481.0M551.7,479.6 L550.4,487.0M548.7,491.7 L542.7,487.7M548.7,491.7 L543.1,500.0M548.7,491.7 L550.4,487.0M579.9,440.7 L579.1,444.1M579.9,440.7 L596.3,444.5 L607.1,445.5M579.9,440.7 L580.7,437.8M579.1,444.1 L578.2,446.9M579.1,444.1 L579.9,440.7M607.1,445.5 L615.5,445.9M607.1,445.5 L596.3,444.5 L579.9,440.7M284.1,324.3 L286.4,326.5M284.1,324.3 L276.6,331.9M284.1,324.3 L279.4,321.7M286.4,326.5 L284.1,324.3M276.6,331.9 L284.1,324.3M279.4,321.7 L284.1,324.3M-128.1,266.6 L-125.0,270.5M-128.1,266.6 L-124.8,263.9 L-122.6,259.9M-125.0,270.5 L-128.1,266.6M-122.6,259.9 L-120.4,252.7M-122.6,259.9 L-109.8,264.7M-122.6,259.9 L-124.8,263.9 L-128.1,266.6M-120.7,275.9 L-123.8,272.1M-120.7,275.9 L-116.0,273.3M-120.7,275.9 L-123.1,279.3 L-125.3,289.6M-123.8,272.1 L-120.7,275.9M-116.0,273.3 L-112.7,270.9M-116.0,273.3 L-120.7,275.9M-125.3,289.6 L-116.2,290.2M-125.3,289.6 L-134.3,288.1M-125.3,289.6 L-123.1,279.3 L-120.7,275.9M-125.3,289.6 L-125.4,299.2M29.8,307.0 L25.2,301.9M29.8,307.0 L23.2,314.5 L33.2,320.2M29.8,307.0 L33.6,306.5 L38.8,311.1M25.2,301.9 L29.8,307.0M33.2,320.2 L34.7,327.1M33.2,320.2 L23.2,314.5 L29.8,307.0M33.2,320.2 L38.8,311.1M38.8,311.1 L41.2,313.1M38.8,311.1 L33.2,320.2M38.8,311.1 L33.6,306.5 L29.8,307.0M34.7,327.1 L35.7,330.9M34.7,327.1 L33.2,320.2M34.7,327.1 L26.4,327.3M381.0,108.3 L391.4,108.8 L399.7,105.8 L406.1,109.4 L405.0,114.5M381.0,108.3 L377.3,112.1M381.0,108.3 L384.8,100.4M405.0,114.5 L406.1,109.4 L399.7,105.8 L391.4,108.8 L381.0,108.3M405.0,114.5 L401.4,122.2 L396.9,125.4M377.3,112.1 L381.0,108.3M377.3,112.1 L362.1,95.9M377.3,112.1 L383.6,118.6M384.8,100.4 L381.0,108.3M384.8,100.4 L393.5,103.6M379.2,107.0 L382.0,104.3M382.0,104.3 L379.2,107.0M285.5,107.5 L288.2,106.7M285.5,107.5 L278.6,110.9M285.5,107.5 L283.9,102.6M288.2,106.7 L285.5,107.5M288.2,106.7 L292.5,104.1
38138M278.6,110.9 L285.5,107.5M278.6,110.9 L274.5,111.9 L274.6,112.5 L277.1,113.9 L278.6,110.9M278.6,110.9 L277.1,113.9 L274.6,112.5 L274.5,111.9 L278.6,110.9M283.9,102.6 L280.4,103.4M283.9,102.6 L283.0,98.4M283.9,102.6 L285.5,107.5M294.5,103.3 L293.3,98.4M294.9,103.3 L299.8,102.4M294.9,103.3 L291.2,110.1M292.5,104.1 L288.2,106.7M293.3,98.4 L296.5,94.3M293.3,98.4 L294.5,103.3M293.3,98.4 L290.8,97.4 L287.6,97.9M299.8,102.4 L294.9,103.3M299.8,102.4 L303.2,105.3M299.8,102.4 L300.2,98.6M291.2,110.1 L290.4,113.4M291.2,110.1 L294.9,103.3M303.2,105.3 L305.7,107.2M303.2,105.3 L299.8,102.4M300.2,98.6 L301.7,96.1 L304.7,95.2 L309.2,97.9M300.2,98.6 L299.8,102.4M303.1,48.6 L300.2,46.5 L297.5,46.3 L292.6,49.7M292.6,49.7 L295.9,53.2M292.6,49.7 L297.5,46.3 L300.2,46.5 L303.1,48.6M292.6,49.7 L289.3,46.6 L287.9,47.2M736.9,66.7 L719.5,72.3M719.5,72.3 L736.9,66.7M719.5,72.3 L722.2,70.3 L722.6,68.2 L720.2,59.0M719.5,72.3 L714.2,73.7M23.4,486.0 L25.5,483.6M23.4,486.0 L17.0,493.8M23.4,486.0 L36.5,494.6M25.5,483.6 L23.4,486.0M17.0,493.8 L23.4,486.0M17.0,493.8 L29.0,504.1M17.0,493.8 L15.2,496.6 L17.0,503.2M36.5,494.6 L29.0,504.1M36.5,494.6 L23.4,486.0M36.8,494.8 L49.3,504.9M29.0,504.1 L24.9,509.2M29.0,504.1 L36.5,494.6M29.0,504.1 L17.0,493.8M29.0,504.1 L42.0,514.6M49.3,504.9 L36.8,494.8M49.3,504.9 L42.0,514.6M49.3,504.9 L55.4,509.4 L50.8,516.5 L47.4,518.3M42.0,514.6 L49.3,504.9M42.0,514.6 L29.0,504.1M47.4,518.3 L41.4,515.4M47.4,518.3 L42.4,529.3M47.4,518.3 L50.8,516.5 L55.4,509.4 L49.3,504.9M18.3,508.5 L17.0,503.2M17.0,503.2 L18.3,508.5M17.0,503.2 L24.9,509.2M17.0,503.2 L15.2,496.6 L17.0,493.8M24.9,509.2 L22.5,512.2M24.9,509.2 L29.0,504.1M24.9,509.2 L17.0,503.2M24.9,509.2 L37.7,519.8M-176.5,237.5 L-172.8,232.9M-176.5,237.5 L-183.6,231.4M-176.5,237.5 L-179.2,240.8M-172.8,232.9 L-176.5,237.5M-172.8,232.9 L-168.7,228.8M-172.8,232.9 L-178.5,226.4M-172.8,232.9 L-168.6,236.7 L-166.8,234.7M-183.6,231.4 L-176.5,237.5M-179.2,240.8 L-176.5,237.5M479.4,240.8 L479.6,236.2M479.4,240.8 L479.0,246.1M479.4,240.8 L474.2,240.8M479.6,236.2 L479.4,240.8M479.6,236.2 L488.3,243.0M479.0,246.1 L479.4,240.8M474.2,240.8 L479.4,240.8M298.3,225.3 L303.4,225.7M296.3,225.0 L282.8,223.1M297.2,224.2 L295.6,218.3M304.1,225.3 L300.6,215.5M304.1,225.3 L306.6,230.0M303.4,225.7 L298.3,225.3M300.6,215.5 L291.6,206.5M300.6,215.5 L304.1,225.3M306.6,230.0 L309.7,230.5M306.6,230.0 L304.1,225.3M229.9,255.1 L222.7,255.4M229.9,255.1 L238.1,254.7M229.9,255.1 L230.4,252.6M222.7,255.4 L229.9,255.1M222.7,255.4 L223.1,262.9M222.7,255.4 L215.3,255.6 L213.4,262.7M238.1,254.7 L240.8,244.8M238.1,254.7 L229.9,255.1M238.1,254.7 L244.6,254.3M230.4,252.6 L229.9,255.1M223.1,262.9 L222.7,255.4M213.4,262.7 L215.3,255.6 L222.7,255.4M401.8,446.8 L399.6,444.9M402.9,447.6 L404.9,449.3M399.6,444.9 L401.8,446.8M406.8,441.5 L411.6,444.2 L424.1,435.8M406.8,441.5 L417.0,433.1M406.7,442.2 L403.5,446.7M424.1,435.8 L428.6,432.5 L429.1,428.7M424.1,435.8 L411.6,444.2 L406.8,441.5M417.0,433.1 L418.3,430.9M417.0,433.1 L406.8,441.5M419.7,427.6 L429.1,428.7M419.7,427.6 L421.4,423.3M429.1,428.7 L419.7,427.6M429.1,428.7 L433.7,428.6 L436.9,426.6M429.1,428.7 L428.6,432.5 L424.1,435.8M419.1,427.1 L416.7,425.4M421.4,423.3 L419.7,427.6M522.1,395.4 L521.1,399.1M522.1,395.4 L523.4,391.6M521.5,395.3 L511.3,392.3M521.1,399.1 L522.1,395.4M521.1,399.1 L525.3,400.3M521.1,399.1 L518.7,407.4M523.4,391.6 L527.1,393.5M523.4,391.6 L522.1,395.4M523.4,391.6 L525.0,385.5M511.3,392.3 L510.6,394.7M511.3,392.3 L514.0,382.3M511.3,392.3 L521.5,395.3M510.6,394.7 L508.5,401.8M510.6,394.7 L511.3,392.3M514.0,382.3 L511.3,392.3M514.0,382.3 L516.6,372.7M514.0,382.3 L524.3,385.2M514.0,382.3 L504.1,378.7M638.8,442.7 L642.8,443.4M-188.7,361.7 L-192.2,365.3M-188.7,361.7 L-184.9,358.2 L-187.5,351.5M-192.2,365.3 L-188.7,361.7M-187.5,351.5 L-184.9,358.2 L-188.7,361.7M371.8,279.5 L370.1,282.8M371.8,279.5 L379.9,281.3M370.1,282.8 L371.8,279.5M371.8,278.5 L373.4,272.3M379.9,281.3 L371.8,279.5M379.9,281.3 L398.0,285.3M366.5,290.1 L369.3,284.4M369.3,284.4 L366.5,290.1M-146.5,215.0 L-141.9,213.0M-146.5,215.0 L-148.7,210.5 L-148.3,206.5 L-144.7,204.3 L-141.4,203.8M-146.5,215.0 L-146.4,218.5M-141.9,213.0 L-146.5,215.0M-141.4,203.8 L-144.7,204.3 L-148.3,206.5 L-148.7,210.5 L-146.5,215.0M-146.4,218.5 L-139.3,217.2 L-127.6,210.4M-146.4,218.5 L-149.2,218.1M-146.4,218.5 L-146.5,215.0M341.3,252.6 L346.1,238.0M341.5,253.3 L345.0,255.0M340.4,252.7 L336.7,250.9M346.2,237.6 L350.4,238.3M346.1,238.0 L341.3,252.6M350.4,238.3 L346.2,237.6M137.7,233.7 L133.4,236.1M137.7,233.7 L147.9,228.1
38138M138.2,234.8 L139.5,237.1M133.4,236.1 L137.7,233.7M147.9,228.1 L137.7,233.7M103.9,259.5 L105.0,264.8M74.2,271.6 L68.4,272.9M51.7,279.0 L48.2,281.6M51.7,279.0 L56.4,276.6M48.2,281.6 L51.7,279.0M52.2,280.1 L54.2,284.4M56.4,276.6 L51.7,279.0M39.3,287.5 L36.6,284.2M39.1,288.6 L30.8,295.2M30.8,295.2 L39.1,288.6M30.8,295.2 L24.2,300.8M30.2,294.5 L24.3,287.2M31.3,296.1 L32.7,299.4 L41.6,307.4M24.2,300.8 L30.8,295.2M23.7,300.1 L19.4,296.0M19.1,305.9 L4.1,303.9M19.1,305.9 L22.4,302.6M19.1,305.9 L10.3,317.4M4.1,303.9 L19.1,305.9M22.4,302.6 L19.1,305.9M10.3,317.4 L7.3,321.6M10.3,317.4 L-4.7,312.7M10.3,317.4 L19.1,305.9M7.3,321.6 L1.7,328.6M7.3,321.6 L10.3,317.4M-4.7,312.7 L-13.9,310.0M-4.7,312.7 L10.3,317.4M8.0,322.1 L11.7,325.8 L13.6,331.6 L18.3,336.7 L21.7,338.0M1.7,328.6 L-0.9,332.1M1.7,328.6 L7.3,321.6M-0.9,332.1 L1.7,328.6M-1.3,332.6 L-5.6,337.5M-26.6,371.2 L-30.6,369.9M-26.6,371.2 L-27.4,374.0M-26.6,371.2 L-24.0,362.7M-30.6,369.9 L-26.6,371.2M-30.6,369.9 L-38.7,365.4M-27.4,374.0 L-26.6,371.2M-27.4,374.0 L-33.1,394.6M-24.0,362.7 L-26.6,371.2M-24.0,362.7 L-19.8,353.4 L-12.4,344.9M-34.6,399.8 L-27.4,401.9M-34.6,399.8 L-35.9,403.0M-34.6,399.8 L-33.1,394.6M-27.4,401.9 L-34.6,399.8M-27.4,401.9 L-32.5,409.5M-35.9,403.0 L-34.6,399.8M-35.9,403.0 L-58.8,461.1M-33.1,394.6 L-34.6,399.8M-33.1,394.6 L-27.4,374.0M-36.9,402.9 L-43.3,415.4M-58.8,461.1 L-35.9,403.0M255.4,105.6 L263.5,119.1 L269.8,124.5M269.8,124.5 L271.3,121.6M269.8,124.5 L276.5,126.2 L278.3,128.8 L277.5,130.8M269.8,124.5 L263.5,119.1 L255.4,105.6M690.7,62.9 L696.8,80.0M696.8,80.0 L690.7,62.9M696.8,80.0 L709.3,75.4M696.8,80.0 L684.6,84.4M709.3,75.4 L714.2,73.7M709.3,75.4 L696.8,80.0M684.6,84.4 L696.8,80.0M619.7,105.1 L623.0,104.5M619.7,105.1 L622.9,100.8M619.7,105.1 L613.0,109.4M623.0,104.5 L622.9,100.8M623.0,104.5 L619.7,105.1M622.9,100.8 L623.0,104.5M622.9,100.8 L619.7,105.1M622.9,100.8 L623.5,92.9 L618.8,82.3M613.0,109.4 L616.9,114.3M613.0,109.4 L619.7,105.1M613.0,109.4 L604.0,116.9 L600.1,118.0M624.2,104.5 L630.0,104.1M624.2,104.5 L626.7,109.4 L625.8,114.7M633.6,103.7 L637.9,103.3M633.6,103.7 L630.0,104.1M633.6,103.7 L632.6,109.0M637.9,103.3 L640.1,105.3M637.9,103.3 L641.0,102.9M637.9,103.3 L633.6,103.7M630.0,104.1 L633.6,103.7M630.0,104.1 L624.2,104.5M632.6,109.0 L633.6,103.7M640.1,105.3 L637.9,103.3M640.1,105.3 L641.0,102.9M640.1,105.3 L644.7,109.4M641.0,102.9 L643.9,102.6M641.0,102.9 L637.9,103.3M641.0,102.9 L640.1,105.3M669.6,103.6 L675.1,104.1M669.6,103.6 L666.6,103.3M669.6,103.6 L671.0,99.0M675.1,104.1 L669.6,103.6M675.1,104.1 L739.3,114.0M666.6,103.3 L669.6,103.6M666.6,103.3 L662.4,102.9M671.0,99.0 L673.8,93.7M671.0,99.0 L669.6,103.6M744.3,122.7 L737.6,125.8M744.3,122.7 L741.8,117.4M737.6,125.8 L744.3,122.7M737.6,125.8 L735.0,127.1 L732.1,130.9M741.8,117.4 L744.3,122.7M741.8,117.4 L740.0,114.7M428.1,525.3 L426.4,523.4M328.9,247.0 L333.1,249.1M329.1,246.5 L332.3,236.7M333.1,249.1 L328.9,247.0M328.1,246.7 L322.3,244.3M323.6,256.3 L324.8,253.7M323.6,256.3 L331.9,260.5M323.6,256.3 L320.9,255.5M323.0,257.7 L318.7,266.4M324.8,253.7 L323.6,256.3M324.8,253.7 L326.3,250.3M331.9,260.5 L327.5,270.2M331.9,260.5 L336.4,251.4M331.9,260.5 L323.6,256.3M331.9,260.5 L340.2,264.5M320.9,255.5 L323.6,256.3M318.7,266.4 L316.2,273.5M318.7,266.4 L323.0,257.7M318.7,266.4 L327.5,270.2M318.7,266.4 L307.7,261.8M316.2,273.5 L315.4,275.9M316.2,273.5 L318.7,266.4M316.2,273.5 L312.6,272.2M316.2,273.5 L320.9,275.6M327.5,270.2 L318.7,266.4M327.5,270.2 L331.9,272.4M327.5,270.2 L331.9,260.5M307.7,261.8 L304.6,260.7M307.7,261.8 L310.1,252.5M307.7,261.8 L318.7,266.4M307.7,261.8 L304.9,269.3M315.4,275.9 L314.4,278.9M315.4,275.9 L316.2,273.5M312.6,272.2 L316.2,273.5M312.6,272.2 L304.9,269.3M320.9,275.6 L316.2,273.5M313.6,281.1 L316.7,282.7M313.7,280.9 L317.0,281.6M316.7,282.7 L313.6,281.1M317.0,281.6 L313.7,280.9M302.0,277.1 L297.7,275.6M302.0,277.1 L304.9,269.3M297.7,275.6 L302.0,277.1M303.2,277.6 L306.9,278.9M304.9,269.3 L312.6,272.2M304.9,269.3 L296.0,266.1M304.9,269.3 L302.0,277.1M304.9,269.3 L307.7,261.8M291.8,273.4 L285.7,271.4M291.8,273.4 L294.4,274.4M286.5,267.3 L285.7,271.4M286.5,267.3 L287.8,263.1M13.0,371.5 
38138L18.3,369.7M13.0,371.5 L9.2,363.5 L2.5,356.0M13.0,371.5 L14.7,382.4M14.7,382.4 L8.7,384.3M14.7,382.4 L16.4,386.5M14.7,382.4 L13.0,371.5M14.7,382.4 L12.2,371.9M15.6,362.8 L16.4,360.6 L13.5,360.5 L13.8,362.0 L15.6,362.8M15.6,362.8 L13.8,362.0 L13.5,360.5 L16.4,360.6 L15.6,362.8M15.6,362.8 L18.3,369.7M33.9,376.9 L34.6,371.8M33.9,376.9 L32.7,379.5 L33.4,380.8 L35.3,379.4 L33.9,376.9M33.9,376.9 L35.3,379.4 L33.4,380.8 L32.7,379.5 L33.9,376.9M46.7,375.7 L51.9,381.7M46.7,375.7 L41.0,372.6 L34.6,371.8M46.7,375.7 L48.1,369.2 L47.2,365.7 L45.1,364.0 L40.4,362.8 L36.1,364.0 L34.6,371.8M51.9,381.7 L46.7,375.7M541.2,213.5 L543.3,215.3M540.6,213.8 L538.0,216.7M548.3,219.7 L545.7,222.7M548.0,219.4 L543.3,215.3M545.7,222.7 L548.3,219.7M549.4,218.5 L553.4,213.7M103.6,187.8 L105.4,204.9M103.6,187.8 L107.1,187.1M105.4,204.9 L103.6,187.8M105.4,204.9 L97.2,207.3M105.4,204.9 L111.9,203.1 L112.8,198.9M101.4,188.2 L97.9,188.8M107.1,187.1 L103.6,187.8M97.2,207.3 L96.8,202.6M97.2,207.3 L105.4,204.9M97.2,207.3 L94.3,208.3M112.8,198.9 L111.9,203.1 L105.4,204.9M96.8,202.6 L97.2,207.3M94.3,208.3 L97.2,207.3M462.7,271.8 L472.8,277.8M462.7,271.8 L458.8,278.6M462.7,271.8 L473.5,269.2M458.8,278.6 L450.9,273.8M458.8,278.6 L468.7,284.5M458.8,278.6 L455.2,284.7M458.8,278.6 L462.7,271.8M473.5,269.2 L473.6,272.6M473.5,269.2 L473.5,265.5M473.5,269.2 L462.7,271.8M456.0,172.8 L458.5,170.6M456.0,172.8 L452.6,175.7 L456.4,180.8M456.0,172.8 L459.9,177.1M458.5,170.6 L456.0,172.8M458.5,170.6 L454.6,166.2M458.5,170.6 L463.3,174.0 L470.6,171.4M456.4,180.8 L459.9,177.1M456.4,180.8 L459.9,184.5M456.4,180.8 L452.6,175.7 L456.0,172.8M459.9,177.1 L456.4,180.8M459.9,177.1 L460.8,176.5 L468.4,183.1M459.9,177.1 L456.0,172.8M280.4,103.4 L283.9,102.6M280.4,103.4 L272.9,106.6M283.0,98.4 L283.9,102.6M283.0,98.4 L282.0,94.6M283.0,98.4 L287.6,97.9M280.0,101.9 L278.9,97.5 L277.5,97.7 L278.2,101.3 L280.0,101.9M280.0,101.9 L278.2,101.3 L277.5,97.7 L278.9,97.5 L280.0,101.9M272.9,106.6 L280.4,103.4M272.9,106.6 L270.3,108.5M272.9,106.6 L271.9,103.9M270.3,108.5 L272.9,106.6M271.9,103.9 L270.7,98.8M271.9,103.9 L272.9,106.6M512.0,293.4 L513.7,291.3M513.7,291.3 L518.2,286.0M513.7,291.3 L512.0,293.4M513.7,291.3 L517.1,294.0M518.2,286.0 L513.7,291.3M518.2,286.0 L524.0,290.7M517.1,294.0 L513.7,291.3M519.6,284.5 L514.3,280.1M519.6,284.5 L524.5,278.4M524.0,290.7 L518.2,286.0M524.0,290.7 L526.9,293.0M524.0,290.7 L519.0,296.7M514.3,280.1 L521.5,271.7M514.3,280.1 L519.6,284.5M514.3,280.1 L512.1,282.5M524.5,278.4 L526.6,275.9M524.5,278.4 L519.6,284.5M385.0,100.1 L385.9,97.8M385.0,100.1 L379.4,94.3M385.9,97.8 L385.0,100.1M385.9,97.8 L387.1,93.1M379.4,94.3 L385.0,100.1M492.9,331.3 L491.3,328.5M492.9,331.3 L488.8,333.1M493.8,332.7 L494.8,335.3M493.8,332.7 L496.1,330.4 L500.4,329.0M491.3,328.5 L492.9,331.3M491.3,328.5 L504.7,322.8M488.8,333.1 L484.0,334.9M488.8,333.1 L487.5,330.1 L485.6,329.2 L483.9,323.9M488.8,333.1 L492.9,331.3M484.0,334.9 L488.8,333.1M484.0,334.9 L480.3,325.5M483.9,323.9 L485.6,329.2 L487.5,330.1 L488.8,333.1M-201.5,268.9 L-204.2,274.1M-201.5,268.9 L-200.7,265.0M-201.5,268.9 L-204.2,267.8 L-205.5,265.8M-201.5,268.9 L-195.6,271.4 L-187.1,270.7M-204.2,274.1 L-201.5,268.9M-204.2,274.1 L-206.7,284.3M-204.2,274.1 L-212.3,272.5 L-215.9,275.6 L-214.8,280.4M-200.7,265.0 L-201.5,268.9M-200.7,265.0 L-206.5,262.4 L-211.0,256.7M-205.5,265.8 L-204.2,267.8 L-201.5,268.9M-187.1,270.7 L-195.6,271.4 L-201.5,268.9M218.7,39.9 L216.9,44.4M226.1,51.9 L235.6,45.2M226.1,51.9 L216.7,61.8M226.1,51.9 L221.2,46.6 L216.9,44.4M215.9,237.0 L213.1,240.7M213.1,240.7 L215.9,237.0M193.6,266.4 L190.2,268.8M193.6,266.4 L189.3,263.9M193.6,266.4 L197.1,262.4M190.2,268.8 L193.6,266.4M190.2,268.8 L184.5,272.6M189.3,263.9 L186.1,261.9M189.3,263.9 L193.6,266.4M197.1,262.4 L199.1,259.7M197.1,262.4 L193.6,266.4M180.0,275.7 L177.5,274.7M180.0,275.7 L175.8,279.7M177.5,274.7 L175.8,279.7M177.5,274.7 L180.0,275.7M177.5,274.7 L189.8,252.0M177.5,274.7 L180.6,266.1M175.8,279.7 L177.5,274.7M175.8,279.7 L180.0,275.7M175.3,280.9 L173.0,286.9M175.3,280.9 L176.4,274.3M556.2,339.1 L560.8,345.6M569.4,357.1 L565.7,359.8M569.4,357.1 L573.0,354.5M569.4,357.1 L572.7,361.5 L580.2,356.3M569.4,357.1 L561.5,346.4M565.7,359.8 L564.1,357.7M565.7,359.8 L569.4,357.1M565.7,359.8 L562.1,362.5 L559.3,358.9M573.0,354.5 L569.4,357.1M573.0,354.5 L576.7,351.
381386M580.2,356.3 L582.6,359.5M580.2,356.3 L572.7,361.5 L569.4,357.1M580.2,356.3 L576.7,351.6M561.5,346.4 L569.4,357.1M544.6,317.4 L545.7,320.1M545.7,320.1 L547.4,323.9M545.7,320.1 L544.6,317.4M551.0,332.1 L548.9,327.3M551.0,332.1 L545.2,334.6M551.0,332.1 L555.4,330.7M551.0,332.1 L554.0,339.4M548.9,327.3 L551.0,332.1M548.9,327.3 L547.4,323.9M545.2,334.6 L548.7,342.7M545.2,334.6 L539.4,337.0M545.2,334.6 L551.0,332.1M545.2,334.6 L538.6,319.0 L533.2,321.5M555.4,330.7 L551.0,332.1M555.4,330.7 L559.3,329.6M554.0,339.4 L551.0,332.1M481.5,259.4 L481.9,264.5M481.2,273.4 L481.9,264.5M483.4,275.8 L480.8,274.4M566.4,603.9 L560.5,598.6M567.0,604.6 L571.5,614.6M560.5,598.6 L566.4,603.9M560.5,598.6 L557.4,595.6M569.9,602.1 L572.7,602.0M672.9,138.8 L680.6,143.4M672.9,138.8 L668.1,146.8M672.9,138.8 L675.1,132.5M680.6,143.4 L672.9,138.8M680.6,143.4 L684.3,145.6M668.1,146.8 L672.9,138.8M668.1,146.8 L680.3,156.7M668.1,146.8 L665.7,152.4 L665.8,158.6M675.1,132.5 L672.9,138.8M675.1,132.5 L673.7,129.3 L670.0,126.6M689.5,140.9 L687.6,148.4M684.3,145.6 L687.6,148.4M684.3,145.6 L680.6,143.4M708.6,166.1 L715.9,171.9M708.6,166.1 L701.6,174.5 L696.0,169.9M715.9,171.9 L719.9,175.1M715.9,171.9 L708.6,166.1M696.0,169.9 L693.4,167.8M696.0,169.9 L701.6,174.5 L708.6,166.1M719.9,175.1 L715.9,171.9M703.2,187.6 L697.6,193.2M722.8,177.6 L738.0,192.5 L741.3,194.0 L739.3,204.7 L726.0,209.1 L724.0,211.0 L723.3,214.8 L721.8,215.1 L711.9,206.6M723.9,176.5 L716.7,170.9M723.9,176.5 L729.0,170.9 L731.4,170.6M711.9,206.6 L705.4,200.4M711.9,206.6 L721.8,215.1 L723.3,214.8 L724.0,211.0 L726.0,209.1 L739.3,204.7 L741.3,194.0 L738.0,192.5 L722.8,177.6M93.9,580.5 L104.5,583.9M93.9,580.5 L95.8,573.9M93.9,580.5 L87.2,585.2M93.9,580.5 L91.6,586.5M104.5,583.9 L109.1,585.4M104.5,583.9 L93.9,580.5M104.5,583.9 L102.3,590.1M104.5,583.9 L106.8,577.5M95.8,573.9 L90.2,576.5M95.8,573.9 L106.8,577.5M95.8,573.9 L93.9,580.5M95.8,573.9 L97.7,567.6M87.2,585.2 L83.9,581.6M87.2,585.2 L93.9,580.5M87.2,585.2 L78.2,591.5 L70.2,594.4M91.6,586.5 L102.3,590.1M91.6,586.5 L75.8,596.4M91.6,586.5 L93.9,580.5M109.1,585.4 L111.8,586.3M109.1,585.4 L104.5,583.9M102.3,590.1 L100.7,594.4M102.3,590.1 L104.5,583.9M102.3,590.1 L91.6,586.5M106.8,577.5 L108.9,571.3M106.8,577.5 L104.5,583.9M106.8,577.5 L116.3,580.7M106.8,577.5 L95.8,573.9M111.8,586.3 L115.0,590.0M111.8,586.3 L109.1,585.4M111.8,586.3 L116.3,580.7M115.0,590.0 L111.8,586.3M116.3,580.7 L111.8,586.3M116.3,580.7 L106.8,577.5M116.3,580.7 L118.7,577.8M354.9,51.3 L349.8,56.5M354.9,51.3 L347.0,45.4 L346.6,39.7 L345.0,37.2M354.9,51.3 L360.6,46.1M349.8,56.5 L354.9,51.3M349.8,56.5 L358.3,65.5 L361.3,62.9M349.8,56.5 L346.2,59.9M345.0,37.2 L346.6,39.7 L347.0,45.4 L354.9,51.3M345.0,37.2 L343.9,36.9 L344.3,35.7M360.6,46.1 L363.6,43.3M360.6,46.1 L354.9,51.3M366.2,400.4 L366.3,397.2M366.2,400.4 L369.0,401.2M366.2,400.4 L365.4,424.8M366.3,397.2 L366.2,400.4M366.3,397.2 L366.4,390.5M369.0,401.2 L366.2,400.4M369.0,401.2 L371.5,406.0M365.4,424.8 L362.5,455.2M365.4,424.8 L366.2,400.4M599.8,60.6 L601.6,64.4 L603.2,75.0 L605.3,77.3 L609.7,77.4M599.8,60.6 L597.4,63.7 L593.4,64.0M599.8,60.6 L602.1,57.2 L610.8,56.1 L612.6,54.6M593.4,64.0 L597.4,63.7 L599.8,60.6M593.4,64.0 L588.2,64.8M593.4,64.0 L593.6,84.1M612.6,54.6 L610.8,56.1 L602.1,57.2 L599.8,60.6M612.6,54.6 L619.9,42.1M612.6,54.6 L616.3,59.5 L618.8,82.3M612.6,54.6 L608.6,51.6 L600.0,41.1M611.0,60.0 L608.8,65.5 L609.7,77.4M593.6,84.1 L597.9,84.0M593.6,84.1 L590.3,88.2M593.6,84.1 L593.4,64.0M597.9,84.0 L607.7,83.3M597.9,84.0 L593.6,84.1M597.9,84.0 L598.3,90.0 L601.9,89.5M590.3,88.2 L593.6,84.1M601.9,89.5 L598.3,90.0 L597.9,84.0M311.9,226.1 L307.6,214.1M311.9,226.1 L318.0,213.1M311.6,226.7 L309.7,230.5M307.6,214.1 L311.9,226.1M318.0,213.1 L311.9,226.1M580.5,-48.4 L583.6,-45.4M583.6,-45.4 L586.5,-42.8 L596.3,-41.1M583.6,-45.4 L580.5,-48.4M583.6,-45.4 L575.7,-36.3 L580.4,-30.7 L579.6,-27.9M596.3,-41.1 L604.5,-40.3 L615.4,-35.9M596.3,-41.1 L586.5,-42.8 L583.6,-45.4M596.3,-41.1 L597.6,-50.8 L607.4,-64.6M615.4,-35.9 L604.5,-40.3 L596.3,-41.1M615.4,-35.9 L612.9,-25.8M607.4,-64.6 L611.4,-69.4M607.4,-64.6 L597.6,-50.8 L596.3,-41.1M615.6,-35.8 L630.8,-34.4M612.9,-25.8 L612.2,-20.3M612.9,-25.8 L615.4,-35.9M630.8,-34.4 L630.7,-29.7M630.8,-34.4 L61
381385.6,-35.8M630.8,-34.4 L632.7,-43.8M630.7,-29.7 L630.8,-34.4M632.7,-43.8 L630.8,-34.4M648.1,709.9 L656.8,716.2M648.1,709.9 L645.4,713.9 L636.4,717.0M648.1,709.9 L635.2,701.3M656.8,716.2 L660.0,711.9M656.8,716.2 L669.6,725.9M656.8,716.2 L648.1,709.9M636.4,717.0 L645.4,713.9 L648.1,709.9M635.2,701.3 L629.9,696.4M635.2,701.3 L648.1,709.9M635.2,701.3 L643.1,692.1 L647.8,703.2 L660.0,711.9M-104.1,235.6 L-101.3,239.4M-104.1,235.6 L-106.5,236.9 L-112.0,235.7M-101.3,239.4 L-104.1,235.6M-112.0,235.7 L-106.5,236.9 L-104.1,235.6M-104.8,233.7 L-106.0,227.7M-104.8,233.7 L-101.1,232.7M261.6,88.4 L264.6,94.8M261.6,88.4 L266.1,86.5 L269.4,82.2M261.6,88.4 L256.3,81.4M264.6,94.8 L261.6,88.4M269.4,82.2 L266.1,86.5 L261.6,88.4M256.3,81.4 L260.3,79.1 L265.2,73.2M256.3,81.4 L261.6,88.4M256.3,81.4 L255.3,77.3 L257.0,73.1M199.9,117.0 L203.2,115.6M199.9,117.0 L195.9,118.4M200.1,117.3 L204.6,123.3M203.2,115.6 L206.4,114.4M203.2,115.6 L199.9,117.0M195.9,118.4 L199.9,117.0M195.9,118.4 L193.4,119.0M211.4,127.6 L209.5,128.5 L204.6,123.3M204.6,123.3 L209.5,128.5 L211.4,127.6M204.6,123.3 L200.1,117.3M-120.3,207.5 L-118.1,212.0M-120.3,207.5 L-127.6,210.4M-120.3,207.5 L-106.1,202.2 L-91.2,202.6 L-72.7,199.5M-118.1,212.0 L-113.9,214.7M-118.1,212.0 L-120.3,207.5M-118.1,212.0 L-121.9,213.9M-127.6,210.4 L-120.3,207.5M-127.6,210.4 L-129.0,207.1M-127.6,210.4 L-139.3,217.2 L-146.4,218.5M-72.7,199.5 L-69.0,213.3M-72.7,199.5 L-18.3,204.6 L-8.6,209.1M-72.7,199.5 L-91.2,202.6 L-106.1,202.2 L-120.3,207.5M-113.9,214.7 L-118.1,212.0M-113.9,214.7 L-109.9,216.5 L-107.1,221.0M-113.9,214.7 L-115.0,221.0M-113.9,214.7 L-111.0,210.4 L-106.7,208.4 L-105.5,211.7M-121.9,213.9 L-124.4,214.2M-121.9,213.9 L-118.1,212.0M-121.9,213.9 L-121.3,217.2M-107.1,221.0 L-106.0,227.7M-107.1,221.0 L-109.9,216.5 L-113.9,214.7M-115.0,221.0 L-114.5,224.2M-115.0,221.0 L-113.9,214.7M-115.0,221.0 L-118.6,221.3M-105.5,211.7 L-106.7,208.4 L-111.0,210.4 L-113.9,214.7M-106.0,227.7 L-104.8,233.7M-106.0,227.7 L-107.1,221.0M-106.0,227.7 L-101.1,226.5M-101.1,226.5 L-106.0,227.7M-78.4,316.4 L-85.6,313.7M-85.6,313.7 L-93.7,310.9 L-97.1,308.2M-85.6,313.7 L-78.4,316.4M-85.6,313.7 L-88.0,322.1 L-86.9,325.1 L-79.5,329.5 L-78.0,331.9M-97.1,308.2 L-108.3,296.0M-97.1,308.2 L-93.7,310.9 L-85.6,313.7M-78.0,331.9 L-79.5,329.5 L-86.9,325.1 L-88.0,322.1 L-85.6,313.7M-116.2,290.2 L-125.3,289.6M-116.2,290.2 L-109.2,295.2M-134.3,288.1 L-142.3,286.1M-134.3,288.1 L-125.3,289.6M-125.4,299.2 L-118.5,300.5 L-119.0,304.7M-125.4,299.2 L-125.3,289.6M-125.4,299.2 L-127.0,306.7M383.1,489.4 L383.4,493.5 L388.4,492.7M383.1,489.4 L395.3,487.5M383.1,489.4 L377.7,487.5M388.4,492.7 L383.4,493.5 L383.1,489.4M395.3,487.5 L406.7,493.9M395.3,487.5 L383.1,489.4M377.7,487.5 L383.1,489.4M377.7,487.5 L374.5,484.4 L372.7,479.0M-199.8,237.7 L-193.6,235.5M-199.8,237.7 L-199.7,248.2M-199.8,237.7 L-200.8,232.1M-199.8,237.7 L-209.8,238.6M-193.6,235.5 L-199.8,237.7M-193.6,235.5 L-191.6,238.9M-199.7,248.2 L-199.8,237.7M-200.8,232.1 L-199.4,228.9M-200.8,232.1 L-199.8,237.7M-209.8,238.6 L-215.9,238.2M-209.8,238.6 L-199.8,237.7M399.4,246.1 L392.6,245.0M392.6,245.0 L386.8,244.1M392.6,245.0 L391.8,249.5M392.6,245.0 L399.4,246.1M386.8,244.1 L392.6,245.0M391.8,249.5 L384.9,248.3M391.8,249.5 L392.6,245.0M391.8,249.5 L390.3,257.8M385.6,243.9 L378.0,242.7M385.6,243.9 L384.9,248.3M384.9,248.3 L385.6,243.9M384.9,248.3 L383.8,254.7M384.9,248.3 L377.2,247.1M384.9,248.3 L391.8,249.5M369.3,241.3 L377.1,242.6M369.3,241.3 L368.7,245.7M369.0,241.2 L362.0,240.1M368.7,245.7 L361.1,244.5M368.7,245.7 L376.4,246.9M368.7,245.7 L369.3,241.3M368.7,245.7 L364.7,258.1M361.7,240.1 L361.1,244.5M361.7,240.1 L351.1,238.4M362.0,240.1 L369.0,241.2M361.1,244.5 L368.7,245.7M361.1,244.5 L361.7,240.1M361.1,244.5 L357.0,255.2M351.1,238.4 L361.7,240.1M400.5,244.1 L393.2,242.9M393.2,242.9 L387.2,242.0M393.2,242.9 L400.5,244.1M387.2,242.0 L393.2,242.9M393.3,242.5 L394.4,238.2M386.9,241.9 L379.0,240.5M387.0,241.5 L391.8,220.1M369.6,239.0 L378.1,240.5M369.6,239.0 L371.3,231.5M371.3,231.5 L375.0,215.7M371.3,231.5 L369.6,239.0M325.7,233.0 L331.3,219.8M325.7,233.0 L332.7,234.2M331.3,219.8 L337.2,222.5M331.3,219.8 L334.2,212.4M331.3,219.8 L325.7,233.0M332.7,234.2 L325.7,233.0M319.4,232.1 L326.7,214.6M319.4,232.1 L314.0,231.3M319.4,232.1 L321.7,232.4M326.7,214.6 L328.1,211.1M326.7,214.6 L319.4,232.1M314.0,231.3 L319.4,232.1M321.7,232.4 L319.4,232.1M309.7,23
381380.5 L311.6,226.7M309.7,230.5 L306.6,230.0M578.0,101.2 L575.2,104.1M578.0,101.2 L584.1,90.9 L588.0,77.2M578.0,101.2 L577.0,104.4 L578.1,106.4M572.8,107.5 L575.2,104.1M572.8,107.5 L575.8,105.6 L578.1,106.4M572.8,107.5 L564.5,116.2 L550.4,126.9 L518.9,143.1 L507.9,150.2M578.1,106.4 L580.1,110.2M578.1,106.4 L575.2,104.1M578.1,106.4 L575.8,105.6 L572.8,107.5M578.1,106.4 L577.0,104.4 L578.0,101.2M379.0,529.5 L379.7,534.4 L378.1,543.4M378.1,543.4 L379.7,534.4 L379.0,529.5M378.1,543.4 L371.6,540.9M378.1,543.4 L383.9,543.0 L388.2,540.2M371.6,540.9 L372.6,534.1 L371.1,525.3M371.6,540.9 L368.1,541.2M371.6,540.9 L378.1,543.4M388.2,540.2 L383.9,543.0 L378.1,543.4M108.9,571.3 L106.8,577.5M108.9,571.3 L97.7,567.6M108.9,571.3 L117.7,574.4 L118.7,577.8M97.7,567.6 L108.9,571.3M97.7,567.6 L95.8,573.9M118.7,577.8 L116.3,580.7M118.7,577.8 L117.7,574.4 L108.9,571.3M348.3,204.2 L344.3,205.0M344.3,205.0 L348.3,204.2M349.8,204.2 L355.6,205.6M343.0,197.6 L353.4,186.1M343.0,197.6 L337.2,192.4M343.0,197.6 L348.1,202.1M353.4,186.1 L343.0,197.6M353.4,186.1 L347.6,180.6M353.4,186.1 L359.0,190.9M337.2,192.4 L343.0,197.6M337.2,192.4 L332.7,194.7 L326.9,192.5M337.2,192.4 L347.6,180.6M348.1,202.1 L343.0,197.6M326.9,192.5 L325.3,196.8M326.9,192.5 L333.7,180.4M326.9,192.5 L332.7,194.7 L337.2,192.4M378.2,42.7 L382.1,31.4M378.2,42.7 L382.6,45.8 L384.0,51.2 L383.0,52.8 L380.6,53.5 L376.1,51.4 L372.2,52.3M378.2,42.7 L369.4,38.0M372.2,52.3 L361.3,62.9M372.2,52.3 L363.9,43.0M372.2,52.3 L376.1,51.4 L380.6,53.5 L383.0,52.8 L384.0,51.2 L382.6,45.8 L378.2,42.7M372.2,52.3 L375.2,57.2M369.4,38.0 L378.2,42.7M603.9,645.4 L598.2,645.6M598.2,645.6 L594.0,649.1M598.2,645.6 L603.9,645.4M598.2,645.6 L597.2,643.0M594.0,649.1 L590.7,651.9M594.0,649.1 L598.2,645.6M597.2,643.0 L598.2,645.6M590.7,651.9 L594.0,649.1M590.7,651.9 L603.5,664.3M590.7,651.9 L582.0,637.6M603.5,664.3 L605.6,666.9M603.5,664.3 L590.7,651.9M582.0,637.6 L590.7,651.9M582.0,637.6 L578.2,629.5M582.0,637.6 L584.3,636.7M-30.5,-75.0 L-32.6,-81.4 L-29.3,-88.1 L-34.4,-93.1 L-36.6,-101.7M-30.5,-75.0 L-22.0,-73.2M-30.5,-75.0 L-38.4,-74.6M-36.6,-101.7 L-25.0,-104.3M-36.6,-101.7 L-34.4,-93.1 L-29.3,-88.1 L-32.6,-81.4 L-30.5,-75.0M-22.0,-73.2 L-15.7,-69.7 L-10.1,-64.3M-22.0,-73.2 L-30.5,-75.0M-38.4,-74.6 L-44.4,-74.2M-38.4,-74.6 L-30.5,-75.0M223.2,443.6 L226.0,443.9M223.2,443.6 L209.6,439.2M223.2,443.6 L221.6,449.1 L221.9,456.2 L224.1,459.3M226.0,443.9 L223.2,443.6M209.6,439.2 L223.2,443.6M209.6,439.2 L206.6,446.0M209.6,439.2 L214.3,426.3M224.1,459.3 L221.9,456.2 L221.6,449.1 L223.2,443.6M287.3,192.5 L289.7,203.5M286.6,192.2 L284.0,189.8 L281.6,184.2M287.1,191.4 L284.8,178.8 L276.8,164.9 L279.3,151.2M289.7,203.5 L287.3,192.5M289.7,203.5 L291.6,206.5M280.6,183.6 L275.1,181.1M275.1,181.1 L280.6,183.6M275.1,181.1 L274.0,177.5 L276.7,175.1M281.6,184.2 L284.0,189.8 L286.6,192.2M281.4,183.1 L280.5,178.5 L276.7,175.1M139.2,451.8 L143.4,455.8M139.2,451.8 L127.9,440.8M139.2,451.8 L144.3,447.1 L151.8,446.8M139.2,451.8 L137.7,455.3 L138.7,460.2 L138.1,470.9M143.4,455.8 L139.2,451.8M143.4,455.8 L149.3,460.3 L156.6,460.4M127.9,440.8 L139.2,451.8M127.9,440.8 L119.5,433.1M127.9,440.8 L137.7,431.6M151.8,446.8 L144.3,447.1 L139.2,451.8M138.1,470.9 L138.7,460.2 L137.7,455.3 L139.2,451.8M-155.2,274.2 L-156.9,276.0 L-154.7,279.3M-155.2,274.2 L-145.4,281.6M-155.2,274.2 L-158.4,269.9 L-159.8,264.6M-154.7,279.3 L-157.3,281.4M-154.7,279.3 L-154.0,281.2 L-156.1,283.2 L-157.3,281.4M-154.7,279.3 L-156.9,276.0 L-155.2,274.2M-145.4,281.6 L-142.3,286.1M-145.4,281.6 L-155.2,274.2M-159.8,264.6 L-154.7,264.3M-159.8,264.6 L-158.4,269.9 L-155.2,274.2M-159.8,264.6 L-161.4,253.4M-159.8,264.6 L-164.7,264.9M718.0,91.5 L721.4,89.9 L723.3,87.5M533.5,236.8 L529.4,241.5M533.5,236.8 L536.4,233.6M529.4,241.5 L541.7,252.1M529.4,241.5 L533.5,236.8M529.4,241.5 L526.8,239.5M529.4,241.5 L523.1,248.7M536.4,233.6 L533.5,236.8M536.4,233.6 L542.1,227.0M536.4,233.6 L549.2,244.3M536.4,233.6 L529.2,227.3M454.7,657.9 L453.7,663.6M454.7,657.9 L455.1,654.9M454.7,657.9 L440.9,656.0M455.1,654.9 L454.7,657.9M441.9,647.2 L440.9,656.0M441.9,647.2 L442.6,642.4M441.9,647.2 L447.9,648.1M523.4,331.8 L513.2,336.0M523.4,331.8 L526.4,329.6M523.4,331.8 L526.8,340.1M513.2,336.0 L510.2,337.3M513.2,336.0 L523.4,331.8M526.4,329.6 L523.4,331.8M526.4,329.6 L530.6,326.6M107.6,619.7 L121.8,632.4M107.6,619.7 L111.8,615.4M107.6,619.7 L104.1,624.0M121.8,632.4 L107.6,619.7M121.8,632.4 L124.1,631.4M121.8,632.4 L119.0,633.7M111.8,615.4 L120.1,606.0M111.8,615.4 L107.6,619.7M111.8,615.4 L116.3,619.3M111.8,615.4 L107.6,611.4M104.1,624.0 L107.6,619.7M104.1,624.0 L100.0,627.8M104.1,624.0 L116.2,635.1M124.1,631.4 L126.0,633.9M124.1,631.4 L127.8,629.9M124.1,631.4 L121.8,632.4M119.0,633.7 L121.2,636.9M119.0,633.7 L121.8,632.4M119.0,633.7 L116.2,635.1M537.8,333.0 L539.4,337.0M537.8,333.0 L534.2,324.2M537.4,333.1 L532.8,335.4M539.4,337.0 L537.8,333.0M539.4,337.0 L545.2,334.6M534.2,324.2 L537.8,333.0M534.2,324.2 L533.2,321.5M532.8,335.4 L537.4,333.1M6.2,374.0 L1.7,374.9M6.2,374.0 L3.6,368.0M6.2,374.0 L8.7,384.3M1.7,374.9 L6.2,374.0M3.6,368.0 L6.2,374.0M8.7,384.3 L10.4,389.5M8.7,384.3 L14.7,382.4M8.7,384.3 L6.2,374.0M8.7,384.3 L3.0,384.8 L-3.7,382.2M520.0,316.0 L518.7,313.2M520.0,316.0 L524.5,325.8M520.0,316.0 L518.0,317.6 L517.6,324.9 L512.2,330.1 L511.7,332.3M518.7,313.2 L520.0,316.0M524.5,325.8 L526.2,329.3M524.5,325.8 L520.0,316.0M524.5,325.8 L512.0,332.2M511.7,332.3 L513.2,335.7M511.7,332.3 L512.2,330.1 L517.6,324.9 L518.0,317.6 L520.0,316.0M526.2,329.3 L524.5,325.8M530.6,326.6 L526.4,329.6M530.6,326.6 L533.6,324.6M500.4,467.9 L503.0,460.9M500.4,467.9 L497.1,466.7M500.4,467.9 L498.2,474.0M503.0,460.9 L500.4,467.9M497.1,466.7 L489.1,461.9 L484.8,461.7M497.1,466.7 L494.7,470.3 L492.7,469.8 L485.3,466.2 L484.8,461.7M497.1,466.7 L500.4,467.9M498.2,474.0 L500.4,467.9M484.8,461.7 L489.1,461.9 L497.1,466.7M484.8,461.7 L485.3,466.2 L492.7,469.8 L494.7,470.3 L497.1,466.7M484.8,461.7 L483.0,454.5M483.0,454.5 L484.8,461.7M471.2,245.6 L471.3,242.7M471.1,246.3 L470.9,248.8M470.9,246.0 L465.9,245.7M471.6,246.1 L474.1,246.2M471.3,242.7 L471.2,245.6M253.6,224.9 L248.8,222.7M253.1,226.1 L251.6,229.8M248.8,222.7 L253.6,224.9M249.9,236.6 L246.9,246.8M249.9,236.6 L244.0,235.0M246.9,246.8 L244.6,254.3M246.9,246.8 L249.9,236.6M246.9,246.8 L240.8,244.8M249.9,235.0 L251.6,229.8M244.0,235.0 L240.8,244.8M244.0,235.0 L240.3,234.0M244.0,235.0 L249.9,236.6M244.6,254.3 L243.9,262.2M244.6,254.3 L246.9,246.8M244.6,254.3 L238.1,254.7M244.6,254.3 L250.7,253.8M240.8,244.8 L238.1,254.7M240.8,244.8 L244.0,235.0M240.8,244.8 L246.9,246.8M240.8,244.8 L232.9,242.8M243.9,262.2 L244.6,254.3M243.9,262.2 L240.1,262.4M243.9,262.2 L246.6,262.1M250.7,253.8 L244.6,254.3M240.1,262.4 L237.4,262.6M240.1,262.4 L243.9,262.2M246.6,262.1 L243.9,262.2M246.6,262.1 L251.0,262.8M288.8,314.5 L287.6,318.1 L290.8,321.7M291.5,312.2 L289.1,312.8M290.8,321.7 L287.6,318.1 L288.8,314.5M-202.6,284.9 L-206.7,284.3M-202.6,284.9 L-198.2,285.1M-202.6,284.9 L-203.5,291.4 L-202.3,292.7 L-198.5,292.5 L-197.5,289.6 L-198.2,285.1M-202.6,284.9 L-201.3,279.7 L-201.5,276.8 L-203.3,276.4M-206.7,284.3 L-206.7,288.4M-206.7,284.3 L-202.6,284.9M-206.7,284.3 L-204.2,274.1M-206.7,284.3 L-210.6,283.7 L-214.8,280.4M-198.2,285.1 L-195.1,283.7M-198.2,285.1 L-202.6,284.9M-198.2,285.1 L-197.5,289.6 L-198.5,292.5 L-202.3,292.7 L-203.5,291.4 L-202.6,284.9M-203.3,276.4 L-201.5,276.8 L-201.3,279.7 L-202.6,284.9M489.3,243.8 L491.0,241.7M489.3,243.8 L487.9,247.6M491.0,241.7 L489.3,243.8M491.0,241.7 L496.1,236.3M491.0,241.7 L489.7,233.6 L485.9,226.9M491.0,241.7 L492.1,246.1M488.3,243.0 L479.6,236.2M487.9,247.6 L489.3,243.8M339.5,216.9 L337.2,222.5M339.5,216.9 L343.4,205.7M340.0,217.0 L345.3,218.2M337.2,222.5 L331.3,219.8M337.2,222.5 L339.5,216.9M337.2,222.5 L333.2,232.9M343.4,205.7 L339.5,216.9M345.3,218.2 L340.0,217.0M546.1,223.0 L548.9,224.6M545.4,223.1 L543.3,225.6M497.4,515.9 L498.6,513.2M496.8,517.1 L496.8,519.1 L497.2,517.3M497.2,517.3 L496.8,519.1 L496.8,517.1M491.3,575.1 L493.2,571.6M491.3,575.1 L498.5,576.0M491.3,575.1 L484.6,586.3M490.5,574.8 L484.1,586.0M490.5,574.8 L494.3,566.4M493.2,571.6 L491.3,575.1M493.2,571.6 L494.3,569.0M498.5,576.0 L491.3,575.1M484.6,586.3 L492.7,588.8 L501.5,583.3M484.6,586.3 L491.3,575.1M484.6,586.3 L481.5,592.6M-102.6,267.7 
38138L-94.7,270.5M-102.6,267.7 L-109.8,264.7M-102.6,267.7 L-101.2,263.8 L-101.9,261.4M-94.7,270.5 L-102.6,267.7M-94.7,270.5 L-93.3,266.1M-94.7,270.5 L-92.4,272.1M-109.8,264.7 L-102.6,267.7M-109.8,264.7 L-122.6,259.9M-109.8,264.7 L-112.7,270.9M-101.9,261.4 L-101.2,263.8 L-102.6,267.7M-101.9,261.4 L-103.3,260.9 L-104.1,258.6 L-102.6,259.0 L-101.9,261.4M-101.9,261.4 L-102.6,259.0 L-104.1,258.6 L-103.3,260.9 L-101.9,261.4M139.0,680.7 L150.2,681.0M139.0,680.7 L132.8,692.1 L129.2,694.2 L125.9,694.0M139.0,680.7 L133.7,678.8M150.2,681.0 L139.0,680.7M125.9,694.0 L133.7,678.8M125.9,694.0 L120.8,691.0M125.9,694.0 L129.2,694.2 L132.8,692.1 L139.0,680.7M133.7,678.8 L125.9,694.0M133.7,678.8 L127.6,678.1M133.7,678.8 L139.0,680.7M494.3,408.9 L491.1,407.9M542.1,227.0 L536.4,233.6M542.4,227.3 L549.6,233.7M541.6,226.5 L534.7,220.5M543.3,225.6 L545.4,223.1M433.5,282.7 L424.4,284.5M433.5,282.7 L434.4,287.3M424.4,284.5 L433.5,282.7M434.4,287.3 L433.5,282.7M259.3,319.1 L264.3,322.6 L263.1,324.4M259.3,319.1 L264.5,312.6 L268.5,313.2M263.1,324.4 L264.3,322.6 L259.3,319.1M268.5,313.2 L268.0,316.4 L273.1,316.0M268.5,313.2 L264.5,312.6 L259.3,319.1M671.6,668.8 L668.3,676.2M671.6,668.8 L682.8,674.6M671.7,668.5 L673.4,664.9M671.7,668.5 L668.0,666.6 L674.9,652.4M682.8,674.6 L678.7,682.0M682.8,674.6 L690.1,678.8M682.8,674.6 L671.6,668.8M682.8,674.6 L685.9,669.1M678.7,682.0 L682.8,674.6M678.7,682.0 L685.9,685.9M678.7,682.0 L668.3,676.2M690.1,678.8 L685.9,685.9M690.1,678.8 L682.8,674.6M690.1,678.8 L697.0,682.7 L695.4,691.3M685.9,669.1 L682.8,674.6M685.9,685.9 L690.1,678.8M685.9,685.9 L695.4,691.3M685.9,685.9 L678.7,682.0M233.2,21.2 L235.1,17.9M233.2,21.2 L230.9,17.9 L229.7,9.8M233.2,21.2 L234.1,23.4M235.1,17.9 L233.2,21.2M235.1,17.9 L237.2,11.5 L238.6,10.3M235.1,17.9 L237.6,20.7 L234.1,23.4M229.7,9.8 L233.0,5.9M229.7,9.8 L230.9,17.9 L233.2,21.2M238.6,10.3 L237.2,11.5 L235.1,17.9M392.6,416.5 L389.8,415.3M392.6,416.5 L393.5,419.3M392.7,415.7 L394.2,412.4 L396.9,410.9M389.8,415.3 L388.2,414.6 L387.7,415.4 L388.6,416.0 L389.8,415.3M389.8,415.3 L388.6,416.0 L387.7,415.4 L388.2,414.6 L389.8,415.3M389.8,415.3 L392.6,416.5M393.5,419.3 L395.4,424.5M393.5,419.3 L392.6,416.5M393.5,419.3 L390.3,422.5 L388.9,421.8M617.0,337.4 L613.3,340.1M613.3,340.1 L617.0,337.4M613.3,340.1 L610.3,336.0M613.3,340.1 L616.9,344.8M610.3,336.0 L613.3,340.1M610.3,336.0 L607.8,337.7M610.3,336.0 L615.5,332.1M610.3,336.0 L605.8,330.0M616.9,344.8 L613.3,340.1M394.8,291.8 L382.6,289.3M394.8,291.8 L391.7,296.1M394.8,291.8 L400.3,287.5M382.6,289.3 L394.8,291.8M391.7,296.1 L382.7,294.2M391.7,296.1 L389.9,300.4M391.7,296.1 L394.8,291.8M400.3,287.5 L403.2,291.5M400.3,287.5 L402.2,286.2M400.3,287.5 L394.8,291.8M395.9,400.2 L396.3,395.0M395.9,400.2 L387.5,399.7M395.9,400.2 L403.5,399.5M395.9,400.2 L395.5,406.7 L396.7,410.3M396.3,395.
381380 L395.9,400.2M403.5,399.5 L395.9,400.2M403.5,399.5 L403.2,397.9 L405.9,395.3 L407.8,396.5M396.7,410.3 L395.5,406.7 L395.9,400.2M282.3,317.3 L279.2,320.8M279.2,320.8 L282.3,317.3M627.7,605.2 L638.0,610.9M627.7,605.2 L626.9,608.0M627.7,605.2 L630.5,601.1 L633.9,599.1M638.0,610.9 L627.7,605.2M638.0,610.9 L640.2,606.6M638.0,610.9 L636.4,614.1M626.9,608.0 L628.3,615.3 L631.5,619.4 L634.0,620.5M626.9,608.0 L627.7,605.2M633.9,599.1 L630.5,601.1 L627.7,605.2M633.9,599.1 L640.1,598.6M633.9,599.1 L634.1,590.3M640.2,606.6 L638.0,610.9M636.4,614.1 L638.0,610.9M-198.5,265.3 L-198.6,262.4M-198.5,265.3 L-193.3,264.4 L-181.5,259.4M-198.6,262.4 L-198.5,265.3M-198.6,262.4 L-198.8,260.5 L-200.8,260.1 L-200.8,261.2 L-198.6,262.4M-198.6,262.4 L-200.8,261.2 L-200.8,260.1 L-198.8,260.5 L-198.6,262.4M-181.5,259.4 L-176.7,258.7M-181.5,259.4 L-193.3,264.4 L-198.5,265.3M103.3,21.1 L102.5,30.2M103.3,21.1 L101.1,20.6M103.3,21.1 L109.4,22.2M103.3,21.1 L104.8,13.1 L108.9,10.3M102.5,30.2 L103.3,21.1M102.5,30.2 L98.2,50.1M102.5,30.2 L92.5,42.5M101.1,20.6 L103.3,21.1M101.1,20.6 L101.4,16.0 L99.5,12.7M101.1,20.6 L97.1,19.1M109.4,22.2 L103.3,21.1M108.9,10.3 L114.7,7.3M108.9,10.3 L106.8,5.9M108.9,10.3 L104.8,13.1 L103.3,21.1M59.9,687.7 L60.7,683.8M59.9,687.7 L81.2,693.1M59.5,689.7 L58.8,692.7M60.7,683.8 L59.9,687.7M81.2,693.1 L98.0,697.3M81.2,693.1 L79.9,698.7M81.2,693.1 L82.5,687.4M81.2,693.1 L59.9,687.7M98.0,697.3 L81.2,693.1M98.0,697.3 L96.5,702.9M98.0,697.3 L116.6,701.6M98.0,697.3 L99.5,691.6M79.9,698.7 L96.5,702.9M79.9,698.7 L78.0,704.4M79.9,698.7 L81.2,693.1M79.9,698.7 L58.7,693.2M82.5,687.4 L99.5,691.6M82.5,687.4 L61.0,682.1M82.5,687.4 L81.2,693.1M82.5,687.4 L84.0,681.7M96.5,702.9 L98.0,697.3M96.5,702.9 L118.4,708.5M96.5,702.9 L79.9,698.7M96.5,702.9 L95.1,708.6M116.6,701.6 L98.0,697.3M116.6,701.6 L118.7,703.5 L118.4,708.5M116.6,701.6 L107.8,694.2 L99.5,691.6M99.5,691.6 L82.5,687.4M99.5,691.6 L98.0,697.3M99.5,691.6 L107.8,694.2 L116.6,701.6M99.5,691.6 L93.9,684.4M118.4,708.5 L96.5,702.9M118.4,708.5 L119.3,715.7 L117.7,717.2 L111.4,712.1 L95.1,708.6M118.4,708.5 L118.7,703.5 L116.6,701.6M16.4,386.5 L14.7,382.4M16.4,386.5 L20.0,392.3M-65.4,656.4 L-61.5,653.8M-65.4,656.4 L-60.4,664.5M-65.4,656.4 L-68.5,650.6 L-67.9,644.9M-61.5,653.8 L-65.4,656.4M-60.4,664.5 L-65.4,656.4M-60.4,664.5 L-57.2,668.3 L-54.0,668.4M-60.4,664.5 L-52.8,657.9M-67.9,644.9 L-68.5,650.6 L-65.4,656.4M-217.6,254.0 L-214.9,257.1M-214.9,257.1 L-217.6,254.0M-214.9,257.1 L-217.2,260.9M-213.2,258.1 L-211.0,256.7M-213.2,258.1 L-212.3,260.6M-217.2,260.9 L-214.9,257.1M-217.2,260.9 L-217.8,262.4 L-218.9,262.4 L-218.2,260.6 L-217.2,260.9M-217.2,260.9 L-218.2,260.6 L-218.9,262.4 L-217.8,262.4 L-217.2,260.9M-211.0,256.7 L-213.2,258.1M-211.0,256.7 L-213.1,253.8M-211.0,256.7 L-206.5,262.4 L-200.7,265.0M-211.0,256.7 L-208.7,255.2 L-205.7,257.3M-212.3,260.6 L-213.2,258.1M-212.3,260.6 L-212.4,262.4 L-210.9,262.7 L-211.0,261.8 L-212.3,260.6M-212.3,260.6 L-211.0,261.8 L-210.9,262.7 L-212.4,262.4 L-212.3,260.6M-213.1,253.8 L-211.0,256.7M-213.1,253.8 L-211.0,252.0M-213.1,253.8 L-216.6,248.9 L-217.2,244.6M-205.7,257.3 L-208.7,255.2 L-211.0,256.7M435.8,472.8 L441.2,469.3M479.0,504.8 L477.8,507.7M479.0,504.8 L487.5,507.8M479.0,504.8 L470.6,501.4 L459.6,494.0M477.8,507.7 L479.0,504.8M477.8,507.7 L476.0,512.1M477.8,507.7 L474.9,506.9 L472.9,512.5M487.5,507.8 L492.4,510.2M487.5,507.8 L479.0,504.8M459.6,494.0 L455.7,490.8M459.6,494.0 L457.8,496.4M459.6,494.0 L470.6,501.4 L479.0,504.8M492.4,510.2 L492.0,512.2 L493.0,512.8 L493.7,512.0 L492.4,510.2M492.4,510.2 L493.7,512.0 L493.0,512.8 L492.0,512.2 L492.4,510.2M492.4,510.2 L487.5,507.8M231.6,231.5 L234.3,221.9M231.6,231.5 L225.7,229.9M231.6,231.5 L235.9,232.7M234.3,221.9 L231.6,231.5M225.7,229.9 L231.6,231.5M235.9,232.7 L233.6,240.8M235.9,232.7 L231.6,231.5M235.9,232.7 L240.3,234.0M-46.2,570.4 L-43.0,577.1M-43.0,577.1 L-39.1,580.2M-43.0,577.1 L-44.8,579.6M-43.0,577.1 L-46.2,570.4M-39.1,580.2 L-43.0,577.1M-39.1,580.2 L-37.3,581.7M-44.8,579.6 L-44.0,584.9M-44.8,579.6 L-48.5,579.1 L-48.4,582.0 L-44.0,584.9M-44.8,579.6 L-43.0,577.1M-44.0,584.9 L-44.8,579.6M-44.0,584.9 L-48.4,582.0 L-48.5,579.1 L-44.8,579.6M-44.6,587.0 L-52.5,585.3M-42.9,587.8 L-39.3,590.7M503.7,581.9 L502.0,579.6M503.7,581.9 L501.5,583.3M502.0,579.6 L503.7,581.9M501.5,583.3 L503.7,581.9M501.5,583.3 L492.7,588.8 L484.6,586.3M512.6,595.0 L512.5,597.9M512.6,595.0 L515.6,596.5 L518.3,595.9M512.5,597.9 L512.6,595.0M518.3,595.9 L515.6,596.5 L512.6,595.0M512.4,603.0 L512.3,599.7M510.6,603.5 L508.0,604.2M512.3,599.7 L512.4,603.0M536.7,630.9 L534.7,632.3M537.0,631.9 L537.7,635.3M535.1,629.5 L533.1,627.6M534.7,632.3 L536.7,630.9M537.0,630.7 L539.1,629.1M531.0,649.2 L536.6,662.1 L537.9,671.4M531.0,649.2 L536.3,639.7M531.0,649.2 L526.1,649.2M537.9,671.4 L536.6,662.1 L531.0,649.2M536.3,639.7 L531.0,649.2M526.1,649.2 L518.3,653.5M526.1,649.2 L525.0,645.5M526.1,649.2 L531.0,649.2M-31.8,659.4 L-41.7,646.9M-31.8,659.4 L-41.7,669.0M-31.8,659.4 L-25.5,653.1M-41.7,646.9 L-31.8,659.4M-41.7,646.9 L-52.8,657.9M-4
381381.7,646.9 L-28.6,634.1M-41.7,669.0 L-52.8,657.9M-41.7,669.0 L-31.8,659.4M-41.7,669.0 L-56.1,683.0M-25.5,653.1 L-23.8,651.5M-25.5,653.1 L-31.8,659.4M-42.8,645.6 L-46.4,641.7M-52.8,657.9 L-41.7,669.0M-52.8,657.9 L-41.7,646.9M-52.8,657.9 L-60.4,664.5M-28.6,634.1 L-41.7,646.9M-28.6,634.1 L-36.8,624.6M-28.6,634.1 L-20.3,625.7M-50.1,642.3 L-46.4,641.7M-46.4,641.7 L-50.1,642.3M-46.4,641.7 L-42.8,645.6M395.0,-71.5 L387.7,-74.0 L383.8,-73.9 L374.1,-70.2 L375.7,-64.8M395.0,-71.5 L388.5,-77.4 L379.4,-77.4 L375.1,-83.4 L376.8,-85.1 L387.7,-84.9M375.7,-64.8 L374.1,-70.2 L383.8,-73.9 L387.7,-74.0 L395.0,-71.5M387.7,-84.9 L387.4,-88.3 L384.8,-91.9M387.7,-84.9 L391.6,-83.8M387.7,-84.9 L376.8,-85.1 L375.1,-83.4 L379.4,-77.4 L388.5,-77.4 L395.0,-71.5M528.6,521.5 L531.7,516.8M548.2,541.2 L555.1,535.5M621.6,597.0 L626.9,582.3M615.6,578.3 L611.4,576.8M615.6,578.3 L626.9,582.3M644.7,597.5 L647.5,594.4M644.7,597.5 L640.1,598.6M644.7,597.5 L649.6,608.5M649.7,591.4 L647.5,594.4M662.4,604.3 L662.8,601.2M662.4,604.3 L655.3,601.6 L647.5,594.4M662.8,601.2 L663.6,598.5M662.8,601.2 L662.4,604.3M664.0,604.6 L669.9,605.7M669.9,605.7 L687.2,608.9M669.9,605.7 L664.0,604.6M669.9,605.7 L700.6,640.9M687.2,608.9 L669.9,605.7M687.2,608.9 L717.3,643.7M687.2,608.9 L704.3,612.1M700.6,640.9 L712.3,654.5M700.6,640.9 L669.9,605.7M30.4,639.4 L42.3,636.4M30.4,639.4 L35.3,644.1M30.4,639.4 L39.9,626.9M42.3,636.4 L30.4,639.4M42.3,636.4 L47.8,635.0M42.3,636.4 L43.7,642.0M42.3,636.4 L39.9,626.9M35.3,644.1 L40.6,648.6M35.3,644.1 L43.7,642.0M35.3,644.1 L30.4,639.4M39.9,626.9 L44.4,621.2M39.9,626.9 L42.3,636.4M39.9,626.9 L30.4,639.4M40.6,648.6 L46.4,653.4M40.6,648.6 L35.3,644.1M40.6,648.6 L56.6,644.8M43.7,642.0 L42.3,636.4M43.7,642.0 L35.3,644.1M43.7,642.0 L55.1,639.0M46.4,653.4 L51.7,657.9M46.4,653.4 L40.6,648.6M46.4,653.4 L58.0,650.3M56.6,644.8 L40.6,648.6M56.6,644.8 L55.1,639.0M51.7,657.9 L58.1,663.2M51.7,657.9 L46.4,653.4M51.7,657.9 L59.4,655.7M58.0,650.3 L63.9,648.8M58.0,650.3 L46.4,653.4M58.0,650.3 L59.4,655.7M58.0,650.3 L56.8,645.5M58.1,663.2 L51.7,657.9M58.1,663.2 L61.9,665.4M59.4,655.7 L61.1,662.2M59.4,655.7 L58.0,650.3M59.4,655.7 L65.0,654.2M59.4,655.7 L51.7,657.9M61.9,665.4 L61.1,662.2M61.9,665.4 L58.1,663.2M62.4,667.6 L63.3,671.6M61.1,662.2 L61.9,665.4M61.1,662.2 L59.4,655.7M40.4,64.4 L50.1,73.6M40.4,64.4 L37.2,68.4 L36.8,78.8M40.4,64.4 L35.7,60.3 L30.8,63.7M50.1,73.6 L40.4,64.4M50.1,73.6 L54.3,67.8 L55.2,61.9M50.1,73.6 L55.0,78.2M36.8,78.8 L37.2,68.4 L40.4,64.4M30.8,63.7 L35.7,60.3 L40.4,64.4M55.2,61.9 L54.3,67.8 L50.1,73.6M55.0,78.2 L65.0,87.8M55.0,78.2 L50.1,73.6M65.0,87.8 L59.2,93.8M65.0,87.8 L55.0,78.2M65.0,87.8 L70.1,92.7M59.2,93.8 L65.0,87.8M59.2,93.8 L44.3,79.5M59.2,93.8 L53.8,98.6 L41.4,97.3M70.1,92.7 L75.2,97.5M70.1,92.7 L65.8,97.3M70.1,92.7 L65.0,87.8M75.2,97.5 L70.1,92.7M65.8,97.3 L70.1,92.7M76.0,98.0 L75.5,99.4 L77.6,104.4 L82.9,105.2 L87.8,108.7M76.0,98.0 L82.2,95.7M87.8,108.7 L68.2,115.2M87.8,108.7 L90.5,109.7 L97.3,108.2M87.8,108.7 L82.9,105.2 L77.6,104.4 L75.5,99.4 L76.0,98.0M82.2,95.7 L85.2,94.3M82.2,95.7 L76.0,98.0M68.2,115.2 L66.9,112.6M68.2,115.2 L87.8,108.7M68.2,115.2 L52.2,120.8 L50.5,120.2M97.3,108.2 L90.5,109.7 L87.8,108.7M97.3,108.2 L89.3,92.3M97.3,108.2 L101.0,114.1M532.1,205.5 L535.0,208.1M532.1,205.5 L526.9,201.2M526.9,201.2 L532.1,205.5M526.9,201.2 L523.2,198.1M777.3,590.5 L781.2,587.2M777.3,590.5 L773.1,594.1M777.3,590.5 L748.6,557.7M781.2,587.2 L774.9,579.6M781.2,587.2 L783.1,585.6M781.2,587.2 L777.3,590.5M773.1,594.1 L777.3,590.5M773.1,594.1 L769.7,597.1M748.6,557.7 L777.3,590.5M748.6,557.7 L746.3,569.9M748.6,557.7 L743.6,550.1M746.3,569.9 L769.7,597.1M746.3,569.9 L745.9,573.4M746.3,569.9 L748.6,557.7M743.6,550.1 L750.2,544.3M743.6,550.1 L748.6,557.7M743.6,550.1 L725.5,530.6M17.0,44.7 L20.8,48.0M17.0,44.7 L14.3,47.0 L8.0,48.6M17.0,44.7 L24.0,35.6M20.8,48.0 L17.0,44.7M8.0,48.6 L-6.2,42.9M8.0,48.6 L7.1,55.2 L5.3,58.4 L-2.8,61.4M8.0,48.6 L14.3,47.0 L17.0,44.7M24.0,35.6 L17.0,44.7M24.0,35.6 L27.8,28.5 L31.4,17.3M24.0,35.6 L30.0,39.5 L32.9,43.2M361.3,62.9 L372.2,52.3M361.3,62.9 L358.3,65.5 L349.8,56.5M361.3,62.9 L365.6,67.3 L375.2,57.2M346.2,59.9 L349.8,56.5M346.2,59.9 L344.6,62.2M377.9,86.3 L373.4,81.8M373.4,81.8 L377.9,86.3M373.4,81.8 L384.5,70.9 L390.2,67.5 L398.8,56.0M373.4,81.8 L370.3,78.5M398.8,56.0 L390.2,67.5 L384.5,70.9 L373.4,81.8M370.3,78.5 L373.4,81.8M370.3,78.5 L368.1,78.6 L356.2,89.7M-3.7,382.2 L-5.1,384.4M-3.7,382.2 L-11.2,375.9 L-17.4,376.1 L-22.5,381.1 L-24.0,389.5M-3.7,382.2 L3.0,384.8 L8.7,384.3M-5.1,384.4 L-3.7,382.2M-24.0,389.5 L-22.5,381.1 L-17.4,376.1 L-11.2,375.9 L-3.7,382.2M260.7,500.2 L253.3,515.1M260.7,500.2 L263.3,495.4M260.7,500.2 L243.4,491.4M-193.4,210.3 L-200.8,211.7M-193.4,210.3 L-181.6,212.8M-193.5,209.8 L-193.5,205.2M-200.8,211.7 L-202.4,206.5M-200.8,211.7 L-209.2,216.2M-200.8,211.7 L-193.4,210.3M-181.6,212.8 L-183.0,218.5M-181.6,212.8 L-193.4,210.3M-181.6,212.8 L-173.6,215.5 L-171.4,217.7M489.0,164.2 L487.3,166.8M489.0,164.2 L493.6,168.5M489.0,164.2 L492.7,162.3M487.3,166.8 L491.8,170.7M487.3,166.8 L489.0,164.2M493.6,168.5 L491.8,170.7M493.6,168.5 L496.2,165.4M493.6,168.5 L489.0,164.2M492.7,162.3 L497.6,160.7 L511.2,170.4M492.7,162.3 L489.0,164.2M491.8,170.7 L487.3,166.8M491.8,170.7 L493.6,168.5M491.8,170.7 L494.9,173.7M496.2,165.4 L494.2,163.8M496.2,165.4 L493.6,168.5M496.2,165.4 L497.8,165.3 L502.3,168.6 L502.5,171.7 L504.7,174.8M543.8,369.0 L541.5,365.9M543.8,369.0 L540.3,371.5M543.8,369.0 L548.2,372.7M541.5,365.9 L543.8,369.0M540.3,371.5 L543.8,369.0M540.3,371.5 L536.4,375.8 L534.4,382.8M548.2,372.7 L553.8,374.8M548.2,372.7 L543.8,369.0M553.8,374.8 L548.2,372.7M553.8,374.8 L555.6,373.0 L560.9,375.3 L562.6,378.3M553.8,374.8 L562.4,378.7M577.4,472.5 L577.9,477.1M577.4,472.5 L576.8,465.6M578.6,472.4 L580.2,476.4 L583.2,477.3 L584.0,475.3M578.6,472.4 L578.7,468.6 L579.8,467.5 L584.6,468.6 L584.7,470.1M577.9,477.1 L584.0,478.2 L585.1,475.4M577.9,477.1 L577.4,472.5M576.8,465.6 L586.7,467.9M576.8,465.6 L577.4,472.5M576.8,465.6 L575.9,458.3M584.0,475.3 L583.2,477.3 L580.2,476.4 L578.6,472.4M584.7,470.1 L584.6,468.6 L579.8,467.5 L578.7,468.6 L578.6,472.4M41.2,313.1 L38.8,311.1M35.7,330.9 L34.7,327.1M26.4,327.3 L34.7,327.1M-25.6,350.8 L-30.5,349.2M-25.6,350.8 L-28.6,357.7M-25.6,350.8 L-22.1,347.4 L-20.3,342.2M-30.5,349.2 L-25.6,350.8M-28.6,357.7 L-25.6,350.8M-20.3,342.2 L-21.0,338.9M-20.3,342.2 L-32.7,342.5 L-46.4,335.6M-20.3,342.2 L-14.5,342.3M-20.3,342.2 L-22.1,347.4 L-25.6,350.8M75.2,2.5 L78.5,6.6M75.2,2.5 L82.8,-7.4M75.2,2.5 L69.3,3.9 L63.7,1.8M78.5,6.6 L75.2,2.5M82.8,-7.4 L75.2,2.5M63.7,1.8 L65.3,-4.7 L62.9,-14.2M63.7,1.8 L56.8,8.4M63.7,1.8 L69.3,3.9 L75.2,2.5M313.4,328.6 L306.1,321.6M313.4,328.6 L319.4,333.7M306.1,321.6 L303.9,319.2M306.1,321.6 L313.4,328.6M319.4,333.7 L321.3,332.1M319.4,333.7 L313.4,328.6M304.7,338.8 L310.4,332.8M304.7,338.8 L295.1,348.7M304.7,338.8 L306.7,340.6M310.4,332.8 L304.7,338.8M306.7,340.6 L310.6,344.1M306.7,340.6 L304.7,338.8M292.9,347.0 L295.1,348.7M292.9,347.0 L294.9,344.6M292.9,347.0 L289.8,344.4M275.7,369.6 L274.2,371.5M275.7,369.6 L295.1,348.7M258.6,396.0 L256.4,401.4 L249.0,410.1 L254.3,418.8M258.6,396.0 L266.1,402.1M258.6,396.0 L261.9,384.1M254.3,418.8 L257.5,424.1 L253.9,428.2M254.3,418.8 L249.0,410.1 L256.4,401.4 L258.6,396.0M266.1,402.1 L270.3,404.4 L269.0,408.1M266.1,402.1 L258.6,396.0M261.9,384.1 L262.1,380.3M261.9,384.1 L258.6,396.0M294.9,344.6 L296.0,343.5 L294.7,342.5 L293.7,343.5 L294.9,344.6M294.9,344.6 L293.7,343.5 L294.7,342.5 L296.0,343.5 L294.9,344.6M294.9,344.6 L292.9,347.0M289.8,344.4 L287.5,342.4M289.8,344.4 L286.9,347.4M289.8,344.4 L292.9,347.0M336.0,274.1 L331.9,272.4M336.0,274.1 L340.2,264.5M336.0,274.1 L337.1,275.5 L336.5,278.7M340.2,264.5 L336.0,274.1M340.2,264.5 L344.7,255.6M340.2,264.5 L331.9,260.5M336.5,278.7 L337.1,275.5 L336.0,274.1M304.6,260.7 L302.4,259.9M304.6,260.7 L307.7,261.8M310.1,252.5 L307.7,261.8M310.1,252.5 L311.5,246.8M310.1,252.5 L306.6,251.5M310.1,252.5 L314.4,253.7M290.5,255.6 L294.1,256.8M290.5,255.6 L287.8,263.1M290.5,255.6 L293.6,247.8M294.1,256.8 L290.5,255.6M294.1,256.8 L301.9,259.7M287.8,263.1 L286.5,267.3M287.8,263.1 L290.5,255.6M287.8,263.1 L296.0,266.1M293.6,247.8 L296.0,248.5M293.6,247.8 L290.5,255.6M293.6,247.8 L296.0,241.7M362.9,286.5 L354.5,283.1M354.5,283.1 L362.9,286.5M354.5,283.1 L350.9,292.1M354.5,283.1 L358.6,272.9M350.9,292.1 L359.0,295.3M350.9,292.1 L354.5,283.1M358.6,272.9 L354.5,283.1M358.6,272.9 L362.0,265.0M358.6,272.9 L350.9,270.1M358.6,272.9 L365.1,275.6M42.4,529.3 L34.2,524.5M42.4,529.3 L48.2,532.7M42.4,529.3 L47.4,518.3M34.2,524.5 L42.4,529.3M34.2,524.5 L37.7,519.8M34.2,524.5 L21.3,517.3M48.2,532.7 L42.4,529.3M48.2,532.7 L53.1,525.4M37.7,519.8 L24.9,509.2M37.7,519.8 L34.2,524.5M37.7,519.8 L41.4,515.4M21.3,517.3 L34.2,524.5M548.2,236.0 L550.4,233.4M550.4,233.4 L548.2,236.0M552.9,240.2 L558.1,233.4M558.1,233.4 L552.9,240.2M558.1,233.4 L556.3,230.6M325.9,476.7 L320.1,497.7M325.9,476.7 L334.5,479.2M325.9,476.7 L311.9,474.4M320.1,497.7 L325.9,476.7M334.5,479.2 L325.9,476.7M311.9,474.4 L308.8,474.1M311.9,474.4 L308.7,480.7M311.9,474.4 L325.9,476.7M495.4,107.9 L483.0,104.2M495.4,107.9 L493.2,116.5M495.4,107.9 L500.0,102.1M483.0,104.2 L484.1,100.9M483.0,104.2 L476.9,111.0M483.0,104.2 L495.4,107.9M493.2,116.5 L487.1,113.5M493.2,116.5 L493.2,120.6 L491.2,123.0M493.2,116.5 L495.4,107.9M500.0,102.1 L495.4,107.9M534.1,513.4 L537.4,508.7M534.1,513.4 L531.7,516.8M537.4,508.7 L534.1,513.4M531.7,516.8 L534.1,513.4M531.7,516.8 L528.6,521.5M533.4,512.9 L531.1,516.4M533.4,512.9 L536.8,508.2M507.0,277.8 L502.3,273.6M507.0,277.8 L512.1,282.5M507.0,277.8 L511.7,272.2M507.0,277.8 L501.2,284.7 L497.5,281.9M502.3,273.6 L507.0,277.8M502.3,273.6 L504.5,270.9M502.3,273.6 L499.6,278.2M512.1,282.5 L507.0,277.8M512.1,282.5 L505.3,290.3M512.1,282.5 L514.3,280.1M511.7,272.2 L516.2,267.0M511.7,272.2 L507.0,277.8M497.5,281.9 L496.0,284.1M497.5,281.9 L501.2,284.7 L507.0,277.8M497.5,281.9 L499.6,278.2M511.3,272.0 L507.9,269.2M446.0,222.3 L440.7,219.5M446.0,222.3 L441.6,226.5 L438.2,226.5M446.0,222.3 L449.0,218.7 L449.9,215.3 L446.4,214.7M440.7,219.5 L437.3,218.8M440.7,219.5 L442.7,211.0M440.7,219.5 L446.0,222.3M438.2,226.5 L435.3,225.9M438.2,226.5 L441.6,226.5 L446.0,222.3M446.4,214.7 L449.9,215.3 L449.0,218.7 L446.0,222.3M437.3,218.8 L432.0,217.5M437.3,218.8 L440.7,219.5M442.7,211.0 L440.7,219.5M419.6,214.6 L419.0,217.4M419.6,214.6 L432.0,217.5M419.6,214.6 L420.5,210.8M419.0,217.4 L418.0,222.0M419.0,217.4 L419.6,214.6M432.0,217.5 L437.3,218.8M432.0,217.5 L419.6,214.6M420.5,210.8 L421.2,208.3M420.5,210.8 L419.6,214.6M100.7,594.4 L102.3,590.1M100.7,594.4 L100.9,602.4M100.7,594.4 L91.6,593.5M91.6,593.5 L100.7,594.4M40.9,-28.1 L30.5,-15.5M40.9,-28.1 L36.1,-31.8M40.9,-28.1 L44.6,-32.5 L45.9,-37.7M30.5,-15.5 L40.9,-28.1M30.5,-15.5 L27.3,-18.3M30.5,-15.5 L49.1,0.4M36.1,-31.8 L40.9,-28.1M45.9,-37.7 L44.6,-32.5 L40.9,-28.1M472.8,415.4 L469.2,417.8M472.8,415.4 L475.3,419.5 L474.7,423.5M472.8,415.4 L477.6,412.0M469.2,417.8 L463.3,422.0M469.2,417.8 L472.8,415.4M469.2,417.8 L461.1,405.9M474.7,423.5 L475.4,427.7 L477.9,430.1M474.7,423.5 L475.3,419.5 L472.8,415.4M477.6,412.0 L472.8,415.4M-222.8,248.8 L-220.4,247.4 L-219.9,248.4 L-221.4,249.7M-222.8,248.8 L-223.7,251.9 L-222.3,251.8 L-221.4,249.7M-222.8,248.8 L-225.5,247.3M545.2,394.9 L534.4,389.7M534.4,389.7 L545.2,394.9M525.0,385.5 L523.4,391.6M524.3,385.2 L514.0,382.3M516.6,372.7 L514.0,382.3M504.1,378.7 L514.0,382.3M451.3,713.0 L450.8,710.3M451.3,713.0 L454.7,710.6M451.4,713.8 L451.8,716.2M450.8,710.3 L451.3,713.0M454.7,710.6 L451.3,713.0M450.9,725.5 L450.4,729.0M450.9,725.5 L453.5,724.2M450.4,729.0 L450.9,725.5M453.5,724.2 L456.8,722.0M453.5,724.2 L450.9,725.5M290.8,171.7 L285.4,169.1M290.8,171.7 L290.7,176.2 L293.6,186.5M290.8,171.7 L295.2,167.9 L307.8,167.8M285.4,169.1 L290.8,171.7M293.6,186.5 L309.0,186.6M293.6,186.5 L290.7,176.2 L290.8,171.7M293.6,186.5 L292.6,188.0 L293.7,190.7 L299.1,194.6M307.8,167.8 L308.8,176.5M307.8,167.8 L295.2,167.9 L290.8,171.7M307.8,167.8 L314.1,168.0 L316.0,170.0 L317.7,183.7 L316.2,188.7M579.6,-27.9 L580.4,-30.7 L575.7,-36.3 L583.6,-45.4M579.6,-27.9 L576.7,-28.9 L567.7,-28.1M579.6,-27.9 L582.7,-26.6M579.3,-26.8 L582.4,-25.3M579.3,-26.8 L577.6,-20.8 L577.9,-14.6 L584.0,-8.9M579.3,-26.8 L571.7,-27.8 L568.2,-27.0M582.4,-25.3 L585.0,-24.1M582.4,-25.3 L579.3,-26.8M584.0,-8.9 L581.6,-6.5M584.0,-8.9 L587.3,-8.2M584.0,-8.9 L577.9,-14.6 L577.6,-20.8 L579.3,-26.8M568.2,-27.0 L569.3,-21.7 L568.9,-9.4M568.2,-27.0 L571.7,-27.8 L579.3,-26.8M581.6,-6.5 L584.0,-8.9M587.3,-8.2 L584.0,-8.9M13.8,105.5 L20.4,98.8M13.8,105.5 L17.8,109.9M13.8,105.5 L6.6,112.6 L5.9,118.3M20.4,98.8 L25.9,93.5M20.4,98.8 L13.8,105.5M20.4,98.8 L26.2,104.9M17.8,109.9 L13.8,105.5M5.9,118.3 L6.6,127.2M5.9,118.3 L6.6,112.6 L13.8,105.5M5.9,118.3 L10.7,118.6 L15.8,121.4 L22.5,120.5M589.9,455.7 L576.9,452.6M589.9,455.7 L588.8,460.7M589.9,455.7 L590.7,450.0 L578.2,446.9M576.9,452.6 L589.9,455.7M576.9,452.6 L576.3,455.5M576.9,452.6 L577.8,448.7M576.9,452.6 L569.1,451.9M588.8,460.7 L593.9,461.9M588.8,460.7 L575.9,458.3M588.8,460.7 L589.9,455.7M578.2,446.9 L579.1,444.1M578.2,446.9 L590.7,450.0 L589.9,455.7M576.3,455.5 L576.9,452.6M577.8,448.7 L576.9,452.6M569.1,451.9 L576.9,452.6M569.1,451.9 L568.6,451.0 L567.8,451.6 L568.3,452.4 L569.1,451.9M569.1,451.9 L568.3,452.4 L567.8,451.6 L568.6,451.0 L569.1,451.9M264.7,337.2 L269.2,341.2M264.7,337.2 L268.4,333.0M264.7,337.2 L260.7,335.0M269.2,341.2 L264.7,337.2M269.2,341.2 L271.3,343.0M269.2,341.2 L273.3,336.9M268.4,333.0 L264.7,337.2M260.7,335.0 L257.4,334.5M260.7,335.0 L264.7,337.2M260.7,335.0 L261.3,332.7 L265.0,328.6M239.4,328.4 L247.3,331.5M239.4,328.4 L237.5,335.2M239.4,328.4 L241.5,320.7M425.9,292.6 L420.4,285.4M425.9,292.6 L421.7,294.2M425.9,292.6 L434.7,289.1M420.4,285.4 L425.9,292.6M434.7,289.1 L425.9,292.6M434.7,289.1 L436.5,287.0M312.6,96.1 L314.0,98.6M312.6,96.1 L311.0,94.3M314.0,98.6 L314.4,101.1M314.0,98.6 L312.6,96.1M311.0,94.3 L312.6,96.1M314.4,101.1 L313.0,106.3M314.4,101.1 L314.0,98.6M677.5,523.0 L66
381385.1,511.1M677.5,523.0 L682.7,530.3M677.5,523.0 L679.9,522.2 L684.3,517.0 L689.6,516.3 L697.0,523.2M665.1,511.1 L677.5,523.0M665.1,511.1 L666.0,507.4 L672.3,501.2 L671.6,499.2 L668.9,498.2M682.7,530.3 L677.5,523.0M697.0,523.2 L697.9,525.5 L698.5,525.2 L698.3,524.4 L697.0,523.2M697.0,523.2 L698.3,524.4 L698.5,525.2 L697.9,525.5 L697.0,523.2M697.0,523.2 L689.6,516.3 L684.3,517.0 L679.9,522.2 L677.5,523.0M649.6,608.5 L653.4,607.8M649.6,608.5 L644.7,597.5M649.6,608.5 L648.8,614.4 L644.8,619.4M653.4,607.8 L649.6,608.5M644.8,619.4 L648.8,614.4 L649.6,608.5M644.8,619.4 L638.9,621.3M516.6,175.1 L521.6,168.9M516.6,175.1 L511.2,170.4M518.3,653.5 L526.1,649.2M518.3,653.5 L509.9,658.0M518.3,653.5 L524.5,664.4M509.9,658.0 L518.3,653.5M509.9,658.0 L499.3,663.4M509.9,658.0 L505.7,649.6M509.9,658.0 L513.8,666.2M524.5,664.4 L518.3,653.5M75.9,-32.7 L81.8,-34.3 L96.5,-43.5M75.9,-32.7 L68.3,-32.1 L62.8,-28.4 L60.5,-22.8 L62.9,-14.2M75.9,-32.7 L75.4,-38.5 L72.8,-43.6M96.5,-43.5 L81.8,-34.3 L75.9,-32.7M62.9,-14.2 L68.7,-16.1M62.9,-14.2 L60.5,-22.8 L62.8,-28.4 L68.3,-32.1 L75.9,-32.7M62.9,-14.2 L65.3,-4.7 L63.7,1.8M72.8,-43.6 L75.4,-38.5 L75.9,-32.7M68.7,-16.1 L62.9,-14.2M56.8,8.4 L63.7,1.8M56.8,8.4 L62.6,17.2 L67.6,28.1M56.8,8.4 L53.6,4.7M67.6,28.1 L71.6,43.3M67.6,28.1 L62.6,17.2 L56.8,8.4M430.1,549.1 L434.8,548.8M434.8,548.8 L438.0,548.6M434.8,548.8 L430.1,549.1M438.0,548.6 L441.6,548.3M438.0,548.6 L434.8,548.8M438.0,548.6 L438.1,545.8M438.0,548.6 L438.4,553.3M441.6,548.3 L438.0,548.6M438.1,545.8 L438.0,548.6M438.1,545.8 L438.8,542.5M438.4,553.3 L438.0,548.6M516.9,243.1 L517.9,248.6M515.9,242.0 L506.7,234.4M515.9,242.0 L511.5,247.1M518.0,239.9 L521.9,235.4M518.0,249.0 L522.7,249.1M518.0,249.0 L515.5,250.8M517.9,248.6 L516.9,243.1M522.7,249.1 L518.0,249.0M515.5,250.8 L518.0,249.0M54.9,614.5 L48.9,613.7M55.0,614.8 L59.4,632.0M55.3,614.6 L60.9,615.1M48.9,613.7 L54.9,614.5M59.4,632.0 L63.9,648.8M59.4,632.0 L55.0,614.8M59.4,632.0 L53.7,633.5M59.4,632.0 L64.9,630.6M63.9,648.8 L59.4,632.0M63.9,648.8 L69.4,647.4M63.9,648.8 L58.0,650.3M53.7,633.5 L54.6,636.9M53.7,633.5 L51.9,626.6M53.7,633.5 L59.4,632.0M64.9,630.6 L69.4,647.4M64.9,630.6 L61.0,615.3M64.9,630.6 L59.4,632.0M64.9,630.6 L70.5,629.2M69.4,647.4 L73.7,664.7M69.4,647.4 L64.9,630.6M69.4,647.4 L74.6,646.1M69.4,647.4 L63.9,648.8M71.3,678.5 L77.4,680.1M71.3,678.5 L68.6,668.1M71.3,678.5 L62.3,676.2M77.4,680.1 L73.7,664.7M77.4,680.1 L84.0,681.7M77.4,680.1 L71.3,678.5M68.6,668.1 L73.7,664.7M68.6,668.1 L71.3,678.5M68.6,668.1 L67.7,664.4M62.3,676.2 L61.0,682.1M62.3,676.2 L62.9,673.4M62.3,676.2 L71.3,678.5M676.5,576.5 L677.0,578.9M677.0,578.9 L676.5,576.5M677.0,578.9 L676.8,582.0M276.0,315.7 L279.5,310.3 L281.7,310.0 L282.9,311.1M276.0,315.7 L270.2,313.1M276.0,315.7 L278.2,320.7M282.9,311.1 L281.7,310.0 L279.5,310.3 L276.0,315.7M270.2,313.1 L269.9,309.6M270.2,313.1 L276.0,315.7M278.2,320.7 L276.0,315.7M179.3,-111.7 L173.2,-107.5M173.2,-107.5 L168.3,-106.8 L158.9,-108.3M173.2,-107.5 L179.3,-111.7M173.2,-107.5 L175.2,-103.0 L179.4,-102.7M158.9,-108.3 L150.2,-108.2 L143.3,-103.1M158.9,-108.3 L168.3,-106.8 L173.2,-107.5M179.4,-102.7 L175.2,-103.0 L173.2,-107.5M148.1,-88.7 L145.8,-99.7 L143.3,-103.1M102.1,-87.9 L94.2,-82.8M102.1,-87.9 L109.5,-95.7M102.1,-87.9 L108.5,-83.2 L119.2,-82.5 L122.8,-80.3 L124.1,-78.6 L120.5,-74.7 L118.4,-69.7M94.2,-82.8 L86.2,-81.9M94.2,-82.8 L102.1,-87.9M109.5,-95.7 L102.1,-87.9M109.5,-95.7 L112.6,-97.5M118.4,-69.7 L120.5,-74.7 L124.1,-78.6 L122.8,-80.3 L119.2,-82.5 L108.5,-83.2 L102.1,-87.9M86.2,-81.9 L79.4,-84.1M86.2,-81.9 L94.2,-82.8M86.2,-81.9 L87.6,-72.8M79.4,-84.1 L71.7,-88.0M79.4,-84.1 L86.2,-81.9M79.4,-84.1 L82.5,-90.2M87.6,-72.8 L86.2,-81.9M71.7,-88.0 L67.7,-88.3M71.7,-88.0 L79.4,-84.1M82.5,-90.2 L79.4,-84.1M67.7,-88.3 L71.7,-88.0M67.7,-88.3 L64.9,-95.0M67.7,-88.3 L56.5,-75.7M64.9,-95.0 L67.7,-88.3M56.5,-75.7 L52.3,-73.3 L29.5,-72.7M56.5,-75.7 L67.7,-88.3M56.5,-75.7 L61.8,-70.0 L71.0,-66.4M29.5,-72.7 L23.4,-73.5 L17.6,-79.1M29.5,-72.7 L52.3,-73.3 L56.5,-75.7M29.5,-72.7 L26.0,-59.9 L27.8,-56.0 L31.3,-55.7M71.0,-66.4 L61.8,-70.0 L56.5,-75.7M17.6,-79.1 L15.8,-81.4M17.6,-79.1 L23.4,-73.5 L29.5,-72.7M31.3,-55.7 L27.8,-56.0 L26.0,-59.9 L29.5,-72.7M15.8,-81.4 L17.6,-79.1M15.8,-81.4 L8.8,-77.7M17.6,-82.9 L21.7,-87.4 L22.7,-90.6M8.8,-77.7 L15.8,-81.4M512.8,346.0 L514.3,349.7M512.8,346.0 L509.5,338.3M513.2,345.9 L526.8,340.1M509.5,338.3 L512.8,346.0M361.9,310.0 L366.7,312.6M361.9,310.0 L360.6,312.6 L360.4,318.3M361.9,310.0 L354.4,307.3M366.7,312.6 L361.9,310.0M360.4,318.3 L360.6,312.6 L361.9,310.0M354.4,307.3 L351.5,319.4 L343.3,322.0 L337.0,322.1M354.4,307.3 L337.8,307.0M354.4,307.3 L361.9,310.0M523.2,14.9 L531.7,2.4 L534.4,-16.5M534.4,-16.5 L531.7,2.4 L523.2,14.9M534.4,-16.5 L530.2,-16.3 L525.6,-18.7 L513.9,-40.2M534.4,-16.5 L538.9,-19.3M-166.6,264.6 L-167.9,267.3 L-170.1,268.4 L-174.0,267.6M-166.6,264.6 L-171.6,261.3M-164.7,264.9 L-159.8,264.6M-174.0,267.6 L-170.1,268.4 L-167.9,267.3 L-166.6,264.6M-171.6,261.3 L-166.6,264.6M-171.6,261.3 L-176.7,258.7M257.0,358.7 L252.4,357.2M257.0,358.7 L254.8,361.3M257.0,358.7 L260.3,360.3M257.0,358.7 L258.1,355.1M252.4,357.2 L248.9,356.1M252.4,357.2 L257.0,358.7M252.4,357.2 L254.8,361.3M254.8,3
3813861.3 L252.6,363.4M254.8,361.3 L257.0,358.7M254.8,361.3 L252.4,357.2M260.3,360.3 L266.5,366.1M260.3,360.3 L257.0,358.7M258.1,355.1 L257.0,358.7M252.6,363.4 L248.0,368.1M252.6,363.4 L254.8,361.3M252.6,363.4 L249.5,360.2M252.6,363.4 L254.8,365.6M248.0,368.1 L245.8,370.4M248.0,368.1 L252.6,363.4M248.0,368.1 L253.6,373.8M249.5,360.2 L244.7,364.7M249.5,360.2 L247.4,358.0M249.5,360.2 L252.6,363.4M254.8,365.6 L252.6,363.4M254.8,365.6 L260.9,371.7M253.6,373.8 L251.4,376.0M253.6,373.8 L248.0,368.1M253.6,373.8 L258.5,378.9M243.1,379.0 L249.4,377.9 L251.4,376.0M243.1,379.0 L240.3,377.2M-32.1,581.8 L-34.1,584.3M-32.1,581.8 L-34.6,572.2M-32.1,581.8 L-27.4,575.6 L-33.6,572.7M-34.1,584.3 L-39.3,590.7M-34.1,584.3 L-32.1,581.8M-34.1,584.3 L-37.3,581.7M-34.1,584.3 L-21.7,594.2M-34.6,572.2 L-32.1,581.8M-33.6,572.7 L-27.4,575.6 L-32.1,581.8M-39.3,590.7 L-34.1,584.3M-39.3,590.7 L-42.9,587.8M-39.3,590.7 L-33.3,595.3M-37.3,581.7 L-39.1,580.2M-37.3,581.7 L-34.1,584.3M-21.7,594.2 L-26.9,600.4M-21.7,594.2 L-34.1,584.3M-21.7,594.2 L-12.7,582.5M-33.3,595.3 L-37.6,600.9M-33.3,595.3 L-39.3,590.7M-33.3,595.3 L-26.9,600.4M-24.5,721.9 L-22.9,718.1M-24.5,721.9 L-13.4,716.2M-22.9,718.1 L-24.5,721.9M-22.9,718.1 L-20.9,713.4 L-20.2,707.0M-22.9,718.1 L-21.3,705.7M-13.4,716.2 L-6.6,712.3M-13.4,716.2 L-24.5,721.9M-215.0,220.1 L-218.2,216.3M-215.0,220.1 L-209.5,224.9M-215.0,220.1 L-217.5,223.5M-215.0,220.1 L-209.2,216.2M-218.2,216.3 L-215.0,220.1M-209.5,224.9 L-215.0,220.1M-217.5,223.5 L-224.1,223.7M-217.5,223.5 L-215.9,238.2M-217.5,223.5 L-215.0,220.1M-209.2,216.2 L-205.4,219.3 L-198.3,219.3M-209.2,216.2 L-215.0,220.1M-209.2,216.2 L-200.8,211.7M-209.2,216.2 L-213.6,207.6M200.4,199.0 L203.2,200.3M199.9,200.1 L198.1,204.2M201.0,197.7 L202.6,193.9 L213.3,198.4 L211.3,202.9M203.2,200.3 L207.4,202.1M203.2,200.3 L200.4,199.0M198.1,204.2 L199.9,200.1M198.1,204.2 L194.1,202.7M194.1,202.7 L191.5,201.3M194.1,202.7 L198.1,204.2M660.0,711.9 L656.8,716.2M660.0,711.9 L676.8,724.7 L695.3,718.4M660.0,711.9 L647.8,703.2 L643.1,692.1 L635.2,701.3M669.6,725.9 L676.3,731.1M669.6,725.9 L656.8,716.2M669.6,725.9 L667.3,729.2 L663.2,731.6M695.3,718.4 L696.5,723.9M695.3,718.4 L676.8,724.7 L660.0,711.9M695.3,718.4 L694.6,711.3M588.0,596.3 L593.7,600.9M588.0,596.3 L587.7,592.3 L589.9,586.6 L592.5,581.0 L594.9,578.9M593.7,600.9 L588.0,596.3M594.9,578.9 L593.3,577.1M594.9,578.9 L592.5,581.0 L589.9,586.6 L587.7,592.3 L588.0,596.3M594.9,578.9 L599.1,573.3M141.5,644.9 L145.6,641.8M141.5,644.9 L146.8,653.7M141.5,644.9 L136.9,638.8M145.6,641.8 L141.5,644.9M145.6,641.8 L148.3,645.0M145.6,641.8 L135.5,627.2M145.6,641.8 L150.5,638.9M146.8,653.7 L142.2,657.0M146.8,653.7 L153.9,662.9M146.8,653.7 L141.5,644.9M136.9,638.8 L141.5,644.9M136.9,638.8 L129.8,629.3M136.9,638.8 L132.0,642.4M148.3,645.0 L155.0,654.7M148.3,645.0 L155.4,644.5 L157.8,646.4 L159.3,650.9 L155.0,654.7M148.3,645.0 L145.6,641.8M135.5,627.2 L145.6,641.8M135.5,627.2 L140.9,625.0M150.5,638.9 L140.9,625.0M150.5,638.9 L145.6,641.8M150.5,638.9 L156.4,635.2M391.6,-83.8 L389.7,-81.4 L386.5,-81.9M391.6,-83.8 L406.9,-80.3M391.6,-83.8 L387.7,-84.9M386.5,-81.9 L389.7,-81.4 L391.6,-83.8M406.9,-80.3 L407.1,-84.8M406.9,-80.3 L391.6,-83.8M384.8,-91.9 L387.4,-88.3 L387.7,-84.9M717.3,643.7 L687.2,608.9M717.3,643.7 L722.7,650.0M704.3,612.1 L720.2,614.8M704.3,612.1 L687.2,608.9M704.3,612.1 L730.1,641.9M720.2,614.8 L704.3,612.1M720.2,614.8 L721.8,607.3M730.1,641.9 L738.0,634.5M730.1,641.9 L722.7,650.0M730.1,641.9 L704.3,612.1M721.4,615.2 L737.2,618.1M721.4,615.2 L728.8,623.8M721.8,607.3 L719.5,603.4 L713.9,601.2 L711.9,594.3M721.8,607.3 L720.2,614.8M721.8,607.3 L725.4,603.5M752.1,617.5 L757.3,616.9M752.1,617.5 L749.8,614.7M752.1,617.5 L737.2,618.1M752.1,617.5 L753.7,619.9M757.3,616.9 L752.1,617.5M757.3,616.9 L762.4,612.8M757.3,616.9 L753.7,619.9M749.8,614.7 L743.7,607.7M749.8,614.7 L752.1,617.5M749.8,614.7 L758.0,607.5M737.2,618.1 L752.1,617.5M737.2,618.1 L721.4,615.2M753.7,619.9 L757.3,616.9M753.7,619.9 L752.1,617.5M753.7,619.9 L738.0,634.5M762.4,612.8 L774.5,602.8M762.4,612.8 L757.3,616.9M762.4,612.8 L758.0,607.5M378.2,210.9 L383.5,214.4M376.3,210.4 L375.0,215.7M376.3,210.4 L371.6,209.3M383.5,214.4 L378.2,210.9M378.7,210.2 L386.7,201.
381381M386.7,201.1 L381.7,196.6M386.7,201.1 L393.5,193.6M386.7,201.1 L378.7,210.2M381.7,196.6 L386.7,201.1M381.7,196.6 L376.6,192.0M381.7,196.6 L392.0,184.9M381.7,196.6 L373.8,205.3M393.5,193.6 L386.7,201.1M397.1,189.5 L392.0,184.9M397.1,189.5 L403.7,182.3M397.1,189.5 L393.8,193.2M392.0,184.9 L397.1,189.5M392.0,184.9 L387.0,180.4M392.0,184.9 L398.4,177.8M392.0,184.9 L381.7,196.6M393.8,193.2 L397.1,189.5M398.4,177.8 L391.2,171.6M398.4,177.8 L392.0,184.9M398.4,177.8 L403.7,182.3M417.6,167.3 L414.3,170.9M417.6,167.3 L413.5,164.0M414.3,170.9 L417.6,167.3M413.5,164.0 L417.6,167.3M413.5,164.0 L405.6,160.7 L401.3,155.7M419.8,167.1 L423.4,170.0M417.7,165.4 L367.2,118.9 L317.0,92.7 L311.3,91.1M494.2,163.8 L496.2,165.4M494.2,163.8 L498.3,163.0 L510.3,173.6 L516.5,176.6M508.8,184.0 L511.5,184.9 L518.6,182.7 L526.4,187.4 L530.7,185.6 L531.7,183.8M508.8,184.0 L515.5,180.6 L516.5,176.6M126.0,633.9 L132.0,642.4M126.0,633.9 L124.1,631.4M127.8,629.9 L120.4,623.1M127.8,629.9 L124.1,631.4M132.0,642.4 L142.2,657.0M132.0,642.4 L126.0,633.9M132.0,642.4 L136.9,638.8M132.0,642.4 L127.2,645.7M142.2,657.0 L132.0,642.4M142.2,657.0 L146.8,653.7M142.2,657.0 L137.6,660.0M142.2,657.0 L151.0,669.7M127.2,645.7 L137.6,660.0M127.2,645.7 L121.2,636.9M127.2,645.7 L132.0,642.4M127.2,645.7 L122.4,649.2M137.6,660.0 L142.2,657.0M137.6,660.0 L138.8,662.4M137.6,660.0 L127.2,645.7M151.0,669.7 L142.2,657.0M151.0,669.7 L144.1,669.2 L138.8,662.4M151.0,669.7 L154.1,667.9 L153.9,662.9M478.8,126.0 L474.5,122.3M478.8,126.0 L482.8,125.8M474.5,122.3 L468.8,128.2M474.5,122.3 L465.7,115.2M474.5,122.3 L478.8,126.0M482.8,125.8 L478.8,126.0M482.8,125.8 L486.8,123.4 L491.2,123.0M246.1,356.6 L248.9,356.1M246.1,356.6 L243.1,353.7 L241.2,353.7M247.4,358.0 L249.5,360.2M248.9,356.1 L252.4,357.2M248.9,356.1 L246.1,356.6M241.2,353.7 L239.7,353.1 L239.7,354.8M241.2,353.7 L243.1,353.7 L246.1,356.6M711.9,594.3 L705.9,583.0 L705.5,579.6M711.9,594.3 L713.9,601.2 L719.5,603.4 L721.8,607.3M725.4,603.5 L728.5,606.9M725.4,603.5 L721.8,607.3M725.4,603.5 L736.9,600.0M694.4,554.8 L705.7,573.5 L705.5,579.6M705.5,579.6 L705.7,573.5 L694.4,554.8M705.5,579.6 L705.9,583.0 L711.9,594.3M705.5,579.6 L701.5,580.6 L698.2,579.4M305.7,107.2 L303.2,105.3M305.7,107.2 L309.4,110.1M305.7,107.2 L308.4,104.3M309.4,110.1 L313.0,106.3M309.4,110.1 L305.7,107.2M309.4,110.1 L311.9,115.4M308.4,104.3 L305.7,107.2M308.4,104.3 L310.2,100.1 L309.2,97.9M29.7,-100.3 L38.0,-97.1M29.7,-100.3 L24.0,-95.4 L22.7,-90.6M29.7,-100.3 L37.0,-112.0M38.0,-97.1 L42.7,-98.5M38.0,-97.1 L29.7,-100.3M22.7,-90.6 L29.8,-90.8M22.7,-90.6 L21.7,-87.4 L17.6,-82.9M22.7,-90.6 L24.0,-95.4 L29.7,-100.3M37.0,-112.0 L29.7,-100.3M465.9,245.7 L462.9,245.4M465.9,245.7 L470.9,246.0M466.0,245.3 L466.2,242.1M462.9,245.4 L465.9,245.7M462.9,245.4 L455.4,244.6M466.2,242.1 L466.0,245.3M398.0,279.1 L398.0,285.3M398.0,285.3 L398.0,279.1M398.0,285.3 L402.2,286.2M398.0,285.3 L379.9,281.3M402.2,286.2 L398.0,285.3M402.2,286.2 L400.3,287.5M402.2,286.2 L405.1,284.7M258.5,378.9 L253.6,373.8M258.5,378.9 L262.1,380.3M258.2,379.3 L253.2,384.3 L246.0,386.7 L234.8,386.8M262.1,380.3 L261.9,384.1M262.1,380.3 L258.5,378.9M206.6,446.0 L209.6,439.2M214.3,426.3 L209.6,439.2M214.3,426.3 L217.4,417.5M-20.3,625.7 L-24.1,622.4M-20.3,625.7 L-28.6,634.1M-24.1,622.4 L-43.0,607.7M-24.1,622.4 L-20.3,625.7M-24.1,622.4 L-19.1,615.4M-43.0,607.7 L-24.1,622.4M-43.0,607.7 L-37.6,600.9M-43.0,607.7 L-49.1,616.3M-19.1,615.4 L-37.6,600.9M-19.1,615.4 L-24.1,622.4M-19.1,615.4 L-14.7,609.7M-37.6,600.9 L-43.0,607.7M-37.6,600.9 L-33.3,595.3M-37.6,600.9 L-19.1,615.4M-37.6,600.9 L-49.7,593.4 L-44.1,587.8M-49.1,616.3 L-59.0,610.9M-49.1,616.3 L-43.0,607.7M-49.1,616.3 L-36.8,624.6M371.1,525.3 L372.6,534.1 L371.6,540.9M368.1,541.2 L371.6,540.9M368.1,541.2 L367.3,533.5M284.4,-17.2 L280.6,-10.5M280.6,-10.5 L275.2,-4.3 L272.8,1.3M280.6,-10.5 L284.4,-17.2M280.6,-10.5 L274.5,-14.2 L268.8,-21.3M272.8,1.3 L275.2,-4.3 L280.6,-10.5M272.8,1.3 L283.4,2.1 L289.6,4.3M268.8,-21.3 L274.5,-14.2 L280.6,-10.5M272.2,1.9 L267.9,4.7M289.6,4.3 L295.2,2.2 L305.2,3.4 L328.2,1.3 L333.4,-0.9 L339.5,-7.0M289.6,4.3 L283.4,2.1 L272.8,1.3M238.8,42.7 L235.6,45.2M238.8,42.7 L261.0,14.2M238.8,42.7 L245.3,49.7 L250.3,51.2M235.6,45.2 L226.1,51.9M235.6,45.2 L238.8,42.7M235.6,45.2 L235.9,39.4 L234.4,34.5M261.0,14.2 L238.8,42.7M261.0,14.2 L263.6,10.4M261.0,14.2 L263.1,16.1 L263.7,18.6 L258.5,30.7 L259.0,36.0M250.3,51.2 L253.9,55.0M250.3,51.2 L245.3,49.7 L238.8,42.7M216.7,61.8 L208.6,72.5M216.7,61.8 L226.1,51.9M207.3,79.9 L213.3,93.5M207.3,79.9 L208.6,72.5M207.3,79.9 L202.0,75.8 L198.5,75.1 L196.4,70.6M213.3,93.5 L207.3,79.9M213.3,93.5 L221.8,90.0 L225.3,86.3M208.6,72.5 L207.3,79.9M208.6,72.5 L216.7,61.8M196.4,70.6 L198.5,75.1 L202.0,75.8 L207.3,79.9M196.4,70.6 L193.0,67.0M213.6,94.3 L217.4,103.7M225.3,86.3 L219.9,81.8M225.3,86.3 L229.5,79.9M225.3,86.3 L221.8,90.0 L213.3,93.5M399.6,296.4 L398.5,294.6 L403.2,291.5M403.2,291.5 L400.3,287.5M403.2,291.5 L398.5,294.6 L399.6,296.4M403.2,291.5 L407.7,288.5 L405.3,285.1M-115.5,674.9 L-117.5,678.2M-115.5,674.9 L-111.1,666.2M-96.5,673.4 L-94.0,664.9M-96.5,673.4 L-90.3,675.0 L-83.7,674.9 L-78.5,672.0 L-76.0,668.3M-96.5,673.4 L-104.6,667.5 L-111.1,666.2M372.7,479.0 L374.5,484.4 L377.7,487.5M372.7,479.0 L373.7,469.1M371.1,479.4 L368.2,481.3 L366.6,479.1 L369.8,477.0 L371.1,479.4M371.1,479.4 L369.8,477.0 L366.6,479.1 L368.2,481.3 L371.1,479.4M373.7,469.1 L372.7,479.0M373.7,469.1 L373.3,461.8 L369.9,457.9 L367.3,456.9M373.7,469.1 L370.3,469.6M240.3,234.0 L235.9,232.7M240.3,234.0 L244.0,235.0M232.9,242.8 L231.4,249.1M232.9,242.8 L240.8,244.8M496.0,284.1 L497.5,281.9M496.0,284.1 L488.7,278.7M496.0,284.1 L493.7,287.9 L489.6,285.8M504.5,270.9 L502.3,273.6M504.5,270.9 L505.7,268.4M500.5,272.2 L495.9,268.2M499.6,278.2 L492.3,273.1M499.6,278.2 L502.3,273.6M499.6,278.2 L497.5,281.9M505.7,268.4 L505.1,261.1M505.7,268.4 L504.5,270.9M505.1,261.1 L505.7,268.4M505.0,260.1 L508.2,259.0M508.2,259.0 L508.8,256.3M508.2,259.0 L505.0,260.1M503.3,259.6 L501.9,257.5M485.3,164.2 L489.1,162.3M485.3,164.2 L486.9,166.4M485.3,164.2 L470.6,171.4M489.1,162.3 L485.3,164.2M489.1,162.3 L497.7,157.7M486.9,166.4 L485.3,164.2M484.3,162.5 L480.9,161.5 L473.5,168.1 L471.4,166.3M470.6,171.4 L475.8,182.1M470.6,171.4 L485.3,164.2M470.6,171.4 L463.3,174.0 L458.5,170.6M486.3,167.2 L476.0,179.3M494.9,173.7 L498.3,176.6M494.9,173.7 L491.8,170.7M498.3,176.6 L502.6,180.3M498.3,176.6 L494.9,173.7M502.6,180.3 L505.7,183.0M502.6,180.3 L498.3,176.6M505.7,183.0 L507.9,184.9M505.7,183.0 L502.6,180.3M505.7,183.0 L506.0,179.5M507.9,184.9 L505.7,183.0M507.9,184.9 L520.4,195.7M506.0,179.5 L505.7,183.0M506.0,179.5 L504.7,174.8M506.0,179.5 L508.5,178.1M520.4,195.7 L523.2,198.1M520.4,195.7 L507.9,184.9M523.2,198.1 L52
381386.9,201.2M523.2,198.1 L520.4,195.7M523.2,198.1 L519.3,196.6M519.3,196.6 L523.2,198.1M97.0,566.1 L83.9,573.3 L80.0,577.4M97.0,566.1 L100.7,558.0M504.7,174.8 L499.8,174.8M504.7,174.8 L506.0,179.5M504.7,174.8 L508.5,178.1M504.7,174.8 L502.5,171.7 L502.3,168.6 L497.8,165.3 L496.2,165.4M499.8,174.8 L504.7,174.8M508.5,178.1 L506.0,179.5M508.5,178.1 L504.7,174.8M508.6,338.0 L506.4,339.1M510.2,337.3 L513.2,336.0M514.0,349.8 L509.8,351.5M519.6,362.0 L518.2,359.0M519.6,362.0 L518.9,364.5M518.2,359.0 L519.6,362.0M518.2,359.0 L516.3,354.5M518.9,364.5 L519.6,362.0M529.7,365.2 L524.4,363.7M620.5,450.9 L623.5,451.8M620.5,450.9 L616.8,449.2M620.7,449.9 L617.0,447.8 L616.6,443.8M620.7,449.9 L621.3,447.7 L618.6,444.0M623.5,451.8 L620.5,450.9M623.5,451.8 L625.0,445.9M623.5,451.8 L628.3,453.0M616.8,449.2 L620.5,450.9M541.7,252.1 L547.3,251.3M541.7,252.1 L534.0,253.2M541.7,252.1 L529.4,241.5M541.7,252.1 L548.9,258.2M547.3,251.3 L541.7,252.1M547.3,251.3 L556.3,250.5 L549.2,244.3M534.0,253.2 L541.7,252.1M534.0,253.2 L531.5,253.6M534.0,253.2 L543.8,258.3M548.9,258.2 L541.7,252.1M531.5,253.6 L540.4,260.6M531.5,253.6 L534.0,253.2M531.5,253.6 L526.1,254.3M543.8,258.3 L534.0,253.2M540.4,260.6 L531.5,253.6M526.1,254.3 L531.5,253.6M525.5,254.4 L523.0,258.6M525.5,254.0 L523.0,249.3M523.0,258.6 L525.5,254.4M-168.7,228.8 L-163.9,232.9M-168.7,228.8 L-172.8,232.9M-168.7,228.8 L-166.3,225.7M-168.7,228.8 L-172.1,225.6 L-174.6,220.8M-178.5,226.4 L-172.8,232.9M-166.8,234.7 L-168.6,236.7 L-172.8,232.9M345.4,163.2 L335.9,170.2M345.4,163.2 L353.5,158.1M333.7,180.4 L336.5,182.1M333.7,180.4 L326.9,192.5M333.7,180.4 L335.9,170.2M127.9,-9.0 L129.5,-5.4 L133.1,-4.7M127.9,-9.0 L142.1,-22.8M127.9,-9.0 L121.0,-4.8M133.1,-4.7 L129.5,-5.4 L127.9,-9.0M142.1,-22.8 L147.4,-28.5M142.1,-22.8 L127.9,-9.0M121.0,-4.8 L112.7,-10.1 L111.2,-14.6M121.0,-4.8 L127.9,-9.0M121.0,-4.8 L117.9,5.6M95.1,708.6 L78.0,704.4M95.1,708.6 L96.5,702.9M95.1,708.6 L111.4,712.1 L117.7,717.2 L119.3,715.7 L118.4,708.5M436.9,426.6 L444.0,421.8M436.9,426.6 L435.1,424.0M436.9,426.6 L433.7,428.6 L429.1,428.7M444.0,421.8 L450.5,417.2M444.0,421.8 L436.9,426.6M444.0,421.8 L442.0,419.0M435.1,424.0 L436.9,426.6M450.5,417.2 L444.0,421.8M450.5,417.2 L454.9,413.7 L456.2,410.0M450.5,417.2 L448.5,415.3M450.5,417.2 L454.4,421.3 L460.2,417.6M442.0,419.0 L444.0,421.8M456.2,410.0 L456.6,404.9M456.2,410.0 L459.3,410.7M456.2,410.0 L454.9,413.7 L450.5,417.2M448.5,415.3 L444.9,413.1M448.5,415.3 L450.5,417.2M460.2,417.6 L463.3,422.0M460.2,417.6 L454.4,421.3 L450.5,417.2M460.2,417.6 L462.9,415.0M456.6,404.9 L456.2,410.0M456.6,404.9 L452.0,404.7M459.3,410.7 L456.2,410.0M452.0,404.7 L456.6,404.9M452.0,404.7 L444.3,404.4M452.0,404.7 L452.1,400.5M34.9,402.1 L34.7,396.5M34.7,396.5 L35.7,393.2M34.7,396.5 L32.7,396.9 L31.9,395.0 L34.3,392.6 L35.7,393.2M34.7,396.5 L34.9,402.1M33.8,402.5 L27.1,399.0 L20.0,392.3M35.4,402.7 L38.1,404.0M35.7,393.2 L38.5,390.2M35.7,393.2 L34.7,396.5M35.7,393.2 L34.3,392.6 L31.9,395.0 L32.7,396.9 L34.7,396.5M558.2,-37.6 L562.8,-44.7M558.2,-37.6 L553.3,-40.6M558.2,-37.6 L564.0,-34.2 L567.7,-28.1M562.8,-44.7 L558.2,-37.6M562.8,-44.7 L565.2,-47.8M553.3,-40.6 L558.2,-37.6M553.3,-40.6 L550.2,-42.5M553.3,-40.6 L549.9,-36.4 L546.4,-35.3M567.7,-28.1 L564.0,-34.2 L558.2,-37.6M567.7,-28.1 L576.7,-28.9 L579.6,-27.9M482.3,650.3 L484.9,648.9M482.3,650.3 L480.2,647.9M482.3,650.3 L483.0,660.0M484.9,648.9 L482.3,650.3M480.2,647.9 L482.3,650.3M466.2,649.6 L464.9,650.3 L463.5,659.2M471.4,696.1 L473.9,703.8M471.4,696.1 L466.4,683.0M471.4,696.1 L460.3,699.8M471.4,696.1 L490.0,690.0M460.9,686.6 L466.4,683.0M471.1,682.4 L470.8,674.1M471.1,682.4 L476.0,682.8M471.1,682.4 L466.4,683.0M473.9,703.8 L471.4,696.1M473.9,703.8 L455.4,710.1M473.9,703.8 L489.6,699.0M460.3,699.8 L457.3,700.7M460.3,699.8 L471.4,696.1M490.0,690.0 L489.7,697.0M490.0,690.0 L490.3,686.9M490.0,690.0 L471.4,696.1M455.4,710.1 L473.9,703.8M455.4,710.1 L455.7,702.1M489.6,699.0 L473.9,703.8M489.6,699.0 L489.7,706.6M683.8,181.6 L688.4,186.1M683.8,181.6 L680.2,185.4 L683.2,188.5M683.8,181.6 L680.9,179.3M683.2,188.5 L686.8,194.0M683.2,188.5 L680.2,185.4 L683.8,181.6M683.2,188.5 L683.1,192.1 L684.8,195.9M680.9,179.3 L676.9,182.7M680.9,179.3 L685.1,173.9M680.9,179.3 L683.8,181.6M680.9,179.3 L670.2,172.8M686.8,194.0 L691.5,189.1M686.8,194.0 L683.2,188.5M686.8,194.0 L684.8,195.9M691.5,189.1 L686.8,194.0M691.5,189.1 L694.0,191.5M691.5,189.1 L688.4,186.1M684.8,195.9 L686.8,194.0M684.8,195.9 L683.1,192.1 L683.2,188.5M317.5,293.0 L321.7,293.3M317.5,293.0 L313.4,292.0M330.7,296.8 L326.9,294.0 L321.7,293.3M505.3,290.3 L512.1,282.5M521.5,271.7 L514.3,280.1M523.4,266.1 L524.2,263.5M523.4,266.1 L522.1,270.7M524.2,263.5 L523.4,266.1M522.1,270.7 L523.4,266.1M-81.6,-90.4 L-70.6,-82.8 L-61.6,-85.8M-81.6,-90.4 L-80.8,-95.0 L-83.3,-104.7 L-80.8,-112.2M-81.6,-90.4 L-84.0,-87.1M-81.6,-90.4 L-84.0,-87.1M-61.6,-85.8 L-52.6,-85.4 L-47.0,-88.6 L-45.0,-93.5 L-46.9,-104.0M-61.6,-85.8 L-70.6,-82.8 L-81.6,-90.4M-84.0,-87.1 L-74.4,-81.4 L-63.9,-77.1M-84.0,-87.1 L-111.0,-106.0M-84.0,-87.1 L-81.6,-90.4M-84.0,-87.1 L-81.6,-90.4M-61.7,-87.8 L-62.2,-92.4M-46.9,-104.0 L-45.0,-93.5 L-47.0,-88.6 L-52.6,-85.4 L-61.6,-85.8M-62.2,-92.4 L-61.7,-87.8M475.8,182.1 L481.2,186.7M475.8,182.1 L470.6,171.4M474.5,183.4 L472.1,186.0M481.2,186.7 L475.8,182.1M481.2,186.7 L488.7,193.1M25.9,93.5 L20.4,98.8M25.9,93.5 L31.3,92.4 L37.8,95.4M25.9,93.5 L22.4,88.1 L17.4,84.4M37.8,95.4 L31.3,92.4 L25.9,93.5M37.8,95.4 L41.4,97.3M37.8,95.4 L39.3,87.2M17.4,84.4 L19.1,77.6M17.4,84.4 L9.4,83.8M17.4,84.4 L22.4,88.1 L25.9,93.5M26.2,104.9 L20.4,98.8M26.2,104.9 L28.5,108.4 L28.2,112.7 L22.5,120.5M26.2,104.9 L30.8,101.1M44.3,79.5 L59.2,93.8M41.4,97.3 L37.8,95.4M41.4,97.3 L53.8,98.6 L59.2,93.8M39.3,87.2 L37.8,95.4M6.6,127.2 L5.9,118.3M22.5,120.5 L24.2,122.6M22.5,120.5 L28.2,112.7 L28.5,108.4 L26.2,104.9M22.5,120.5 L15.8,121.4 L10.7,118.6 L5.9,118.3M-21.0,338.9 L-20.3,342.2M-46.4,335.6 L-32.7,342.5 L-20.3,342.2M-14.5,342.3 L-20.3,342.2M-14.5,342.3 L-12.6,343.8M-14.5,342.3 L-11.9,343.2M16.1,277.2 L20.0,282.0M16.1,277.2 L12.8,274.6 L8.9,275.3M20.0,282.0 L16.1,277.2M8.9,275.3 L12.8,274.6 L16.1,277.2M8.9,275.3 L-1.3,283.2M512.8,370.9 L511.5,374.9M119.6,333.0 L112.4,334.8 L108.8,340.9M119.6,333.0 L118.2,328.7M119.6,333.0 L122.2,344.0M108.8,340.9 L112.4,334.8 L119.6,333.0M118.2,328.7 L121.8,327.0M118.2,328.7 L113.2,320.6 L107.9,319.3M118.2,328.7 L119.6,333.0M122.2,344.0 L111.6,349.9 L108.1,353.4M122.2,344.0 L128.1,341.0 L131.5,336.4M122.2,344.0 L119.6,333.0M122.2,344.0 L128.6,359.2 L127.1,365.1 L124.0,369.8M489.8,326.1 L490.4,324.5 L496.5,321.4 L497.4,319.8M497.4,319.8 L500.3,316.4 L503.9,317.3 L499.1,320.1 L497.4,319.8M497.4,319.8 L499.1,320.1 L503.9,317.3 L500.3,316.4 L497.4,319.8M497.4,319.8 L49
381386.5,321.4 L490.4,324.5 L489.8,326.1M504.7,322.8 L491.3,328.5M494.8,335.3 L489.4,337.5M494.8,335.3 L493.8,332.7M489.4,337.5 L494.8,335.3M495.1,335.9 L499.2,334.7M495.1,335.9 L498.1,342.6M498.1,342.6 L492.7,344.9M498.1,342.6 L504.2,339.9M498.1,342.6 L495.1,335.9M498.1,342.9 L500.7,348.7M492.7,344.9 L490.2,345.9M492.7,344.9 L498.1,342.6M504.2,339.9 L498.1,342.6M500.7,348.7 L506.9,346.3M500.7,348.7 L497.9,350.0M500.7,348.7 L498.1,342.9M506.9,346.3 L500.7,348.7M497.9,350.0 L500.7,348.7M497.9,350.0 L493.1,351.6 L491.3,348.9M495.7,404.0 L490.7,403.6 L491.1,407.9M-130.5,632.9 L-134.3,625.6M-125.2,625.4 L-129.1,634.1M73.3,616.1 L79.3,616.7M73.3,616.1 L67.0,615.6M73.4,616.3 L76.1,627.7M79.3,616.7 L85.3,617.1M79.3,616.7 L73.3,616.1M67.0,615.6 L73.3,616.1M67.0,615.6 L60.9,615.1M76.1,627.7 L80.4,644.6M76.1,627.7 L73.4,616.3M76.1,627.7 L70.5,629.2M76.1,627.7 L81.8,626.2M80.4,644.6 L84.1,658.9M80.4,644.6 L76.1,627.7M80.4,644.6 L85.9,643.1M80.4,644.6 L74.6,646.1M70.5,629.2 L64.9,630.6M70.5,629.2 L76.1,627.7M70.5,629.2 L74.6,646.1M70.5,629.2 L67.1,615.9M81.8,626.2 L85.9,643.1M81.8,626.2 L79.3,616.9M81.8,626.2 L76.1,627.7M81.8,626.2 L87.3,624.8M84.1,658.9 L87.1,669.6M84.1,658.9 L80.4,644.6M84.1,658.9 L89.8,657.5M84.1,658.9 L78.8,661.3M85.9,643.1 L91.6,641.6M85.9,643.1 L80.4,644.6M85.9,643.1 L89.8,657.5M85.9,643.1 L81.8,626.2M74.6,646.1 L80.4,644.6M74.6,646.1 L69.4,647.4M74.6,646.1 L78.8,661.3M74.6,646.1 L70.5,629.2M87.1,669.6 L84.1,658.9M87.1,669.6 L92.1,662.9 L95.3,662.9M87.1,669.6 L88.2,673.0M89.8,657.5 L85.9,643.1M89.8,657.5 L84.1,658.9M89.8,657.5 L95.2,655.8M175.8,598.6 L188.5,610.2M175.8,598.6 L184.0,590.6M175.8,598.6 L166.3,606.9M188.5,610.2 L195.7,616.4M188.5,610.2 L175.8,598.6M184.0,590.6 L189.4,594.1 L195.8,594.1M184.0,590.6 L175.8,598.6M166.3,606.9 L163.6,609.3M166.3,606.9 L164.1,603.6 L166.8,601.0 L166.7,599.0 L159.5,594.6 L148.3,591.4 L141.9,586.8M166.3,606.9 L175.8,598.6M197.9,618.4 L195.7,616.4M381.8,323.6 L384.1,325.8M381.8,323.6 L379.2,331.1M381.8,323.6 L389.9,300.4M384.1,325.8 L381.8,323.6M384.1,325.8 L391.1,332.0M379.2,331.1 L381.8,323.6M379.2,331.1 L383.9,333.9M379.2,331.1 L371.5,343.0M389.9,300.4 L381.8,323.6M389.9,300.4 L391.7,296.1M396.9,336.3 L394.2,334.7M396.9,336.3 L403.9,337.6 L409.3,333.2 L415.6,334.4M396.9,336.3 L396.7,343.2M394.2,334.7 L396.9,336.3M415.6,334.4 L409.3,333.2 L403.9,337.6 L396.9,336.3M396.7,343.2 L393.3,344.2M396.7,343.2 L397.5,348.8 L405.9,355.3M396.7,343.2 L396.9,336.3M393.3,344.2 L396.7,343.2M405.9,355.3 L408.1,356.5M405.9,355.3 L397.5,348.8 L396.7,343.2M408.1,356.5 L413.7,341.2M408.1,356.5 L405.9,355.3M408.1,356.5 L405.8,360.7M408.1,356.5 L414.4,358.4M413.7,341.2 L408.1,356.5M413.7,341.2 L416.1,334.5M405.8,360.7 L403.1,365.1M405.8,360.7 L408.1,356.5M414.4,358.4 L413.8,364.5M414.4,358.4 L420.7,355.8M414.4,358.4 L408.1,356.5M565.3,522.7 L560.1,529.0M565.3,522.7 L573.1,529.5M565.3,522.7 L574.0,511.3 L585.4,492.1 L590.4,489.2 L602.0,487.0M590.7,545.5 L585.4,551.7M590.7,545.5 L573.1,529.5M590.7,545.5 L597.1,550.8M469.1,629.8 L467.5,633.4M469.1,629.8 L471.8,631.1M467.5,633.4 L469.1,629.8M471.8,631.1 L469.1,629.8M456.9,630.1 L453.7,630.4M456.9,629.2 L456.7,626.8M453.7,630.4 L456.9,630.1M453.7,630.4 L448.1,630.8 L442.6,637.1M446.7,170.6 L443.0,167.4M446.7,170.6 L443.2,174.6M446.7,170.6 L449.1,174.0M446.7,170.6 L448.5,168.7M443.0,167.4 L446.7,170.6M443.2,174.6 L446.7,170.6M443.2,174.6 L438.0,180.3M449.1,174.0 L446.7,170.6M449.1,174.0 L450.3,183.1M448.5,168.7 L446.7,170.6M436.9,161.5 L434.3,159.0M436.9,161.5 L439.2,163.7M436.9,161.5 L443.3,154.8M436.9,161.5 L432.2,166.4M434.3,159.0 L428.7,153.8M434.3,159.0 L436.9,161.5M439.2,163.7 L436.9,161.5M443.3,154.8 L445.8,157.3M443.3,154.8 L440.7,152.3M443.3,154.8 L436.9,161.5M443.3,154.8 L445.4,152.6M432.2,166.4 L428.7,169.9M432.2,166.4 L436.9,161.5M428.7,153.8 L426.1,151.2M428.7,153.8 L434.3,159.0M428.7,153.8 L430.6,151.8M428.7,153.8 L426.3,156.3M426.1,151.2 L428.7,153.8M430.6,151.8 L435.2,147.1M430.6,151.8 L428.7,153.8M426.3,156.3 L428.7,153.8M426.3,156.3 L422.9,159.9M422.7,147.8 L413.5,138.9M422.7,147.8 L424.6,149.7M422.7,147.8 L418.0,152.7M422.7,147.8 L425.3,145.0M413.5,138.9 L422.7,147.8M413.5,138.9 L396.9,125.4M413.5,138.9 L408.1,144.8M424.6,149.7 L422.7,147.8M418.0,152.7 L415.7,155.0M418.0,152.7 L422.7,147.8M425.3,145.0 L422.7,147.8M425.3,145.0 L429.0,141.1M396.9,125.4 L390.9,122.6M396.9,125.4 L401.4,122.2 L405.0,114.5M396.9,125.4 L413.5,138.9M408.1,144.8 L413.5,138.9M390.9,122.6 L385.1,119.7M390.9,122.6 L396.9,125.4M390.9,122.6 L390.5,126.9 L388.1,132.9M385.1,119.7 L390.9,122.6M385.1,119.7 L385.5,128.8 L388.1,132.9M383.6,118.6 L377.3,112.1M388.1,132.9 L390.5,126.9 L390.9,122.6M388.1,132.9 L390.8,137.0 L390.3,138.6 L388.1,139.6 L384.8,138.3 L379.9,132.3 L371.9,132.8 L367.4,129.0M388.1,132.9 L385.5,128.8 L385.1,119.7M362.1,95.9 L377.3,112.1M360.6,97.3 L359.4,100.3 L363.0,104.1M356.2,89.7 L354.0,87.5M356.2,89.7 L368.1,78.6 L370.3,78.5M354.0,87.5 L356.2,89.7M357.1,90.6 L359.7,93.5M332.2,76.4 L328.0,80.3M332.2,76.4 L338.0,70.8M335.8,68.7 L334.1,67.0M335.8,68.7 L338.0,70.8M342.2,66.8 L344.6,62.2M342.2,66.8 L338.0,70.8M323.2,55.0 L328.8,61.1M323.2,55.0 L318.9,60.4M328.8,61.1 L323.2,55.0M328.8,61.1 L334.1,67.0M318.9,60.4 L323.2,55.0M323.3,52.3 L318.8,47.7 L318.7,39.8M318.7,39.8 L317.9,36.5M318.7,39.8 L318.8,47.7 L323.3,52.3M324.9,53.1 L327.4,50.7M478.4,501.1 L480.0,497.5M478.4,501.1 L476.5,502.0 L470.6,498.3M478.4,501.1 L482.6,502.5 L483.3,504.5 L488.3,505.5M480.0,497.5 L478.4,501.1M470.6,498.3 L476.5,502.0 L478.4,501.1M488.3,505.5 L489.3,506.0 L489.7,505.2 L488.8,504.6 L488.3,505.5M488.3,505.5 L488.8,504.6 L489.7,505.2 L489.3,506.0 L488.3,505.5M488.3,505.5 L483.3,504.5 L482.6,502.5 L478.4,501.1M527.1,393.5 L531.1,395.4M527.1,393.5 L523.4,391.6M527.1,393.5 L525.3,400.3M111.7,425.9 L119.5,433.1M111.7,425.9 L116.5,421.4M111.7,425.9 L103.2,436.0 L99.5,442.8M119.5,433.1 L127.9,440.8M119.5,433.1 L111.7,425.9M99.5,442.8 L101.9,445.2 L100.7,452.2M99.5,442.8 L90.2,462.6 L53.9,526.6M99.5,442.8 L103.2,436.0 L111.7,425.9M137.7,431.6 L140.2,430.7M137.7,431.6 L127.9,440.8M156.6,460.4 L167.2,449.7 L170.2,451.2M156.6,460.4 L149.3,460.3 L143.4,455.8M156.6,460.4 L160.2,468.4M170.2,451.2 L167.2,449.7 L156.6,460.4M160.2,468.4 L155.2,472.8M160.2,468.4 L165.1,472.7 L165.0,476.0 L168.3,481.4 L170.9,482.1M160.2,468.4 L156.6,460.4M650.5,656.9 L644.0,649.6 L642.0,645.4 L643.7,641.2 L648.0,640.1M650.5,656.9 L652.2,653.1 L656.8,648.7M650.5,656.9 L648.9,659.8 L642.4,665.5M648.0,640.1 L654.3,646.5M648.0,640.1 L653.9,641.1 L654.3,646.5M648.0,640.1 L643.7,641.2 L642.0,645.4 L644.0,649.6 L650.5,656.9M656.8,648.7 L659.3,650.1M656.8,648.7 L654.3,646.5M656.8,648.7 L652.2,653.1 L650.5,656.9M654.3,646.5 L656.8,648.7M654.3,646.5 L648.0,640.1M654.3,646.5 L653.9,641.1 L648.0,640.1M659.3,650.1 L656.8,648.7M659.3,650.1 L664.0,654.6M659.3,650.1 L665.3,649.8M665.3,649.8 L659.3,650.1M665.3,649.8 L664.0,654.6M412.0,92.2 L405.2,85.1M405.2,85.1 L412.0,92.2M405.2,85.1 L409.3,85.8 L415.5,90.9M415.5,90.9 L409.3,85.8 L405.2,85.1M396.2,76.1 L399.2,79.1M396.2,76.1 L389.9,82.0M396.2,76.1 L404.4,68.2M399.2,79.1 L396.2,76.1M389.9,82.0 L396.2,76.1M389.9,82.0 L401.2,94.0M389.9,82.0 L384.3,87.7M404.4,68.2 L396.2,76.1M404.4,68.2 L407.8,64.9M542.1,262.5 L539.8,266.0M341.0,294.5 L342.8,290.2M340.6,294.3 L329.3,289.7M342.8,290.2 L350.4,293.2M342.8,290.2 L341.0,294.5M342.8,290.2 L350.9,270.1M329.3,289.7 L340.6,294.3M525.3,400.3 L529.4,401.4M525.3,400.3 L527.1,393.5M525.3,400.3 L521.1,399.1M518.7,407.4 L517.8,410.5M518.7,407.4 L522.9,408.6M518.7,407.4 L521.1,399.1M303.3,379.4 L304.3,382.3 L306.9,384.2M303.3,379.4 L300.0,379.5M303.3,379.4 L307.2,377.2M306.9,384.2 L304.1,388.0 L302.4,387.4M306.9,384.2 L304.3,382.3 L303.3,379.4M300.0,379.5 L303.3,379.4M307.2,377.2 L303.3,379.4M405.1,284.7 L402.2,286.2M405.1,284.7 L409.4,282.5M405.3,285.1 L407.7,288.5 L403.2,291.5M409.4,282.5 L405.1,284.7M83.9,581.6 L87.2,585.2M83.9,581.6 L80.0,577.4M83.9,581.6 L90.2,576.5M83.9,581.6 L77.8,585.9 L69.5,589.1M80.0,577.4 L83.9,581.6M80.0,577.4 L77.6,580.0 L72.3,582.5M80.0,577.4 L83.9,573.3 L97.0,566.1M90.2,576.5 L95.8,573.9M90.2,576.5 L83.9,581.6M69.5,589.1 L70.2,594.4M69.5,589.1 L68.9,584.4M69.5,589.1 L77.8,585.9 L83.9,581.6M695.7,730.1 L696.7,733.5M695.7,730.1 L682.8,734.6M695.7,730.1 L697.0,728.9 L696.5,723.9M696.7,733.5 L699.3,740.9M696.7,733.5 L695.7,730.1M696.7,733.5 L700.6,732.5M696.5,723.9 L676.3,731.1M696.5,723.9 L695.3,718.4M696.5,723.9 L697.0,728.9 L695.7,730.1M700.6,732.5 L696.7,733.5M706.1,738.5 L699.3,740.9M709.5,746.4 L702.5,748.9M710.4,772.7 L707.8,765.0M710.4,772.7 L716.7,770.8M714.9,758.1 L716.1,762.3 L707.8,765.0M716.7,770.8 L710.4,772.7M398.3,533.4 L402.0,532.7M398.3,533.4 L392.7,536.0M402.0,532.7 L398.3,533.4M402.0,532.7 L408.4,530.2 L411.
381380,524.5 L411.6,518.9M392.7,536.0 L390.6,538.0M392.7,536.0 L394.0,538.2M392.7,536.0 L398.3,533.4M483.1,309.0 L474.2,303.8 L477.4,298.4M477.4,298.4 L481.1,292.1M477.4,298.4 L487.1,304.1M477.4,298.4 L474.2,303.8 L483.1,309.0M-213.1,155.5 L-210.1,147.1 L-211.4,134.6M-213.1,155.5 L-189.1,166.8 L-178.6,167.9M-211.4,134.6 L-206.9,133.7M-211.4,134.6 L-210.1,147.1 L-213.1,155.5M-178.6,167.9 L-155.3,167.7M-178.6,167.9 L-189.1,166.8 L-213.1,155.5M-137.1,165.7 L-127.2,164.7M-137.1,165.7 L-155.3,167.7M-137.1,165.7 L-136.7,169.5 L-138.1,169.5M-127.2,164.7 L-124.8,164.5M-127.2,164.7 L-137.1,165.7M-127.2,164.7 L-126.9,161.4M-155.3,167.7 L-137.1,165.7M-155.3,167.7 L-178.6,167.9M-138.1,169.5 L-136.7,169.5 L-137.1,165.7M-124.8,164.5 L-121.2,164.1M-124.8,164.5 L-127.2,164.7M-126.9,161.4 L-127.2,164.7M-126.9,161.4 L-126.4,156.1M-127.4,166.8 L-128.0,170.3M-112.8,162.5 L-113.2,169.7M-113.2,169.7 L-112.8,162.5M-111.1,161.9 L-103.3,159.6M-113.7,162.7 L-119.9,163.9M41.0,184.5 L48.2,186.7M41.0,184.5 L39.4,189.1M41.0,184.5 L33.1,181.8M48.2,186.7 L51.7,187.7M48.2,186.7 L41.0,184.5M39.4,189.1 L41.0,184.5M33.1,181.8 L41.0,184.5M33.1,181.8 L27.4,178.6 L19.4,177.7M51.7,187.7 L54.7,188.5M51.7,187.7 L48.2,186.7M54.7,188.5 L53.5,192.9M54.7,188.5 L51.7,187.7M54.7,188.5 L60.9,189.7M53.5,192.9 L54.7,188.5M60.9,189.7 L54.7,188.5M115.9,185.3 L114.4,172.3M115.9,185.3 L112.9,185.8M115.9,185.3 L120.6,184.2M114.4,172.3 L115.9,185.3M112.9,185.8 L115.9,185.3M120.6,184.2 L115.9,185.3M123.6,183.6 L125.2,177.9M123.6,183.6 L126.7,182.3M122.4,183.9 L130.0,186.4M125.2,177.9 L123.6,183.6M125.2,177.9 L126.7,182.3M125.2,177.9 L124.9,175.2M126.7,182.3 L130.0,186.4M126.7,182.3 L123.6,183.6M126.7,182.3 L125.2,177.9M588.2,64.8 L593.4,64.0M588.2,64.8 L585.7,55.4 L581.2,46.5M588.2,64.8 L588.0,77.2M121.8,673.9 L110.0,671.2M121.8,673.9 L121.8,668.1M122.4,675.9 L118.5,682.9M122.4,675.9 L127.6,678.1M121.8,668.1 L119.3,664.7M121.8,668.1 L121.8,673.9M121.8,668.1 L124.2,668.1 L131.0,671.9 L136.9,671.2 L137.7,669.5 L136.7,668.1 L130.5,664.2M118.5,682.9 L110.0,671.2M118.5,682.9 L122.4,675.9M118.5,682.9 L116.3,687.0M114.7,667.9 L119.3,664.7M114.7,667.9 L110.0,671.2M114.7,667.9 L101.7,649.6M105.2,674.6 L110.0,671.2M105.2,674.6 L95.3,662.9M105.2,674.6 L112.7,685.1 L116.3,687.0M95.2,655.8 L91.6,641.6M95.2,655.8 L97.6,653.8M95.2,655.8 L89.8,657.5M116.3,687.0 L118.5,682.9M116.3,687.0 L112.7,685.1 L105.2,674.6M116.3,687.0 L120.8,691.0M-8.5,613.9 L-9.1,619.4M-9.6,613.7 L-10.2,618.6M-8.0,612.6 L-6.6,609.5M-9.1,619.4 L-9.3,621.8M-9.1,619.4 L-8.5,613.9M-14.7,609.7 L-19.1,615.4M-16.1,608.7 L-23.9,602.7M-13.5,610.7 L-10.0,613.0M-13.5,610.7 L-11.5,612.8M-26.9,600.4 L-21.7,594.2M-26.9,600.4 L-33.3,595.3M-26.9,600.4 L-23.9,602.7M-23.9,602.7 L-26.9,600.4M-23.9,602.7 L-16.1,608.7M-44.1,587.8 L-49.7,593.4 L-37.6,600.9M-52.5,585.3 L-51.6,577.1M-52.5,585.3 L-44.6,587.0M-52.5,585.3 L-58.3,583.3 L-61.9,584.7 L-70.1,591.0M-51.6,577.1 L-52.5,585.3M-70.1,591.0 L-61.9,584.7 L-58.3,583.3 L-52.5,585.3M501.5,229.9 L506.7,234.4M501.5,229.9 L498.9,227.5M501.3,230.2 L497.0,235.2M506.7,234.4 L501.5,229.9M506.7,234.4 L515.9,242.0M498.9,227.5 L501.5,229.9M496.6,235.6 L488.5,228.6 L465.5,203.2 L455.3,194.1M497.0,235.2 L501.3,230.2M496.1,236.3 L491.0,241.7M496.1,236.3 L485.9,226.9M455.3,194.1 L465.5,203.2 L488.5,228.6 L496.6,235.6M487.0,247.4 L481.5,246.8M487.5,248.6 L486.5,251.8M486.5,251.8 L487.5,248.6M484.5,257.9 L485.8,253.9M485.6,259.0 L490.6,263.5M478.8,97.7 L484.1,100.9M484.1,100.9 L478.8,97.7M484.1,100.9 L483.0,104.2M484.1,100.9 L485.3,97.3M485.3,97.3 L484.1,100.9M533.8,430.9 L533.9,427.2 L532.4,426.1 L526.7,427.1 L522.7,425.8M533.8,430.9 L528.7,434.3 L526.7,437.7M522.7,425.8 L520.8,429.3M522.7,425.8 L515.5,421.8M522.7,425.8 L526.7,427.1 L532.4,426.1 L533.9,427.2 L533.8,430.9M526.7,437.7 L511.4,433.6M526.7,437.7 L531.7,439.5 L538.9,445.2M526.7,437.7 L528.7,434.3 L533.8,430.9M-198.3,219.3 L-205.4,219.3 L-209.2,216.2M-213.6,207.6 L-209.2,216.2M12.0,639.5 L9.6,637.6 L11.9,634.3M11.9,634.3 L9.6,637.6 L12.0,639.5M654.5,519.8 L652.1,521.7M654.5,519.8 L655.6,521.5 L659.8,522.3M654.5,519.8 L662.1,513.7 L664.6,510.2M652.1,521.7 L646.5,521.1M652.1,521.7 L654.5,519.8M652.1,521.7 L652.8,525.6M659.8,522.3 L655.6,521.5 L654.5,519.8M659.8,522.3 L660.5,526.2 L664.3,527.2M659.8,522.3 L664.2,523.0 L66
381385.2,524.9 L664.3,527.2M664.6,510.2 L661.4,507.4M664.6,510.2 L662.1,513.7 L654.5,519.8M664.3,527.2 L665.2,524.9 L664.2,523.0 L659.8,522.3M664.3,527.2 L660.5,526.2 L659.8,522.3M475.0,159.9 L473.1,163.2M473.1,163.2 L475.0,159.9M473.1,163.2 L471.4,166.3M476.9,159.1 L479.8,157.6 L479.2,154.7M475.4,157.6 L477.1,155.0 L479.2,154.7M15.0,679.1 L19.3,686.3M14.7,678.6 L11.9,674.6M19.3,686.3 L15.0,679.1M19.3,686.3 L20.7,688.9M1.5,668.4 L6.2,670.1 L11.9,674.6M1.0,667.5 L2.1,662.1M-13.8,666.1 L-5.9,667.4M-14.5,665.3 L-11.3,642.3M-14.9,667.2 L-17.2,679.8M499.3,663.4 L509.9,658.0M505.7,649.6 L509.9,658.0M505.7,649.6 L523.2,640.0M513.8,666.2 L509.9,658.0M513.8,666.2 L520.6,673.4M513.8,666.2 L493.9,676.8 L490.7,677.2M525.0,645.5 L526.1,649.2M537.9,302.1 L526.9,293.0M526.9,293.0 L524.0,290.7M526.9,293.0 L537.9,302.1M519.0,296.7 L524.0,290.7M519.0,296.7 L521.0,298.3 L523.0,296.2 L525.1,298.1M-17.9,410.8 L-15.6,411.5M-17.9,410.8 L-21.0,415.3 L-20.6,418.8M-17.9,410.8 L-15.2,416.2 L-16.1,419.8M-17.9,410.8 L-22.7,407.1 L-24.7,403.4M-15.6,411.5 L-17.9,410.8M-20.6,418.8 L-21.0,415.3 L-17.9,410.8M-20.6,418.8 L-21.1,419.7 L-20.2,420.3 L-19.5,419.3 L-20.6,418.8M-20.6,418.8 L-19.5,419.3 L-20.2,420.3 L-21.1,419.7 L-20.6,418.8M-16.1,419.8 L-15.0,425.8 L-15.7,431.5M-16.1,419.8 L-15.2,416.2 L-17.9,410.8M-24.7,403.4 L-22.7,407.1 L-17.9,410.8M56.8,645.5 L58.0,650.3M55.1,639.0 L56.6,644.8M55.1,639.0 L43.7,642.0M668.0,750.3 L665.5,743.9M665.5,743.9 L668.0,750.3M665.5,743.9 L672.2,741.7M665.5,743.9 L657.5,746.7 L658.7,750.1M672.2,741.7 L665.5,743.9M672.2,741.7 L675.3,749.1M672.2,741.7 L681.0,739.5 L683.4,746.2M658.7,750.1 L657.5,746.7 L665.5,743.9M-200.9,-71.4 L-200.6,-64.9M-200.9,-71.4 L-195.5,-86.5 L-195.5,-93.5 L-197.6,-99.5M-200.9,-71.4 L-212.6,-70.4M-200.6,-64.9 L-200.9,-71.4M-200.6,-64.9 L-196.9,-46.9M-212.6,-70.4 L-200.9,-71.4M309.0,186.6 L308.8,176.5M309.0,186.6 L293.6,186.5M309.0,186.6 L316.2,188.7M308.8,176.5 L307.8,167.8M308.8,176.5 L309.0,186.6M308.8,176.5 L300.4,177.2M316.2,188.7 L309.0,186.6M316.2,188.7 L317.7,183.7 L316.0,170.0 L314.1,168.0 L307.8,167.8M316.2,188.7 L306.6,198.8M300.4,177.2 L308.8,176.5M309.2,97.9 L310.2,100.1 L308.4,104.3M309.2,97.9 L304.7,95.2 L301.7,96.1 L300.2,98.6M160.7,348.5 L161.9,346.5M160.7,348.5 L157.7,351.5 L150.2,345.9M160.7,348.5 L168.5,354.2 L173.2,354.9M161.9,346.5 L165.4,339.6M161.9,346.5 L160.7,348.5M161.9,346.5 L156.6,344.0M150.2,345.9 L157.7,351.5 L160.7,348.5M150.2,345.9 L144.1,361.5M150.2,345.9 L156.1,331.9M173.2,354.9 L168.5,354.2 L160.7,348.5M149.4,345.5 L143.0,362.5M149.4,345.5 L143.7,343.2 L141.6,341.0M149.4,345.5 L142.2,340.5M149.4,345.5 L157.5,324.3M144.1,361.5 L150.2,345.9M144.1,361.5 L139.3,375.1M144.1,361.5 L149.8,363.7M156.1,331.9 L159.0,333.4M156.1,331.9 L150.2,345.9M156.1,331.9 L158.7,324.8M412.7,391.1 L407.8,396.5M412.7,391.1 L418.7,395.5M412.7,391.1 L407.9,387.6M407.8,396.5 L412.7,391.1M407.8,396.5 L405.2,398.7M407.8,396.5 L405.9,395.3 L403.2,397.9 L403.5,399.5M418.7,395.5 L412.7,391.1M407.9,387.6 L405.0,391.2M407.9,387.6 L404.0,384.4M407.9,387.6 L412.7,391.1M405.2,398.7 L407.8,396.5M388.0,392.9 L387.5,399.7M384.4,395.7 L383.9,399.8M384.4,395.7 L380.2,395.9 L377.6,390.4 L382.5,386.7M384.4,395.7 L384.4,390.4 L382.5,386.7M378.0,402.0 L383.9,399.8M377.2,400.3 L375.7,397.5M606.1,300.9 L601.1,304.7M598.3,300.9 L601.1,304.7M598.3,300.9 L592.7,305.1M598.3,300.9 L595.9,297.7M598.3,300.9 L603.4,297.1M500.4,329.0 L496.1,330.4 L493.8,332.7M24.2,122.6 L22.5,120.5M30.8,101.1 L26.2,104.9M495.5,549.2 L497.9,549.4M494.3,566.4 L496.8,566.5M494.3,566.4 L494.3,569.0M494.3,566.4 L490.5,574.8M496.8,566.5 L494.3,566.4M494.3,569.0 L494.3,566.4M494.3,569.0 L493.2,571.6M484.1,586.0 L480.9,592.6M484.1,586.0 L490.5,574.8M481.5,592.6 L483.3,599.7M481.5,592.6 L484.6,586.3M483.3,599.7 L481.5,592.6M483.3,599.7 L484.1,603.2M483.3,599.7 L490.8,597.8M482.6,599.8 L483.4,603.4M482.6,599.8 L480.9,592.6M484.1,603.2 L486.0,609.9M484.1,603.2 L483.3,599.7M490.8,597.8 L483.3,599.7M485.4,610.1 L483.4,603.4M487.3,614.6 L486.0,609.9M487.3,614.6 L488.0,617.3M491.3,629.6 L488.5,619.0M491.3,629.6 L492.8,635.6M490.6,629.8 L472.3,622.2M490.6,629.8 L492.8,635.6M490.6,629.8 L487.9,619.1M492.0,656.0 L504.5,650.3M504.5,650.3 L492.0,656.0M490.7,677.2 L493.9,676.8 L513.8,666.2M490.7,677.2 L490.3,684.3M490.7,677.2 L490.9,674.2M490.3,684.3 L490.7,677.2M490.9,674.2 L491.0,671.5M490.9,674.2 L490.7,677.2M490.4,686.5 L499.1,684.8 L520.6,673.4M488.8,684.1 L478.4,683.1
38138M490.3,686.9 L490.0,690.0M520.6,673.4 L513.8,666.2M520.6,673.4 L525.6,678.8 L525.7,680.6M520.6,673.4 L499.1,684.8 L490.4,686.5M489.7,697.0 L490.0,690.0M489.7,706.6 L482.9,709.0M489.7,706.6 L492.2,706.3M489.7,706.6 L489.6,699.0M482.9,709.0 L489.7,706.6M492.2,706.3 L489.7,706.6M693.4,216.9 L697.6,218.5M693.4,216.9 L691.6,214.4 L690.3,202.1M693.4,216.9 L692.7,218.1 L687.7,207.0M687.7,207.0 L687.0,205.9 L685.1,206.2 L684.3,201.8 L682.1,202.3 L682.7,206.8 L673.9,212.9M687.7,207.0 L689.3,205.8 L690.3,202.1M687.7,207.0 L692.7,218.1 L693.4,216.9M697.6,218.5 L701.4,219.9M697.6,218.5 L693.4,216.9M708.9,222.7 L704.9,221.2M284.3,354.9 L281.0,352.1M284.3,354.9 L288.8,350.0M284.3,354.9 L278.2,361.7M288.8,350.0 L290.8,347.7M288.8,350.0 L284.3,354.9M288.8,350.0 L286.9,347.4M278.2,361.7 L275.1,358.7M278.2,361.7 L276.2,363.9M278.2,361.7 L284.3,354.9M267.3,351.5 L273.3,344.7M267.3,351.5 L271.6,355.5M267.3,351.5 L265.5,350.1 L264.2,351.5M471.1,143.9 L472.4,147.3M471.1,143.9 L462.3,135.0M471.1,143.9 L473.6,141.1M472.4,147.3 L471.1,143.9M472.4,147.3 L471.2,148.0 L472.7,147.9M462.3,135.0 L456.1,141.5M462.3,135.0 L468.7,128.3M462.3,135.0 L454.3,127.2M462.3,135.0 L471.1,143.9M473.6,141.1 L471.1,143.9M495.9,156.6 L495.5,154.1M495.5,154.1 L495.9,156.6M495.5,154.1 L495.0,148.7 L503.9,147.1M497.7,157.7 L500.4,156.0M497.7,157.7 L489.1,162.3M494.2,155.5 L483.0,145.0 L472.7,147.9M350.4,293.2 L342.8,290.2M350.4,293.2 L348.8,297.5M348.8,297.5 L350.4,293.2M350.9,270.1 L342.8,290.2M350.9,270.1 L352.9,264.8M350.9,270.1 L358.6,272.9M359.0,295.3 L350.9,292.1M19.1,77.6 L17.4,84.4M9.4,83.8 L17.4,84.4M9.4,83.8 L8.5,81.1M9.4,83.8 L8.6,88.7M629.9,696.4 L635.2,701.3M49.3,615.9 L50.8,622.5M49.3,615.9 L46.8,617.9M48.4,612.5 L46.0,609.1M44.4,621.2 L39.9,626.9M44.4,621.2 L46.8,617.9M44.4,621.2 L47.8,635.0M46.8,617.9 L44.4,621.2M46.8,617.9 L49.3,615.9M47.8,635.0 L42.3,636.4M47.8,635.0 L52.7,633.7M47.8,635.0 L44.4,621.2M506.6,621.3 L507.8,628.1M337.0,322.1 L336.4,328.6 L338.2,333.8M337.0,322.1 L331.4,319.4M337.0,322.1 L343.3,322.0 L351.5,319.4 L354.4,307.3M338.2,333.8 L342.1,337.9M338.2,333.8 L336.4,328.6 L337.0,322.1M331.4,319.4 L335.9,313.3M331.4,319.4 L325.2,327.7M331.4,319.4 L322.8,315.6 L320.9,313.4 L321.1,311.5 L325.9,307.6 L337.8,307.0M331.4,319.4 L337.0,322.1M342.1,337.9 L345.3,340.3M342.1,337.9 L345.1,331.1M342.1,337.9 L338.2,333.8M345.3,340.3 L350.3,344.0M345.3,340.3 L344.7,342.1 L346.9,345.8 L350.3,344.0M345.3,340.3 L342.1,337.9M345.1,331.1 L347.6,330.0M345.1,331.1 L342.1,337.9M345.1,331.1 L353.9,340.1 L350.7,344.2M350.7,344.2 L352.3,346.5M350.7,344.2 L353.9,340.1 L345.1,331.1M350.3,344.0 L345.3,340.3M350.3,344.0 L346.9,345.8 L344.7,342.1 L345.3,340.3M352.3,346.5 L352.4,349.3M352.3,346.5 L350.7,344.2M352.3,346.5 L355.2,347.6M352.4,349.3 L352.3,346.5M352.4,349.3 L360.9,352.4M360.9,352.4 L352.4,349.3M577.8,478.5 L588.0,480.3M577.8,478.5 L575.3,485.7M588.0,480.3 L593.3,481.6M588.0,480.3 L577.8,478.5M575.3,485.7 L571.1,484.2M575.3,485.7 L567.4,501.0 L555.7,516.2M575.3,485.7 L577.8,478.5M593.3,481.6 L598.0,482.6M593.3,481.6 L588.0,480.3M587.6,482.0 L586.0,487.6M598.0,482.6 L593.3,481.6M599.7,483.0 L602.5,475.1M602.5,475.1 L599.7,483.0M513.2,335.7 L511.7,332.3M639.3,729.4 L639.6,727.0 L646.1,720.8 L652.4,724.3 L660.2,730.8 L663.2,731.6M663.2,731.6 L660.2,730.8 L652.4,724.3 L646.1,720.8 L639.6,727.0 L639.3,729.4M663.2,731.6 L651.5,735.6 L652.8,741.4 L654.8,742.9M663.2,731.6 L667.3,729.2 L669.6,725.9M654.8,742.9 L652.8,741.4 L651.5,735.6 L663.2,731.6M654.8,742.9 L680.5,733.8M116.3,619.3 L127.7,606.5M116.3,619.3 L120.4,623.1M116.3,619.3 L111.8,615.4M127.7,606.5 L116.3,619.3M127.7,606.5 L131.0,609.2M127.7,606.5 L124.8,603.4M120.4,623.1 L124.3,619.0M120.4,623.1 L127.8,629.9M120.4,623.1 L116.3,619.3M131.0,609.2 L127.7,606.5M131.0,609.2 L129.8,613.3 L126.1,617.0M131.0,609.2 L132.6,604.6M124.8,603.4 L120.1,606.0M124.8,603.4 L127.7,606.5M124.8,603.4 L130.5,599.7 L133.2,602.6M-218.8,68.1 L-213.0,63.1M-218.8,68.1 L-217.7,72.9M-213.0,63.1 L-218.8,68.1M-217.7,72.9 L-212.7,72.9 L-206.4,70.6M-217.7,72.9 L-218.8,68.1M-217.7,72.9 L-219.8,79.5M611.4,-69.4 L607.4,-64.6M180.9,121.3 L185.8,120.4M180.9,121.3 L170.3,123.7M181.1,121.7 L183.8,131.8M185.8,120.4 L191.6,119.4M185.8,120.4 L180.9,121.3M170.3,123.7 L180.9,121.3M170.3,123.7 L159.7,126.8M183.8,131.8 L181.1,121.7M447.9,133.9 L456.1,141.5M447.9,133.9 L445.2,131.3M447.9,133.9 L452.8,128.6M456.1,141.5 L447.9,133.9M456.1,141.5 L462.3,135.0M456.1,141.5 L463.3,148.1M456.1,141.5 L449.6,148.3M445.2,131.3 L447.9,133.9M452.8,128.6 L447.9,133.9M441.6,127.9 L439.5,130.1M441.6,127.9 L444.4,124.9M439.5,130.1 L441.6,127.9M444.4,124.9 L441.6,127.9M444.4,124.9 L447.9,121.2M-85.9,181.2 L-86.7,177.1M-86.7,177.1 L-85.9,181.2M-86.7,177.1 L-88.4,170.8M-86.7,177.1 L-90.7,178.8 L-98.3,185.5M-88.4,170.8 L-86.7,177.1M-98.3,185.5 L-96.4,188.6M-98.3,185.5 L-90.7,178.8 L-86.7,177.1M-98.3,185.5 L-103.1,180.7M60.9,615.1 L67.0,615.6M60.9,615.1 L55.3,614.6M61.0,615.3 L64.9,630.6M73.7,664.7 L77.4,680.1M73.7,664.7 L69.4,647.4M73.7,664.7 L68.6,668.1M73.7,664.7 L78.8,661.3M-30.8,679.1 L-27.8,679.8M-27.8,679.8 L-30.8,679.1M-27.8,679.8 L-24.0,673.6M-27.8,679.8 L-29.5,689.3M-27.8,679.8 L-18.5,682.0M-24.0,673.6 L-27.8,679.8M-18.5,682.0 L-17.5,675.2M-18.5,682.0 L-27.8,679.8M-18.5,682.0 L-19.9,694.2M648.1,8.4 L644.3,3.0M648.1,8.4 L655.0,3.4M648.1,8.4 L644.3,11.1M644.3,3.0 L648.1,8.4M655.0,3.4 L660.9,-1.0M655.0,3.4 L648.1,8.4M655.0,3.4 L650.3,-3.9M644.3,11.1 L651.8,13.4M644.3,11.1 L648.1,8.4M644.3,11.1 L641.9,12.9M75.6,761.6 L74.3,757.3 L63.7,746.1M75.6,761.6 L81.2,760.4M63.7,746.1 L67.2,742.9M63.7,746.1 L74.3,757.3 L75.6,761.6M63.7,746.1 L58.8,739.1 L58.3,736.8 L59.3,734.3M63.7,746.1 L60.3,748.3M63.7,746.1 L60.6,748.9M81.2,760.4 L82.0,760.8 L82.5,759.5 L81.8,759.1 L81.2,760.4M81.2,760.4 L81.8,759.1 L82.5,759.5 L82.0,760.8 L81.2,760.4M81.2,760.4 L75.6,761.6M668.9,498.2 L661.4,507.4M668.9,498.2 L671.6,499.2 L672.3,501.2 L666.0,507.4 L665.1,511.1M668.9,498.2 L667.7,488.6 L663.3,480.1M661.4,507.4 L668.9,498.2M661.4,507.4 L664.6,510.2M661.4,507.4 L654.5,504.9 L652.3,501.8 L652.4,499.5M663.3,480.1 L667.7,488.6 L668.9,498.2M465.7,115.2 L460.3,120.8M465.7,115.2 L474.5,122.3M460.3,120.8 L465.7,115.2M460.3,120.8 L453.3,115.5M460.3,120.8 L454.3,127.2M460.3,120.8 L468.7,128.3M418.5,164.4 L401.4,150.2 L373.2,121.6 L367.0,116.9 L353.0,109.5M420.5,166.0 L438.0,180.3M420.4,162.7 L413.5,157.3M420.4,162.7 L423.0,165.0M420.4,162.7 L422.9,159.9M413.5,157.3 L415.7,155.0M413.5,157.3 L420.4,162.7M413.5,157.3 L407.1,152.1M423.0,165.0 L420.4,162.7M422.9,159.9 L426.3,156.3M422.9,159.9 L420.4,162.7M435.2,147.1 L429.0,141.1M435.2,147.1 L438.7,150.4M435.2,147.1 L430.6,151.8M435.2,147.1 L438.4,143.7M429.0,141.1 L435.2,147.1M429.0,141.1 L424.5,136.8M429.0,141.1 L425.3,145.0M429.0,141.1 L435.4,134.6M438.7,150.4 L440.7,152.3M438.7,150.4 L435.2,147.1M438.4,143.7 L441.5,140.5M438.4,143.7 L435.2,147.1M441.5,140.5 L449.6,148.3M441.5,140.5 L437.0,136.1M441.5,140.5 L438.4,143.7M441.5,140.5 L444.0,137.9M449.6,148.3 L441.5,140.5M449.6,148.3 L452.4,150.9M449.6,148.3 L446.5,151.5M449.6,148.3 L456.1,141.5M437.0,136.1 L441.5,140.5M444.0,137.9 L441.5,140.5M454.3,127.2 L450.2,123.3M454.3,127.2 L462.3,135.0M454.3,127.2 L460.3,120.8M450.2,123.3 L447.9,121.2M450.2,123.3 L454.3,127.2M453.3,115.5 L438.8,107.5M453.3,115.5 L447.9,121.2M453.3,115.5 L460.3,120.8M468.7,128.3 L462.3,135.0M468.7,128.3 L460.3,120.8M489.0,278.3 L491.4,274.0M488.3,278.5 L484.5,276.4M484.5,276.4 L488.3,278.5M484.8,276.1 L486.1,273.7M-163.9,232.9 L-168.7,228.8M-166.3,225.7 L-168.7,228.8M-166.3,225.7 L-162.4,220.7 L-168.4,218.7M-166.3,225.7 L-160.6,228.8M-174.6,220.8 L-172.1,225.6 L-168.7,228.8M557.4,595.6 L560.5,598.6M557.4,595.6 L553.6,592.4M553.6,592.4 L557.4,595.6M553.6,592.4 L549.3,588.5M562.4,590.2 L564.1,588.3M560.7,592.2 L558.7,594.2M256.0,488.9 L253.9,487.5M256.0,488.9 L259.7,484.5 L261.1,478.5M256.0,488.9 L263.6,494.7M253.9,487.5 L256.0,488.9M253.9,487.5 L250.3,485.6M261.1,478.5 L259.7,484.5 L256.0,488.9M263.6,494.7 L270.9,485.7 L290.1,481.5M263.6,494.7 L256.0,488.9M96.5,339.3 L89.3,329.5M96.5,339.3 L100.1,336.4 L107.9,321.9M96.5,339.3 L108.1,353.4M89.3,329.5 L96.5,339.3M89.3,329.5 L84.3,333.0 L80.3,339.9M89.3,329.5 L94.6,324.7 L96.5,319.3M89.3,329.5 L78.5,317.5 L76.9,314.3 L76.9,310.0M107.9,321.9 L100.1,336.4 L96.5,339.3M107.9,321.9 L107.9,319.3M108.1,353.4 L114.8,360.5M108.1,353.4 L111.6,349.9 L122.2,344.0M108.1,353.4 L104.7,356.2 L102.4,355.0 L100.6,351.9 L97.0,355.0 L98.0,357.6M108.1,353.4 L96.5,339.3M-202.4,206.5 L-200.8,211.7M387.1,507.1 L391.6,509.0M391.6,509.0 L400.9,516.4 L411.6,518.9M391.6,509.0 L387.1,507.1M391.6,509.0 L399.2,501.9 L403.4,501.8 L409.0,503.8 L411.9,503.3M411.6,518.9 L420.3,520.3M411.6,518.9 L412.3,511.5M411.6,518.9 L400.9,516.4 L391.6,509.0M411.6,518.9 L411.0,524.5 L408.4,530.2 L402.0,532.7M411.9,503.3 L411.2,500.9M411.9,503.3 L414.7,501.2 L414.1,500.0 L411.2,500.9M411.9,503.3 L412.3,511.5M411.9,503.3 L409.0,503.8 L403.4,501.8 L399.2,501.9 L391.6,509.0M420.3,520.3 L411.6,518.9M412.3,511.5 L411.6,518.9M412.3,511.5 L411.9,503.3M412.3,511.5 L402.2,509.3M511.5,247.1 L515.9,242.0M496.1,225.0 L493.0,222.7M496.6,225.5 L495.0,227.4M493.0,222.7 L490.8,220.7M493.0,222.7 L496.1,225.0M124.3,619.0 L126.8,620.9M124.3,619.0 L126.1,61
381387.0M124.3,619.0 L120.4,623.1M126.8,620.9 L124.3,619.0M126.8,620.9 L129.2,623.1M126.8,620.9 L126.1,617.0M126.1,617.0 L124.3,619.0M126.1,617.0 L126.8,620.9M126.1,617.0 L129.8,613.3 L131.0,609.2M129.2,623.1 L126.8,620.9M129.2,623.1 L133.7,627.9M129.2,623.1 L139.9,617.9M117.9,5.6 L114.7,7.3M117.9,5.6 L130.8,15.5 L139.9,15.9M117.9,5.6 L121.0,-4.8M114.7,7.3 L117.9,5.6M114.7,7.3 L108.9,10.3M139.9,15.9 L147.1,12.3M139.9,15.9 L130.8,15.5 L117.9,5.6M139.9,15.9 L141.0,24.1M147.1,12.3 L155.5,3.6M147.1,12.3 L139.9,15.9M147.1,12.3 L155.4,18.8 L164.9,20.6M141.0,24.1 L139.9,15.9M155.5,3.6 L164.2,2.0 L171.5,4.3M155.5,3.6 L147.1,12.3M155.5,3.6 L153.6,-0.1M164.9,20.6 L155.4,18.8 L147.1,12.3M171.5,4.3 L178.4,5.9M171.5,4.3 L164.2,2.0 L155.5,3.6M153.6,-0.1 L155.5,3.6M359.0,190.9 L353.4,186.1M359.0,190.9 L349.3,201.9M359.0,190.9 L368.4,182.7 L372.5,186.4M525.1,298.1 L523.0,296.2 L521.0,298.3 L519.0,296.7M409.8,283.0 L412.7,286.8M382.7,294.2 L391.7,296.1M371.5,343.0 L368.0,340.8M371.5,343.0 L379.2,331.1M371.5,343.0 L366.6,351.2M368.0,340.8 L361.9,339.4M368.0,340.8 L371.5,343.0M366.6,351.2 L371.5,343.0M366.6,351.7 L366.1,356.7M366.6,351.7 L365.5,354.2 L363.4,354.4M366.1,356.7 L363.4,354.4M366.1,356.7 L366.6,351.7M366.1,356.7 L366.1,360.9M366.1,356.7 L371.9,361.3M363.4,354.4 L366.1,356.7M363.4,354.4 L365.5,354.2 L366.6,351.7M366.1,360.9 L366.1,356.7M366.1,360.9 L366.4,372.3M371.9,361.3 L366.1,356.7M366.4,372.3 L366.5,378.7M366.4,372.3 L370.6,373.8M366.4,372.3 L366.1,360.9M366.5,378.7 L366.4,372.3M366.5,378.7 L363.6,379.1M370.6,373.8 L366.4,372.3M366.5,382.5 L363.6,379.1M366.5,382.5 L368.5,385.6M366.5,384.5 L366.5,387.1M363.6,379.1 L360.6,375.7M363.6,379.1 L366.5,378.7M363.6,379.1 L366.5,382.5M368.5,385.6 L366.5,382.5M362.5,455.2 L367.3,456.9M362.5,455.2 L358.9,469.9M362.5,455.2 L365.4,424.8M367.3,456.9 L362.5,455.2M367.3,456.9 L369.9,457.9 L373.3,461.8 L373.7,469.1M367.3,456.9 L367.0,458.5 L369.3,462.1M358.9,469.9 L357.3,471.8M358.9,469.9 L362.5,455.2M358.9,469.9 L358.1,473.8M357.3,471.8 L358.9,469.9M27.3,-18.3 L30.5,-15.5M27.3,-18.3 L25.4,-19.8M49.1,0.4 L53.6,4.7M49.1,0.4 L30.5,-15.5M-192.4,234.3 L-189.8,229.5 L-193.1,227.9M-191.6,238.9 L-191.8,244.4M-191.6,238.9 L-193.6,235.5M538.9,445.2 L531.7,439.5 L526.7,437.7M538.9,445.2 L531.3,447.8 L509.1,441.6M538.9,445.2 L551.4,442.7M509.1,441.6 L507.0,449.0M509.1,441.6 L531.3,447.8 L538.9,445.2M551.4,442.7 L538.9,445.2M511.4,433.6 L509.7,439.4M511.4,433.6 L512.2,430.5M511.4,433.6 L526.7,437.7M509.7,439.4 L511.4,433.6M509.7,439.4 L502.4,437.4M512.2,430.5 L511.4,433.6M512.2,430.5 L514.6,422.2M512.2,430.5 L507.3,429.3M-224.9,637.2 L-214.6,639.0M-224.9,637.2 L-227.1,654.2M-224.9,637.2 L-229.1,628.0M-214.6,639.0 L-224.9,637.2M-214.6,639.0 L-213.5,633.3M-214.6,639.0 L-189.4,645.1 L-185.8,642.9M-227.1,654.2 L-228.9,674.5M-227.1,654.2 L-224.9,637.2M-229.1,628.0 L-224.9,637.2M-229.1,628.0 L-233.2,623.2M410.7,-107.6 L413.1,-100.2M410.7,-107.6 L402.3,-98.5M413.1,-100.2 L410.7,-107.6M413.1,-100.2 L411.6,-96.0 L405.6,-95.0M402.3,-98.5 L399.5,-95.8M402.3,-98.5 L410.7,-107.6M402.3,-98.5 L405.6,-95.0M402.3,-98.5 L398.4,-104.6M405.6,-95.0 L411.6,-96.0 L413.1,-100.2M405.6,-95.0 L406.9,-90.5M405.6,-95.0 L402.3,-98.5M525.8,681.3 L526.1,689.8 L524.0,692.7 L507.7,701.5 L492.4,706.3M525.8,681.3 L508.8,690.3M525.7,680.6 L525.6,678.8 L520.6,673.4M492.4,706.3 L507.7,701.5 L524.0,692.7 L526.1,689.8 L525.8,681.3M508.8,690.3 L525.8,681.3M505.4,604.8 L502.5,605.5M503.9,610.7 L502.5,605.5M450.9,273.8 L458.8,278.6M468.7,284.5 L465.1,290.6M468.7,284.5 L472.8,277.8M468.7,284.5 L458.8,278.6M468.7,284.5 L475.4,288.5M455.2,284.7 L465.1,290.6M455.2,284.7 L458.8,278.6M455.2,284.7 L442.5,277.4M442.5,277.4 L455.2,284.7M614.0,521.1 L618.4,527.9M614.0,521.1 L608.5,523.6 L606.1,528.8M614.0,521.1 L620.0,520.6 L627.5,515.8 L636.6,520.9M618.4,527.9 L614.0,521.1M606.1,528.8 L614.0,531.0M606.1,528.8 L605.3,533.8 L601.2,536.6M606.1,528.8 L608.5,523.6 L614.0,521.1M636.6,520.9 L627.5,515.8 L620.0,520.6 L614.0,521.1M636.6,520.9 L646.5,521.1M636.6,520.9 L632.7,525.3 L628.1,519.7M614.0,531.0 L606.1,528.8M614.0,531.0 L616.8,531.0 L618.4,528.8M601.2,536.6 L607.1,541.9M601.2,536.6 L605.3,533.8 L606.1,528.8M601.2,536.6 L581.9,528.9 L573.1,529.5M89.3,92.3 L87.1,93.4M89.3,92.3 L97.3,108.2M89.3,92.3 L84.3,82.0M87.1,93.4 L89.3,92.3M84.3,82.0 L89.3,92.3M84.3,82.0 L78.2,68.3M665.8,158.6 L657.9,162.7M665.8,158.6 L670.2,172.8M665.8,158.6 L665.7,152.4 L668.1,146.8M150.1,243.4 L143.8,242.3M143.8,242.3 L150.1,243.4M491.2,-67.5 L480.9,-62.1M491.2,-67.5 L487.4,-73.7M491.2,-67.5 L495.1,-68.3 L498.1,-66.4 L501.5,-56.7 L513.9,-40.2M491.2,-67.5 L499.6,-56.1 L500.2,-52.2M480.9,-62.1 L491.2,-67.5M487.4,-73.7 L491.2,-67.5M487.4,-73.7 L478.6,-85.9 L475.0,-86.9 L469.5,-85.9M
38138513.9,-40.2 L508.3,-39.6M513.9,-40.2 L501.5,-56.7 L498.1,-66.4 L495.1,-68.3 L491.2,-67.5M513.9,-40.2 L525.6,-18.7 L530.2,-16.3 L534.4,-16.5M500.2,-52.2 L498.1,-48.9 L487.5,-43.6 L475.4,-39.8M500.2,-52.2 L499.6,-56.1 L491.2,-67.5M639.6,654.6 L642.4,665.5M487.1,304.1 L477.4,298.4M390.6,538.0 L392.7,536.0M394.0,538.2 L392.7,536.0M368.1,542.1 L369.4,559.0M367.3,533.5 L368.1,541.2M369.3,462.1 L367.0,458.5 L367.3,456.9M370.3,469.6 L368.9,467.5 L366.6,469.0 L368.2,471.1 L370.3,469.6M370.3,469.6 L368.2,471.1 L366.6,469.0 L368.9,467.5 L370.3,469.6M370.3,469.6 L373.7,469.1M376.7,489.0 L373.4,491.1 L374.9,493.2 L378.0,491.3 L376.7,489.0M376.7,489.0 L378.0,491.3 L374.9,493.2 L373.4,491.1 L376.7,489.0M394.9,489.7 L395.5,492.4 L393.5,492.9 L392.8,490.1 L394.9,489.7M394.9,489.7 L392.8,490.1 L393.5,492.9 L395.5,492.4 L394.9,489.7M406.7,493.9 L411.2,500.9M406.7,493.9 L395.3,487.5M406.7,493.9 L409.3,492.1 L414.4,491.1 L420.3,493.6M411.2,500.9 L411.9,503.3M411.2,500.9 L414.1,500.0 L414.7,501.2 L411.9,503.3M411.2,500.9 L406.7,493.9M420.3,493.6 L423.0,490.6M420.3,493.6 L422.1,495.9M420.3,493.6 L414.4,491.1 L409.3,492.1 L406.7,493.9M402.2,509.3 L412.3,511.5M649.6,581.6 L652.5,580.9M649.8,582.6 L650.7,586.5M652.5,580.9 L649.6,581.6M652.5,580.9 L656.9,581.0M650.7,586.5 L649.8,582.6M648.8,586.5 L646.1,585.7M663.6,598.5 L662.8,601.2M663.6,598.5 L660.2,596.7M664.6,597.3 L666.3,595.4M660.2,596.7 L663.6,598.5M669.5,592.5 L667.5,589.7M667.5,589.7 L669.5,592.5M575.7,589.5 L578.2,587.3M578.2,587.3 L575.7,589.5M605.0,379.2 L607.7,380.2M607.7,380.2 L610.9,381.7M607.7,380.2 L605.0,379.2M610.9,381.7 L618.7,382.7M610.9,381.7 L607.7,380.2M610.9,381.7 L610.3,385.3M618.7,382.7 L610.9,381.7M618.7,382.7 L617.7,390.0M618.7,382.7 L620.9,366.6 L622.5,363.4 L625.0,362.1M610.3,385.3 L609.9,388.7M610.3,385.3 L610.9,381.7M617.7,390.0 L618.7,382.7M617.7,390.0 L609.9,388.7M617.7,390.0 L616.3,401.4M625.0,362.1 L622.5,363.4 L620.9,366.6 L618.7,382.7M462.5,105.7 L465.6,100.9M462.5,105.7 L467.8,110.6M465.6,100.9 L464.5,98.8M465.6,100.9 L462.5,105.7M465.6,100.9 L468.9,99.2 L471.6,99.4M467.8,110.6 L462.5,105.7M445.6,98.8 L448.2,100.3M445.6,98.8 L438.8,107.5M448.2,100.3 L445.6,98.8M448.2,100.3 L461.1,105.6M438.8,107.5 L453.3,115.5M438.8,107.5 L437.6,111.3 L438.7,114.4 L437.3,115.9M438.8,107.5 L445.6,98.8M233.6,240.8 L235.9,232.7M233.6,240.8 L222.6,237.3M222.6,237.3 L233.6,240.8M231.4,249.1 L230.6,251.9M231.4,249.1 L232.9,242.8M443.5,235.5 L439.5,234.6M443.5,235.5 L442.7,238.3M439.5,234.6 L443.5,235.5M442.7,238.3 L443.5,235.5M-1.1,602.4 L1.9,598.6M-1.1,602.4 L-4.3,606.4M-1.1,602.4 L1.0,597.5M1.9,598.6 L4.3,595.6M1.9,598.6 L-1.1,602.4M-4.3,606.4 L-1.1,602.4M1.0,597.5 L-1.1,602.4M707.0,17.5 L707.6,24.6M707.0,17.5 L710.8,17.2M707.6,24.6 L707.0,17.5M710.8,17.2 L720.6,15.8M710.8,17.2 L707.0,17.5M-112.1,179.6 L-113.0,188.7M-112.1,179.6 L-107.5,181.1 L-103.1,180.7M-112.1,179.6 L-129.5,172.5M-113.0,188.7 L-112.1,179.6M-113.0,188.7 L-104.0,189.9 L-96.4,188.6M-113.0,188.7 L-127.2,189.3M-103.1,180.7 L-101.7,177.3 L-102.2,174.3M-103.1,180.7 L-107.5,181.1 L-112.1,179.6M-103.1,180.7 L-98.3,185.5M-129.5,172.5 L-134.1,178.7M-129.5,172.5 L-128.0,170.3M-129.5,172.5 L-112.1,179.6M-96.4,188.6 L-98.3,185.5M-96.4,188.6 L-86.7,187.6M-96.4,188.6 L-104.0,189.9 L-113.0,188.7M-127.2,189.3 L-113.0,188.7M-127.2,189.3 L-136.0,189.4 L-140.5,187.6M-127.2,189.3 L-128.9,183.0M390.3,257.8 L383.8,254.7M390.3,257.8 L393.3,260.8M390.3,257.8 L391.8,249.5M383.8,254.7 L390.3,257.8M383.8,254.7 L384.9,248.3M383.8,254.7 L379.5,268.0M383.8,254.7 L376.2,252.9M393.3,260.8 L390.3,257.8M393.3,260.8 L391.0,271.3M393.3,260.8 L402.1,260.9M379.5,268.0 L383.8,254.7M229.5,79.9 L237.1,80.8 L241.3,79.2M229.5,79.9 L228.1,72.3M229.5,79.9 L225.3,86.3M241.3,79.2 L237.1,80.8 L229.5,79.9M228.1,72.3 L235.8,67.9M228.1,72.3 L225.4,66.7 L226.4,60.8M228.1,72.3 L229.5,79.9M89.7,59.1 L81.5,65.6M89.7,59.1 L87.9,55.7M89.7,59.1 L93.9,55.8 L98.2,50.1M375.2,57.2 L365.6,67.3 L361.3,62.9M375.2,57.2 L384.0,58.9 L388.4,57.6M375.2,57.2 L372.2,52.3M26.8,403.1 L23.9,414.1M23.9,414.1 L21.3,423.4M23.9,414.1 L26.8,403.1M21.3,423.4 L17.9,431.7M21.3,423.4 L23.9,414.1M21.3,423.4 L12.3,421.4M21.3,423.4 L24.1,424.4 L30.0,432.5 L36.0,436.4M17.9,431.7 L11.9,441.7M17.9,431.7 L21.3,423.4M17.9,431.7 L21.2,434.4 L22.2,441.6 L19.4,444.1M12.3,421.4 L21.3,423.4M12.3,421.4 L13.5,416.8 L12.9,413.5 L10.7,411.5M12.3,421.4 L11.5,423.4 L3.1,430.1M36.0,436.4 L30.0,432.5 L24.1,424.4 L21.3,423.4M36.0,436.4 L45.5,441.5 L53.1,440.7M36.0,436.4 L42.3,427.6M11.9,441.7 L17.9,431.7M19.4,444.1 L22.2,441.6 L21.2,434.4 L17.9,431.7M-212.6,134.7 L-217.0,135.4M-212.6,134.7 L-213.8,126.7M-206.9,133.7 L-204.6,132.7M-206.9,133.7 L-211.4,134.6M242.7,362.7 L244.7,364.7M242.7,362.7 L237.8,357.9M237.8,357.9 L236.3,361.0M237.8,357.9 L242.7,362.7M237.8,357.9 L239.7,354.8M239.7,354.8 L237.8,357.9M239.7,354.8 L239.7,353.1 L241.2,353.7M442.6,642.4 L441.9,647.2M447.9,648.1 L452.0,648.6M447.9,648.1 L441.9,647.2M447.9,648.1 L448.2,645.0M436.1,673.8 L437.6,668.5M436.1,673.8 L441.2,674.9 L442.9,678.4M436.0,674.4 L435.1,679.0M437.6,668.5 L436.1,673.8M442.9,678.4 L441.2,674.9 L436.1,673.8M435.1,679.0 L436.0,674.4M435.1,679.0 L440.5,686.0M435.1,679.0 L433.0,689.5 L438.6,690.8M440.5,686.0 L435.1,679.0M438.6,690.8 L433.0,689.5 L435.1,679.0M552.2,2.4 L555.0,7.1M552.2,2.4 L544.1,7.4 L545.9,12.6M552.2,2.4 L538.9,-19.3M553.6,1.5 L540.3,-20.2M553.6,1.5 L556.5,6.2M555.0,7.1 L552.2,2.4M555.0,7.1 L571.4,33.6M545.9,12.6 L544.1,7.4 L552.2,2.4M538.9,-19.3 L536.8,-22.8M538.9,-19.3 L552.2,2.4M538.9,-19.3 L534.4,-16.5M568.7,-0.7 L568.9,-9.4M568.7,-0.7 L556.9,-0.6 L555.8,0.6 L556.5,6.2M568.7,-0.7 L569.9,10.0 L572.5,14.5 L578.6,18.4M568.9,-9.4 L568.7,-0.7M568.9,-9.4 L569.3,-21.7 L568.2,-27.0M556.5,6.2 L553.6,1.5M556.5,6.2 L572.8,33.0M556.5,6.2 L555.8,0.6 L556.9,-0.6 L568.7,-0.7M578.6,18.4 L586.5,24.4M578.6,18.4 L572.5,
3813814.5 L569.9,10.0 L568.7,-0.7M452.7,164.1 L454.6,166.2M452.7,164.1 L445.8,157.3M452.7,164.1 L450.1,167.0M454.6,166.2 L452.7,164.1M454.6,166.2 L452.4,165.5 L450.1,167.0M454.6,166.2 L458.5,170.6M445.8,157.3 L443.3,154.8M445.8,157.3 L452.7,164.1M450.1,167.0 L452.4,165.5 L454.6,166.2M450.1,167.0 L452.7,164.1M440.7,152.3 L443.3,154.8M440.7,152.3 L438.7,150.4M445.4,152.6 L443.3,154.8M424.5,136.8 L429.0,141.1M435.4,134.6 L437.9,131.8M435.4,134.6 L429.0,141.1M563.2,318.3 L567.4,324.0M567.0,324.3 L562.0,328.0M572.9,319.8 L567.4,324.0M576.7,351.6 L573.0,354.5M576.7,351.6 L568.7,340.9M576.7,351.6 L580.2,356.3M576.7,351.6 L583.9,346.2M305.5,241.5 L302.5,241.3M306.7,231.3 L306.4,235.2M291.6,206.5 L289.7,203.5M291.6,206.5 L300.6,215.5M289.1,204.0 L285.0,207.0M243.1,127.3 L239.3,122.2M243.1,127.3 L249.0,130.1 L257.7,130.1M239.3,122.2 L235.5,115.1M239.3,122.2 L243.1,127.3M257.7,130.1 L249.0,130.1 L243.1,127.3M257.7,130.1 L265.0,129.8M241.2,121.2 L243.9,119.8M235.5,115.1 L233.7,111.7M235.5,115.1 L232.1,116.9M235.5,115.1 L239.3,122.2M437.3,115.9 L438.7,114.4 L437.6,111.3 L438.8,107.5M100.0,627.8 L104.1,624.0M100.0,627.8 L111.1,638.4M100.0,627.8 L102.7,638.6M100.0,627.8 L98.3,622.0M111.1,638.4 L100.0,627.8M111.1,638.4 L109.1,640.2M111.1,638.4 L113.7,636.5M116.2,635.1 L104.1,624.0M116.2,635.1 L119.0,633.7M116.2,635.1 L113.7,636.5M120.1,606.0 L111.8,615.4M120.1,606.0 L124.8,603.4M120.1,606.0 L113.3,605.4 L107.6,611.4M107.6,611.4 L111.8,615.4M107.6,611.4 L113.3,605.4 L120.1,606.0M107.6,611.4 L102.9,616.9 L97.7,618.0M537.5,217.2 L535.8,219.0M538.0,216.7 L540.6,213.8M533.2,321.5 L532.2,318.6M533.2,321.5 L538.6,319.0 L545.2,334.6M533.2,321.5 L534.2,324.2M532.2,318.6 L533.2,321.5M184.3,589.9 L183.1,587.7 L175.9,584.0M195.8,594.1 L189.4,594.1 L184.0,590.6M609.9,388.7 L617.7,390.0M609.9,388.7 L607.3,388.2M609.9,388.7 L610.3,385.3M616.3,401.4 L615.2,406.7M616.3,401.4 L617.7,390.0M109.1,640.2 L111.1,638.4M109.1,640.2 L105.4,645.0M109.1,640.2 L124.1,661.2M105.4,645.0 L119.3,664.7M105.4,645.0 L102.7,638.6M105.4,645.0 L109.1,640.2M105.4,645.0 L101.7,649.6M124.1,661.2 L130.5,664.2M124.1,661.2 L119.3,664.7M124.1,661.2 L109.1,640.2M130.5,664.2 L124.1,661.2M130.5,664.2 L136.7,668.1 L137.7,669.5 L136.9,671.2 L131.0,671.9 L124.2,668.1 L121.8,668.1M130.5,664.2 L131.3,661.6M119.3,664.7 L124.1,661.2M119.3,664.7 L114.7,667.9M119.3,664.7 L105.4,645.0M119.3,664.7 L121.8,668.1M131.3,661.6 L122.4,649.2M131.3,661.6 L130.5,664.2M131.3,661.6 L138.8,662.4M183.9,278.0 L184.9,283.4M183.9,278.0 L185.4,276.8 L184.5,272.6M184.9,283.4 L183.9,278.0M184.5,272.6 L190.2,268.8M184.5,272.6 L185.4,276.8 L183.9,278.0M184.5,272.6 L182.3,269.1 L184.0,265.8M181.7,274.6 L184.2,272.9M-145.2,319.9 L-137.2,330.6M-145.2,319.9 L-144.5,313.1M-145.2,319.9 L-153.8,324.0 L-158.7,327.8M-144.5,313.1 L-149.5,312.1M-144.5,313.1 L-145.2,319.9M-144.5,313.1 L-142.2,303.5M-158.7,327.8 L-161.5,329.6M-158.7,327.8 L-153.8,324.0 L-145.2,319.9M-179.5,342.8 L-184.2,346.6M-179.5,342.8 L-173.2,338.5M-184.2,346.6 L-179.5,342.8M-184.2,346.6 L-186.9,349.3M-184.2,346.6 L-191.3,328.8M-186.9,349.3 L-184.2,346.6M-191.3,328.8 L-184.2,346.6M-150.2,242.0 L-141.8,241.6 L-139.2,239.3M-135.5,245.0 L-136.4,241.6 L-139.2,239.3M-125.4,235.8 L-133.3,236.1 L-139.2,239.3M625.0,445.9 L629.7,446.2M625.0,445.9 L623.5,451.8M628.3,453.0 L633.4,452.7 L635.2,450.8M628.3,453.0 L623.5,451.8M637.6,447.5 L636.1,447.1 L632.0,451.7 L628.6,451.6M628.6,451.6 L625.4,450.8M628.6,451.6 L632.0,451.7 L636.1,447.1 L637.6,447.5M646.5,521.1 L652.1,521.7M646.5,521.1 L645.9,528.3M646.5,521.1 L636.6,520.9M652.8,525.6 L652.1,521.7M645.9,528.3 L646.5,521.1M628.1,519.7 L632.7,525.3 L636.6,520.9M607.1,541.9 L601.2,536.6M573.1,529.5 L590.7,545.5M573.1,529.5 L565.3,522.7M573.1,529.5 L581.9,528.9 L601.2,536.6M-166.3,-10.1 L-162.0,-7.7M-166.3,-10.1 L-170.6,-12.6M-162.0,-7.7 L-166.3,-10.1M-162.0,-7.7 L-155.5,-3.6M-170.6,-12.6 L-166.3,-10.1M-170.6,-12.6 L-177.0,-16.2M565.7,617.7 L562.0,611.8M565.7,617.7 L557.6,624.5M565.7,617.7 L571.5,614.6M562.0,611.8 L565.7,617.7M557.6,624.5 L552.8,628.6M557.6,624.5 L565.7,617.7M557.6,624.5 L550.7,617.5 L541.3,616.3M571.5,614.6 L574.1,620.5M571.5,614.6 L565.7,617.7M571.5,614.6 L567.0,604.6M552.8,628.6 L557.6,624.5M541.3,616.3 L550.7,617.5 L557.6,624.5M-142.3,286.1 L-141.0,290.8M-142.3,286.1 L-145.4,281.6M-142.3,286.1 L-134.3,288.1M-120.4,252.7 L-122.6,259.9M-120.4,252.7 L-119.6,251.5 L-116.9,252.6 L-117.8,253.5 L-120.4,252.7M-120.4,252.7 L-117.8,253.5 L-116.9,252.6 L-119.6,251.5 L-120.4,252.7M268.9,326.2 L274.8,325.3 L278.2,322.1M278.2,322.1 L274.8,325.3 L268.9,326.2M478.3,449.7 L473.6,452.7M478.3,449.7 L477.0,444.8M478.3,449.7 L482.1,448.2M473.6,452.7 L467.9,456.0M473.6,452.7 L478.3,449.7M473.6,452.7 L481.9,465.2M477.0,444.8 L476.2,439.6 L463.3,422.0M477.0,444.8 L478.3,449.7M477.0,444.8 L472.7,445.0 L469.4,443.7M482.1,448.2 L478.3,449.7M467.9,456.0 L462.7,459.1M467.9,456.0 L473.6,452.7M481.9,465.2 L473.6,452.7M462.7,459.1 L467.9,456.0M462.7,459.1 L456.9,462.2M463.4,460.4 L466.0,469.4M456.9,462.2 L462.7,459.1M456.5,462.3 L452.1,462.2 L449.7,460.3M449.7,460.3 L447.5,457.0M449.7,460.3 L452.1,462.2 L456.5,462.3M449.7,460.3 L447.4,462.6 L448.2,464.0 L445.6,465.8 L447.3,468.2M447.5,457.0 L442.2,449.7M447.5,457.0 L449.7,460.3M447.5,457.0 L430.9,469.0M447.3,468.2 L445.6,465.8 L448.2,464.0 L447.4,462.6 L449.7,460.3M442.2,449.7 L447.5,457.0M442.2,449.7 L436.3,453.7M430.9,469.0 L447.5,457.0M441.9,449.4 L436.3,441.1M436.3,453.7 L423.2,462.7M436.3,453.7 L442.2,449.7M614.9,442.7 L615.5,445.9M614.9,442.7 L614.8,437.7M616.3,442.3 L621.3,441.5 L621.6,440.5M61
381385.5,445.9 L607.1,445.5M615.5,445.9 L614.9,442.7M614.8,437.7 L616.0,424.5M614.8,437.7 L614.9,442.7M616.3,437.8 L618.3,434.1M616.0,424.5 L616.0,419.5M616.0,424.5 L614.8,437.7M-54.6,227.7 L-64.8,224.5M-54.6,227.7 L-45.6,225.2 L-42.5,217.9M-54.6,227.7 L-55.3,219.0 L-54.5,216.0M-62.4,220.0 L-64.8,224.5M336.5,182.1 L333.7,180.4M337.4,350.3 L341.8,350.0M337.4,350.3 L340.3,353.2M335.7,350.4 L349.9,363.3M336.1,349.0 L320.6,334.8M341.8,350.0 L340.0,351.4 L340.3,353.2M341.8,350.0 L351.2,349.2M341.8,350.0 L337.4,350.3M340.3,353.2 L340.0,351.4 L341.8,350.0M340.3,353.2 L349.9,363.3M340.3,353.2 L337.4,350.3M380.2,366.3 L383.2,360.9M380.2,366.3 L384.5,368.8M380.2,366.3 L373.2,362.1M383.2,360.9 L380.2,366.3M383.2,360.9 L384.7,355.2 L388.1,351.4M384.5,368.8 L387.0,370.2M384.5,368.8 L379.8,376.6M384.5,368.8 L380.2,366.3M373.2,362.1 L380.2,366.3M387.0,370.2 L384.5,368.8M387.0,370.2 L390.4,365.5M387.0,370.2 L392.5,374.8M379.8,376.6 L384.5,368.8M379.8,376.6 L382.5,382.2 L385.1,383.6 L387.6,383.3 L395.5,377.3M392.5,374.8 L395.5,377.3M392.5,374.8 L399.7,369.1M392.5,374.8 L387.0,370.2M395.5,377.3 L392.5,374.8M395.5,377.3 L387.6,383.3 L385.1,383.6 L382.5,382.2 L379.8,376.6M395.5,377.3 L404.0,384.4M399.7,369.1 L392.5,374.8M399.7,369.1 L403.1,365.1M404.0,384.4 L395.5,377.3M404.0,384.4 L407.9,387.6M405.0,391.2 L407.9,387.6M444.3,404.4 L452.0,404.7M444.3,404.4 L441.3,409.1M444.3,404.4 L433.0,403.0M441.3,409.1 L444.3,404.4M441.3,409.1 L444.9,413.1M433.0,403.0 L427.5,407.8M433.0,403.0 L444.3,404.4M452.1,400.5 L452.0,404.7M477.3,409.9 L476.9,403.3 L475.1,398.0M750.2,544.3 L743.6,550.1M750.2,544.3 L744.0,538.7 L742.2,527.5 L739.1,523.6M750.2,544.3 L753.7,551.2 L760.8,558.0 L767.7,568.8 L774.0,575.0 L781.3,578.0 L786.3,582.7M725.5,530.6 L722.1,533.4M725.5,530.6 L735.6,521.9 L739.1,523.6M725.5,530.6 L743.6,550.1M739.1,523.6 L735.6,521.9 L725.5,530.6M739.1,523.6 L742.2,527.5 L744.0,538.7 L750.2,544.3M786.3,582.7 L789.7,586.9 L789.1,591.0 L774.5,602.8M786.3,582.7 L783.1,585.6M786.3,582.7 L781.3,578.0 L774.0,575.0 L767.7,568.8 L760.8,558.0 L753.7,551.2 L750.2,544.3M106.8,5.9 L108.9,10.3M-149.4,250.5 L-149.4,257.5M-149.4,250.5 L-143.1,251.0 L-142.8,257.5 L-149.4,257.5M-149.4,250.5 L-155.6,250.4M-149.4,257.5 L-149.2,263.8M-149.4,257.5 L-149.4,250.5M-149.4,257.5 L-142.8,257.5 L-143.1,251.0 L-149.4,250.5M-155.6,250.4 L-154.7,264.3M-155.6,250.4 L-149.4,250.5M-149.2,263.8 L-149.4,257.5M-149.2,263.8 L-154.7,264.3M-149.2,263.8 L-148.6,267.6 L-145.9,269.5M267.8,346.1 L263.1,341.7M263.1,341.7 L267.8,346.1M-42.5,217.9 L-45.6,225.2 L-54.6,227.7M-54.5,216.0 L-55.3,219.0 L-54.6,227.7M124.0,369.8 L114.8,360.5M124.0,369.8 L126.3,372.2M124.0,369.8 L127.1,365.1 L128.6,359.2 L122.2,344.0M124.0,369.8 L121.1,372.7M114.8,360.5 L108.1,353.4M114.8,360.5 L124.0,369.8M114.8,360.5 L118.2,356.4M126.3,372.2 L124.0,369.8M126.3,372.2 L129.2,375.2M121.1,372.7 L119.2,374.6M121.1,372.7 L124.0,369.8M131.5,336.4 L128.1,341.0 L122.2,344.0M-213.5,633.3 L-212.9,629.3M-213.5,633.3 L-214.6,639.0M-185.8,642.9 L-189.4,645.1 L-214.6,639.0M468.4,183.1 L470.6,184.9M468.4,183.1 L466.0,185.9M468.4,183.1 L460.8,176.5 L459.9,177.1M470.6,184.9 L468.4,183.1M466.0,185.9 L468.4,183.1M466.0,185.9 L463.7,188.2 L459.9,184.5M280.1,335.4 L285.0,339.8M287.5,342.4 L289.8,344.4M287.5,342.4 L285.0,339.8M287.5,342.4 L290.2,339.6 L291.0,340.3M465.4,637.6 L463.0,638.4M465.4,637.6 L468.2,638.9M465.4,637.6 L462.4,640.2M465.4,637.6 L466.6,635.3M463.0,638.4 L465.4,637.6M468.2,638.9 L465.4,637.6M462.4,640.2 L460.7,642.0M462.4,640.2 L465.4,637.6M466.6,635.3 L465.4,637.6M452.0,648.6 L447.9,648.1M448.2,645.0 L447.9,648.1M208.4,-52.5 L209.9,-38.1M-15.7,431.5 L-20.2,428.3M-15.7,431.5 L-15.0,425.8 L-16.1,419.8M-15.7,432.0 L-15.5,435.6M-20.2,428.3 L-15.7,431.5M-10.4,444.8 L-9.6,454.8M-10.4,444.8 L-15.5,435.6M-10.4,444.8 L-5.0,446.9M-9.6,454.8 L-10.4,444.8M-15.5,435.6 L-15.7,432.0M-15.5,435.6 L-10.4,444.8M-5.0,446.9 L-10.4,444.8M378.3,553.0 L377.2,561.7M377.2,561.7 L378.3,553.0M377.2,561.7 L369.4,559.0M379.1,562.3 L385.7,564.2M379.1,562.3 L377.8,568.5 L374.2,568.0M369.4,559.0 L352.8,551.4M369.4,559.0 L377.2,561.7M369.4,559.0 L368.1,542.1M369.4,559.0 L364.4,566.7 L357.6,572.9M66.9,112.6 L68.2,115.2M66.9,112.6 L66.0,111.3 L65.1,111.4 L65.4,112.3 L66.9,112.6M66.9,112.6 L65.4,112.3 L65.1,111.4 L66.0,111.3 L66.9,112.6M50.5,120.2 L52.2,120.8 L68.2,115.2M495.5,482.2 L496.6,478.5M495.5,482.2 L495.8,485.0M493.8,481.5 L489.1,479.4M496.6,478.5 L495.5,482.2M495.8,485.0 L499.9,493.0M495.8,485.0 L495.5,482.2M478.1,475.9 L478.1,480.6M478.1,475.9 L466.0,475.9M478.1,475.9 L489.1,479.4M478.1,480.6 L478.1,483.7M478.1,480.6 L478.1,475.9M478.1,480.6 L486.1,487.5M466.0,475.9 L466.0,469.4M466.0,475.9 L440.3,476.5M466.0,475.9 L478.1,475.9M489.1,479.4 L493.8,481.5M489.1,479.4 L478.1,475.9M466.
381380,469.4 L457.7,469.4M466.0,469.4 L466.0,475.9M466.0,469.4 L463.4,460.4M466.0,469.4 L469.6,469.1M440.3,476.5 L466.0,475.9M8.5,81.1 L9.4,83.8M8.6,88.7 L9.4,83.8M15.3,-28.5 L18.7,-25.5M15.3,-28.5 L13.4,-30.1M15.3,-28.5 L21.5,-36.8M18.7,-25.5 L15.3,-28.5M18.7,-25.5 L25.4,-19.8M13.4,-30.1 L15.3,-28.5M13.4,-30.1 L6.3,-36.1M21.5,-36.8 L15.3,-28.5M457.7,469.4 L466.0,469.4M469.6,469.1 L471.6,467.6 L471.7,459.6M469.6,469.1 L466.0,469.4M154.9,616.9 L169.2,631.5M154.9,616.9 L159.4,613.2M154.9,616.9 L146.2,608.2M154.9,616.9 L150.3,620.4M169.2,631.5 L154.9,616.9M169.2,631.5 L163.3,633.7M169.2,631.5 L174.3,632.4 L177.0,631.3M159.4,613.2 L177.0,631.3M159.4,613.2 L163.6,609.3M159.4,613.2 L154.9,616.9M159.4,613.2 L149.0,602.7M146.2,608.2 L154.9,616.9M146.2,608.2 L149.0,602.7M146.2,608.2 L143.3,613.5M150.3,620.4 L157.1,627.3M150.3,620.4 L143.3,613.5M150.3,620.4 L154.9,616.9M150.3,620.4 L144.9,623.1M163.3,633.7 L157.1,627.3M163.3,633.7 L156.4,635.2M163.3,633.7 L169.2,631.5M177.0,631.3 L159.4,613.2M177.0,631.3 L174.3,632.4 L169.2,631.5M177.0,631.3 L178.1,629.2 L177.0,623.4M61.0,682.1 L82.5,687.4M61.0,682.1 L62.3,676.2M62.9,673.4 L62.3,676.2M93.9,684.4 L84.0,681.7M93.9,684.4 L99.5,691.6M93.9,684.4 L94.7,680.3M94.7,680.3 L93.9,684.4M94.7,680.3 L88.2,673.0M15.3,582.3 L18.1,578.8M18.1,578.8 L20.7,575.6M18.1,578.8 L15.3,582.3M14.6,583.1 L13.0,585.0M16.1,583.1 L17.9,584.6M14.2,581.5 L17.1,578.0M40.2,603.9 L34.1,598.7M40.2,603.9 L45.8,602.4M41.1,604.8 L43.6,606.9M34.1,598.7 L40.2,603.9M34.1,598.7 L28.1,593.5M39.5,604.6 L37.4,607.1M45.8,602.4 L48.2,602.0M45.8,602.4 L40.2,603.9M54.6,636.9 L53.7,633.5M51.9,626.6 L53.7,633.5M51.9,626.6 L50.8,622.5M52.7,633.7 L47.8,635.0M65.0,654.2 L59.4,655.7M65.0,654.2 L67.7,664.4M58.7,693.2 L79.9,698.7M58.7,693.2 L57.6,699.2M58.8,692.7 L59.5,689.7M57.6,699.2 L78.0,704.4M57.6,699.2 L54.1,721.6M57.6,699.2 L58.7,693.2M68.9,584.4 L69.5,589.1M68.9,584.4 L72.3,582.5M68.9,584.4 L64.2,588.8 L65.6,598.6M68.7,582.1 L72.3,582.5M68.7,582.1 L68.2,575.9M68.7,582.1 L62.9,582.0M72.3,582.5 L68.7,582.1M72.3,582.5 L77.6,580.0 L80.0,577.4M72.3,582.5 L68.9,584.4M-214.8,280.4 L-210.6,283.7 L-206.7,284.3M-214.8,280.4 L-215.9,275.6 L-212.3,272.5 L-204.2,274.1M-214.8,280.4 L-211.2,278.9 L-208.0,279.4M-206.7,288.4 L-206.0,293.1M-206.7,288.4 L-206.7,284.3M-206.7,288.4 L-217.5,289.4M-206.0,293.1 L-205.7,298.8M-206.0,293.1 L-206.7,288.4M-206.0,293.1 L-209.1,293.8M-217.5,289.4 L-206.7,288.4M-217.5,289.4 L-219.2,290.7 L-218.9,292.6 L-217.1,294.0M-205.7,298.8 L-206.0,293.1M-205.7,298.8 L-207.1,306.6M-205.7,298.8 L-214.7,300.2M-209.1,293.8 L-206.0,293.1M-209.1,293.8 L-211.6,294.2M-207.1,306.6 L-209.5,308.6M-207.1,306.6 L-205.7,298.8M-214.7,300.2 L-205.7,298.8M-209.5,308.6 L-207.1,306.6M370.4,36.8 L367.8,35.1M370.4,36.8 L374.2,27.4 L370.8,25.1M367.8,35.1 L370.4,36.8M370.8,25.1 L371.9,20.3M370.8,25.1 L367.8,24.4M370.8,25.1 L374.2,27.4 L370.4,36.8M258.7,207.5 L255.4,211.5M259.3,207.6 L262.6,210.2M255.4,211.5 L258.7,207.5M677.5,88.3 L683.6,84.7M677.5,88.3 L673.8,93.7M677.5,88.3 L684.3,86.2M683.6,84.7 L677.5,88.3M673.8,93.7 L677.5,88.3M673.8,93.7 L671.0,99.0M684.3,86.2 L693.9,85.6 L706.0,81.8M684.3,86.2 L677.5,88.3M720.2,59.0 L722.6,68.2 L722.2,70.3 L719.5,72.3M714.2,73.7 L719.5,72.3M714.2,73.7 L709.3,75.4M714.9,56.8 L713.8,52.6 L718.6,52.7M714.9,56.8 L719.5,56.1M-11.1,640.9 L-10.4,633.7M-11.3,642.3 L-14.5,665.3M-10.4,633.7 L-10.2,631.1M-10.4,633.7 L-11.1,640.9M-12.1,640.8 L-11.5,635.3M-17.4,645.2 L-27.2,635.6M-17.4,645.2 L-15.2,642.9M-27.2,635.6 L-17.4,645.2M-15.2,642.9 L-17.4,645.2M-23.8,651.5 L-25.5,653.1M-56.1,683.0 L-62.6,688.5M-56.1,683.0 L-41.7,669.0M-63.9,-77.1 L-53.1,-73.5M-63.9,-77.1 L-74.4,-81.4 L-84.0,-87.1M-53.1,-73.5 L-48.3,-71.9M-53.1,-73.5 L-53.8,-70.5 L-51.3,-69.3M-53.1,-73.5 L-63.9,-77.1M-78.1,-57.0 L-83.3,-61.6M-83.3,-61.6 L-78.1,-57.0M-147.3,-4.9 L-152.4,-4.2M-147.3,-4.9 L-145.4,-0.3M-147.3,-4.9 L-150.0,-8.7M-152.4,-4.2 L-147.3,-4.9M-152.4,-4.2 L-155.5,-3.6M-152.4,-4.2 L-158.9,-9.5M-145.4,-0.3 L-148.1,0.6M-145.4,-0.3 L-147.3,-4.9M-145.4,-0.3 L-139.9,-3.5 L-136.4,-10.3M-150.0,-8.7 L-154.3,-12.0M-150.0,-8.7 L-150.6,-15.0 L-152.1,-15.0 L-154.3,-12.0M-150.0,-8.7 L-147.3,-4.9M282.0,94.6 L283.0,98.4M287.6,97.9 L283.0,98.4M287.6,97.9 L290.8,97.4 L293.3,98.4M201.5,226.8 L202.7,224.5M201.5,226.8 L198.8,225.5 L2
3813800.2,225.5M202.7,224.5 L208.3,213.6M202.7,224.5 L201.5,226.8M202.7,224.5 L200.2,225.5M200.2,225.5 L198.8,225.5 L201.5,226.8M200.2,225.5 L202.7,224.5M187.9,205.8 L187.6,209.8M189.1,206.0 L187.6,209.8M187.6,209.8 L189.1,206.0M187.6,209.8 L187.9,205.8M197.6,-78.8 L188.9,-76.5M188.9,-76.5 L197.6,-78.8M188.9,-76.5 L188.7,-69.4M188.0,-76.2 L184.8,-75.2M188.7,-69.4 L188.9,-76.5M184.8,-75.2 L188.0,-76.2M211.0,203.6 L207.4,202.1M211.0,203.6 L208.5,208.3 L206.8,207.6M207.4,202.1 L203.2,200.3M207.4,202.1 L211.0,203.6M211.3,202.9 L213.3,198.4 L202.6,193.9 L201.0,197.7M206.8,207.6 L208.5,208.3 L211.0,203.6M256.6,244.9 L255.3,251.2M256.6,244.9 L258.3,240.7M-156.0,215.3 L-160.6,228.8M-156.0,215.3 L-151.7,203.3 L-140.5,187.6M-156.0,215.3 L-149.2,218.1M-140.5,187.6 L-134.1,178.7M-140.5,187.6 L-151.7,203.3 L-156.0,215.3M-140.5,187.6 L-136.0,189.4 L-127.2,189.3M-140.5,187.6 L-147.1,183.9 L-155.2,184.5M-149.2,218.1 L-146.4,218.5M-149.2,218.1 L-156.0,215.3M-162.7,243.1 L-161.4,253.4M-162.7,243.1 L-162.9,236.1 L-160.6,228.8M-161.4,253.4 L-162.7,243.1M-161.4,253.4 L-159.8,264.6M-161.4,253.4 L-164.9,253.4 L-169.1,247.7M-169.1,247.7 L-169.4,245.7 L-166.2,245.6 L-166.5,246.9 L-169.1,247.7M-169.1,247.7 L-166.5,246.9 L-166.2,245.6 L-169.4,245.7 L-169.1,247.7M-169.1,247.7 L-164.9,253.4 L-161.4,253.4M-154.7,264.3 L-149.2,263.8M-154.7,264.3 L-159.8,264.6M-154.7,264.3 L-155.6,250.4M-141.0,290.8 L-142.3,286.1M-141.0,290.8 L-145.0,292.2M-141.0,290.8 L-140.7,297.1 L-142.2,303.5M511.7,575.5 L516.7,572.1M511.7,575.5 L513.0,577.5M516.7,572.1 L526.1,565.5M516.7,572.1 L511.7,575.5M513.0,577.5 L511.7,575.5M526.1,565.5 L516.7,572.1M526.1,565.5 L519.1,560.4M526.1,565.5 L528.0,574.4M519.1,560.4 L510.6,564.4M519.1,560.4 L526.1,565.5M519.1,560.4 L515.7,553.7 L505.2,549.9M528.0,574.4 L526.1,565.5M189.8,252.0 L191.5,248.8M189.8,252.0 L177.5,274.7M180.6,266.1 L176.4,274.3M180.6,266.1 L183.2,261.3M180.6,266.1 L177.5,274.7M235.8,67.9 L228.1,72.3M226.4,60.8 L225.4,66.7 L228.1,72.3M337.8,307.0 L337.9,303.5M337.8,307.0 L325.9,307.6 L321.1,311.5 L320.9,313.4 L322.8,315.6 L331.4,319.4M337.8,307.0 L354.4,307.3M337.8,307.0 L335.9,313.3M337.9,303.5 L337.8,307.0M335.9,313.3 L331.4,319.4M335.9,313.3 L340.2,315.0 L345.1,313.8M335.9,313.3 L337.8,307.0M325.2,327.7 L331.4,319.4M325.2,327.7 L321.7,331.6M-59.0,610.9 L-49.1,616.3M-59.0,610.9 L-73.9,600.6M-59.0,610.9 L-62.0,616.0M-36.8,624.6 L-46.4,634.7M-36.8,624.6 L-49.1,616.3M-36.8,624.6 L-28.6,634.1M505.2,455.0 L503.1,460.5M505.2,455.0 L499.6,452.5 L499.2,447.8 L497.9,445.7 L493.6,445.1M505.2,455.0 L507.0,449.0M503.1,460.5 L505.2,455.0M493.6,445.1 L487.1,442.7M493.6,445.1 L497.9,445.7 L499.2,447.8 L499.6,452.5 L505.2,455.0M493.6,445.1 L491.7,449.2M507.0,449.0 L509.1,441.6M507.0,449.0 L505.2,455.0M487.1,442.7 L493.6,445.1M487.1,442.7 L486.7,443.6 L485.6,443.1 L486.1,442.2 L487.1,442.7M487.1,442.7 L486.1,442.2 L485.6,443.1 L486.7,443.6 L487.1,442.7M491.7,449.2 L493.6,445.1M140.9,625.0 L150.5,638.9M140.9,625.0 L135.5,627.2M140.9,625.0 L144.9,623.1M133.7,627.9 L129.8,629.3M133.7,627.9 L129.2,623.1M155.0,654.7 L148.3,645.0M155.0,654.7 L159.3,650.9 L157.8,646.4 L155.4,644.5 L148.3,645.0M155.0,654.7 L153.9,662.9M455.7,702.1 L455.4,710.1M-155.5,-3.6 L-152.4,-4.2M-155.5,-3.6 L-153.0,1.6M-155.5,-3.6 L-162.0,-7.7M-153.0,1.6 L-152.4,3.9M-153.0,1.6 L-155.5,-3.6M-135.6,79.9 L-143.3,78.8M-135.6,79.9 L-136.9,90.6M-135.9,78.5 L-149.9,36.8 L-151.2,23.9M-143.3,78.8 L-135.6,79.9M-143.3,78.8 L-149.2,76.9M-136.9,90.6 L-138.1,96.4M-136.9,90.6 L-135.
381386,79.9M-138.3,100.1 L-146.0,97.3 L-152.6,93.1M-138.3,100.1 L-138.3,109.7M-138.3,100.1 L-138.1,96.4M-152.6,93.1 L-155.8,91.4M-152.6,93.1 L-146.0,97.3 L-138.3,100.1M-138.3,109.7 L-149.8,106.5 L-160.9,100.4M-138.3,109.7 L-138.3,100.1M-138.1,96.4 L-138.3,100.1M-138.1,96.4 L-136.9,90.6M-138.3,111.0 L-138.4,127.4M-160.9,100.4 L-155.8,91.4M-160.9,100.4 L-167.3,96.7M-160.9,100.4 L-149.8,106.5 L-138.3,109.7M-138.4,127.4 L-145.9,126.4M-138.4,127.4 L-137.8,135.8M-138.4,127.4 L-138.3,111.0M-145.9,126.4 L-149.4,124.8 L-156.7,117.7M-145.9,126.4 L-138.4,127.4M-137.8,135.8 L-130.5,133.8M-137.8,135.8 L-138.4,127.4M571.1,484.2 L569.2,488.3M571.1,484.2 L575.3,485.7M571.1,484.2 L568.6,479.6M569.2,488.3 L571.1,484.2M568.6,479.6 L561.4,481.0M568.6,479.6 L573.2,477.9 L572.9,474.5M568.6,479.6 L566.8,467.9M568.6,479.6 L571.1,484.2M476.9,111.0 L469.3,112.1M476.9,111.0 L483.0,104.2M476.9,111.0 L481.2,116.0M469.3,112.1 L476.9,111.0M481.2,116.0 L476.9,111.0M464.5,98.8 L465.6,100.9M471.6,99.4 L468.9,99.2 L465.6,100.9M463.9,97.7 L467.9,89.8M462.7,96.2 L461.1,94.1M467.9,89.8 L463.9,97.7M457.9,85.2 L458.8,87.9M458.8,87.9 L457.9,85.2M458.8,87.9 L459.8,91.0M422.1,509.1 L422.5,506.6M-173.1,205.4 L-168.3,205.3 L-166.6,207.0M-173.1,205.4 L-179.4,206.5M-173.1,206.3 L-173.1,210.6M-166.6,207.0 L-166.4,209.8M-166.6,207.0 L-168.3,205.3 L-173.1,205.4M-179.4,206.5 L-181.4,212.1M-179.4,206.5 L-182.4,205.7 L-181.6,209.0M-179.4,206.5 L-173.1,205.4M273.1,316.0 L268.0,316.4 L268.5,313.2M118.2,356.4 L114.8,360.5M159.0,333.4 L156.1,331.9M159.0,333.4 L161.0,334.7M159.0,333.4 L161.9,326.2M158.7,324.8 L160.4,320.5M158.7,324.8 L161.9,326.2M158.7,324.8 L156.1,331.9M161.0,334.7 L159.0,333.4M161.0,334.7 L165.4,339.6M161.0,334.7 L164.4,331.1M165.4,339.6 L161.0,334.7M165.4,339.6 L161.9,346.5M164.4,331.1 L161.0,334.7M164.4,331.1 L167.5,330.4 L178.4,340.2 L178.5,342.5 L176.9,344.2M166.4,340.2 L173.5,345.5 L175.4,345.7 L176.9,344.2M176.9,344.2 L175.4,345.7 L173.5,345.5 L166.4,340.2M176.9,344.2 L182.0,349.2 L183.4,357.0M176.9,344.2 L178.5,342.5 L178.4,340.2 L167.5,330.4 L164.4,331.1M183.4,357.0 L182.0,349.2 L176.9,344.2M183.4,357.0 L184.7,359.5M127.6,678.1 L120.8,691.0M127.6,678.1 L133.7,678.8M127.6,678.1 L122.4,675.9M120.8,691.0 L127.6,678.1M120.8,691.0 L116.3,687.0M120.8,691.0 L125.9,694.0M363.9,43.0 L369.3,38.0M363.9,43.0 L372.2,52.3M369.3,38.0 L363.9,43.0M363.6,43.3 L360.6,46.1M371.9,20.3 L370.8,25.1M371.9,20.3 L372.8,13.0M367.8,24.4 L370.8,25.1M352.8,551.4 L369.4,559.0M352.8,551.4 L335.9,543.1 L333.6,536.8 L328.8,539.3M385.7,564.2 L379.1,562.3M385.7,564.2 L393.0,566.9M385.7,564.2 L387.5,559.0 L391.0,557.0M374.2,568.0 L377.8,568.5 L379.1,562.3M393.0,566.9 L407.1,572.1M393.0,566.9 L385.7,564.2M391.0,557.0 L387.5,559.0 L385.7,564.2M407.1,572.1 L411.6,571.8M407.1,572.1 L393.0,566.9M407.1,572.1 L405.1,578.5 L405.9,580.4M411.6,571.8 L407.1,572.1M411.6,571.8 L424.5,571.0M411.6,571.8 L416.3,554.1M405.9,580.4 L413.5,579.6 L415.2,578.2M405.9,580.4 L405.1,578.5 L407.1,572.1M424.5,571.0 L411.6,571.8M424.5,571.0 L425.6,566.0M416.3,554.1 L411.6,571.8M425.2,570.9 L431.1,570.5 L433.7,569.1M425.2,570.9 L425.6,566.0M425.6,566.0 L425.2,570.9M425.6,566.0 L424.5,571.0M434.2,568.7 L436.1,567.0M434.2,568.7 L435.4,572.1M433.7,569.1 L431.1,570.5 L425.2,570.9M436.1,567.0 L434.2,568.7M435.4,572.1 L434.2,568.7M593.3,577.1 L594.9,578.9M599.1,573.3 L594.9,578.9M599.1,573.3 L606.0,574.9M111.2,-14.6 L112.7,-10.1 L121.0,-4.8M738.0,634.5 L728.8,623.8M738.0,634.5 L753.7,619.9M738.0,634.5 L730.1,641.9M743.7,607.7 L736.9,600.0M743.7,607.7 L749.8,614.7M758.0,607.5 L762.4,612.8M758.0,607.5 L764.0,602.0M758.0,607.5 L749.8,614.7M758.0,607.5 L744.8,592.7M736.9,600.0 L743.7,607.7M736.9,600.0 L725.4,603.5M736.9,600.0 L744.8,592.7M744.8,592.7 L758.0,607.5M744.8,592.7 L736.9,600.0M744.8,592.7 L746.4,589.9M-212.9,629.3 L-213.5,633.3M291.0,340.3 L290.2,339.6 L287.5,342.4M70.2,594.4 L70.1,597.8M70.2,594.4 L69.5,589.1M70.2,594.4 L78.2,591.5 L87.2,585.2M475.8,614.3 L477.7,611.2M475.8,614.3 L473.8,618.8M475.8,614.3 L467.1,608.4M475.8,614.3 L485.0,618.4M477.7,611.2 L475.8,614.3M473.8,618.8 L472.3,622.2M473.8,618.8 L475.8,614.3M467.1,608.4 L475.8,614.3M467.1,608.4 L460.3,616.4M467.1,608.4 L480.9,592.6M485.0,618.4 L475.8,614.3M485.0,618.4 L487.9,619.1M472.3,622.2 L470.9,625.8M472.3,622.2 L473.8,618.8M472.3,622.2 L490.6,629.8M470.9,625.8 L472.3,622.2M456.2,649.2 L452.8,648.7M456.6,648.1 L458.3,644.4M452.8,648.7 L456.2,649.2M459.6,687.3 L459.9,694.1M459.0,686.2 L452.8,674.0M459.9,694.1 L457.3,700.7M459.9,694.1 L459.6,687.3M457.3,700.7 L460.3,699.8M457.3,700.7 L459.9,694.1M-111.0,-106.0 L-84.0,-87.1M-50.9,-116.7 L-58.9,-110.8 L-63.4,-109.1 L-75.0,-109.4 L-80.8,-112.2M10.7,411.5 L6.6,410.4 L-3.0,415.2 L-7.7,415.0 L-14.1,411.9M10.7,411.5 L12.9,413.5 L13.5,416.8 L12.3,421.4M3.1,430.1 L11.5,423.4 L12.3,421.4M-14.1,411.9 L-7.7,415.0 L-3.0,415.2 L6.6,410.4 L10.7,411.5M-13.8,410.5 L-8.8,406.1 L-8.6,399.4 L-6.6,395.9M53.1,440.7 L45.5,441.5 L36.0,436.4M42.3,427.6 L33.7,420.8M42.3,427.6 L36.0,436.4M42.3,427.6 L67.3,434.3M564.6,66.3 L567.7,73.2M564.6,66.3 L562.2,61.0 L577.4,60.1M347.6,330.0 L345.1,331.1M193.1,280.4 L201.1,286.9M193.1,280.4 L188.7,285.4 L196.7,292.4M193.1,280.4 L187.5,275.0 L189.8,272.1M201.1,286.9 L193.1,280.4M196.7,292.4 L188.7,285.4 L193.1,280.4M189.8,272.1 L191.3,270.1M189.8,272.1 L187.5,275.0 L193.1,280.4M186.1,261.9 L189.3,263.9M597.1,550.8 L590.7,545.5M444.5,255.9 L444.1,253.6M444.1,253.6 L444.5,255.9M-0.3,637.4 L3.6,637.8 L3.4,639.3 L-0.6,638.9M-0.3,637.4 L1.0,628.8 L2.8,627.9 L4.6,628.6M-0.6,638.9 L3.4,639.3 L3.6,637.8 L-0.3,637.4M-0.
381386,638.9 L-1.4,647.5 L3.2,651.5M4.6,628.6 L2.8,627.9 L1.0,628.8 L-0.3,637.4M3.2,651.5 L-1.4,647.5 L-0.6,638.9M561.4,481.0 L561.2,477.8 L558.9,474.5M561.4,481.0 L551.7,479.6M561.4,481.0 L568.6,479.6M558.9,474.5 L561.2,477.8 L561.4,481.0M475.4,288.5 L468.7,284.5M475.4,288.5 L481.1,292.1M475.4,288.5 L466.0,303.9M494.0,299.8 L496.1,296.0M494.0,299.8 L481.1,292.1M494.0,299.8 L497.0,301.6M495.3,268.2 L492.0,272.9M495.2,267.6 L493.1,265.7M495.9,268.2 L500.5,272.2M502.7,260.2 L500.2,263.0M501.9,257.5 L503.3,259.6M501.9,257.5 L503.3,255.2M531.1,516.4 L533.4,512.9M531.1,516.4 L527.9,521.1M537.8,508.3 L543.7,500.6M536.8,508.2 L533.7,506.0M536.8,508.2 L533.4,512.9M543.7,500.6 L550.0,506.0M543.7,500.6 L549.5,492.0M543.7,500.6 L537.8,508.3M550.0,506.0 L543.7,500.6M550.0,506.0 L556.3,511.5 L563.5,503.2M543.1,500.0 L540.1,497.7M543.1,500.0 L537.0,507.8M543.1,500.0 L548.7,491.7M557.4,497.7 L563.5,503.2M557.4,497.7 L549.5,492.0M545.7,477.5 L546.2,466.3 L544.2,463.9M545.7,477.5 L536.7,472.7 L530.9,467.0M545.7,477.5 L551.7,479.6M479.5,260.1 L476.2,261.0M476.2,261.0 L479.5,260.1M473.2,262.5 L473.5,265.5M472.4,262.0 L463.8,264.4M463.8,264.4 L472.4,262.0M391.0,271.3 L393.3,260.8M362.9,262.8 L364.0,259.9M362.2,263.1 L355.3,260.2M355.3,260.2 L362.2,263.1M355.5,259.7 L357.0,255.2M345.0,255.0 L347.6,256.3M345.0,255.0 L341.5,253.3M344.7,255.6 L340.2,264.5M347.6,256.3 L350.3,257.6M347.6,256.3 L345.0,255.0M336.7,250.9 L340.4,252.7M336.7,250.9 L333.9,249.5M336.4,251.4 L331.9,260.5M333.9,249.5 L336.7,250.9M333.9,248.7 L337.0,240.1M312.7,242.0 L315.6,242.6M312.7,242.0 L310.0,241.6M312.6,242.7 L311.5,246.8M315.6,242.6 L312.7,242.0M310.0,241.6 L312.7,242.0M296.0,241.7 L293.6,247.8M295.9,240.4 L29
381381.4,239.7M270.7,233.4 L267.8,232.0M270.3,234.2 L266.8,240.2M267.8,232.0 L270.7,233.4M263.0,230.4 L261.6,233.4M514.6,422.2 L512.2,430.5M507.3,429.3 L512.2,430.5M-158.9,-9.5 L-152.4,-4.2M-154.3,-12.0 L-150.0,-8.7M-154.3,-12.0 L-152.1,-15.0 L-150.6,-15.0 L-150.0,-8.7M-154.3,-12.0 L-163.2,-16.1M-163.2,-16.1 L-165.3,-12.0M-163.2,-16.1 L-170.5,-20.0M-163.2,-16.1 L-154.3,-12.0M-163.2,-16.1 L-159.7,-21.0 L-155.6,-24.3M-165.3,-12.0 L-163.2,-16.1M-170.5,-20.0 L-163.2,-16.1M-155.6,-24.3 L-159.7,-21.0 L-163.2,-16.1M-69.0,213.3 L-72.7,199.5M-69.0,213.3 L-73.9,214.0M-69.0,213.3 L-62.1,210.6M-74.8,208.2 L-75.3,205.6 L-76.1,205.5 L-76.1,208.1 L-74.8,208.2M-74.8,208.2 L-76.1,208.1 L-76.1,205.5 L-75.3,205.6 L-74.8,208.2M-74.8,208.2 L-73.9,214.0M517.8,410.5 L518.7,407.4M505.4,566.2 L507.1,568.6M505.4,566.2 L510.6,564.4M505.4,566.2 L502.0,566.7M507.1,568.6 L509.8,572.9M507.1,568.6 L505.4,566.2M510.6,564.4 L519.1,560.4M510.6,564.4 L505.4,566.2M502.0,566.7 L505.4,566.2M505.2,549.9 L499.8,549.5M505.2,549.9 L505.3,560.6M505.2,549.9 L515.7,553.7 L519.1,560.4M403.1,365.1 L405.6,368.3M403.1,365.1 L399.7,369.1M403.1,365.1 L405.8,360.7M405.6,368.3 L403.1,365.1M405.6,368.3 L406.1,369.8 L410.5,372.0 L410.6,370.8 L405.6,368.3M405.6,368.3 L410.6,370.8 L410.5,372.0 L406.1,369.8 L405.6,368.3M680.3,156.7 L683.1,153.7M680.3,156.7 L688.7,164.0M680.3,156.7 L668.1,146.8M402.1,260.9 L401.8,253.6M402.1,260.9 L393.3,260.8M402.1,260.9 L402.5,270.7M401.8,253.6 L402.1,260.9M402.5,270.7 L402.1,260.9M156.6,344.0 L161.9,346.5M238.6,223.2 L246.5,225.3M246.5,225.3 L238.6,223.2M491.1,407.9 L494.3,408.9M491.1,407.9 L490.7,403.6 L495.7,404.0M491.1,407.9 L489.9,410.8 L489.0,410.5M489.0,410.5 L489.9,410.8 L491.1,407.9M629.7,446.2 L625.0,445.9M631.6,545.4 L623.7,567.7M631.6,545.4 L637.9,548.6M623.7,567.7 L630.6,574.0M623.7,567.7 L631.6,545.4M623.7,567.7 L618.2,562.9 L617.5,558.7 L621.0,548.3 L629.0,544.9M657.9,162.7 L654.8,163.1M657.9,162.7 L653.1,172.6M657.9,162.7 L665.8,158.6M654.8,163.1 L657.9,162.7M654.8,163.1 L646.5,166.2 L640.4,166.3 L636.1,168.9 L632.2,168.9M653.1,172.6 L657.9,162.7M144.9,623.1 L156.4,635.2M144.9,623.1 L139.9,617.9M144.9,623.1 L150.3,620.4M144.9,623.1 L140.9,625.0M156.4,635.2 L144.9,623.1M156.4,635.2 L150.5,638.9M156.4,635.2 L163.3,633.7M139.9,617.9 L144.9,623.1M139.9,617.9 L143.3,613.5M139.9,617.9 L129.2,623.1M80.3,339.9 L81.8,349.6M80.3,339.9 L84.3,333.0 L89.3,329.5M80.3,339.9 L74.6,338.3 L70.2,333.9M76.9,310.0 L70.1,309.6M76.9,310.0 L79.4,302.3 L74.6,300.9M76.9,310.0 L76.9,314.3 L78.5,317.5 L89.3,329.5M468.8,128.2 L474.5,122.3M447.9,121.2 L450.2,123.3M447.9,121.2 L444.4,124.9M447.9,121.2 L453.3,115.5M629.0,544.9 L621.0,548.3 L617.5,558.7 L618.2,562.9 L623.7,567.7M518.1,196.2 L511.3,204.6M518.1,196.2 L512.8,195.3 L510.0,197.3 L507.5,201.4M622.8,700.1 L625.8,713.8M622.8,700.1 L621.2,693.1M622.8,700.1 L616.5,700.7M625.8,713.8 L622.8,700.1M625.8,713.8 L625.8,720.0 L620.9,727.8 L613.5,750.5M621.2,693.1 L622.8,700.1M621.2,693.1 L620.5,689.7M446.3,-81.4 L459.5,-84.8M446.3,-81.4 L450.1,-77.9 L450.1,-73.8M445.8,-81.2 L440.4,-79.6M459.5,-84.8 L469.5,-85.9M459.5,-84.8 L446.3,-81.4M450.1,-73.8 L450.1,-77.9 L446.3,-81.4M426.5,560.1 L430.1,560.1M426.5,560.1 L425.2,555.3M426.5,560.1 L426.2,563.2M430.1,560.1 L426.5,560.1M425.2,555.3 L426.5,560.1M426.2,563.2 L426.5,560.1M421.9,549.8 L420.4,547.0M420.4,547.0 L418.5,544.2M420.4,547.0 L421.9,549.8M420.7,550.5 L418.7,552.5M418.5,544.2 L420.4,547.0M502.4,437.4 L503.5,432.3 L497.0,430.1M502.4,437.4 L500.4,442.2 L494.3,440.7M502.4,437.4 L509.7,439.4M497.0,430.1 L489.2,428.0M497.0,430.1 L503.5,432.3 L502.4,437.4M494.3,440.7 L500.4,442.2 L502.4,437.4M494.3,440.7 L485.6,438.4M617.7,429.1 L618.3,434.1M618.3,434.1 L616.3,437.8M618.3,434.1 L617.7,429.1M382.5,386.7 L377.6,381.7M382.5,386.7 L377.6,390.4 L380.2,395.9 L384.4,395.7M382.5,386.7 L384.4,390.4 L384.4,395.7M377.6,381.7 L375.7,384.0M377.6,381.7 L382.5,386.7M377.6,381.7 L374.2,379.8M191.0,-30.4 L187.9,-29.7M191.0,-30.4 L197.4,-6.4M191.0,-30.4 L198.8,-32.5M187.9,-29.7 L191.0,-30.4M187.9,-29.7 L177.1,-28.3M197.4,-6.4 L191.0,-30.4M198.8,-32.5 L202.5,-34.2M198.8,-32.5 L205.2,-17.2 L208.4,-15.6 L211.3,-15.9 L213.6,-17.9M198.8,-32.5 L191.0,-30.4M163.6,609.3 L166.3,606.9M163.6,609.3 L159.4,613.2M163.6,609.3 L177.0,623.4M163.6,609.3 L157.3,602.8 L151.7,601.9 L149.0,602.7M149.0,602.7 L159.4,613.2M149.0,602.7 L151.7,601.9 L157.3,602.8 L163.6,609.3M149.0,602.7 L146.2,608.2M177.0,623.4 L178.1,629.2 L177.0,631.3M177.0,623.4 L163.6,609.3M137.6,-61.4 L141.1,-53.8 L141.1,-49.5M141.1,-49.5 L147.7,-48.2M141.1,-49.5 L141.1,-53.8 L137.6,-61.4M141.1,-49.5 L130.3,-48.8M147.7,-48.2 L141.1,-49.5M147.7,-48.2 L156.9,-52.6M147.7,-48.2 L149.6,-44.6M130.3,-48.8 L120.0,-42.5M130.3,-48.8 L141.1,-49.5M652.4,499.5 L650.7,492.1M652.4,499.5 L652.3,501.8 L654.5,504.9 L661.4,507.4M270.2,107.3 L268.5,100.2M268.5,100.2 L267.9,97.8M268.5,100.2 L270.2,107.3M660.9,-1.0 L666.0,-4.9M660.9,-1.0 L655.0,3.4M650.3,-3.9 L655.0,3.4M-23.2,690.6 L-29.5,689.3M-224.1,223.7 L-217.5,223.5M-215.9,238.2 L-217.2,244.6M-215.9,238.2 L-209.8,238.6M-215.9,238.2 L-217.5,223.5M551.7,-53.8 L548.3,-53.9 L546.1,-51.7 L541.2,-52.1 L539.7,-54.2 L540.1,-61.3M551.7,-53.8 L556.3,-54.9 L562.5,-63.0M551.7,-53.8 L549.5,-43.7M551.7,-53.8 L558.0,-68.6 L557.4,-74.2M540.1,-61.3 L539.7,-54.2 L541.2,-52.1 L546.1,-51.7 L548.3,-53.9 L551.7,-53.8M562.5,-63.0 L556.3,-54.9 L551.7,-53.8M549.5,-43.7 L551.7,-53.8M557.4,-74.2 L558.0,-68.6 L551.7,-53.8M418.0,222.0 L416.3,229.5M418.0,222.0 L419.0,217.4M418.0,222.0 L435.3,225.9M416.3,229.5 L418.0,222.0M416.3,229.5 L415.6,232.8M435.3,225.9 L438.2,226.5M435.3,225.9 L418.0,222.0M46.4,399.9 L48.3,398.1 L55.9,400.6 L56.5,401.8 L52.2,404.2 L47.0,402.2M47.0,402.2 L52.2,404.2 L56.5,401.8 L55.9,400.6 L48.3,398.1 L46.4,399.9M39.9,404.6 L38.7,409.3 L39.3,411.6 L43.6,414.2M39.9,404.6 L43.1,400.2M38.1,404.0 L35.2,403.4M38.1,404.0 L35.4,402.7M43.6,414.2 L39.3,411.6 L38.7,409.3 L39.9,404.6M43.1,400.2 L39.9,404.6M336.0,42.8 L342.1,49.4M336.0,42.8 L329.0,49.3M342.1,49.4 L336.0,42.8M329.0,49.3 L336.0,42.8M722.7,650.0 L717.3,643.7M722.7,650.0 L730.1,641.9M722.7,650.0 L715.7,657.5 L712.3,654.5M712.3,654.5 L715.7,657.5 L722.7,650.0M712.3,654.5 L700.6,640.9M728.8,623.8 L738.0,634.5M728.8,623.8 L721.4,615.2M774.5,602.8 L762.4,612.8M774.5,602.8 L789.1,591.0 L789.7,586.9 L786.3,582.7M774.5,602.8 L769.7,597.1M769.7,597.1 L773.1,594.1M769.7,597.1 L764.0,602.0M769.7,597.1 L746.3,569.9M769.7,597.1 L774.5,602.8M783.1,585.6 L781.2,587.2M783.1,585.6 L786.3,582.7M362.0,265.0 L358.6,272.9M365.1,275.6 L358.6,272.9M462.9,245.7 L462.7,250.4M463.0,245.0 L463.5,238.8M455.4,244.6 L462.9,245.4M463.5,238.8 L463.0,245.0M463.5,238.8 L456.5,241.0 L455.1,244.2M455.1,244.2 L456.5,241.0 L463.5,238.8M296.0,248.5 L293.6,247.8M296.0,266.1 L304.9,269.3M296.0,266.1 L287.8,263.1M286.4,288.0 L286.5,290.4M285.8,299.1 L284.5,301.8 L280.6,302.9M285.8,299.1 L285.2,303.9M285.8,299.1 L286.6,294.1M280.6,302.9 L285.2,303.9M280.6,302.9 L284.5,301.8 L285.8,299.1M280.6,302.9 L237.8,304.2 L215.2,313.4 L204.5,314.0 L194.2,313.3 L186.3,311.2 L182.3,307.4 L177.9,299.4 L172.3,295.9M285.2,303.9 L280.6,302.9M285.2,303.9 L285.8,299.1M285.2,303.9 L286.8,299.3M285.2,303.9 L290.3,305.8M286.6,294.1 L282.7,294.1M286.6,294.1 L285.8,299.1M286.6,294.1 L286.9,297.0M443.7,284.3 L436.5,287.0M443.7,284.3 L441.7,277.6M443.7,284.3 L446.4,291.6M436.5,287.0 L443.7,284.3M436.5,287.0 L434.7,289.1M441.7,277.6 L443.7,284.3M-84.4,206.3 L-83.7,208.9M34.2,668.7 L37.9,675.3M3.5,651.7 L5.5,653.4M3.8,651.3 L8.5,643.9M5.5,653.4 L3.5,651.7M-183.0,218.5 L-186.5,218.2M-183.0,218.5 L-181.6,212.8M-183.0,218.5 L-183.0,223.8M-186.5,218.2 L-183.0,218.5M-183.0,223.8 L-183.0,218.5M675.3,749.1 L683.4,746.2M675.3,749.1 L671.7,750.3M675.3,749.1 L678.1,757.2M675.3,749.1 L672.2,741.7M671.7,750.3 L675.3,749.1M425.9,316.8 L423.2,314.2M425.9,316.8 L432.7,321.7M53.5,588.6 L53.5,600.9M53.5,588.6 L57.0,584.4 L62.9,582.0M48.2,602.0 L45.8,602.4M48.2,602.0 L53.5,600.9M68.2,575.9 L68.7,582.1M62.9,582.0 L57.0,584.4 L53.5,588.6M62.9,582.0 L68.7,582.1M100.7,558.0 L97.0,566.1M100.7,558.0 L95.4,546.4 L96.3,544.9 L99.1,544.4M100.7,558.0 L102.3,552.0 L99.1,544.4M99.1,544.4 L96.3,544.9 L95.4,546.4 L100.7,558.0M99.1,544.4 L102.3,552.0 L100.7,558.0M437.9,131.8 L435.4,134.6M434.0,133.5 L424.3,129.1M415.7,155.0 L413.5,157.3M415.7,155.0 L418.0,152.7M407.1,152.1 L404.8,150.0M407.1,152.1 L413.5,157.3M613.5,750.5 L610.7,760.4 L611.2,771.2M613.5,750.5 L620.9,727.8 L625.8,720.0 L625.8,713.8M-181.4,212.1 L-179.4,206.5M-171.4,217.7 L-173.6,215.5 L-181.6,212.8M-171.4,217.7 L-166.6,225.3M529.2,227.3 L536.4,233.6M529.4,226.6 L534.7,220.5M528.7,227.5 L524.9,232.0M488.7,193.1 L481.2,186.7M488.7,193.1 L514.7,214.9M489.3,191.4 L476.7,181.3 L476.0,179.3M489.3,191.4 L496.2,186.8 L501.0,181.8M514.7,214.9 L518.5,218.1M514.7,214.9 L488.7,193.1M-208.0,279.4 L-211.2,278.9 L-214.8,280.4M487.1,113.5 L493.2,116.5M491.2,123.0 L492.8,125.4M491.2,123.0 L493.2,120.6 L493.2,116.5M491.2,123.0 L486.8,123.4 L482.8,125.8M227.2,-1.6 L233.0,5.9M227.2,-1.6 L227.9,-3.5 L230.4,-3.2 L235.9,3.1M233.0,5.9 L227.2,-1.6M233.0,5.9 L235.9,3.1M233.0,5.9 L229.7,9.8M235.9,3.1 L233.0,5.9M235.9,3.1 L230.4,-3.2 L227.9,-3.5 L227.2,-1.6M463.3,148.1 L456.1,141.5M365.1,126.4 L360.2,131.3M365.1,126.4 L362.9,123.8M360.2,131.3 L365.1,126.4M360.2,131.3 L362.8,137.3M362.9,123.8 L365.1,126.4M362.9,123.8 L353.1,132.8M365.6,126.9 L367.4,129.0M362.8,137.3 L360.2,131.3M222.9,123.8 L220.8,111.3M222.9,123.8 L220.4,130.4 L210.5,141.1M220.8,111.3 L222.9,123.8M210.5,141.1 L220.4,130.4 L222.9,123.8M723.7,44.8 L716.5,45.9 L717.3,48.8M717.3,48.8 L718.6,52.7M717.3,48.8 L716.5,45.9 L723.7,44.8M394.7,222.1 L391.8,220.1M394.7,222.1 L400.4,225.9M638.5,469.8 L644.3,468.7M638.5,469.8 L644.9,476.6M638.5,469.8 L633.3,468.6 L622.0,472.9 L618.5,476.2 L616.9,481.7M644.3,468.7 L646.0,468.7 L646.3,467.1M644.3,468.7 L646.3,467.1M644.3,468.7 L638.5,469.8M644.9,476.6 L647.5,477.8 L649.1,480.7 L649.1,486.4 L647.7,488.7M644.9,476.6 L638.5,469.8M616.9,481.7 L618.5,476.2 L622.0,472.9 L633.3,468.6 L638.5,469.8M616.9,481.7 L610.7,483.0 L602.0,487.0M616.9,481.7 L636.4,481.8 L640.3,483.2 L647.7,488.7M646.3,467.1 L644.3,468.7M646.3,467.1 L646.0,468.7 L644.3,468.7M219.9,81.8 L225.3,86.3M-106.9,342.1 L-109.5,348.5M-106.9,342.1 L-101.5,346.1M-106.9,342.1 L-115.8,338.7 L-126.2,331.7 L-131.3,330.1 L-137.2,330.6M-134.1,178.7 L-140.5,187.6M-134.1,178.7 L-129.5,172.5M-134.1,178.7 L-136.8,176.4M-128.0,170.3 L-129.5,172.5M-128.0,170.3 L-127.4,166.8M-136.8,176.4 L-134.1,178.7M-155.2,184.5 L-157.0,177.3M-155.2,184.5 L-162.6,186.0M-155.2,184.5 L-147.1,183.9 L-140.5,187.6M298.6,380.5 L298.6,384.5 L302.4,387.4M302.4,387.4 L298.6,384.5 L298.6,380.5M302.4,387.4 L304.1,388.0 L306.9,384.2M263.3,495.4 L260.7,500.2M290.1,481.5 L302.1,477.4M290.1,481.5 L270.9,485.7 L263.6,494.7M290.1,481.5 L285.6,474.4M302.1,477.4 L290.1,481.5M285.6,474.4 L290.1,481.5M285.6,474.4 L283.6,471.2 L275.6,465.2M308.8,474.1 L311.9,474.4M308.8,474.1 L303.3,476.6M308.7,480.7 L311.9,474.4M308.7,480.7 L300.1,498.1M352.8,474.3 L346.7,476.3M352.8,474.3 L353.7,482.2 L351.8,504.9 L348.9,506.8M353.4,474.0 L355.7,472.9M346.7,476.3 L352.8,474.3M346.7,476.3 L343.1,477.5M348.9,506.8 L351.8,504.9 L353.7,482.2 L352.8,474.3M113.7,636.5 L122.4,649.2M113.7,636.5 L116.2,635.1M113.7,636.5 L111.1,638.4M307.6,126.3 L310.6,125.3M310.6,125.3 L307.8,122.4M310.6,125.3 L307.6,126.3M310.6,125.3 L314.4,127.9M548.9,429.0 L542.3,425.2 L543.2,420.7M-206.4,70.6 L-212.7,72.9 L-217.7,72.9M-219.8,79.5 L-219.8,83.7M-219.8,79.5 L-217.7,72.9M-219.8,79.5 L-220.9,83.7M460.3,616.4 L457.9,619.4M460.3,616.4 L467.1,608.4M480.9,592.6 L467.1,608.4M480.9,592.6 L484.1,586.0M480.9,592.6 L482.6,599.8M202.5,-34.2 L198.8,-32.5M202.5,-34.2 L209.9,-38.1M213.6,-17.9 L211.3,-15.9 L208.4,-15.6 L205.2,-17.2 L198.8,-32.5M177.1,-28.3 L187.9,-29.7M177.1,-28.3 L160.5,-35.1M177.1,-28.3 L172.1,-22.5M160.5,-35.1 L157.8,-35.8M160.5,-35.1 L177.1,-28.3M172.1,-22.5 L168.5,-18.7M172.1,-22.5 L177.1,-28.3M157.8,-35.8 L160.5,-35.1M154.5,-35.0 L149.6,-44.6M154.5,-35.0 L157.3,-35.8M154.0,-34.7 L151.2,-32.3M149.6,-44.6 L154.5,-35.0M149.6,-44.6 L147.7,-48.2M157.3,-35.8 L154.5,-35.0M92.5,42.5 L102.5,30.2M92.5,42.5 L86.4,50.7 L87.9,55.7M92.5,42.5 L85.5,36.5M81.5,65.6 L89.7,59.1M81.5,65.6 L78.2,68.3M87.9,55.7 L89.7,59.1M87.9,55.7 L86.4,50.7 L92.5,42.5M722.1,533.4 L725.5,530.6M774.9,579.6 L781.2,587.2M544.2,463.9 L546.2,466.3 L545.7,477.5M544.2,463.9 L533.2,465.5 L530.9,467.0M530.9,467.0 L533.2,465.5 L544.2,463.9M530.9,467.0 L536.7,472.7 L545.7,477.5M572.9,474.5 L573.2,477.9 L568.6,479.6M566.8,467.9 L568.6,479.6M566.8,467.9 L571.6,466.5M718.2,77.8 L714.6,81.3M706.0,81.8 L710.5,89.7M706.0,81.8 L711.7,79.5 L714.6,81.3M706.0,81.8 L693.9,85.6 L684.3,86.2M520.8,429.3 L522.7,425.8M515.5,421.8 L522.7,425.8M515.1,420.8 L516.6,415.5M463.3,422.0 L460.2,417.6M463.3,422.0 L456.3,426.9M463.3,422.0 L469.2,417.8M463.3,422.0 L476.2,439.6 L477.0,444.8M461.1,405.9 L469.2,417.8M456.3,426.9 L449.9,431.2M456.3,426.9 L463.3,422.0M456.3,426.9 L469.4,443.7M449.9,431.2 L451.6,433.9M449.9,431.2 L443.9,435.4M449.9,431.2 L456.3,426.9M469.4,443.7 L472.7,445.0 L477.0,444.8M469.4,443.7 L456.3,426.9M451.6,433.9 L449.9,431.2M443.9,435.4 L449.9,431.2M651.8,13.4 L661.9,16.3M651.8,13.4 L644.3,11.1M641.9,12.9 L644.3,11.1M641.9,12.9 L631.1,21.8 L624.9,31.9M72
381381.6,15.3 L724.1,14.1 L726.7,15.0M720.6,15.8 L710.8,17.2M75.8,596.4 L91.6,586.5M75.8,596.4 L70.1,597.8M-48.3,-71.9 L-53.1,-73.5M-48.3,-71.9 L-45.4,-74.1M-48.3,-71.9 L-27.0,-62.9 L-9.3,-49.5M-45.4,-74.1 L-48.3,-71.9M-9.3,-49.5 L1.7,-40.1M-9.3,-49.5 L-12.6,-45.3M-9.3,-49.5 L-27.0,-62.9 L-48.3,-71.9M1.7,-40.1 L3.9,-38.2M1.7,-40.1 L-9.3,-49.5M3.9,-38.2 L1.7,-40.1M3.9,-38.2 L6.3,-36.1M2.3,-41.4 L6.3,-36.1M2.3,-41.4 L-1.0,-45.5M71.6,43.3 L75.0,58.0M71.6,43.3 L67.6,28.1M381.9,175.8 L387.0,180.4M381.9,175.8 L372.5,186.4M381.9,175.8 L381.8,169.7 L379.5,166.4 L379.9,162.4 L381.4,160.8M387.0,180.4 L392.0,184.9M387.0,180.4 L381.9,175.8M387.0,180.4 L376.6,192.0M387.0,180.4 L391.2,171.6M372.5,186.4 L381.9,175.8M372.5,186.4 L361.4,199.1M372.5,186.4 L376.6,192.0M372.5,186.4 L368.4,182.7 L359.0,190.9M381.4,160.8 L387.0,161.3 L390.1,168.0M381.4,160.8 L379.9,162.4 L379.5,166.4 L381.8,169.7 L381.9,175.8M376.6,192.0 L381.7,196.6M376.6,192.0 L387.0,180.4M376.6,192.0 L366.3,203.6M376.6,192.0 L372.5,186.4M391.2,171.6 L398.4,177.8M391.2,171.6 L390.1,168.0M391.2,171.6 L387.0,180.4M409.1,415.0 L413.1,414.8M409.1,415.0 L406.7,416.6 L408.9,420.7M409.1,415.0 L403.2,410.5M413.1,414.8 L409.1,415.0M413.1,414.8 L415.0,417.8 L416.7,416.3M413.1,414.8 L414.7,412.7M408.9,420.7 L406.7,416.6 L409.1,415.0M408.9,420.7 L406.6,422.5 L407.8,424.2 L410.0,422.5 L408.9,420.7M408.9,420.7 L410.0,422.5 L407.8,424.2 L406.6,422.5 L408.9,420.7M403.2,410.5 L403.2,408.2 L400.3,405.0M403.2,410.5 L396.9,410.9M403.2,410.5 L409.1,415.0M-94.4,622.5 L-97.6,625.3M-97.6,625.3 L-94.4,622.5M-97.6,625.3 L-100.5,636.2 L-102.3,638.4M407.1,547.8 L407.1,550.2M407.1,550.2 L407.1,547.8M349.3,201.9 L359.0,190.9M449.3,375.7 L457.7,377.8M676.9,182.7 L680.9,179.3M-155.8,91.4 L-160.9,100.4M-155.8,91.4 L-152.6,93.1M-155.8,91.4 L-163.0,87.5M-163.0,87.5 L-171.9,82.7M-163.0,87.5 L-155.8,91.4M-167.3,96.7 L-160.9,100.4M521.9,235.4 L518.0,239.9M521.9,235.4 L526.8,239.5M521.9,235.4 L524.9,232.0M526.8,239.5 L521.9,235.4M526.8,239.5 L529.4,241.5M524.9,232.0 L521.9,235.4M524.9,232.0 L528.7,227.5M-134.3,625.6 L-130.5,632.9M70.1,597.8 L70.2,594.4M70.1,597.8 L65.6,598.6M70.1,597.8 L75.8,596.4M79.3,616.9 L81.8,626.2M85.3,617.1 L79.3,616.7M85.3,617.1 L97.7,618.0M406.9,-90.5 L407.1,-84.8M406.9,-90.5 L405.6,-95.0M-145.9,269.5 L-148.6,267.6 L-149.2,263.8M-145.9,269.5 L-149.0,273.5 L-147.9,274.4M324.7,275.4 L323.0,274.7 L320.7,278.6 L318.5,279.8M318.5,279.8 L320.7,278.6 L323.0,274.7 L324.7,275.4M274.8,274.5 L278.5,268.0M439.6,303.1 L437.2,296.2M439.6,303.1 L442.0,309.6M439.6,303.1 L429.5,307.3M434.9,289.6 L437.0,295.6M-166.6,225.3 L-171.4,217.7M-168.4,218.7 L-162.4,220.7 L-166.3,225.7M414.7,412.7 L412.3,410.8M414.7,412.7 L413.1,414.8M414.7,412.7 L416.8,408.6M412.3,410.8 L414.7,412.7M416.8,408.6 L413.9,406.4M416.8,408.6 L418.8,410.0M416.8,408.6 L414.7,412.7M416.8,408.6 L420.0,406.1M-10.1,-64.3 L-15.7,-69.7 L-22.0,-73.2M-10.1,-64.3 L-2.5,-69.2M-9.4,-63.3 L-5.5,-54.7M300.1,498.1 L308.7,480.7M299.4,499.5 L295.9,506.8M401.2,94.0 L389.9,82.0M384.3,87.7 L389.9,82.0M523.1,248.7 L529.4,241.5M523.0,249.3 L525.5,254.0M250.3,485.6 L253.9,487.5M251.4,376.0 L253.6,373.8M251.4,376.0 L249.4,377.9 L243.1,379.0M325.3,196.8 L326.9,192.5M325.3,196.8 L320.8,196.9 L316.0,200.5M325.3,196.8 L330.0,201.5M413.9,59.3 L408.9,64.0M413.9,59.3 L417.8,63.5 L415.2,64.8M408.9,64.0 L413.9,59.3M408.9,64.0 L415.4,70.4M415.2,64.8 L417.8,63.5 L413.9,59.3M407.8,64.9 L404.4,68.2M415.4,70.4 L408.9,64.0M384.8,88.6 L387.1,93.1M387.1,93.1 L385.9,97.8M387.1,93.1 L384.8,88.6M674.9,-81.7 L668.2,-78.2M674.9,-81.7 L687.9,-90.7M674.9,-81.7 L679.4,-74.6M668.2,-78.2 L674.9,-81.7M687.9,-90.7 L689.7,-92.6M687.9,-90.7 L674.9,-81.7M679.4,-74.6 L674.9,-81.7M679.4,-74.6 L673.8,-72.5M-112.7,270.9 L-109.8,264.7M-112.7,270.9 L-116.0,273.3M734.6,72.8 L738.4,76.9M745.9,67.1 L738.4,76.9M306.6,198.8 L299.1,194.6M306.6,198.8 L316.2,188.7M306.6,198.8 L309.6,200.4 L316.0,200.5M299.1,194.6 L306.6,198.8M299.1,194.6 L297.3,197.7 L294.7,198.8M299.1,194.6 L293.7,190.7 L292.6,188.0 L293.6,186.5M-129.0,207.1 L-127.6,210.4M-129.0,207.1 L-114.4,200.9M-129.0,207.1 L-131.1,204.3M-8.6,209.1 L9.1,219.9M-8.6,209.1 L-18.3,204.6 L-72.7,199.5M25.9,223.1 L31.1,223.9M25.9,223.1 L22.4,222.4M31.1,223.9 L25.9,223.1M22.4,222.4 L25.9,223.1M22.4,222.4 L19.2,221.9M31.3,224.0 L36.1,224.7M36.1,224.7 L31.3,224.0M36.1,224.7 L42.1,225.8 L48.5,229.3M677.2,-11.9 L683.2,-6.6M677.2,-11.9 L680.2,-18.0 L680.6,-25.8M683.2,-6.6 L677.2,-11.9M683.2,-6.6 L687.9,-4.4 L703.6,-6.2 L707.5,-9.8 L706.6,-13.4M676.0,-11.5 L670.3,-7.8M680.6,-25.8 L680.2,-18.0 L677.2,-11.9M680.6,-25.8 L678.6,-28.2 L676.7,-35.1M703.7,-15.8 L706.6,-13.4M706.6,-13.4 L703.7,-15.8M706.6,-13.4 L707.5,-9.8 L703.6,-6.2 L687.9,-4.4 L683.2,-6.6M449.6,241.2 L449.4,243.8M449.4,243.8 L449.6,241.2M449.5,244.2 L454.7,244.6M673.9,212.9 L682.7,206.8 L682.1,202.3 L684.3,201.8 L685.1,206.2 L687.0,205.9 L687.7,207.0M478.1,483.7 L478.7,486.2M478.1,483.7 L478.1,480.6M478.1,483.7 L474.1,482.8M478.7,486.2 L478.1,483.7M478.7,486.2 L481.1,493.6 L480.6,495.8M478.7,486.2 L483.7,492.9M474.1,482.8 L470.2,482.7M474.1,482.8 L478.1,483.7M465.6,482.6 L469.0,482.7M469.0,482.7 L465.6,482.6M548.3,344.0 L553.5,351.1M559.3,358.9 L555.7,361.7M559.3,358.9 L554.0,351.9M559.3,358.9 L562.1,362.5 L565.7,359.8M555.7,361.7 L546.8,368.1 L544.1,364.9 L553.0,357.9M555.7,361.7 L559.3,358.9M554.0,351.9 L559.3,358.9M548.7,342.7 L545.2,334.6M361.4,199.1 L372.5,186.4M361.4,199.1 L357.0,204.7M366.3,203.6 L376.6,192.0M366.3,203.6 L364.7,206.7M373.8,205.3 L381.7,196.6M373.8,205.3 L371.9,208.5M138.8,662.4 L137.6,660.0M138.8,662.4 L131.3,661.6M138.8,662.4 L144.1,669.2 L151.0,669.7M153.9,662.9 L146.8,653.7M153.9,662.9 L154.1,667.9 L151.
381380,669.7M153.9,662.9 L155.0,654.7M22.5,512.2 L24.9,509.2M428.7,169.9 L426.4,167.9M428.7,169.9 L432.2,166.4M426.4,167.9 L428.7,169.9M10.4,389.5 L8.7,384.3M478.8,257.4 L478.9,248.7M478.9,248.7 L475.3,248.5 L474.1,246.5M478.9,248.7 L478.8,257.4M583.1,299.8 L585.0,302.2M585.0,302.2 L583.1,299.8M585.0,310.9 L582.0,313.0M585.0,310.9 L589.1,307.7M592.7,305.1 L589.1,307.7M592.7,305.1 L598.3,300.9M587.1,305.1 L585.5,303.0M587.1,305.1 L589.1,307.7M607.8,337.7 L610.3,336.0M607.8,337.7 L603.1,341.3 L598.5,335.3M615.5,332.1 L610.3,336.0M615.5,332.1 L619.3,329.2M-128.9,183.0 L-127.2,189.3M-86.7,187.6 L-96.4,188.6M499.8,549.5 L505.2,549.9M505.3,560.6 L505.2,549.9M350.6,365.3 L317.9,401.3 L305.5,394.0 L286.9,410.6 L279.3,419.7 L287.0,427.4 L284.3,431.0M351.9,365.7 L357.9,372.5M349.9,363.3 L340.3,353.2M349.9,363.3 L335.7,350.4M284.3,431.0 L287.0,427.4 L279.3,419.7 L286.9,410.6 L305.5,394.0 L317.9,401.3 L350.6,365.3M540.4,339.4 L542.2,344.0M540.0,339.6 L535.7,343.2M542.2,344.0 L543.4,346.5M542.2,344.0 L540.4,339.4M535.7,343.2 L540.0,339.6M474.1,246.5 L475.3,248.5 L478.9,248.7M-54.0,668.4 L-57.2,668.3 L-60.4,664.5M674.9,652.4 L668.0,666.6 L671.7,668.5M-221.4,249.7 L-222.3,251.8 L-223.7,251.9 L-222.8,248.8M-221.4,249.7 L-219.9,248.4 L-220.4,247.4 L-222.8,248.8M492.8,125.4 L491.2,123.0M657.9,581.0 L658.7,578.2M656.9,581.0 L652.5,580.9M658.7,578.2 L657.9,581.0M97.7,618.4 L98.3,622.0M85.4,617.5 L87.3,624.8M67.1,615.9 L70.5,629.2M-47.5,360.3 L-44.6,362.0M-47.5,360.3 L-50.8,366.7M-47.5,360.3 L-52.2,351.6M-44.6,362.0 L-47.5,360.3M-44.6,362.0 L-41.9,363.6M-50.8,366.7 L-47.5,360.3M-50.8,366.7 L-52.1,369.4 L-50.8,376.8 L-51.8,379.8 L-55.5,383.7 L-58.4,384.7M-52.2,351.6 L-53.1,348.4M-52.2,351.6 L-47.5,360.3M-53.1,348.4 L-52.2,351.6M157.1,627.3 L163.3,633.7M157.1,627.3 L150.3,620.4M143.3,613.5 L150.3,620.4M143.3,613.5 L146.2,608.2M143.3,613.5 L139.9,617.9M337.0,240.1 L333.9,248.7M97.7,618.0 L102.9,616.9 L107.6,611.4M97.7,618.0 L85.3,617.1M680.5,733.8 L682.8,734.6M680.5,733.8 L654.8,742.9M680.5,733.8 L676.3,731.1M676.3,731.1 L696.5,723.9M676.3,731.1 L669.6,725.9M676.3,731.1 L680.5,733.8M121.2,636.9 L127.2,645.7M121.2,636.9 L119.0,633.7M129.8,629.3 L136.9,638.8M129.8,629.3 L133.7,627.9M101.7,649.6 L114.7,667.9M101.7,649.6 L105.4,645.0M141.9,586.8 L148.3,591.4 L159.5,594.6 L166.7,599.0 L166.8,601.0 L164.1,603.6 L166.3,606.9M35.8,689.7 L41.7,686.5 L44.4,691.3 L41.3,693.7 L37.5,693.2 L35.2,690.5 L35.8,689.7M35.8,689.7 L35.2,690.5 L37.5,693.2 L41.3,693.7 L44.4,691.3 L41.7,686.5 L35.8,689.7M745.9,573.4 L735.0,574.0M745.9,573.4 L746.3,569.9M735.0,574.0 L745.9,573.4M356.7,205.8 L363.8,207.5M357.0,204.7 L361.4,199.1M355.6,205.6 L349.8,204.2M363.8,207.5 L356.7,205.8M364.7,258.1 L368.7,245.7M357.0,255.2 L361.1,244.5M357.0,255.2 L355.5,259.7M611.8,137.8 L607.1,139.9M611.8,137.8 L610.3,130.4M607.1,146.6 L607.1,139.9M-215.1,169.2 L-212.7,175.8 L-204.0,180.4 L-201.3,184.5M-201.3,184.5 L-201.2,187.6M-201.3,184.5 L-204.0,180.4 L-212.7,175.8 L-215.1,169.2M-201.2,187.6 L-201.3,184.5M-201.2,187.6 L-197.8,187.8M-197.8,187.8 L-201.2,187.6M-197.8,187.8 L-174.5,187.1M195.7,117.3 L193.1,118.1M195.7,117.3 L198.9,116.3M193.1,118.1 L187.9,119.1M193.1,118.1 L195.7,117.3M198.9,116.3 L195.7,117.3M196.0,118.9 L200.5,125.6M193.4,119.0 L195.9,118.4M200.5,125.6 L203.1,128.7M200.5,125.6 L197.8,128.0M200.5,125.6 L196.0,118.9M203.1,128.7 L200.5,125.6M197.8,128.0 L200.5,125.6M316.0,200.5 L309.6,200.4 L306.6,198.8M316.0,200.5 L320.8,196.9 L325.3,196.8M330.0,201.5 L325.3,196.8M330.0,201.5 L332.5,203.8 L343.4,205.3M624.9,31.9 L631.1,21.8 L641.9,12.9M624.9,31.9 L622.4,37.4M622.4,37.4 L624.9,31.9M666.0,-4.9 L670.3,-7.8M666.0,-4.9 L660.9,-1.0M666.0,-4.9 L657.1,-12.7 L660.4,-19.2M670.3,-7.8 L666.0,-4.9M670.3,-7.8 L676.0,-11.5M660.4,-19.2 L657.1,-12.7 L666.0,-4.9M63.8,368.1 L84.0,381.3 L86.2,384.4M86.2,384.4 L84.0,381.3 L63.8,368.1M309.2,299.3 L304.6,295.7M309.2,299.3 L315.2,303.8M309.2,299.3 L306.2,302.8 L300.0,306.2M304.6,295.7 L309.2,299.3M315.2,303.8 L309.2,299.3M300.0,306.2 L297.7,304.0M300.0,306.2 L302.4,308.1 L307.5,309.0 L309.9,307.3M300.0,306.2 L306.2,302.8 L309.2,299.3M300.0,306.2 L295.0,309.5M371.6,209.3 L376.3,210.4M371.9,208.5 L373.8,205.3M370.1,209.0 L365.0,207.8M399.5,-95.8 L402.3,-98.5M399.5,-95.8 L401.4,-93.5M399.5,-95.8 L396.6,-99.2M398.4,-104.6 L401.1,-106.2 L398.9,-109.5 L397.9,-108.5 L398.4,-104.6M398.4,-104.6 L397.9,-108.5 L398.9,-109.5 L401.1,-106.2 L398.4,-104.6M398.4,-104.6 L402.3,-98.5M401.4,-93.5 L399.5,-95.8M396.6,-99.2 L399.5,-95.8M474.6,396.9 L473.5,396.3 L473.4,395.6 L474.4,395.7 L474.6,396.9M474.6,396.9 L474.4,395.7 L473.4,395.6 L473.5,396.3 L474.6,396.9M475.1,398.0 L476.9,403.3 L477.3,409.9M490.6,263.5 L485.6,259.0M388.4,57.6 L384.0,58.9 L375.2,57.2M615.2,406.7 L616.3,401.4M615.2,406.7 L609.2,409.3M609.2,409.3 L615.2,406.7M424.0,405.3 L426.4,403.3M424.0,405.3 L423.3,404.4 L426.4,403.3M424.0,405.3 L420.7,406.0M426.4,403.3 L424.0,405.3M426.4,403.3 L423.3,404.4 L424.0,405.3M426.4,403.3 L427.1,400.8M420.7,406.0 L424.0,405.3M420.0,406.1 L419.0,402.5 L419.8,401.3M420.0,406.1 L416.8,408.6M419.8,401.3 L419.0,402.5 L420.0,406.1M540.1,497.7 L543.1,500.0M276.2,363.9 L278.2,361.7M264.2,351.5 
38138L265.5,350.1 L267.3,351.5M542.7,487.7 L540.4,490.4M542.7,487.7 L548.7,491.7M542.7,487.7 L539.2,484.7 L533.1,491.1 L535.4,493.2M540.4,490.4 L542.7,487.7M535.4,493.2 L533.1,491.1 L539.2,484.7 L542.7,487.7M333.2,232.9 L337.2,222.5M334.2,212.4 L331.3,219.8M375.7,384.0 L377.6,381.7M374.2,379.8 L377.6,381.7M441.4,276.8 L440.1,273.3M440.1,273.3 L441.4,276.8M764.0,602.0 L769.7,597.1M764.0,602.0 L757.0,593.6M764.0,602.0 L758.0,607.5M757.0,593.6 L764.0,602.0M332.3,236.7 L329.1,246.5M33.7,420.8 L42.3,427.6M67.3,434.3 L42.3,427.6M-93.3,266.1 L-94.7,270.5M-92.4,272.1 L-94.7,270.5M-213.8,126.7 L-212.6,134.7M320.4,352.4 L323.8,348.5M320.4,352.4 L318.3,355.6 L318.5,358.4M318.7,350.8 L311.4,344.8M323.8,348.5 L320.4,352.4M323.8,348.5 L327.6,344.3M318.5,358.4 L321.7,358.4 L325.8,361.5 L320.5,368.2 L317.1,365.2M318.5,358.4 L314.4,362.9 L317.1,365.2M318.5,358.4 L319.0,361.6 L317.1,365.2M318.5,358.4 L318.3,355.6 L320.4,352.4M317.1,365.2 L320.5,368.2 L325.8,361.5 L321.7,358.4 L318.5,358.4M317.1,365.2 L314.4,362.9 L318.5,358.4M317.1,365.2 L319.0,361.6 L318.5,358.4M317.1,365.2 L312.8,371.1M312.8,371.1 L307.8,376.7M312.8,371.1 L317.1,365.2M265.2,73.2 L260.3,79.1 L256.3,81.4M257.0,73.1 L255.3,77.3 L256.3,81.4M694.6,711.3 L695.3,718.4M304.4,118.9 L306.8,121.5M304.4,118.9 L304.4,118.1 L300.4,114.6 L300.0,115.7 L304.4,118.9M304.4,118.9 L300.0,115.7 L300.4,114.6 L304.4,118.1 L304.4,118.9M306.8,121.5 L304.4,118.9M306.8,121.5 L303.5,124.4M306.8,121.5 L309.9,118.1 L310.3,115.5M-209.7,86.3 L-210.1,82.8M-209.7,86.3 L-209.2,97.5 L-212.9,105.0M-210.1,82.8 L-209.7,86.3M-210.1,82.8 L-219.8,83.7M-210.1,82.8 L-203.3,82.2M-212.9,105.0 L-209.2,97.5 L-209.7,86.3M452.4,150.9 L449.6,148.3M452.4,150.9 L457.1,155.2M446.5,151.5 L449.6,148.3M246.5,262.7 L246.4,266.9 L248.2,272.9M248.2,272.9 L252.9,273.0M248.2,272.9 L246.4,266.9 L246.5,262.7M248.2,272.9 L238.6,272.8M252.9,273.0 L248.2,272.9M252.9,273.0 L259.1,269.4M238.6,272.8 L234.7,268.5M238.6,272.8 L248.2,272.9M414.3,288.8 L416.2,291.1M414.3,288.8 L412.7,286.8M536.3,482.2 L537.5,482.3 L537.1,483.7 L531.0,489.2M531.0,489.2 L537.1,483.7 L537.5,482.3 L536.3,482.2M-62.1,210.6 L-69.0,213.3M-109.5,348.5 L-106.9,342.1M-101.5,346.1 L-99.7,348.4M-101.5,346.1 L-106.9,342.1M619.9,42.1 L621.9,38.3M619.9,42.1 L625.6,44.7 L632.4,44.3 L647.7,32.9 L664.4,33.7M619.9,42.1 L612.6,54.6M619.9,42.1 L613.2,38.5 L610.0,30.3M600.0,41.1 L608.6,51.6 L612.6,54.6M600.0,41.1 L587.6,25.8M616.9,114.3 L613.0,109.4M616.9,114.3 L617.6,118.7 L616.1,122.4 L613.8,127.1 L610.3,130.4M560.7,329.6 L563.6,333.8M559.3,329.6 L555.4,330.7M563.6,333.8 L560.7,329.6M582.6,359.5 L580.2,356.3M-102.2,174.3 L-101.7,177.3 L-103.1,180.7M595.9,297.7 L598.3,300.9M595.9,297.7 L593.7,294.8M603.4,297.1 L605.4,299.7M603.4,297.1 L598.3,300.9M619.3,329.2 L614.8,323.2M619.3,329.2 L615.5,332.1M619.3,329.2 L627.1,323.3 L630.5,313.5 L629.0,313.0M629.0,313.0 L630.5,313.5 L627.1,323.3 L619.3,329.2M496.1,296.0 L494.0,299.8M497.0,301.6 L494.0,299.8M344.3,35.7 L343.9,36.9 L345.0,37.2M344.3,35.7 L345.7,27.2M540.3,-20.2 L553.6,1.5M540.3,-20.2 L527.1,-41.8 L523.8,-55.0M536.8,-22.8 L538.9,-19.3M536.8,-22.8 L531.5,-31.0M515.4,256.3 L517.7,258.3M508.8,256.3 L508.2,259.0M508.8,256.3 L506.7,254.8 L503.3,255.2M509.4,256.3 L513.2,256.3M503.3,255.2 L501.9,257.5M503.3,255.2 L506.7,254.8 L508.8,256.3M85.5,36.5 L92.5,42.5M363.0,104.1 L359.4,100.3 L360.6,97.3M329.7,201.7 L323.2,205.9M343.4,205.3 L332.5,203.8 L330.0,201.5M323.2,205.9 L329.7,201.7M423.2,314.2 L425.9,316.8M423.2,314.2 L428.7,308.0M664.4,33.7 L663.2,39.5M664.4,33.7 L677.0,34.1 L688.9,28.5 L693.2,30.5 L693.8,33.6 L692.5,38.2M664.4,33.7 L647.7,32.9 L632.4,44.3 L625.6,44.7 L619.9,42.1M663.2,39.5 L659.7,42.5 L657.9,42.2M663.2,39.5 L664.4,33.7M692.5,38.2 L693.8,33.6 L693.2,30.5 L688.9,28.5 L677.0,34.1 L664.4,33.7M99.5,12.7 L101.4,16.0 L101.1,20.6M97.1,19.1 L101.1,20.6M525.8,585.6 L529.4,586.1M525.8,585.6 L524.2,589.1M529.4,586.1 L525.8,585.6M524.2,589.1 L525.8,585.6M556.7,264.7 L562.6,269.7M555.9,264.2 L552.8,261.5M574.1,620.5 L555.1,636.7M574.1,620.5 L575.2,622.8M574.1,620.5 L571.5,614.6M555.1,636.7 L574.1,620.5M575.2,622.8 L577.6,628.4M575.2,622.8 L574.1,620.5M595.9,676.6 L597.5,673.2 L605.6,666.9M620.5,689.7 L621.2,693.1M621.8,689.1 L620.0,687.4M488.2,395.9 L489.6,390.8M137.8,133.5 L131.9,135.4M140.0,132.9 L150.9,129.6M459.8,484.7 L453.1,482.5 L450.5,484.1M450.5,484.1 L453.1,482.5 L459.8,484.7M49.3,533.4 L52.3,529.1M49.3,533.4 L53.1,535.0 L55.6,532.7M52.3,529.1 L49.3,533.4M52.3,529.1 L53.9,526.6M52.3,529.1 L55.8,529.7 L55.6,532.7M48.5,534.5 L45.1,539.1M55.6,532.7 L57.6,529.5M55.6,532.7 L55.8,529.7 L52.3,529.1M55.6,532.7 L53.1,535.0 L49.3,533.4M-6.2,42.9 L8.0,48.6M-2.8,61.4 L5.3,58.4 L7.1,55.2 L8.0,48.6M555.7,516.2 L549.3,523.3M555.7,516.2 L567.4,501.0 L575.3,485.7M571.6,466.5 L566.8,467.9M-12.7,582.5 L-21.7,594.2M-12.7,582.5 L-21.8,578.7M364.7,206.7 L366.3,203.6M365.0,207.8 L370.1,209.0M-211.7,242.6 L-217.2,244.6M690.0,753.0 L686.2,754.4M471.7,459.6 L471.6,467.6 L469.6,469.1M535.9,339.1 L539.3,337.9M539.3,337.9 L535.9,339.1M122.4,649.2 L131.3,661.6M122.4,649.2 L113.7,636.5M122.4,649.2 L127.2,645.7M416.1,334.5 L413.7,341.2M4
3813816.1,334.5 L427.1,338.6M427.1,338.6 L421.7,353.0M427.1,338.6 L430.3,339.1M427.1,338.6 L416.1,334.5M353.7,593.6 L354.3,597.3M353.7,593.6 L343.1,605.5 L344.3,610.1M353.7,593.6 L353.2,588.3M354.3,597.3 L354.8,599.7M354.3,597.3 L353.7,593.6M344.3,610.1 L343.1,605.5 L353.7,593.6M353.2,588.3 L353.7,593.6M353.2,588.3 L352.7,585.5M174.2,-62.5 L172.2,-72.0M174.2,-62.5 L156.9,-52.6M174.2,-62.5 L182.7,-62.7 L188.2,-67.9M172.2,-72.0 L174.2,-62.5M172.2,-72.0 L170.8,-75.7 L158.5,-69.3M156.9,-52.6 L147.7,-48.2M156.9,-52.6 L174.2,-62.5M156.9,-52.6 L152.8,-70.5 L156.6,-74.1M188.2,-67.9 L182.7,-62.7 L174.2,-62.5M529.9,635.6 L532.8,633.7M529.9,635.6 L523.2,640.0M396.9,410.9 L401.0,416.2 L401.3,418.3M396.9,410.9 L394.2,412.4 L392.7,415.7M396.9,410.9 L403.2,410.5M401.3,418.3 L401.0,416.2 L396.9,410.9M-181.6,209.0 L-182.4,205.7 L-179.4,206.5M345.1,313.8 L340.2,315.0 L335.9,313.3M-35.2,571.0 L-45.1,565.7 L-47.4,561.7M353.1,132.8 L362.9,123.8M523.8,167.0 L524.8,157.3M507.9,150.2 L509.8,151.0 L520.4,146.8 L525.2,152.4 L526.0,155.6 L524.8,157.3M507.9,150.2 L518.9,143.1 L550.4,126.9 L564.5,116.2 L572.8,107.5M507.9,150.2 L500.4,156.0M259.1,269.4 L252.9,273.0M266.5,277.5 L259.6,269.1M266.5,277.5 L268.5,279.9M-219.8,83.7 L-210.1,82.8M-219.8,83.7 L-219.8,79.5M-203.3,82.2 L-210.1,82.8M-203.3,82.2 L-176.7,81.8M462.9,415.0 L460.2,417.6M270.7,98.8 L271.9,103.9M-46.4,634.7 L-36.8,624.6M401.3,155.7 L405.6,160.7 L413.5,164.0M631.3,-14.3 L627.3,-16.1 L611.6,-16.1M631.3,-14.3 L624.8,-7.6 L623.0,-2.8 L625.8,10.6M631.3,-14.3 L644.2,-28.7 L646.3,-36.1 L646.2,-41.7M611.6,-16.1 L612.2,-20.3M611.6,-16.1 L627.3,-16.1 L631.3,-14.3M611.6,-16.1 L607.7,-8.9 L605.0,-7.0 L602.0,-5.6 L596.0,-6.6M625.8,10.6 L623.0,-2.8 L624.8,-7.6 L631.3,-14.3M646.2,-41.7 L646.3,-36.1 L644.2,-28.7 L631.3,-14.3M646.2,-41.7 L647.0,-47.0 L656.0,-60.8M621.9,38.3 L619.9,42.1M610.0,30.3 L613.2,38.5 L619.9,42.1M604.3,613.8 L601.8,614.4M157.5,324.3 L168.3,295.1M157.5,324.3 L149.4,345.5M160.4,320.5 L158.7,324.8M160.4,320.5 L163.0,316.4 L166.6,314.4 L211.8,315.8 L217.8,314.3 L235.9,306.4 L253.4,305.0M160.4,320.5 L170.0,295.1M161.9,326.2 L159.0,333.4M161.9,326.2 L158.7,324.8M42.3,543.2 L40.7,545.4M42.9,543.6 L47.3,546.3M42.7,542.5 L44.5,540.0M42.7,542.5 L44.8,537.4M40.7,545.4 L42.3,543.2M32.7,556.7 L35.9,552.0M31.0,559.1 L28.8,562.6M472.1,186.0 L474.5,183.4M470.8,674.1 L471.1,682.4M476.0,682.8 L471.1,682.4M423.0,490.6 L420.3,493.6M422.1,495.9 L420.3,493.6M650.7,113.5 L654.2,115.8M650.7,113.5 L644.7,109.4M654.2,115.8 L658.3,118.6M654.2,115.8 L650.7,113.5M644.7,109.4 L650.7,113.5M644.7,109.4 L640.1,105.3M670.0,126.6 L664.1,122.6M670.0,126.6 L673.7,129.3 L675.1,132.5M-73.9,600.6 L-79.7,599.6 L-83.7,597.0M-73.9,600.6 L-59.0,610.9M-62.0,616.0 L-59.0,610.9M289.3,325.4 L294.1,329.6M224.6,124.1 L224.0,121.2 L225.7,117.1 L224.3,111.3 L228.7,110.4 L232.1,116.9M224.6,124.1 L225.1,130.1 L224.7,130.1 L222.7,129.2 L224.6,124.1M224.6,124.1 L222.7,129.2 L224.7,130.1 L225.1,130.1 L224.6,124.1M232.1,116.9 L234.2,120.2M232.1,116.9 L228.7,110.4 L224.3,111.3 L225.7,117.1 L224.0,121.2 L224.6,124.1M232.1,116.9 L235.5,115.1M234.2,120.2 L232.1,116.9M438.2,234.3 L432.4,233.0M438.2,234.3 L443.0,228.4M432.4,233.0 L433.7,226.8M432.4,233.0 L438.2,234.3M443.0,228.4 L438.2,234.3M486.1,487.5 L478.1,480.6M480.6,495.8 L481.1,493.6 L478.7,486.2M483.7,492.9 L478.7,486.2M746.4,589.9 L744.8,592.7M746.4,589.9 L748.3,584.8M41.4,515.4 L47.4,518.3M41.4,515.4 L37.7,519.8M277.5,60.3 L290.3,73.9 L292.0,77.5M292.0,77.5 L292.5,87.5M292.0,77.5 L290.3,73.9 L277.5,60.3M457.1,155.2 L452.4,150.9M602.0,487.0 L590.4,489.2 L585.4,492.1 L574.0,511.3 L565.3,522.7M602.0,487.0 L610.7,483.0 L616.9,481.7M647.7,488.7 L650.7,492.1M647.7,488.7 L649.1,486.4 L649.1,480.7 L647.5,477.8 L644.9,476.6M647.7,488.7 L640.3,483.2 L636.4,481.8 L616.9,481.7M650.7,492.1 L647.7,488.7M650.7,492.1 L652.4,499.5M673.0,757.8 L678.1,757.2M296.5,94.3 L293.3,98.4M562.6,269.7 L556.7,264.7M-166.4,209.8 L-166.6,207.0M-166.4,209.8 L-166.5,213.4 L-170.9,217.3M-165.9,209.8 L-160.5,209.0M-170.9,217.3 L-166.5,213.4 L-166.4,209.8M320.2,334.3 L321.3,332.1M320.6,334.8 L336.1,349.0M321.3,332.1 L319.4,333.7M321.3,332.1 L320.2,334.3M311.4,344.8 L314.6,340.9M311.4,344.8 L304.2,353.1M311.4,344.8 L318.7,350.8M314.6,340.9 L311.4,344.8M314.6,340.9 L317.8,337.1M352.9,264.8 L350.9,270.1M352.9,264.8 L354.5,260.5M413.9,406.4 L416.8,408.6M418.8,410.0 L416.8,408.6M-66.7,674.9 L-70.6,670.2M-70.6,670.2 L-66.7,674.9M-70.6,670.2 L-76.0,668.3M-114.4,200.9 L-129.0,207.1M-131.1,204.3 L-129.0,207.1M341.0,509.0 L344.0,481.9 L343.1,477.5M343.1,477.5 L335.5,479.5M343.1,477.5 L346.7,476.3M343.1,477.5 L344.0,481.9 L341.0,509.0M564.1,357.7 L565.7,359.8M564.1,357.7 L557.8,349.2M466.0,303.9 L475.4,288.5M710.5,89.7 L706.0,81.8M640.1,598.6 L633.9,599.1M640.1,598.6 L644.7,597.5M634.1,590.3 L633.9,599.1M638.9,621.3 L644.8,619.4M638.9,621.3 L634.0,620.5M250.1,495.3 L243.7,507.3M44.0,292.9 L45.7,295.0M44.0,292.9 L41.3,289.8M44.0,292.9 L41.0,295.4M45.7,295.0 L44.0,292.9M41.3,289.8 L44.0,292.9M41.0,295.4 L44.0,292.9M44.6,292.4 L41.9,289.2M44.6,292.4 L46.3,294.5M285.0,207.0 L289.1,204.0M285.0,207.0 L277.5,212.5M277.5,212.5 L285.0,207.0M277.5,212.5 L273.2,214.4M78.0,704.4 L57.6,699.2M78.0,704.4 L95.1,708.6M78.0,704.4 L79.9,698.7M-211.0,252.0 L-213.1,253.8M-211.0,252.0 L-213.0,248.4 L-211.6,247.7 L-209.6,251.1 L-211.0,252.0M-211.0,252.0 L-209.6,251.1 L-211.6,247.7 L-213.0,248.4 L-211.0,252.0M-176.7,258.7 L-171.6,261.3M-176.7,258.7 L-181.5,259.4M-176.7,258.7 L-176.4,253.5 L-178.5,251.5 L-180.8,251.8M-180.8,251.8 L-178.5,251.5 L-176.4,253.5 L-176.7,258.7M618.6,631.8 L617.3,629.8M617.3,629.8 L618.6,631.8M269.9,309.6 L270.2,313.1M269.9,309.6 L274.4,309.8M269.9,309.6 L266.3,309.7 L265.4,311.0M554.5,427.1 L543.2,420.7M517.4,412.0 L516.6,415.5M517.4,412.0 L521.5,413.1M516.6,415.5 L515.1,420.8M516.6,415.5 L517.4,412.0M521.5,413.1 L517.4,412.0M508.5,401.8 L510.6,394.7M156.6,-74.1 L152.8,-70.5 L156.9,-52.6M120.0,-42.5 L130.3,-48.8M423.2,462.7 L436.3,453.7M697.6,193.2 L703.2,187.6M697.6,193.2 L698.4,194.3 L697.2,195.6 L696.3,193.5M457.9,619.4 L460.3,616.4M395.4,424.5 L393.5,419.3M395.4,424.5 L398.7,424.8 L402.0,427.1M395.4,424.5 L393.0,428.8M402.0,427.1 L398.7,424.8 L395.4,424.5M393.0,428.8 L392.1,427.5 L393.5,425.2M393.0,428.8 L395.4,424.5M393.0,428.8 L389.8,431.2M415.3,236.1 L406.2,229.9M415.3,237.1 L416.0,242.8M406.2,229.9 L415.3,236.1M400.4,225.9 L403.5,228.0M400.4,225.9 L394.7,222.1M400.4,225.9 L397.6,232.1M403.5,228.0 L400.4,225.9M397.6,232.1 L400.4,225.9M316.0,200.8 L315.0,207.6M294.7,198.8 L297.3,197.7 L299.1,194.6M607.7,409.9 L588.3,417.3M240.7,29.3 L234.4,34.5M236.9,1.0 L237.8,-2.1 L236.0,-3.7 L235.3,-2.7 L236.9,1.0M236.9,1.0 L235.3,-2.7 L236.0,-3.7 L237.8,-2.1 L236.9,1.0M402.4,-60.5 L401.8,-59.5 L402.2,-58.7 L402.6,-59.4 L402.4,-60.5M402.4,-60.5 L402.6,-59.4 L402.2,-58.7 L401.8,-59.5 L402.4,-60.5M402.4,-60.5 L404.0,-69.4 L408.7,-75.7 L408.6,-79.1M408.6,-79.1 L402.0,-75.2M408.6,-79.1 L408.7,-75.7 L404.0,-69.4 L402.4,-60.5M612.2,-20.3 L612.9,-25.8M612.2,-20.3 L611.6,-16.1M596.0,-6.6 L594.6,-3.2M596.0,-6.6 L602.0,-5.6 L605.0,-7.0 L607.7,-8.9 L611.6,-16.1M596.0,-6.6 L596.5,-9.8 L592.2,-17.5M-220.9,83.7 L-219.8,79.5M278.9,202.9 L276.0,209.1 L277.2,212.1M277.2,212.1 L276.0,209.1 L278.9,202.9M572.8,33.0 L556.5,6.2M47.3,546.3 L42.9,543.6M605.4,299.7 L603.4,297.1M582.0,313.0 L585.0,310.9M582.0,313.0 L584.2,316.0M582.0,313.0 L574.6,318.7M574.6,318.7 L582.0,313.0M574.6,318.7 L572.5,315.8M581.1,311.9 L577.9,307.7M575.2,319.4 L576.7,321.5M572.5,315.8 L574.6,318.7M610.3,130.4 L613.8,127.1 L616.1,122.4 L617.6,118.7 L616.9,114.3M610.3,130.4 L611.8,137.8M610.3,130.4 L604.6,121.9 L599.0,118.5M311.5,246.8 L310.1,252.5M311.5,246.8 L312.6,242.7M306.6,251.5 L310.1,252.5M306.6,251.5 L298.2,249.1M314.4,253.7 L310.1,252.5M247.6,116.0 L250.5,117.1M247.6,116.0 L243.9,119.8M247.6,116.0 L248.6,111.9 L246.5,103.0M250.5,117.1 L247.6,116.0M243.9,119.8 L241.2,121.2M243.9,119.8 L239.6,111.6M243.9,119.8 L247.6,116.0M246.5,103.0 L242.3,104.1M246.5,103.0 L248.6,111.9 L247.6,116.0M246.5,103.0 L254.8,100.7M239.6,111.6 L243.9,119.8M594.6,-3.2 L596.0,-6.6M592.2,-17.5 L596.5,-9.8 L596.0,-6.6M592.2,-17.5 L589.5,-21.3M416.7,416.3 L415.0,417.8 L413.1,414.8M297.7,304.0 L300.0,306.2M309.9,307.3 L307.5,309.0 L302.4,308.1 L300.0,306.2M295.0,309.5 L299.0,313.9M295.0,309.5 L300.0,306.2M295.0,309.5 L290.3,305.8M299.0,313.9 L295.0,309.5M298.1,314.9 L293.7,310.2M299.9,314.9 L301.9,317.1M280.1,294.1 L276.9,294.1M280.1,294.1 L276.3,289.6M276.9,294.1 L280.1,294.1M276.9,294.1 L277.0,298.4M276.9,294.1 L225.3,294.9M281.0,294.1 L282.1,296.9M276.3,289.6 L273.2,285.7M276.3,289.6 L280.1,294.1M-124.4,214.2 L-121.9,213.9M607.3,388.2 L609.9,388.7M98.0,357.6 L97.0,355.0 L100.6,351.9 L102.4,355.0 L104.7,356.2 L108.1,353.4M426.6,195.1 L423.7,200.8M426.8,194.7 L428.3,192.1M423.7,200.8 L421.2,208.3M423.7,200.8 L426.6,195.1M454.5,195.1 L450.9,199.2M454.5,195.1 L467.3,206.3 L485.9,226.9M450.9,199.2 L454.5,195.1M450.9,199.2 L449.0,200.7 L438.5,202.2 L433.8,200.9M453.9,194.7 L437.3,181.1M485.9,226.9 L49
381386.1,236.3M485.9,226.9 L467.3,206.3 L454.5,195.1M485.9,226.9 L489.7,233.6 L491.0,241.7M575.9,458.3 L588.8,460.7M575.9,458.3 L576.8,465.6M593.9,461.9 L599.6,463.2M593.9,461.9 L588.8,460.7M415.7,237.1 L428.6,239.7M416.0,242.8 L416.1,247.6M416.0,242.8 L415.3,237.1M598.5,478.4 L585.1,475.4M585.1,475.4 L598.5,478.4M585.1,475.4 L586.7,467.9M585.1,475.4 L584.0,478.2 L577.9,477.1M693.4,167.8 L696.0,169.9M693.4,167.8 L688.7,164.0M553.0,357.9 L544.1,364.9 L546.8,368.1 L555.7,361.7M507.9,269.2 L511.3,272.0M-157.0,177.3 L-155.2,184.5M-162.6,186.0 L-174.5,187.1M-162.6,186.0 L-155.2,184.5M427.1,400.8 L426.4,403.3M427.1,400.8 L419.9,396.4M427.1,400.8 L431.8,402.6M478.5,246.5 L474.1,246.2M455.0,245.0 L454.7,249.7M454.7,244.6 L449.5,244.2M32.9,43.2 L30.0,39.5 L24.0,35.6M415.3,242.9 L411.6,243.1 L410.1,242.0M416.1,247.6 L416.0,242.8M416.8,229.5 L419.6,230.2M415.6,232.8 L416.3,229.5M437.3,181.1 L433.3,185.6M437.3,181.1 L453.9,194.7M437.3,181.1 L433.2,177.8M438.0,180.3 L454.8,193.7M438.0,180.3 L420.5,166.0M438.0,180.3 L443.2,174.6M433.3,185.6 L437.3,181.1M433.3,185.6 L429.3,190.7M433.2,177.8 L430.8,175.9M433.2,177.8 L437.3,181.1M274.4,309.8 L269.9,309.6M265.4,311.0 L266.3,309.7 L269.9,309.6M586.7,467.9 L601.3,471.2M586.7,467.9 L576.8,465.6M586.7,467.9 L585.1,475.4M555.1,515.7 L543.0,505.0M549.3,523.3 L555.7,516.2M404.6,547.4 L401.9,546.2M728.5,606.9 L725.4,603.5M-172.8,65.8 L-161.3,72.0M-161.3,72.0 L-172.8,65.8M478.8,351.2 L485.7,347.9M485.7,347.9 L478.8,351.2M42.4,683.6 L50.5,678.9M41.9,682.7 L37.9,675.3M50.5,678.9 L42.4,683.6M315.0,207.6 L316.0,200.8M168.5,-18.7 L172.1,-22.5M-144.8,270.3 L-143.4,264.4M-144.8,270.3 L-147.9,274.4M-147.9,274.4 L-144.8,270.3M-147.9,274.4 L-149.0,273.5 L-145.9,269.5M-143.4,264.4 L-144.8,270.3M-54.9,302.7 L-50.1,304.6 L-28.2,299.2M-28.2,299.2 L-50.1,304.6 L-54.9,302.7M-28.2,299.2 L-24.6,300.1 L-19.7,305.8M543.4,346.5 L542.2,344.0M-156.7,117.7 L-159.2,115.4M-156.7,117.7 L-149.4,124.8 L-145.9,126.4M-156.7,117.7 L-162.4,124.0 L-165.8,133.1M-159.2,115.4 L-156.7,117.7M-159.2,115.4 L-163.2,112.0 L-170.8,109.4M-165.8,133.1 L-173.2,141.0M-165.8,133.1 L-162.4,124.0 L-156.7,117.7M-170.8,109.4 L-163.2,112.0 L-159.2,115.4M444.9,413.1 L448.5,415.3M444.9,413.1 L441.3,409.1M-99.7,348.4 L-101.5,346.1M270.5,449.5 L269.6,451.6 L275.6,465.2M270.5,449.5 L273.4,448.2 L273.7,445.5 L271.0,445.2 L270.5,449.5M270.5,449.5 L271.0,445.2 L273.7,445.5 L273.4,448.2 L270.5,449.5M275.6,465.2 L283.6,471.2 L285.6,474.4M275.6,465.2 L269.6,451.6 L270.5,449.5M275.6,465.2 L273.7,469.0 L271.4,469.6 L252.8,461.3 L249.6,455.3M720.9,26.8 L725.0,21.1 L726.7,15.0M726.7,15.0 L730.7,17.6M726.7,15.0 L724.1,14.1 L721.6,15.3M726.7,15.0 L725.0,21.1 L720.9,26.8M601.3,471.2 L586.7,467.9M162.6,324.2 L164.7,321.6M585.0,-24.1 L582.4,-25.3M585.0,-24.1 L589.5,-21.3M582.7,-26.6 L585.4,-25.4M582.7,-26.6 L579.6,-27.9M421.7,353.0 L427.1,338.6M430.3,339.1 L427.1,338.6M-195.1,283.7 L-198.2,285.1M-195.1,283.7 L-194.1,280.7 L-191.4,280.5M-195.1,283.7 L-192.1,287.2M-192.1,326.9 L-193.6,325.0 L-197.0,326.2M-197.0,326.2 L-193.6,325.0 L-192.1,326.9M442.6,238.6 L444.6,241.4M444.6,241.4 L442.6,238.6M444.6,241.4 L446.5,243.7M351.4,645.4 L352.6,640.5 L360.3,635.1 L361.0,631.8 L358.7,624.0M351.4,645.4 L352.3,646.2 L351.5,646.9 L350.7,646.2 L351.4,645.4M351.4,645.4 L350.7,646.2 L351.5,646.9 L352.3,646.2 L351.4,645.4M276.7,175.1 L274.0,177.5 L275.1,181.1M276.7,175.1 L280.5,178.5 L281.4,183.1M595.6,337.5 L598.5,335.3M595.6,337.5 L592.9,339.5M592.9,339.5 L595.6,337.5M328.1,211.1 L326.7,214.6M129.7,130.1 L131.0,132.6M327.8,511.4 L329.6,509.8M329.6,509.8 L327.8,511.4M329.6,509.8 L330.6,506.4M433.7,226.8 L432.4,233.0M547.8,645.6 L548.3,648.1M548.3,648.1 L547.8,645.6M-191.4,280.5 L-194.1,280.7 L-195.1,283.7M-192.1,287.2 L-195.1,283.7M-114.5,224.2 L-115.0,221.0M108.7,282.7 L117.7,280.9M108.7,282.7 L107.8,278.1M108.7,282.7 L102.1,284.0M109.2,284.8 L110.0,288.5M107.8,278.1 L108.7,282.7M107.8,278.1 L107.2,275.7M102.1,284.0 L108.7,282.7M102.1,284.0 L90.6,286.5 L82.3,284.5M415.2,578.2 L413.5,579.6 L405.9,580.4M391.2,39.9 L388.9,37.3M543.0,505.0 L555.1,515.7M111.8,297.1 L112.9,303.1M111.8,297.1 L113.8,302.8M112.9,303.1 L118.1,307.9 L125.2,308.3M112.9,303.1 L111.8,297.1M113.8,302.8 L111.8,297.1M113.8,302.8 L118.1,306.9 L125.0,307.4M626.4,413.9 L630.5,415.0M626.4,413.9 L620.4,409.6M626.4,413.9 L622.7,418.6M620.4,409.6 L626.4,413.9M622.7,418.6 L626.4,413.9M586.0,487.6 L587.6,482.0M216.2,295.2 L225.3,294.9M225.3,294.9 L216.2,295.2M225.3,294.9 L276.9,294.1M11.7,612.9 L0.0,603.3M30.3,609.9 L34.9,608.4M22.9,608.0 L21.2,610.1M10.1,624.4 L12.8,621.1M12.8,621.1 L10.1,624.4M28.9,615.1 L25.6,619.2M25.6,619.2 L28.9,615.1M29.1,615.3 L32.7,618.2M17.0,629.8 L19.2,627.1M19.2,627.1 L17.0,629.8M-65.2,695.7 L-67.8,694.1 L-67.1,692.0M-65.2,695.7 L-70.3,695.0M-65.2,695.7 L-61.4,696.3M-61.4,696.3 L-65.2,695.7M-61.4,696.3 L-49.6,698.0M-92.1,692.0 L-110.4,693.9M-92.1,692.0 L-87.7,692.5M-110.4,693.9 L-92.1,692.0M-87.7,692.5 L-92.1,692.0M20.6,606.1 L18.7,608.2M59.3,734.3 L50.8,728.6M59.3,734.3 L58.3,736.8 L58.8,739.1 L63.7,746.1M59.3,734.3 L69.0,739.0M50.8,728.6 L59.3,734.3M69.0,739.0 L76.1,742.0 L78.1,744.5 L77.1,749.7 L67.2,742.9M69.0,739.0 L67.2,742.9M69.0,739.0 L59.3,734.3M67.2,742.9 L63.7,746.1M67.2,742.9 L69.0,739.0M67.2,742.9 L77.1,749.7 L78.1,744.5 L76.1,742.0 L69.0,739.0M60.3,748.3 L63.7,746.1M60.3,748.3 L45.8,730.4M60.6,748.9 L63.7,746.1M45.8,730.4 L60.3,748.3M15.3,707.1 L21.6,709.1 L32.3,715.1 L45.1,729.5M15.3,707.1 L2.4,704.9M15.3,707.1 L4.9,706.3M15.7,706.1 L18.3,699.5M45.1,729.5 L32.3,715.1 L21.6,709.1 L15.3,707.1M2.4,704.9 L-1.9,704.4M2.4,704.9 L15.3,707.1M4.9,706.3 L1.5,705.9M4.9,706.3 L0.1,708.3M4.9,706.3 L15.3,707.1M0.1,708.3 L-3.0,710.2M0.1,708.3 L4.9,706.3M0.1,708.3 L1.5,705.9M-3.0,710.2 L-6.6,712.3M-3.0,710.2 L0.1,708.3M1.5,705.9 L4.9,706.3M1.5,705.9 L-2.8,705.4M1.5,705.9 L0.1,708.3M-2.8,705.4 L1.5,705.9M-2.8,705.4 L-16.1,703.6M-1.9,704.4 L-5.1,704.0M-1.9,704.4 L2.4,704.9M34.8,687.9 L30.5,690.4M46.7,729.7 L53.7,722.9M-20.2,707.0 L-20.9,713.4 L-22.9,718.1M-20.2,707.0 L-19.8,703.0M-20.2,707.0 L-18.4,704.2 L-16.1,703.6M-21.3,705.7 L-21.0,702.9M-21.3,705.7 L-22.3,703.4 L-24.5,702.4M-21.3,705.7 L-22.9,718.1M-21.0,702.9 L-21.3,705.7M-21.0,702.9 L-24.5,702.4M-19.9,694.2 L-21.4,700.5 L-25.4,701.3M-19.9,694.2 L-20.9,702.0M-19.9,694.2 L-18.5,682.0M-17.5,675.2 L-18.5,682.0M-15.9,665.1 L-14.2,655.3M-16.2,667.0 L-17.2,673.1M-16.1,703.6 L-19.8,703.0M-16.1,703.6 L-2.8,705.4M-16.1,703.6 L-18.4,704.2 L-20.2,707.0M-24.5,702.4 L-30.9,701.3M-24.5,702.4 L-21.0,702.9M-24.5,702.4 L-22.3,703.4 L-21.3,705.7M-39.7,699.8 L-32.9,700.8M-39.7,699.8 L-49.6,698.0M-13.4,650.3 L-13.0,647.1M-13.4,650.3 L-14.2,655.3M-13.0,647.1 L-13.4,650.3M-13.0,647.1 L-12.3,642.3M-14.2,655.3 L-15.9,665.1M-14.2,655.3 L-13.4,650.3M-12.3,642.3 L-13.0,647.1M-12.7,640.9 L-14.7,642.4M-11.5,635.3 L-11.0,627.2M-11.5,635.3 L-12.1,640.8M-14.7,642.4 L-13.0,639.7M-14.7,642.4 L-12.7,640.9M-13.0,639.7 L-14.7,642.4M-11.7,636.0 L-12.8,639.4M-11.0,627.2 L-11.5,635.3M-11.0,627.2 L-10.4,621.3M19.5,575.1 L21.0,573.0M21.0,573.0 L19.5,575.1M21.7,574.1 L23.3,571.8M23.3,571.8 L2
381386.7,566.0M23.3,571.8 L21.7,574.1M20.7,575.6 L18.1,578.8M34.8,551.4 L27.0,563.2M35.2,550.8 L41.9,541.3M35.9,552.0 L38.3,548.8M35.9,552.0 L32.7,556.7M27.0,563.2 L25.5,565.6M27.0,563.2 L34.8,551.4M47.4,533.8 L45.8,536.1M53.1,525.4 L48.2,532.7M53.1,525.4 L92.0,457.0M53.9,526.6 L52.3,529.1M53.9,526.6 L57.6,529.5M53.9,526.6 L90.2,462.6 L99.5,442.8M92.0,457.0 L53.1,525.4M92.0,457.0 L98.6,442.3M100.4,438.4 L98.6,442.3M100.4,438.4 L87.6,433.1M100.4,438.4 L107.8,428.9M98.6,442.3 L100.4,438.4M98.6,442.3 L92.0,457.0M87.6,433.1 L100.4,438.4M107.8,428.9 L100.4,438.4M100.7,452.2 L100.2,464.1M100.7,452.2 L101.9,445.2 L99.5,442.8M100.2,464.1 L100.7,452.2M134.8,386.6 L136.4,381.0M134.8,386.6 L126.4,388.5M134.8,386.6 L128.4,405.1M136.4,381.0 L134.8,386.6M136.4,381.0 L135.8,385.9M136.4,381.0 L129.2,375.2M136.4,381.0 L139.3,375.1M136.4,381.0 L143.0,362.5M126.4,388.5 L106.2,395.7M126.4,388.5 L134.8,386.6M128.4,405.1 L123.3,412.8 L117.0,419.5M128.4,405.1 L134.8,386.6M135.8,385.9 L139.3,375.1M135.8,385.9 L136.4,381.0M135.8,385.9 L133.9,393.5M129.2,375.2 L126.3,372.2M129.2,375.2 L136.4,381.0M139.3,375.1 L144.1,361.5M139.3,375.1 L135.8,385.9M139.3,375.1 L136.4,381.0M143.0,362.5 L149.4,345.5M143.0,362.5 L136.4,381.0M141.6,341.0 L139.0,343.3M141.6,341.0 L143.7,343.2 L149.4,345.5M141.6,341.0 L139.1,335.1 L140.0,322.5M142.2,340.5 L139.9,333.3 L140.8,322.6M142.2,340.5 L149.4,345.5M139.6,304.3 L135.0,297.3M139.6,304.3 L139.6,306.9 L137.7,310.2M137.7,310.2 L139.6,306.9 L139.6,304.3M137.3,310.5 L132.4,307.6 L125.0,307.4M137.3,310.5 L140.7,315.9 L140.8,322.6M136.9,311.2 L139.6,315.6 L140.0,322.5M136.9,311.2 L131.3,308.1 L125.2,308.3M125.0,307.4 L118.1,306.9 L113.8,302.8M125.0,307.4 L132.4,307.6 L137.3,310.5M140.8,322.6 L140.7,315.9 L137.3,310.5M140.8,322.6 L139.9,333.3 L142.2,340.5M140.0,322.5 L139.1,335.1 L141.6,341.0M140.0,322.5 L139.6,315.6 L136.9,311.2M140.0,322.5 L136.5,321.9M125.2,308.3 L131.3,308.1 L136.9,311.2M125.2,308.3 L118.1,307.9 L112.9,303.1M168.3,295.1 L157.5,324.3M170.0,295.1 L171.0,292.2M170.0,295.1 L160.4,320.5M170.0,295.1 L172.3,295.9M168.5,294.5 L170.1,290.6M171.0,292.2 L173.0,286.9M171.0,292.2 L170.0,295.1M171.0,292.2 L172.3,295.9M172.3,295.9 L171.0,292.2M172.3,295.9 L170.0,295.1M172.3,295.9 L177.9,299.4 L182.3,307.4 L186.3,311.2 L194.2,313.3 L204.5,314.0 L215.2,313.4 L237.8,304.2 L280.6,302.9M165.9,293.2 L168.3,293.0 L170.1,290.6M170.1,290.6 L168.5,294.5M170.1,290.6 L176.4,274.3M170.1,290.6 L168.3,293.0 L165.9,293.2M138.1,253.0 L139.0,242.3M138.1,253.0 L137.9,254.3 L136.7,254.1 L136.7,253.1 L138.1,253.0M138.1,253.0 L136.7,253.1 L136.7,254.1 L137.9,254.3 L138.1,253.0M523.8,-55.0 L527.1,-41.8 L540.3,-20.2M531.5,-31.0 L536.8,-22.8M581.2,46.5 L578.4,42.0M581.2,46.5 L585.7,55.4 L588.2,64.8M578.4,42.0 L573.8,34.6M578.4,42.0 L581.2,46.5M588.0,77.2 L585.5,76.8M588.0,77.2 L588.2,64.8M588.0,77.2 L584.1,90.9 L578.0,101.2M108.5,428.2 L117.0,419.5M-152.4,3.9 L-153.0,1.6M-152.4,3.9 L-152.1,10.5M-152.1,10.5 L-151.7,20.1M-152.1,10.5 L-152.4,3.9M382.0,416.7 L380.4,416.9 L376.6,413.0M382.9,416.3 L384.0,419.5M382.9,416.3 L380.1,407.4M376.6,413.0 L374.4,410.1M376.6,413.0 L380.4,416.9 L382.0,416.7M295.9,53.2 L302.3,59.9M295.9,53.2 L292.6,49.7M287.9,47.2 L289.3,46.6 L292.6,49.7M324.7,83.3 L318.9,77.3M324.7,83.3 L340.5,100.3 L345.8,99.8 L350.6,103.0M324.7,83.3 L317.6,85.2 L316.4,79.8M324.7,83.3 L328.0,80.3M318.9,77.3 L324.7,83.3M318.9,77.3 L309.3,67.2M350.6,103.0 L345.8,99.8 L340.5,100.3 L324.7,83.3M316.4,79.8 L317.6,85.2 L324.7,83.3M328.0,80.3 L332.2,76.4M328.0,80.3 L324.7,83.3M310.0,89.6 L302.0,89.3 L292.7,91.6M292.7,91.6 L292.5,87.5M292.7,91.6 L302.0,89.3 L310.0,89.6M292.7,91.6 L303.8,90.5 L311.3,91.1M353.0,109.5 L367.0,116.9 L373.2,121.6 L401.4,150.2 L418.5,164.4M292.5,87.5 L292.7,91.6M292.5,87.5 L292.0,77.5M311.3,91.1 L317.0,92.7 L367.2,118.9 L417.7,165.4M311.3,91.1 L303.8,90.5 L292.7,91.6M211.2,211.2 L212.4,208.9M553.4,213.7 L549.4,218.5M503.9,147.1 L495.0,148.7 L495.5,154.1M503.9,147.1 L505.8,147.7 L506.5,146.2 L504.8,145.7 L503.9,147.1M503.9,147.1 L504.8,145.7 L506.5,146.2 L505.8,147.7 L503.9,147.1M523.0,602.5 L521.5,600.5M521.5,600.5 L523.0,602.5M538.6,576.0 L540.8,577.2M538.6,576.0 L537.2,573.6M540.8,577.2 L541.9,579.7M540.8,577.2 L538.6,576.0M537.2,573.6 L538.6,576.0M537.2,573.6 L523.0,550.2 L509.1,536.6M442.6,637.1 L448.1,630.8 L453.7,630.4M482.2,709.3 L464.1,717.0M491.0,671.5 L490.9,674.2M491.0,671.5 L491.2,668.5M550.2,-42.5 L553.3,-40.6M586.0,3.4 L590.3,2.1 L593.7,-1.8M593.7,-1.8 L590.3,2.1 L586.0,3.4M517.7,258.3 L521.3,259.0M517.7,258.3 L515.4,256.3M521.3,259.0 L517.7,258.3M454.8,193.7 L438.0,180.3M119.1,245.3 L113.4,249.3M119.1,245.3 L127.7,239.3M119.1,245.3 L112.2,251.5M113.4,249.3 L119.1,245.3M127.7,239.3 L119.1,245.3M112.2,251.5 L119.1,245.3M112.2,251.5 L108.5,254.6M285.0,305.3 L293.7,310.2M285.0,305.3 L253.4,305.0M293.7,310.2 L285.0,305.3M293.7,310.2 L298.1,314.9M253.4,305.0 L285.0,305.3M253.4,305.0 L235.9,306.4 L217.8,314.3 L211.8,315.8 L166.6,314.4 L163.0,316.4 L160.4,320.5M286.8,299.3 L287.1,303.2 L290.3,305.8M286.8,299.3 L285.2,303.9M290.3,305.8 L287.1,303.2 L286.8,299.3M290.3,305.8 L285.2,303.9M290.3,305.8 L295.0,309.5M106.6,254.8 L109.4,252.5M106.6,254.8 L103.7,257.5M109.4,252.5 L106.6,254.8M109.4,252.5 L111.7,250.7M103.7,257.5 L106.6,254.8M467.9,-34.5 L462.2,-31.5M467.9,-34.5 L475.4,-39.8M462.2,-31.5 L457.8,-26.3M462.2,-31.5 L467.9,-34.5M475.4,-39.8 L467.9,-34.5M475.4,-39.8 L487.5,-43.6 L498.1,-48.9 L500.2,-52.2M45
381387.8,-26.3 L462.2,-31.5M508.3,-39.6 L513.9,-40.2M508.3,-39.6 L493.1,-38.9M508.3,-39.6 L511.2,-29.5 L508.4,-25.1 L509.3,-17.6 L508.0,-4.4 L503.4,-3.9 L497.7,0.2M465.6,-18.3 L462.8,-21.5 L464.5,-24.7 L471.0,-29.6 L478.6,-32.6M478.6,-32.6 L481.6,-34.4M478.6,-32.6 L471.0,-29.6 L464.5,-24.7 L462.8,-21.5 L465.6,-18.3M481.6,-34.4 L493.1,-38.9M481.6,-34.4 L478.6,-32.6M493.1,-38.9 L508.3,-39.6M493.1,-38.9 L481.6,-34.4M497.7,0.2 L503.4,-3.9 L508.0,-4.4 L509.3,-17.6 L508.4,-25.1 L511.2,-29.5 L508.3,-39.6M78.2,68.3 L81.5,65.6M78.2,68.3 L84.3,82.0M78.2,68.3 L75.0,58.0M75.0,58.0 L78.2,68.3M75.0,58.0 L71.6,43.3M103.2,117.7 L105.4,121.2M103.2,117.7 L106.2,115.8M103.2,117.7 L101.0,114.1M105.4,121.2 L103.2,117.7M105.4,121.2 L108.8,126.4M106.2,115.8 L112.0,111.4 L109.1,107.7M106.2,115.8 L103.2,117.7M101.0,114.1 L97.3,108.2M101.0,114.1 L103.2,117.7M106.0,102.2 L107.1,104.8M107.1,104.8 L106.0,102.2M111.3,130.0 L109.9,128.0M111.3,130.0 L114.5,134.0M109.9,128.0 L111.3,130.0M114.5,134.0 L118.8,140.1M114.5,134.0 L111.3,130.0M118.8,140.1 L115.3,135.8M118.8,140.1 L114.5,134.0M119.6,139.3 L132.0,134.4M117.5,140.6 L113.6,141.8M119.9,139.9 L131.9,135.4M115.3,135.8 L118.8,140.1M122.2,151.4 L120.7,145.1M122.2,151.4 L123.5,159.4M120.7,145.1 L122.2,151.4M123.5,159.4 L122.2,151.4M124.9,175.2 L125.2,177.9M124.9,173.8 L124.1,165.4M130.0,186.4 L122.4,183.9M130.0,186.4 L126.7,182.3M277.5,130.8 L278.3,128.8 L276.5,126.2 L269.8,124.5M277.5,130.8 L273.6,129.4 L265.0,129.8M277.5,130.8 L280.9,134.5 L283.2,141.1 L282.7,144.7 L279.3,151.2M265.0,129.8 L273.6,129.4 L277.5,130.8M265.0,129.8 L257.7,130.1M279.3,151.2 L276.8,164.9 L284.8,178.8 L287.1,191.4M279.3,151.2 L282.7,144.7 L283.2,141.1 L280.9,134.5 L277.5,130.8M279.3,151.2 L261.3,151.8M261.3,151.8 L252.5,155.8M261.3,151.8 L279.3,151.2M252.5,155.8 L261.3,151.8M247.5,158.2 L250.5,156.8M246.5,158.7 L235.9,161.1 L220.8,159.9M250.5,156.8 L247.5,158.2M156.3,173.7 L163.2,170.3M155.8,174.6 L150.0,183.5M163.2,170.3 L171.5,168.4M163.2,170.3 L156.3,173.7M170.7,203.8 L172.2,207.4M170.7,203.8 L179.7,205.0M172.2,207.4 L170.7,203.8M172.2,207.4 L170.9,211.7M172.2,207.4 L173.0,210.2M169.6,203.4 L163.4,201.2 L165.5,202.5M179.7,205.0 L173.0,210.2M179.7,205.0 L170.7,203.8M162.6,235.2 L159.0,233.4M149.8,228.6 L157.3,232.6M150.5,228.2 L163.0,234.4M157.3,232.6 L149.8,228.6M148.1,226.9 L142.9,222.3M150.0,226.9 L153.2,223.5M181.1,205.1 L184.6,205.3M180.3,205.7 L175.4,209.3M173.0,210.2 L170.9,211.7M173.0,210.2 L179.7,205.0M173.0,210.2 L172.2,207.4M170.9,211.7 L168.0,213.9M170.9,211.7 L173.0,210.2M170.9,211.7 L172.2,207.4M172.1,211.4 L168.0,213.9M168.0,213.9 L172.1,211.4M168.0,213.9 L170.9,211.7M184.6,205.3 L181.1,205.1M206.0,207.2 L202.1,205.6M206.0,209.6 L196.7,207.4M233.7,111.7 L235.5,115.1M233.7,111.7 L231.0,107.9M209.7,140.9 L218.9,130.9 L221.4,126.1 L222.2,120.3 L220.0,111.6M209.3,142.1 L208.2,150.9M220.0,111.6 L222.2,120.3 L221.4,126.1 L218.9,130.9 L209.7,140.9M208.2,150.9 L208.9,158.8M208.2,150.9 L209.3,142.1M208.9,158.8 L208.2,150.9M209.3,161.1 L209.9,164.5M208.3,160.2 L198.2,162.3M210.1,142.2 L209.1,148.8 L210.0,158.7M210.9,163.3 L210.4,160.9M210.9,163.3 L218.2,193.1 L217.5,199.0 L212.4,208.9M211.7,161.3 L214.4,159.6M210.4,160.9 L210.9,163.3M212.4,208.9 L211.2,211.2M212.4,208.9 L213.4,211.8M212.4,208.9 L217.5,199.0 L218.2,193.1 L210.9,163.3M214.4,159.6 L211.7,161.3M214.4,159.6 L210.9,159.8M214.9,159.6 L219.7,159.8M210.9,159.8 L214.4,159.6M210.0,158.7 L209.1,148.8 L210.1,142.2M209.9,164.5 L209.3,161.1M209.9,164.5 L207.6,161.3 L198.2,162.3M209.9,164.5 L217.5,194.5 L210.9,208.8M198.2,162.3 L207.6,161.3 L209.9,164.5M198.2,162.3 L208.3,160.2M198.2,162.3 L188.5,164.5M210.9,208.8 L217.5,194.5 L209.9,164.5M210.9,208.8 L207.3,210.0M731.4,170.6 L729.0,170.9 L723.9,176.5M632.2,168.9 L636.1,168.9 L640.4,166.3 L646.5,166.2 L654.8,163.1M-226.7,238.9 L-222.3,238.8M-228.4,244.2 L-226.1,240.5M-191.8,244.4 L-191.6,238.9M-199.4,228.9 L-200.8,232.1M413.5,273.7 L413.5,277.7M426.0,276.3 L423.9,277.5M423.9,277.5 L419.1,279.0M423.9,277.5 L426.0,276.3M492.1,246.1 L491.0,241.7M183.2,261.3 L180.6,266.1M183.2,261.3 L187.9,253.3M187.9,253.3 L188.3,249.8 L186.6,247.6M187.9,253.3 L189.9,249.7 L186.6,247.6M187.9,253.3 L183.2,261.3M176.4,274.3 L180.6,266.1M176.4,274.3 L170.1,290.6M176.4,274.3 L175.3,280.9M178.4,5.9 L171.5,4.3M140.3,59.5 L134.2,55.5 L122.0,52.3M122.0,52.3 L134.2,55.5 L140.3,59.5M131.9,135.4 L137.8,133.5M131.9,135.4 L119.9,139.9M132.0,134.4 L119.6,139.3M150.9,129.6 L140.0,132.9M153.2,128.9 L158.6,127.1M159.7,126.8 L170.3,123.7M159.5,125.9 L177.3,121.1M158.6,127.1 L153.2,128.9M206.4,114.4 L203.2,115.6M206.4,114.4 L208.7,113.8M208.7,113.8 L206.4,114.4M232.3,107.0 L236.3,105.7M232.0,107.7 L233.6,110.7M236.3,105.7 L240.1,104.6M236.3,105.7 L232.3,107.0M240.1,104.6 L236.3,105.7M242.3,104.1 L246.5,103.0M254.8,100.7 L257.9,99.9M254.8,100.7 L246.5,103.0M254.8,100.7 L242.1,103.0M261.9,98.8 L264.6,98.0M261.9,98.8 L257.9,99.9M264.6,98.0 L261.9,98.8M257.9,99.9 L261.9,98.8M257.9,99.9 L254.8,100.7M266.
381380,97.6 L267.7,96.9 L267.9,97.8M267.9,97.8 L268.5,100.2M267.9,97.8 L267.7,96.9 L266.0,97.6M231.9,106.0 L242.1,103.0M187.9,119.1 L193.1,118.1M186.1,119.5 L177.3,121.1M177.3,121.1 L159.5,125.9M177.3,121.1 L186.1,119.5M177.1,120.6 L174.9,113.9M158.5,126.1 L152.6,127.9M152.6,127.9 L158.5,126.1M150.7,128.6 L139.8,132.0M139.8,132.0 L150.7,128.6M137.9,132.6 L134.3,133.7M134.3,133.7 L137.9,132.6M390.4,365.5 L387.0,370.2M413.8,364.5 L414.4,358.4M420.7,355.8 L414.4,358.4M420.7,355.8 L431.2,362.2M431.2,362.2 L420.7,355.8M431.2,362.2 L439.9,363.3M464.0,378.7 L458.3,377.9M458.3,377.9 L464.0,378.7M463.0,388.6 L459.0,386.9M463.0,388.6 L463.2,389.6 L464.2,389.3 L464.0,388.4 L463.0,388.6M463.0,388.6 L464.0,388.4 L464.2,389.3 L463.2,389.6 L463.0,388.6M459.0,386.9 L463.0,388.6M459.0,386.9 L452.8,385.9M448.3,385.8 L446.5,379.7 L447.4,374.9M449.0,385.8 L452.8,385.9M447.4,374.9 L446.5,379.7 L448.3,385.8M447.4,374.9 L456.5,358.1M447.4,374.9 L444.6,370.3M464.1,345.3 L457.7,356.5M457.7,356.5 L464.1,345.3M456.5,358.1 L447.4,374.9M444.6,370.3 L442.1,366.1M444.6,370.3 L447.4,374.9M439.9,363.3 L431.2,362.2M440.5,363.9 L442.1,366.1M461.6,358.3 L466.4,354.5M383.9,333.9 L379.2,331.1M383.9,333.9 L384.2,334.9 L385.1,334.5 L384.8,333.8 L383.9,333.9M383.9,333.9 L384.8,333.8 L385.1,334.5 L384.2,334.9 L383.9,333.9M504.6,502.0 L504.0,505.6M504.0,501.0 L502.9,498.9M505.8,503.7 L508.7,509.4 L506.5,508.2M504.0,505.6 L504.6,502.0M385.7,479.7 L384.6,480.4 L385.4,481.5 L386.5,480.6 L385.7,479.7M385.7,479.7 L386.5,480.6 L385.4,481.5 L384.6,480.4 L385.7,479.7M386.8,477.7 L390.7,473.7M448.7,486.8 L455.7,490.8M448.7,486.8 L440.5,480.4M455.7,490.8 L459.6,494.0M455.7,490.8 L448.7,486.8M440.5,480.4 L448.7,486.8M384.0,419.5 L389.1,431.8M384.0,419.5 L382.9,416.3M380.1,407.4 L382.9,416.3M389.1,431.8 L384.0,419.5M389.8,431.2 L393.0,428.8M393.2,429.0 L394.6,431.2M393.5,425.2 L392.1,427.5 L393.0,428.8M418.3,430.9 L417.0,433.1M388.9,421.8 L390.3,422.5 L393.5,419.3M419.9,396.4 L427.1,400.8M431.8,402.6 L427.5,407.8M431.8,402.6 L427.1,400.8M441.2,469.3 L435.8,472.8M400.3,405.0 L403.2,408.2 L403.2,410.5M-193.5,205.2 L-193.5,209.8M-151.7,20.1 L-152.1,10.5M-151.7,20.8 L-151.2,23.9M-151.2,23.9 L-149.9,36.8 L-135.9,78.5M-151.2,23.9 L-151.7,20.8M625.4,450.8 L628.6,451.6M635.2,450.8 L633.4,452.7 L628.3,453.0M633.3,683.6 L635.2,684.4 L634.9,687.4 L628.4,694.9M628.4,694.9 L625.4,692.3M628.4,694.9 L634.9,687.4 L635.2,684.4 L633.3,683.6M625.4,692.3 L628.4,694.9M625.4,692.3 L623.6,690.6M566.4,585.9 L568.6,583.5M566.4,585.9 L569.0,588.3M568.6,583.5 L566.4,585.9M569.0,588.3 L566.4,585.9M-5.1,704.0 L-14.7,702.9M-5.1,704.0 L-1.9,704.4M-18.3,689.2 L-19.1,696.9M-18.3,689.2 L-17.2,679.8M207.3,210.0 L210.9,208.8M207.3,210.0 L209.9,210.8M209.9,210.8 L207.3,210.0M213.4,211.8 L212.4,208.9M228.5,218.2 L228.9,219.3 L230.6,219.0M230.6,219.0 L228.9,219.3 L228.5,218.2M206.9,211.0 L208.3,213.6M208.3,213.6 L202.7,224.5M208.3,213.6 L206.9,211.0M173.0,286.9 L175.3,280.9M173.0,286.9 L171.0,292.2M429.3,190.7 L433.3,185.6M262.6,210.2 L259.3,207.6M307.8,122.4 L310.6,125.3M307.8,122.4 L304.5,124.9 L301.1,125.5M307.8,122.4 L311.1,118.8 L311.9,115.4M301.1,125.5 L297.8,125.4M301.1,125.5 L304.5,124.9 L307.8,122.4M311.9,115.4 L311.1,118.8 L307.8,122.4M311.9,115.4 L309.4,110.1M427.3,173.2 L423.4,170.0M427.3,173.2 L430.8,175.9M423.4,170.0 L427.3,173.2M423.4,170.0 L419.8,167.1M430.8,175.9 L433.2,177.8M430.8,175.9 L427.3,173.2M313.0,106.3 L309.4,110.1M313.0,106.3 L314.4,101.1M314.6,107.2 L317.1,108.7M297.8,125.4 L301.1,125.5M297.8,125.4 L295.0,125.6 L293.5,127.9M303.5,124.4 L306.8,121.5M310.3,115.5 L308.0,111.6M310.3,115.5 L309.9,118.1 L306.8,121.5M375.0,215.7 L376.3,210.4M375.0,215.7 L371.3,231.5M315.0,121.2 L314.8,121.8 L315.9,122.6 L316.3,121.8 L315.0,121.2M315.0,121.2 L316.3,121.8 L315.9,122.6 L314.8,121.8 L315.0,121.2M315.0,121.2 L316.1,116.9 L313.0,115.3M313.0,115.3 L316.1,116.9 L315.0,121.2M313.0,115.3 L312.2,111.3M293.5,127.9 L295.0,125.6 L297.8,125.4M290.4,113.4 L291.2,110.1M364.0,259.9 L362.9,262.8M308.0,111.6 L310.3,115.5M282.7,223.1 L282.4,221.2 L284.7,219.0M282.7,223.1 L281.1,222.7 L281.3,218.3M282.8,223.1 L296.3,225.0M284.7,219.0 L282.4,221.2 L282.7,223.1M281.3,218.3 L281.1,222.7 L282.7,223.1M314.4,127.9 L310.6,125.3M334.1,67.0 L328.8,61.1M334.1,67.0 L335.8,68.7M428.3,192.1 L426.8,194.7M421.2,208.3 L420.5,210.8M421.2,208.3 L423.7,200.8M413.5,280.5 L413.5,277.7M469.5,-85.9 L475.0,-86.9 L478.6,-85.9 L487.4,-73.7M469.5,-85.9 L459.5,-84.8M469.5,-85.9 L468.3,-90.3 L466.3,-92.1M466.3,-92.1 L468.3,-90.3 L469.5,-85.9M396.1,-77.9 L402.0,-75.2M408.6,-79.9 L423.3,-80.3M423.3,-80.3 L426.6,-81.1M423.3,-80.3 L408.6,-79.9M407.1,-84.8 L406.9,-80.3M407.1,-84.8 L406.9,-90.5M440.4,-79.6 L445.8,-81.2M440.4,-79.6 L435.6,-79.3 L426.6,-81.1M440.4,-79.6 L434.4,-72.2 L433.9,-69.7 L434.1,-65.8 L436.7,-62.4 L436.9,-58.0 L438.1,-55.8 L440.7,-54.7 L437.9,-54.2M426.6,-81.1 L435.6,-79.3 L440.4,-79.6M426.6,-81.1 L423.3,-80.3M437.9,-54.2 L440.7,-54.7 L438.1,-55.8 L436.9,-58.0 L436.7,-62.4 L434.1,-65.8 L433.9,-69.7 L434.4,-72.2 L440.4,-79.6M201.3,230.3 L191.5,248.8M191.5,248.8 L201.3,230.3M191.5,248.8 L189.8,252.0M144.3,191.1 L145.6,190.5 L145.1,191.7M145.1,191.7 L145.6,190.5 L144.3,191.1M141.4,191.8 L138.8,190.6M138.8,190.6 L141.4,191.8M184.0,265.8 L182.3,269.1 L184.5,272.6M186.6,247.6 L188.3,249.8 L187.9,253.3M186.6,247.6 L189.9,249.7 L187.9,253.3M186.6,247.6 L179.6,244.0 L178.1,253.6M178.1,253.6 L179.6,244.0 L186.6,247.6M184.2,272.9 L181.7,274.6M191.7,246.1 L189.4,247.4M189.4,247.4 L191.7,246.1M64.4,167.4 L61.2,167.5M61.2,167.5 L64.4,166.7M61.2,167.5 L64.4,167.4M61.2,167.5 L56.1,172.2 L50.8,172.4M64.4,166.7 L61.2,167.5M50.8,172.4 L50.0,181.8 L53.5,184.0M50.8,172.4 L56.1,172.2 L61.2,167.5M53.5,184.0 L50.0,181.8 L50.8,172.4M85.1,165.0 L76.8,165.9M76.8,165.9 L85.1,165.0M76.8,165.9 L72.2,166.4M-21.8,578.7 L-12.7,582.5M38.3,548.8 L35.9,552.0M57.6,529.5 L55.6,532.7M57.6,529.5 L60.0,526.8 L64.4,525.3M57.6,529.5 L53.9,526.6M64.4,525.3 L66.2,522.6M64.4,525.3 L60.0,526.8 L57.6,529.5M6.3,-36.1 L13.4,-30.1M6.3,-36.1 L2.3,-41.4M6.3,-36.1 L3.9,-38.2M-1.0,-45.5 L2.3,-41.4M-1.0,-45.5 L-5.5,-54.2M460.7,250.8 L455.1,250.3M455.1,250.3 L460.7,250.8M464.8,250.6 L466.0,251.0 L464.7,251.2M462.7,250.4 L455.1,249.7M462.7,250.4 L462.9,245.7M464.7,251.2 L466.0,251.0 L464.8,250.6M493.2,229.4 L495.0,227.4M493.2,229.4 L490.0,224.7M455.1,249.7 L462.7,250.4M454.7,249.7 L455.0,245.0M495.0,227.4 L493.2,229.4M495.0,227.4 L496.6,225.5M490.0,224.7 L488.7,222.2M490.0,224.7 L493.2,229.4M474.1,246.2 L471.6,246.1M474.1,246.2 L478.5,246.5M513.2,256.3 L509.4,256.3M539.8,266.0 L542.1,262.5M401.9,546.2 L404.6,547.4M282.7,294.1 L286.6,294.1M286.6,293.6 L286.5,290.4M286.9,297.0 L286.6,294.1M477.9,430.1 L475.4,427.7 L474.7,423.5M616.6,443.8 L617.0,447.8 L620.7,449.9M618.6,444.0 L621.3,447.7 L620.7,449.9M617.3,424.5 L618.2,421.8 L620.9,420.1M620.9,420.1 L618.2,421.8 L617.3,424.5M-148.1,0.6 L-145.4,-0.3M-136.4,-10.3 L-140.0,-11.8M-136.4,-10.3 L-134.5,-14.4M-136.4,-10.3 L-139.9,-3.5 L-145.4,-0.3M-140.0,-11.8 L-136.4,-10.3M-134.5,-14.4 L-136.4,-10.3M-181.5,-18.7 L-185.7,-12.4M-181.5,-18.7 L-191.0,-24.4M-179.5,-17.6 L-177.0,-16.2M-185.7,-12.4 L-190.1,-13.9 L-196.8,-13.0 L-191.0,-24.4M-185.7,-12.4 L-181.5,-18.7M-191.0,-24.4 L-196.8,-13.0 L-190.1,-13.9 L-185.7,-12.4M-191.0,-24.4 L-181.5,-18.7M-191.0,-24.4 L-192.9,-26.5M-197.8,-99.9 L-200.2,-104.1M42.3,540.8 L44.6,537.7M41.9,541.3 L35.2,550.8M44.6,537.7 L42.3,540.8M41.8,540.6 L21.9,529.1M62.9,190.1 L70.5,191.0M66.7,190.9 L70.5,191.3M327.7,247.5 L326.3,250.3M322.3,244.3 L328.1,246.7M322.3,244.3 L317.6,243.1M18.4,385.6 L23.7,383.4 L28.2,384.6M20.0,392.3 L27.1,399.0 L33.8,402.5M20.0,392.3 L16.4,386.5M7.4,396.3 L-1.4,392.4 L-4.0,393.1 L-6.6,395.9M-6.6,395.9 L-4.0,393.1 L-1.4,392.4 L7.4,396.3M-6.6,395.9 L-8.6,399.4 L-8.8,406.1 L-13.8,410.5M-6.6,365.7 L-11.1,368.0 L-23.2,362.9M-6.6,365.7 L-5.6,366.3 L-5.1,365.1 L-6.2,364.6 L-6.6,365.7M-6.6,365.7 L-6.2,364.6 L-5.1,365.1 L-5.6,366.3 L-6.6,365.7M-23.2,362.9 L-11.1,368.0 L-6.6,365.7M-12.4,344.9 L-19.8,353.4 L-24.0,362.7M8.1,352.6 L16.8,352.1 L18.3,347.8 L15.7,344.8 L11.5,344.8 L8.7,348.4 L8.1,352.6M8.1,352.6 L8.7,348.4 L11.5,344.8 L15.7,344.8 L18.3,347.8 L16.8,352.1 L8.1,352.6M8.1,352.6 L2.5,356.0M42.5,348.4 L39.7,344.7 L36.7,343.8M36.7,343.8 L39.7,344.7 L42.5,348.4M36.7,343.8 L33.4,342.8 L31.9,347.5M38.5,390.2 L39.5,388.9 L38.7,388.2 L38.0,388.9 L38.5,390.2M38.5,390.2 L38.0,388.9 L38.7,388.2 L39.5,388.9 L38.5,390.2M38.5,390.2 L35.7,393.2M-8.5,346.0 L2.5,356.0M-8.5,346.0 L-11.3,343.6M45.9,414.9 L53.1,418.5 L54.7,417.6 L53.8,416.2 L45.9,414.9M45.9,414.9 L53.8,416.2 L54.7,417.6 L53.1,418.5 L45.9,414.9M240.8,530.6 L243.3,526.4M240.8,530.6 L238.6,534.7 L235.5,535.5 L233.0,537.8M233.0,537.8 L235.5,535.5 L238.6,534.7 L240.8,530.6M303.3,476.6 L308.8,474.1M275.6,568.0 L273.7,566.9 L272.6,563.2M272.6,563.2 L273.7,566.9 L275.6,568.0M272.6,563.2 L271.8,556.3 L287.3,524.8M746.1,574.1 L748.3,584.8M748.3,584.8 L746.4,589.9M748.3,584.8 L746.1,574.1M219.0,110.9 L210.6,113.1M221.2,110.2 L230.1,107.6M219.7,109.0 L217.4,103.7M220.8,109.3 L229.9,106.7M218.8,109.7 L212.9,111.4M585.5,76.8 L588.0,77.2M476.0,179.3 L486.3,167.2M476.0,179.3 L476.7,181.3 L489.3,191.4M501.0,181.8 L496.2,186.8 L489.3,191.4M616.0,419.5 L616.2,412.8M616.0,419.5 L616.0,424.5M616.2,412.8 L616.0,419.5M617.6,410.8 L619.7,409.8M548.0,406.2 L542.5,401.7M548.0,406.2 L553.4,413.2 L552.5,416.9 L550.1,417.9M550.1,417.9 L552.5,416.9 L553.4,413.2 L548.0,406.2M532.4,388.6 L534.4,382.8M530.6,387.7 L528.0,386.4M534.4,382.8 L532.4,388.6M534.4,382.8 L536.4,375.8 L540.3,371.5M570.9,382.4 L576.0,378.3M570.9,382.4 L567.1,382.7 L563.9,380.5M576.0,378.3 L577.8,376.1M576.0,378.3 L570.9,382.4M563.9,380.5 L567.1,382.7 L570.9,382.4M562.4,378.7 L553.8,374.8M562.6,378.3 L560.9,375.3 L555.6,373.0 L553.8,374.8M577.8,376.1 L576.0,378.3M492.3,273.1 L499.6,278.2M492.0,272.9 L495.3,268.2M467.2,255.2 L425.1,248.7M425.1,248.7 L419.0,247.8M425.1,248.7 L467.2,255.2M-62.6,688.5 L-65.2,690.4M-62.6,688.5 L-56.1,683.0M317.9,109.6 L320.9,112.4 L324.6,108.9 L321.3,105.3 L317.5,108.4M317.1,108.7 L314.6,107.2M317.5,108.4 L321.3,105.3 L324.6,108.9 L320.9,112.4 L317.9,109.6M472.7,147.9 L471.2,148.0 L472.4,147.3M472.7,147.9 L483.0,145.0 L494.2,155.5M625.8,114.7 L626.7,109.4 L624.2,104.5M643.9,102.6 L641.0,102.9M643.9,102.6 L662.4,102.9M587.6,25.8 L600.0,41.1M299.0,315.7 L301.3,318.3M178.7,230.4 L175.1,228.6M178.7,233.7 L177.7,236.1M182.4,227.7 L183.8,225.2M177.7,236.1 L178.7,233.7M177.4,237.1 L176.5,240.6M178.2,236.2 L179.4,234.0M179.4,234.0 L178.2,236.2M181.7,233.6 L184.5,235.0M190.4,235.8 L192.8,233.3 L192.5,231.1M190.4,235.8 L193.5,233.3M192.5,231.1 L192.8,233.3 L190.4,235.8M193.5,233.3 L193.1,231.0M193.5,233.3 L190.4,235.8M178.1,231.7 L174.4,229.8M188.3,237.0 L184.5,235.0M189.0,235.8 L185.3,234.0M167.2,224.9 L164.9,223.6M182.3,232.4 L185.3,234.0M164.2,234.3 L167.5,228.2M163.0,234.4 L150.5,228.2M192.5,230.6 L192.2,228.7 L194.1,224.7M194.1,224.7 L192.2,228.7 L192.5,230.6M193.1,231.0 L193.5,233.3M166.9,225.4 L163.5,223.8M167.5,228.2 L164.2,234.3M169.7,227.3 L174.4,229.8M174.4,229.8 L169.7,227.3M174.4,229.8 L178.1,231.7M183.8,225.2 L182.4,227.7M170.6,226.3 L175.1,228.6M188.6,241.6 L189.2,238.1M189.2,238.1 L188.6,241.6M183.9,244.5 L185.9,241.6M185.9,241.6 L183.9,244.5M189.0,238.1 L188.2,240.8M188.2,240.8 L189.0,238.1M163.0,223.5 L159.9,221.5M163.5,223.8 L166.9,225.4M163.4,222.8 L160.6,220.8M159.9,221.5 L163.0,223.5M175.4,209.3 L180.3,205.7M164.9,223.6 L167.2,224.9M160.6,220.8 L163.4,222.8M434.5,576.3 L435.4,572.5M435.4,572.5 L434.5,576.3M435.6,502.9 L434.6,510.0M434.6,510.0 L435.6,502.9M21.0,624.8 L24.0,627.1M24.0,627.1 L21.0,624.8M35.7,611.9 L39.9,614.8 L38.7,616.4 L37.4,615.1M35.7,611.9 L35.1,609.1M37.4,615.1 L38.7,616.4 L39.9,614.8 L35.7,611.9M35.1,609.1 L35.7,611.9M34.9,608.4 L37.4,607.1M34.9,608.4 L30.3,609.9M37.4,607.1 L39.5,604.6M37.4,607.1 L34.9,608.4M217.6,416.7 L223.5,399.9 L227.7,392.9 L234.8,386.8M264.6,379.9 L270.1,376.7M264.8,380.6 L270.1,376.7M270.1,376.7 L264.6,379.9M270.1,376.7 L264.8,380.6M270.1,376.7 L274.2,371.5M274.2,371.5 L275.7,369.6M274.2,371.5 L270.1,376.7M263.1,373.4 L269.7,370.0 L267.3,367.0M263.1,373.4 L262.3,374.3 L262.2,373.1M267.3,367.0 L269.7,370.0 L263.1,373.4M262.2,373.1 L262.3,374.3 L263.1,373.4M286.9,347.4 L289.8,344.4M286.9,347.4 L288.8,350.0M286.9,347.4 L284.8,347.9 L281.0,352.1M290.8,347.7 L288.8,350.0M72.2,166.4 L68.9,166.7M72.2,166.4 L76.8,165.9M-2.1,174.7 L0.8,174.7M-2.1,174.7 L-13.6,177.0M0.8,174.7 L19.4,177.7M0.8,174.7 L-2.1,174.7M36.0,199.5 L36.9,195.9M36.9,195.9 L36.0,199.5M36.9,195.9 L37.8,193.5M19.4,177.7 L27.4,178.6 L33.1,181.8M19.4,177.7 L0.8,174.7M37.8,193.5 L36.9,195.9M37.8,193.5 L38.7,190.9M732.1,130.9 L720.8,135.4M732.1,130.9 L735.0,127.1 L737.6,125.8M720.8,135.4 L716.2,137.5 L705.4,145.9M720.8,135.4 L732.1,130.9M107.2,275.7 L107.8,278.1M107.2,275.7 L105.8,268.6M105.8,268.6 L107.2,275.7M105.8,268.6 L105.0,264.8M124.2,268.1 L125.0,273.9M124.2,268.1 L124.2,260.0M498.6,513.2 L500.3,510.7M498.6,513.2 L497.4,515.9M195.7,616.4 L197.9,618.4M195.7,616.4 L188.5,610.2M195.7,616.4 L199.8,611.9M199.8,611.9 L195.7,616.4M132.6,604.6 L131.0,609.2M133.2,602.6 L130.5,599.7 L124.8,603.4M175.9,584.0 L183.1,587.7 L184.3,589.9M54.1,721.6 L57.6,699.2M-69.3,246.1 L-77.6,242.4M-77.6,242.4 L-73.1,230.1M-77.6,242.4 L-79.9,253.3 L-71.1,258.0 L-66.3,264.4 L-66.2,272.6M-77.6,242.4 L-69.3,246.1M-66.2,272.6 L-66.3,264.4 L-71.1,258.0 L-79.9,253.3 L-77.6,242.4M-222.3,238.8 L-220.6,240.1 L-220.5,241.4 L-221.7,241.0 L-222.3,238.8M-222.3,238.8 L-221.7,241.0 L-220.5,241.4 L-220.6,240.1 L-222.3,238.8M-222.3,238.8 L-226.7,238.9M-60.6,235.5 L-61.4,234.0 L-73.1,230.1M-160.5,209.0 L-165.9,209.8M-160.5,209.0 L-159.0,206.8 L-159.2,204.6 L-160.7,204.6 L-160.5,209.0M-160.5,209.0 L-160.7,204.6 L-159.2,204.6 L-159.0,206.8 L-160.5,209.0M171.5,168.4 L163.2,170.3M172.4,168.2 L182.0,165.9M182.0,165.9 L184.9,165.3M182.0,165.9 L172.4,168.2M123.8,161.3 L124.1,164.2M124.1,164.2 L123.8,161.3M124.1,165.4 L124.9,173.8M188.5,164.5 L198.2,162.3M-6.6,712.3 L-3.0,710.2M-6.6,712.3 L-13.4,716.2M-17.2,679.8 L-18.3,689.2M-17.2,679.8 L-14.9,667.2M2.1,662.1 L1.0,667.5M2.1,662.1 L6.8,654.6 L5.7,
38138653.7M1.2,661.8 L-0.2,667.3M1.2,661.8 L5.7,653.7M5.7,653.7 L1.2,661.8M5.7,653.7 L6.8,654.6 L2.1,662.1M-0.9,668.0 L-5.9,667.4M-0.9,668.1 L-6.0,668.2M-0.2,667.3 L1.2,661.8M-21.3,649.0 L-19.5,647.3M-19.5,647.3 L-21.3,649.0M-10.4,621.3 L-10.2,618.6M-10.4,621.3 L-11.0,627.2M-10.2,618.6 L-10.4,621.3M-10.2,618.6 L-9.6,613.7M-10.0,613.0 L-13.5,610.7M-9.1,611.9 L-4.8,604.9M17.1,578.0 L14.2,581.5M-184.2,689.2 L-193.6,689.9 L-205.0,692.9M-184.2,689.2 L-172.9,690.5 L-151.3,695.8 L-138.2,696.2M-136.9,691.1 L-132.5,686.3M-136.9,691.1 L-138.2,696.2M-143.7,672.3 L-138.2,673.0 L-133.9,676.5M-133.9,676.5 L-138.2,673.0 L-143.7,672.3M-133.9,676.5 L-132.2,681.2 L-132.5,686.3M33.7,404.9 L30.8,404.4 L29.6,411.5 L32.2,411.7 L33.7,404.9M33.7,404.9 L32.2,411.7 L29.6,411.5 L30.8,404.4 L33.7,404.9M-157.3,281.4 L-154.7,279.3M-157.3,281.4 L-156.1,283.2 L-154.0,281.2 L-154.7,279.3M-142.2,303.5 L-144.5,313.1M-142.2,303.5 L-140.7,297.1 L-141.0,290.8M-145.0,292.2 L-141.0,290.8M-145.0,292.2 L-146.5,290.9 L-148.7,292.1 L-150.3,296.4 L-149.6,298.3 L-146.4,299.4M-145.0,292.2 L-146.4,299.4M-146.4,299.4 L-145.0,292.2M-146.4,299.4 L-149.6,298.3 L-150.3,296.4 L-148.7,292.1 L-146.5,290.9 L-145.0,292.2M-143.7,349.3 L-142.2,352.4M-143.7,349.3 L-143.9,346.5M-148.3,361.2 L-142.2,352.4M-148.4,361.6 L-151.7,362.6M-147.1,363.2 L-143.0,367.4M-151.7,362.6 L-157.4,364.4 L-158.6,371.9M-151.7,362.6 L-148.4,361.6M-217.0,135.4 L-212.6,134.7M-217.0,135.4 L-220.8,135.8M740.0,114.7 L741.8,117.4M705.4,145.9 L702.4,149.0 L699.7,154.7 L700.8,157.0 L716.7,170.9M705.4,145.9 L716.2,137.5 L720.8,135.4M739.3,114.0 L675.1,104.1M6.5,590.7 L2.1,596.2M6.5,590.7 L11.1,585.1M2.1,596.2 L6.5,590.7M11.1,585.1 L6.5,590.7M253.9,428.2 L257.5,424.1 L254.3,418.8M269.0,408.1 L270.3,404.4 L266.1,402.1M260.9,371.7 L254.8,365.6M266.5,366.1 L260.3,360.3M271.3,343.0 L269.2,341.2M273.3,336.9 L269.2,341.2M237.5,335.2 L239.4,328.4M257.4,334.5 L260.7,335.0M257.4,334.5 L258.3,331.0M265.0,328.6 L261.3,332.7 L260.7,335.0M256.8,334.3 L249.7,332.4M258.3,331.0 L257.4,334.5M258.3,331.0 L252.6,329.4M258.3,331.0 L259.7,325.8M249.7,332.4 L256.8,334.3M252.6,329.4 L258.3,331.0M259.7,325.8 L258.3,331.0M259.7,325.8 L246.5,322.4M247.3,331.5 L239.4,328.4M241.5,320.7 L239.4,328.4M246.5,322.4 L259.7,325.8M366.5,387.1 L366.4,390.5M366.5,387.1 L366.5,384.5M366.4,390.5 L366.5,387.1M366.4,390.5 L366.3,397.2M369.1,386.6 L370.8,389.0M370.8,389.0 L372.2,391.2M370.8,389.0 L369.1,386.6M360.6,375.7 L363.6,379.1M360.6,375.7 L358.8,373.4M355.2,347.6 L358.3,348.1 L358.6,349.3 L356.2,348.8 L355.2,347.6M355.2,347.6 L356.2,348.8 L358.6,349.3 L358.3,348.1 L355.2,347.6M355.2,347.6 L352.3,346.5M361.9,339.4 L368.0,340.8M361.2,338.3 L360.4,335.3 L356.9,331.1 L356.5,334.6 L361.2,338.3M361.2,338.3 L356.5,334.6 L356.9,331.1 L360.4,335.3 L361.2,338.3M170.5,121.1 L168.9,116.1M168.9,116.1 L174.9,113.9M168.9,116.1 L170.5,121.1M168.9,116.1 L164.9,103.1M174.9,113.9 L168.9,116.1M174.9,113.9 L170.7,101.2M174.9,113.9 L180.7,111.5M174.9,113.9 L177.1,120.6M164.9,103.1 L168.9,116.1M164.9,103.1 L170.7,101.2M164.9,103.1 L161.5,103.5 L160.7,101.1M170.7,101.2 L169.8,98.3M170.7,101.2 L174.9,113.9M170.7,101.2 L176.4,99.5M170.7,101.2 L164.9,103.1M180.7,111.5 L176.4,99.5M180.7,111.5 L174.9,113.9M176.4,99.5 L180.7,111.5M176.4,99.5 L173.0,90.2M176.4,99.5 L170.7,101.2M160.7,101.1 L161.5,103.5 L164.9,103.1M160.7,101.1 L158.0,90.7 L158.5,86.5 L161.2,84.0 L162.5,80.7 L160.0,76.7 L157.7,75.7M169.8,98.3 L170.7,101.2M169.8,98.3 L168.3,92.0 L173.0,90.2M173.0,90.2 L176.4,99.5M173.0,90.2 L171.5,85.8M173.0,90.2 L168.3,92.0 L169.8,98.3M171.5,85.8 L173.0,90.2M193.0,67.0 L196.4,70.6M-17.2,673.1 L-16.2,667.0M23.2,569.8 L25.5,565.6M25.5,565.6 L23.2,569.8M25.5,565.6 L27.0,563.2M45.8,536.1 L47.4,533.8M44.8,537.4 L42.7,542.5M366.3,17.6 L368.3,11.8M366.3,17.6 L361.3,14.2 L363.2,11.1M365.9,18.8 L365.3,21.8M368.3,11.8 L366.3,17.6M368.3,11.8 L372.8,13.0M363.2,11.1 L361.3,14.2 L366.3,17.6M133.9,393.5 L135.8,385.9M133.9,393.5 L146.4,395.8 L149.4,401.2M149.8,363.7 L144.1,361.5M500.5,530.5 L502.8,530.6 L509.1,536.6M446.7,-14.5 L447.0,-20.0 L453.1,-20.5 L456.6,-24.7M456.6,-24.7 L453.1,-20.5 L447.0,-20.0 L446.7,-14.5M730.7,17.6 L726.7,15.0M732.2,18.6 L735.6,21.7 L735.0,25.5M432.7,240.5 L428.6,239.7M-119.9,163.9 L-113.7,162.7M-121.2,164.1 L-124.8,164.5M49.7,200.7 L51.2,200.6 L52.3,196.6M52.3,196.6 L51.2,200.6 L49.7,200.7M38.7,190.9 L37.8,193.5M70.5,191.3 L66.7,190.9M280.1,75.3 L282.8,84.3 L280.6,86.8 L281.6,92.7M281.6,92.7 L280.6,86.8 L282.8,84.3 L280.1,75.3M393.5,334.1 L391.1,332.0M676.7,-35.1 L678.6,-28.2 L680.6,-25.8M184.9,165.3 L182.0,165.9M150.0,183.5 L155.8,174.6M149.2,185.3 L146.5,191.0M146.5,191.0 L149.2,185.3M147.0,192.3 L148.9,194.7 L146.0,193.4M326.3,250.3 L324.8,253.7M326.3,250.3 L327.7,247.5M26.7,566.0 L28.2,563.5M26.7,566.0 L23.3,571.8M28.2,563.5 L26.7,566.0M28.8,562.6 L31.0,559.1M35.9,568.7 L38.1,564.4M35.9,568.7 L34.0,573.7 L36.8,575.5M38.1,564.4 L35.9,568.7M36.8,575.5 L34.0,573.7 L35.9,568.7M40.2,559.5 L38.3,563.1M38.3,563.1 L40.2,559.5M39.1,548.7 L61.3,564.4 L63.5,564.6M63.5,564.6 L61.3,564.4 L39.1,548.7M18.3,699.5 L15.7,706.1M11.9,674.6 L6.2,670.1 L1.5,668.4M11.9,674.6 L14.7,678.6M20.7,688.9 L19.3,686.3M20.7,688.9 L23.4,693.5M-11.8,667.7 L-6.0,668.2M-6.0,668.2 L-0.9,668.1M-6.0,668.2 L-11.8,667.7M112.6,-97.5 L109.5,-95.7M112.6,-97.5 L118.5,-98.8M419.1,279.0 L423.9,277.5M576.7,321.5 L579.2,324.8M576.7,321.5 L575.2,319.4M578.2,629.5 L582.0,637.6M584.3,636.7 L582.0,637.6M459.8,91.0 L458.8,87.9M459.8,91.0 L460.7,93.6M460.7,93.6 L459.8,91.0M461.1,94.1 L462.7,96.2M461.1,105.6 L448.2,100.3M165.5,202.5 L168.3,203.6M16
381385.5,202.5 L163.4,201.2 L169.6,203.4M518.5,218.1 L514.7,214.9M518.5,218.1 L523.0,222.0M90.5,267.3 L92.9,266.1M90.5,267.3 L86.3,268.4M92.9,266.1 L90.5,267.3M86.3,268.4 L83.3,269.6M86.3,268.4 L90.5,267.3M86.3,268.4 L76.6,270.3M335.5,479.5 L343.1,477.5M335.5,479.5 L332.4,496.6M332.4,496.6 L331.5,501.4M332.4,496.6 L335.5,479.5M531.7,358.8 L526.0,357.3M526.0,357.3 L531.7,358.8M511.5,374.9 L512.8,370.9M490.2,345.9 L486.6,347.5M490.2,345.9 L492.7,344.9M486.6,347.5 L490.2,345.9M490.3,346.5 L491.3,348.9M498.0,350.1 L498.8,352.5M491.3,348.9 L490.3,346.5M491.3,348.9 L493.1,351.6 L497.9,350.0M499.2,334.7 L495.1,335.9M499.2,334.7 L499.7,333.8 L500.6,334.4 L500.0,335.3 L499.2,334.7M499.2,334.7 L500.0,335.3 L500.6,334.4 L499.7,333.8 L499.2,334.7M506.4,339.1 L508.6,338.0M506.1,338.5 L503.6,337.6 L502.3,335.2M502.3,335.2 L503.6,337.6 L506.1,338.5M512.0,332.2 L524.5,325.8M-220.8,135.8 L-217.0,135.4M-220.8,135.8 L-224.8,134.5M-224.8,134.5 L-220.8,135.8M470.2,482.7 L474.1,482.8M527.9,521.1 L531.1,516.4M509.1,536.6 L523.0,550.2 L537.2,573.6M509.1,536.6 L502.8,530.6 L500.5,530.5M537.0,507.8 L543.1,500.0M500.3,510.7 L498.6,513.2M533.7,506.0 L536.8,508.2M621.6,440.5 L621.3,441.5 L616.3,442.3M271.3,121.6 L269.8,124.5M271.3,121.6 L274.3,122.2M271.3,121.6 L266.1,116.5M274.3,122.2 L271.3,121.6M266.1,116.5 L271.3,121.6M328.8,539.3 L333.6,536.8 L335.9,543.1 L352.8,551.4M418.7,552.5 L420.7,550.5M423.6,556.2 L421.3,557.6M421.3,557.6 L423.6,556.2M421.9,546.3 L424.1,545.3M424.1,545.3 L421.9,546.3M438.7,557.3 L438.5,554.5M438.5,554.5 L438.7,557.3M438.8,542.5 L438.1,545.8M439.1,540.4 L439.1,537.3M439.1,537.3 L439.1,540.4M439.0,536.0 L438.7,532.3M438.7,532.3 L439.0,536.0M430.9,535.9 L430.8,533.5M430.8,533.5 L430.9,535.9M430.7,532.5 L430.4,529.6M430.4,529.6 L430.7,532.5M426.4,523.4 L428.1,525.3M431.6,525.3 L433.5,523.8M433.5,523.8 L431.6,525.3M435.8,516.6 L435.4,514.2M435.4,514.2 L435.8,516.6M419.9,537.1 L422.8,538.4M422.8,538.4 L419.9,537.1M420.7,517.3 L421.2,514.6M421.2,514.6 L420.7,517.3M422.5,506.6 L422.1,509.1M501.5,566.7 L498.4,566.5M498.4,566.5 L501.5,566.7M509.8,572.9 L507.1,568.6M499.7,576.7 L501.4,578.7M501.4,578.7 L499.7,576.7M508.7,589.0 L510.3,591.3M510.3,591.3 L508.7,589.0M509.4,595.2 L506.4,596.3M506.4,596.3 L509.4,595.2M508.0,604.2 L510.6,603.5M511.9,613.4 L513.2,611.4M486.9,615.6 L487.9,619.1M488.0,617.3 L487.3,614.6M488.5,619.0 L491.3,629.6M487.9,619.1 L485.0,618.4M487.9,619.1 L490.6,629.8M487.9,619.1 L486.9,615.6M513.1,577.6 L514.7,579.8M514.7,579.8 L513.1,577.6M530.5,592.9 L530.2,590.5M530.2,590.5 L530.5,592.9M530.8,594.9 L532.6,609.9M532.6,609.9 L530.8,594.9M519.9,598.0 L521.5,600.4M521.5,600.4 L519.9,598.0M525.7,606.4 L527.5,609.0M527.5,609.0 L525.7,606.4M529.5,611.8 L531.7,613.9M531.7,613.9 L529.5,611.8M532.5,613.3 L532.7,610.3M532.7,610.3 L532.5,613.3M533.1,627.6 L535.1,629.5M532.8,633.7 L529.9,635.6M537.7,635.3 L537.0,631.9M539.1,629.1 L537.0,630.7M552.0,640.0 L553.6,638.2M553.6,638.2 L552.0,640.0M577.6,628.4 L575.2,622.8M609.2,705.1 L609.2,708.7M609.2,708.7 L609.2,705.1M608.2,712.5 L606.1,717.6M606.1,717.6 L608.2,712.5M601.6,730.4 L600.9,733.1M600.9,733.1 L601.6,730.4M600.0,741.6 L599.6,749.0M-12.6,-45.3 L-28.9,-31.1M-12.6,-45.3 L-9.3,-49.5M-12.6,-45.3 L-3.2,-36.7M-28.9,-31.1 L-12.6,-45.3M-3.2,-36.7 L-12.6,-45.3M282.9,299.8 L283.5,298.7 L282.1,296.9M282.1,296.9 L277.0,298.4M282.1,296.9 L281.0,294.1M282.1,296.9 L283.5,298.7 L282.9,299.8M277.0,298.4 L276.9,294.1M277.0,298.4 L282.1,296.9M130.9,327.2 L131.5,324.7M131.5,324.7 L130.9,327.2M131.5,324.7 L133.2,324.3 L133.9,321.5M131.5,324.7 L128.8,323.4M126.6,327.0 L128.8,323.4M128.8,323.4 L131.5,324.7M128.8,323.4 L126.6,327.0M135.4,326.6 L136.5,321.9M136.5,321.9 L135.4,326.6M136.5,321.9 L133.9,321.5M136.5,321.9 L140.0,322.5M133.9,321.5 L129.4,322.4M133.9,321.5 L136.5,321.9M133.9,321.5 L133.2,324.3 L131.5,324.7M129.4,322.4 L128.8,320.1M129.4,322.4 L133.9,321.5M122.5,322.8 L128.8,320.1M128.8,320.1 L129.4,322.4M128.8,320.1 L135.8,319.2M128.8,320.1 L122.5,322.8M135.8,319.2 L128.8,320.1M119.2,374.6 L121.1,372.7M75.1,352.7 L82.3,351.5M82.3,351.5 L86.6,361.4 L84.9,369.8 L71.2,367.2M82.3,351.5 L75.1,352.7M81.8,349.6 L80.3,339.9M71.2,367.2 L84.9,369.8 L86.6,361.4 L82.3,351.5M70.2,333.9 L64.5,337.5M70.2,333.9 L74.6,338.3 L80.3,339.9M70.2,333.9 L64.0,321.9 L58.4,318.3 L52.1,328.5M64.5,337.5 L70.2,333.9M52.1,328.5 L58.4,318.3 L64.0,321.9 L70.2,333.9M121.8,327.0 L118.2,328.7M107.9,319.3 L104.8,319.3M107.9,319.3 L107.9,321.9M107.9,319.3 L113.2,320.6 L118.2,328.7M104.8,319.3 L107.9,319.3M104.8,319.3 L96.5,319.3M70.1,309.6 L76.9,310.0M74.6,300.9 L79.4,302.3 L76.9,310.0M-49.4,419.5 L-48.9,416.6 L-43.3,415.4M-43.3,415.4 L-36.9,402.9M-43.3,415.4 L-48.9,416.6 L-49.4,419.5M-32.5,409.5 L-32.4,410.8 L-33.9,410.9 L-33.8,409.7 L-32.5,409.5M-32.5,409.5 L-33.8,409.7 L-33.9,410.9 L-32.4,410.8 L-32.5,409.5M-32.5,409.5 L-27.4,401.9M177.0,405.9 L175.9,408.1 L174.7,407.6 L1
3813874.9,406.4 L177.0,405.9M177.0,405.9 L174.9,406.4 L174.7,407.6 L175.9,408.1 L177.0,405.9M177.0,405.9 L176.7,401.3 L173.1,395.8M173.1,395.8 L166.1,386.4M173.1,395.8 L166.8,385.9M173.1,395.8 L176.7,401.3 L177.0,405.9M149.4,401.2 L146.4,395.8 L133.9,393.5M163.8,398.1 L159.2,391.1M163.8,398.1 L163.7,399.4 L164.9,399.6 L165.1,398.4 L163.8,398.1M163.8,398.1 L165.1,398.4 L164.9,399.6 L163.7,399.4 L163.8,398.1M159.2,391.1 L166.1,386.4M159.2,391.1 L163.8,398.1M159.2,391.1 L157.0,387.8M166.1,386.4 L159.2,391.1M166.1,386.4 L173.1,395.8M166.1,386.4 L161.5,377.8 L153.2,371.4M166.8,385.9 L162.0,377.3 L155.4,372.8 L152.8,369.1 L152.1,365.3M166.8,385.9 L173.1,395.8M133.7,394.0 L132.4,398.4M157.0,387.8 L159.2,391.1M157.0,387.8 L157.3,386.6 L156.1,386.3 L155.8,387.5 L157.0,387.8M157.0,387.8 L155.8,387.5 L156.1,386.3 L157.3,386.6 L157.0,387.8M153.2,371.4 L161.5,377.8 L166.1,386.4M153.2,371.4 L150.7,373.3 L149.6,372.9 L152.0,369.7M152.0,369.7 L149.6,372.9 L150.7,373.3 L153.2,371.4M152.0,369.7 L151.1,365.4M151.1,365.4 L152.0,369.7M152.1,365.3 L152.4,363.7 L150.8,363.6M152.1,365.3 L152.8,369.1 L155.4,372.8 L162.0,377.3 L166.8,385.9M150.8,363.6 L152.4,363.7 L152.1,365.3M25.9,336.9 L22.5,338.0M47.3,296.2 L49.8,299.4 L48.2,300.7M46.3,294.5 L44.6,292.4M-3.6,286.0 L-2.1,283.9M-3.6,286.0 L-2.8,289.4 L5.5,296.8M-2.1,283.9 L-3.6,286.0M5.5,296.8 L-2.8,289.4 L-3.6,286.0M5.5,296.8 L11.1,298.1 L19.4,296.0M-1.3,283.2 L8.9,275.3M222.4,228.1 L220.9,230.2M222.4,228.1 L225.0,229.9 L224.6,231.3 L223.6,231.0M220.9,230.2 L222.4,228.1M220.9,230.2 L217.8,234.4M223.6,231.0 L224.6,231.3 L225.0,229.9 L222.4,228.1M-5.9,667.4 L-0.9,668.0M-5.9,667.4 L-13.8,666.1M367.4,129.0 L365.6,126.9M367.4,129.0 L371.9,132.8 L379.9,132.3 L384.8,138.3 L388.1,139.6 L390.3,138.6 L390.8,137.0 L388.1,132.9M345.7,27.2 L346.3,22.5 L344.9,21.7 L344.0,22.4 L345.7,27.2M345.7,27.2 L344.0,22.4 L344.9,21.7 L346.3,22.5 L345.7,27.2M345.7,27.2 L344.3,35.7M527.9,514.0 L525.2,511.0 L526.1,507.4M526.1,507.4 L529.6,502.6M526.1,507.4 L525.3,506.7 L528.0,502.4 L529.6,502.6M526.1,507.4 L525.2,511.0 L527.9,514.0M529.6,502.6 L526.1,507.4M529.6,502.6 L528.0,502.4 L525.3,506.7 L526.1,507.4M529.6,502.6 L532.2,505.0M532.2,505.0 L529.6,502.6M673.8,-72.5 L679.4,-74.6M673.8,-72.5 L671.2,-70.8 L672.9,-66.5M41.9,289.2 L44.6,292.4M40.1,286.9 L37.4,283.5M41.1,287.1 L47.0,282.5M36.6,284.2 L39.3,287.5M37.4,283.5 L40.1,286.9M-47.4,561.7 L-45.1,565.7 L-35.2,571.0M450.3,183.1 L449.1,174.0M459.9,184.5 L456.4,180.8M459.9,184.5 L463.7,188.2 L466.0,185.9M294.7,334.2 L296.3,331.7 L294.1,329.6M294.7,334.2 L293.6,335.5 L294.7,336.4 L295.7,335.2 L294.7,334.2M294.7,334.2 L295.7,335.2 L294.7,336.4 L293.6,335.5 L294.7,334.2M294.1,329.6 L289.3,325.4M294.1,329.6 L296.3,331.7 L294.7,334.2M155.2,472.8 L160.2,468.4M170.9,482.1 L168.3,481.4 L165.0,476.0 L165.1,472.7 L160.2,468.4M388.1,351.4 L384.7,355.2 L383.2,360.9M388.1,351.4 L389.2,351.3 L389.1,350.2 L388.1,350.3 L388.1,351.4M388.1,351.4 L388.1,350.3 L389.1,350.2 L389.2,351.3 L388.1,351.4M312.2,111.3 L313.0,115.3M556.3,230.6 L558.1,233.4M556.3,230.6 L553.6,226.5M549.5,237.2 L551.6,239.1M551.6,239.1 L549.5,237.2M48.2,300.7 L49.8,299.4 L47.3,296.2M110.9,293.0 L110.0,288.5M110.0,288.5 L110.9,293.0M110.0,288.5 L109.2,284.8M107.9,289.0 L107.4,286.5 L98.5,288.4 L99.5,293.6 L108.3,291.7 L107.9,289.0M107.9,289.0 L108.3,291.7 L99.5,293.6 L98.5,288.4 L107.4,286.5 L107.9,289.0M55.3,286.9 L54.2,284.4M54.2,284.4 L52.2,280.1M54.2,284.4 L55.3,286.9M55.8,283.7 L59.9,281.8M59.9,281.8 L55.8,283.7M59.9,281.8 L64.5,279.8M82.3,284.5 L90.6,286.5 L102.1,284.0M82.3,284.5 L79.3,282.0 L76.8,276.8M64.5,279.8 L68.2,278.9M64.5,279.8 L59.9,281.8M68.2,278.9 L64.5,279.8M57.2,276.2 L66.7,272.8M66.7,272.8 L57.2,276.2M66.7,272.8 L74.0,270.8M76.8,276.8 L79.3,282.0 L82.3,284.5M76.8,276.8 L76.2,274.3M75.2,277.2 L70.1,278.5M76.2,274.3 L76.8,276.8M80.2,276.2 L84.1,275.5M84.1,275.5 L80.2,276.2M85.9,275.1 L87.1,280.5 L93.4,278.2 L91.0,269.2M85.9,275.1 L85.4,272.5 L87.4,270.3M91.0,269.2 L93.4,278.2 L87.1,280.5 L85.9,275.1M87.4,270.3 L90.2,269.4M87.4,270.3 L85.4,272.5 L85.9,275.1M68.4,272.9 L74.2,271.6M74.0,270.8 L66.7,272.8M90.2,269.4 L87.4,270.3M124.2,260.0 L124.4,254.8 L123.2,252.5M124.2,260.0 L124.2,268.1M105.0,264.8 L105.8,268.6M105.0,264.8 L103.9,259.5M123.2,252.5 L124.4,254.8 L124.2,260.0M479.2,154.7 L477.1,155.0 L475.4,157.6M479.2,154.7 L479.8,157.6 L476.9,159.1M642.0,-2.5 L636.3,4.9 L628.8,9.1 L627.2,12.6M627.2,12.6 L628.8,9.1 L636.3,4.9 L642.0,-2.5M626.0,12.6 L626.1,15.0M626.1,15.0 L626.0,12.6M626.1,15.0 L625.5,28.1M626.1,15.0 L610.1,13.8 L606.6,11.2M733.4,34.2 L734.6,35.8 L738.7,37.1M733.4,34.2 L734.2,29.0M738.7,37.1 L742.2,38.4 L743.0,43.2M738.7,37.1 L734.6,35.8 L733.4,34.2M734.2,29.0 L733.4,34.2M546.4,-35.3 L549.9,-36.4 L553.3,-40.6M75.1,549.0 L71.6,546.0M71.6,546.0 L77.2,537.8 L78.0,532.5M71.6,546.0 L75.1,549.0M71.6,546.0 L59.5,537.1M78.0,532.5 L77.2,537.8 L71.6,546.0M59.5,537.1 L64.8,526.5M59.5,537.1 L56.5,535.3M59.5,537.1 L71.6,546.0M64.8,526.5 L59.5,537.1M56.5,535.3 L59.5,537.1M66.2,522.6 L68.0,519.5M66.2,522.6 L64.4,525.3M194.4,375.1 L186.4,364.2 L184.7,359.5M184.7,359.5 L183.4,357.0M184.7,359.5 L186.4,364.2 L194.4,375.1M183.6,358.7 L181.4,359.8M403.5,446.7 L406.7,442.2M404.9,449.3 L407.8,451.5M404.9,449.3 L402.9,447.6M58.8,689.6 L51.9,689.3M51.9,689.3 L51.6,688.7 L51.0,689.0 L51.4,689.6 L51.9,689.3M51.9,689.3 L51.4,689.6 L51.0,689.0 L51.6,688.7 L51.9,689.3M51.9,689.3 L58.8,689.6
38138M97.9,188.8 L92.7,189.8M97.9,188.8 L101.4,188.2M538.1,350.4 L536.7,347.9M535.3,345.8 L536.7,347.9M536.7,347.9 L538.1,350.4M536.7,347.9 L535.3,345.8M253.5,213.9 L251.8,216.1M253.5,213.9 L249.0,210.4M251.8,216.1 L253.5,213.9M249.0,210.4 L253.5,213.9M273.2,214.4 L277.5,212.5M273.2,214.4 L269.6,214.4M248.0,210.1 L243.8,208.7M243.8,208.7 L248.0,210.1M253.6,204.8 L251.4,199.4 L243.9,200.1 L241.6,202.3M241.6,202.3 L243.9,200.1 L251.4,199.4 L253.6,204.8M241.6,202.3 L241.4,207.2 L243.4,208.5M243.4,208.5 L241.4,207.2 L241.6,202.3M466.4,354.5 L466.0,352.2 L467.6,351.5 L467.9,353.9 L466.4,354.5M466.4,354.5 L467.9,353.9 L467.6,351.5 L466.0,352.2 L466.4,354.5M466.4,354.5 L461.6,358.3M421.7,415.6 L423.1,412.4M423.1,412.4 L421.7,415.6M423.1,412.4 L427.5,407.8M427.5,407.8 L433.0,403.0M427.5,407.8 L431.8,402.6M427.5,407.8 L423.1,412.4M181.0,336.4 L182.5,335.7 L183.4,338.7 L181.0,336.4M181.0,336.4 L183.4,338.7 L182.5,335.7 L181.0,336.4M181.0,336.4 L164.7,321.6M164.7,321.6 L181.0,336.4M164.7,321.6 L162.6,324.2M577.9,307.7 L581.1,311.9M220.0,201.7 L221.3,198.5M220.0,201.7 L218.5,204.9M676.3,-56.8 L672.9,-66.5M672.9,-66.5 L671.2,-70.8 L673.8,-72.5M672.9,-66.5 L676.3,-56.8M286.5,290.4 L286.6,293.6M286.5,290.4 L286.4,288.0M413.2,172.0 L409.3,176.1M394.4,238.2 L393.3,242.5M393.5,103.6 L384.8,100.4M196.7,207.4 L206.0,209.6M192.3,206.5 L189.8,206.1M20.1,683.0 L21.6,681.9 L20.4,679.8M20.4,679.8 L21.6,681.9 L20.1,683.0M18.1,675.7 L15.5,672.1M15.5,672.1 L18.1,675.7M108.8,126.4 L105.4,121.2M48.5,229.3 L52.9,234.9M48.5,229.3 L42.1,225.8 L36.1,224.7M52.9,234.9 L56.7,240.1M52.9,234.9 L48.5,229.3M327.4,50.7 L324.9,53.1M317.9,36.5 L318.7,39.8M81.2,154.0 L80.2,148.0M82.2,153.2 L81.7,147.9M82.2,153.2 L85.2,156.2 L91.6,155.5 L90.4,146.8M80.2,148.0 L81.2,154.0M80.2,148.0 L75.9,149.0M81.7,147.9 L82.2,153.2M81.7,147.9 L84.5,147.5M90.4,146.8 L84.5,147.5M90.4,146.8 L91.6,155.5 L85.2,156.2 L82.2,153.2M75.9,149.0 L80.2,148.0M84.5,147.5 L81.7,147.9M84.5,147.5 L90.4,146.8M206.7,361.4 L209.9,358.7 L214.6,359.5M203.1,364.2 L206.2,361.8 L207.9,362.3 L212.5,359.5 L214.6,359.5M277.9,248.4 L280.3,249.4M280.3,249.4 L277.9,248.4M287.7,239.1 L291.4,239.7M285.2,244.4 L286.4,240.8M285.2,244.4 L283.4,249.7 L282.0,250.1M286.4,240.8 L285.2,244.4M282.0,250.1 L283.4,249.7 L285.2,244.4M354.7,259.9 L350.9,257.9M354.5,260.5 L352.9,264.8M350.9,257.9 L354.7,259.9M220.8,159.9 L235.9,161.1 L246.5,158.7M219.7,159.8 L214.9,159.6M623.6,690.6 L625.4,692.3M404.9,145.7 L402.9,147.9 L404.8,150.0M404.8,150.0 L407.1,152.1M404.8,150.0 L402.9,147.9 L404.9,145.7M548.9,224.6 L553.6,226.5M548.9,224.6 L546.1,223.0M553.6,226.5 L556.3,230.6M553.6,226.5 L548.9,224.6M549.6,233.7 L542.4,227.3M543.3,215.3 L548.0,219.4M543.3,215.3 L541.2,213.5M471.4,166.3 L473.5,168.1 L480.9,161.5 L484.3,162.5M471.4,166.3 L473.1,163.2M19.2,221.9 L22.4,222.4M9.1,219.9 L16.0,221.4M9.1,219.9 L-8.6,209.1M16.0,221.4 L9.1,219.9M176.5,240.6 L177.4,237.1M-192.9,-26.5 L-191.0,-24.4M-192.9,-26.5 L-196.9,-46.9M-196.9,-46.9 L-192.9,-26.5M-196.9,-46.9 L-200.6,-64.9M-177.0,-16.2 L-179.5,-17.6M-177.0,-16.2 L-170.6,-12.6M-25.0,-104.3 L-36.6,-101.7M-94.0,664.9 L-96.5,673.4M-76.0,668.3 L-70.6,670.2M-76.0,668.3 L-75.7,662.3M-76.0,668.3 L-78.5,672.0 L-83.7,674.9 L-90.3,675.0 L-96.5,673.4M-75.7,662.3 L-76.0,668.3M0.0,603.3 L11.7,612.9M502.9,498.9 L501.6,496.2M502.9,498.9 L504.0,501.0M63.3,671.6 L67.9,668.5M63.3,671.6 L62.4,667.6M61.5,672.6 L55.3,676.2M67.9,668.5 L63.3,671.6M67.7,664.4 L68.6,668.1M67.7,664.4 L65.0,654.2M-12.8,639.4 L-11.7,636.0M313.6,330.4 L318.6,334.7M311.9,328.9 L307.0,324.2M318.6,334.7 L316.2,337.3M318.6,334.7 L313.6,330.4M319.8,335.8 L327.5,342.5M317.8,337.1 L314.6,340.9M329.2,344.0 L332.4,347.1M327.5,342.5 L319.8,335.8M327.6,344.3 L323.8,348.5M332.4,347.1 L335.3,349.9M332.4,347.1 L329.2,344.0M335.3,349.9 L332.4,347.1M351.2,349.2 L341.8,350.0M504.1,506.8 L506.5,508.2M316.2,337.3 L313.8,340.2M316.2,337.3 L318.6,334.7M321.7,331.6 L325.2,327.7M743.0,43.2 L742.2,38.4 L738.7,37.1M661.9,16.3 L651.8,13.4M661.9,16.3 L674.8,19.7 L691.8,18.7M691.8,18.7 L702.8,17.9M691.8,18.7 L674.8,19.7 L661.9,16.3M209.9,-38.1 L208.4,-52.5M209.9,-38.1 L202.5,-34.2M209.9,-38.1 L218.6,-40.6 L218.7,-43.0 L216.9,-43.6M216.9,-43.6 L218.7,-43.0 L218.6,-40.6 L209.9,-38.1M480.8,-62.0 L476.6,-54.2 L469.8,-51.8 L460.6,-52.7 L459.6,-50.9 L462.1,-49.5M313.8,340.2 L310.6,344.1M313.8,340.2 L316.2,337.3M606.0,574.9 L599.1,573.3M606.0,574.9 L610.3,562.8 L608.8,558.2M607.6,575.5 L611.4,576.8M608.8,558.2 L610.3,562.8 L606.0,574.9M653.7,570.1 L650.4,565.6M650.4,565.6 L653.7,570.1M634.0,620.5 L638.9,621.3M634.0,620.5 L631.5,619.4 L628.3,615.3 L626.9,608.0M599.6,463.2 L593.9,461.9M599.6,463.2 L605.4,464.5 L606.7,462.8M606.7,462.8 L605.4,464.5 L599.6,463.2M528.0,386.4 L530.6,387.7M493.1,265.7 L495.2,267.6M233.6,533.5 L233.9,528.8M233.9,528.8 L229.3,529.2M233.9,528.8 L236.3,523.0M233.9,528.8 L233.6,533.5M229.3,529.2 L233.9,528.8M236.3,523.0 L243.3,526.4M236.3,523.0 L233.9,528.8M243.4,491.4 L260.7,500.2M307.0,324.2 L311.9,328.9M307.0,324.2 L301.3,318.3M301.3,318.3 L299.0,315.7M301.3,318.3 L307.0,324.2M273.2,285.7 L269.3,280.9M273.2,285.7 L276.3,289.6M269.3,280.9 L273.2,285.7M-158.6,371.9 L-157.4,364.4 L-151.7,362.6M-143.0,367.4 L-147.1,363.2M-166.0,359.8 L-168.3,354.5 L-168.3,346.6 L-164.7,343.2M134.9,347.2 L139.0,343.3M134.9,347.2 L138.9,351.9M134.9,347.2 L133.8,349.1 L138.1,352.6M139.0,343.3 L141.6,341.0M139.0,343.3 L134.9,347.2M139.0,343.3 L136.4,340.5M139.0,343.3 L144.9,348.3M138.9,351.9 L134.9,347.2M138.9,351.9 L143.0,354.3M138.1,352.6 L133.8,349.1 L134.9,347.2M136.4,340.5 L139.0,343.3M144.9,348.3 L139.0,343.3M-44.0,311.9 L-19.7,305.8M-19.7,305.8 L-44.0,311.9M-19.7,305.8 L-24.6,300.1 L-28.2,299.2M-19.7,305.8 L-13.9,310.0M-119.0,304.7 L-118.5,300.5 L-125.4,299.2M-13.9,310.0 L-4.7,312.7M-13.9,310.0 L-19.7,305.8M-127.0,306.7 L-125.4,299.2M309.3,67.2 L305.8,63.4M309.3,67.2 L318.9,77.3M253.9,55.0 L250.3,51.2M158.5,-69.3 L170.8,-75.7 L172.2,-72.0M-6.6,609.5 L-8.0,612.6M263.6,10.4 L261.0,14.2M264.3,9.5 L267.9,4.7M267.9,4.7 L264.3,9.5M267.9,4.7 L272.2,1.9M-149.5,312.1 L-144.5,313.1M389.5,432.6 L393.6,438.8M502.9,354.5 L505.5,353.4M488.7,647.
381380 L485.6,648.6M488.7,647.0 L490.8,645.9M488.2,641.7 L490.8,645.9M126.0,302.8 L124.2,300.0M124.2,300.0 L126.0,302.8M127.5,297.9 L129.4,300.6M129.4,300.6 L127.5,297.9M129.6,301.1 L129.4,303.7M129.4,303.7 L129.6,301.1M129.4,304.0 L131.9,304.7M131.9,304.7 L134.5,305.4M131.9,304.7 L129.4,304.0M130.8,295.6 L132.8,298.4M132.8,298.4 L130.8,295.6M133.3,299.1 L135.3,301.8M134.5,305.4 L131.9,304.7M134.5,305.4 L136.3,305.5 L137.2,302.2M134.6,305.1 L135.3,301.8M137.2,302.2 L136.3,305.5 L134.5,305.4M676.8,582.0 L677.0,578.9M666.2,585.2 L666.9,588.2M666.9,588.2 L666.2,585.2M674.1,588.0 L672.0,590.1M672.0,590.1 L674.1,588.0M666.3,595.4 L664.6,597.3M665.4,548.3 L663.9,550.2M663.9,550.2 L665.4,548.3M650.8,573.0 L649.4,575.4M649.4,575.4 L650.8,573.0M649.2,576.1 L649.2,578.8M649.2,578.8 L649.2,576.1M646.1,585.7 L648.8,586.5M35.2,403.4 L38.1,404.0M28.2,384.6 L23.7,383.4 L18.4,385.6M-11.9,344.3 L-9.2,346.8M-11.3,343.6 L-8.5,346.0M-12.6,343.8 L-14.5,342.3M-11.9,343.2 L-14.5,342.3M-10.8,343.2 L-5.6,337.5M-5.6,337.5 L-1.3,332.6M-5.6,337.5 L-10.8,343.2M-49.6,698.0 L-61.4,696.3M-49.6,698.0 L-39.7,699.8M533.8,203.7 L538.5,198.9 L544.5,200.4M544.5,200.4 L549.9,195.0 L555.0,193.6M544.5,200.4 L538.5,198.9 L533.8,203.7M555.0,193.6 L559.3,192.7M555.0,193.6 L549.9,195.0 L544.5,200.4M131.3,187.1 L136.6,189.6M136.6,189.6 L131.3,187.1M189.8,206.1 L192.3,206.5M-204.6,132.7 L-206.9,133.7M-173.2,141.0 L-177.0,148.9M-173.2,141.0 L-165.8,133.1M-137.4,137.1 L-136.2,139.9M-136.2,139.9 L-130.3,148.4M-136.2,139.9 L-137.4,137.1M-48.9,-68.7 L-51.3,-69.3M-51.3,-69.3 L-48.9,-68.7M-51.3,-69.3 L-52.0,-62.6M-51.3,-69.3 L-53.8,-70.5 L-53.1,-73.5M-52.0,-62.6 L-51.3,-69.3M433.8,200.9 L438.5,202.2 L449.0,200.7 L450.9,199.2M429.0,196.9 L432.7,200.0M432.7,200.0 L429.0,196.9M0.2,598.5 L-4.8,604.9M44.5,540.0 L42.7,542.5M547.1,586.5 L544.2,583.6M265.9,212.7 L263.6,211.0M267.0,213.4 L269.6,214.4M263.6,211.0 L265.9,212.7M-103.3,159.6 L-111.1,161.9M70.5,191.0 L62.9,190.1M81.9,192.1 L78.6,192.0M78.6,192.0 L73.0,191.6M78.6,192.0 L81.9,192.1M78.6,192.0 L84.2,190.9M73.0,191.6 L78.6,192.0M84.2,190.9 L78.6,192.0M68.0,519.5 L66.2,522.6M358.1,473.8 L360.2,488.3 L360.3,500.8M358.1,473.8 L358.9,469.9M355.7,472.9 L353.4,474.0M698.2,579.4 L701.5,580.6 L705.5,579.6M50.8,622.5 L51.9,626.6M50.8,622.5 L49.3,615.9M46.0,609.1 L43.6,606.9M46.0,609.1 L48.4,612.5M43.6,606.9 L46.0,609.1M43.6,606.9 L41.1,604.8M242.1,103.0 L254.8,100.7M242.1,103.0 L231.9,106.0M230.1,107.6 L221.2,110.2M231.0,107.9 L233.7,111.7M229.9,106.7 L220.8,109.3M233.6,110.7 L232.0,107.7M203.5,253.7 L204.9,251.8M203.5,253.7 L202.1,255.7M204.9,251.8 L208.1,247.5M204.9,251.8 L203.5,253.7M202.1,255.7 L203.5,253.7M619.7,409.8 L617.6,410.8M135.3,301.8 L134.6,305.1M135.3,301.8 L133.3,299.1M143.0,354.3 L138.9,351.9M317.6,243.1 L322.3,244.3M201.0,280.8 L198.5,278.8M201.0,280.8 L203.9,283.1M201.0,280.8 L204.1,276.6 L201.6,274.5M198.5,278.8 L196.0,276.8M198.5,278.8 L201.0,280.8M198.5,278.8 L201.6,274.5M203.9,283.1 L201.0,280.8M201.6,274.5 L198.5,278.8M201.6,274.5 L204.1,276.6 L201.0,280.8M201.6,274.5 L199.3,272.6M197.8,271.5 L195.0,275.2 L196.0,276.8M197.8,271.5 L193.2,267.9 L191.3,270.1M196.0,276.8 L198.5,278.8M196.0,276.8 L199.3,272.6M196.0,276.8 L195.0,275.2 L197.8,271.5M199.3,272.6 L196.0,276.8M199.3,272.6 L201.6,274.5M191.3,270.1 L189.8,272.1M191.3,270.1 L193.2,267.9 L197.8,271.5M-130.5,133.8 L-124.1,129.6M-130.5,133.8 L-137.8,135.8M-130.5,133.8 L-131.6,128.3M-111.3,129.2 L-112.8,127.9 L-118.3,127.3M-118.3,127.3 L-112.8,127.9 L-111.3,129.2M-118.3,127.3 L-122.2,128.4M-118.3,127.3 L-118.7,120.9 L-116.7,117.5M-122.2,128.4 L-118.3,127.3M-116.7,117.5 L-118.7,120.9 L-118.3,127.3M-116.7,117.5 L-116.2,116.2 L-115.0,116.5M-115.0,116.5 L-116.2,116.2 L-116.7,117.5M-124.1,129.6 L-130.5,133.8M-131.6,128.3 L-130.5,133.8M-131.6,128.3 L-132.2,127.1 L-131.0,126.9M29.8,-90.8 L22.7,-90.6M-102.3,638.4 L-100.5,636.2 L-97.6,625.3M-102.3,638.4 L-105.3,639.4M259.0,36.0 L263.6,43.5M259.0,36.0 L258.5,30.7 L263.7,18.6 L263.1,16.1 L261.0,14.2M263.6,43.5 L259.0,36.0M625.5,28.1 L626.1,15.0M606.6,11.2 L610.1,13.8 L626.1,15.0M287.3,524.8 L271.8,556.3 L272.6,563.2M67.6,254.9 L65.6,252.2M68.6,256.3 L73.8,264.6M73.8,264.6 L68.6,256.3M217.4,417.5 L214.3,426.3M291.2,516.8 L289.0,521.5M291.2,516.8 L295.9,506.8M289.0,521.5 L287.9,523.6M289.0,521.5 L291.2,516.8M295.9,506.8 L291.2,516.8M295.9,506.8 L299.4,499.5M-176.7,81.8 L-203.3,82.2M-176.7,81.8 L-171.9,82.7M480.3,325.5 L484.0,334.9M111.7,250.7 L109.4,252.5M506.5,508.2 L504.1,506.8M506.5,508.2 L508.7,509.4 L505.8,503.7M-83.7,597.0 L-79.7,599.6 L-73.9,600.6M287.9,523.6 L289.0,521.5M411.2,458.3 L406.6,458.6 L402.5,461.1M206.1,447.1 L194.6,469.9 L197.3,475.9 L201.4,480.6 L210.6,483.9M210.6,483.9 L201.4,480.6 L197.3,475.9 L194.6,469.9 L206.1,447.1M356.0,606.4 L354.8,599.7M356.0,606.4 L357.0,611.4M-130.3,148.4 L-127.5,151.8M-130.3,148.4 L-136.2,139.9M216.1,210.9 L217.0,208.3M217.0,208.3 L216.1,210.9M218.5,204.9 L220.0,201.7M97.8,262.8 L95.7,264.3M99.4,261.5 L101.8,259.5M95.7,264.3 L93.5,265.7M95.7,264.3 L97.8,262.8M223.3,214.0 L220.7,215.5M248.4,220.5 L249.8,218.6M249.8,218.6 L248.4,220.5M258.6,227.4 L256.4,226.4M256.4,226.4 L258.6,227.4M395.8,468.3 L392.1,472.3M397.4,466.6 L401.0,462.7M392.1,472.3 L395.8,468.3M41.6,307.4 L32.7,299.4 L31.3,296.1M297.5,275.6 L294.4,274.4M269.6,214.4 L273.2,214.4M269.6,214.4 L267.0,213.4M306.9,278.9 L303.2,277.6M306.9,278.9 L309.8,279.9M307.8,376.7 L312.8,371.1M589.5,-21.3 L592.2,-17.5M589.5,-21.3 L585.4,-25.4M589.5,-21.3 L585.0,-24.1M208.1,247.5 
38138L211.7,242.6M208.1,247.5 L204.9,251.8M211.7,242.6 L208.1,247.5M483.4,603.4 L485.4,610.1M483.4,603.4 L482.6,599.8M354.8,599.7 L356.0,606.4M354.8,599.7 L354.3,597.3M611.4,576.8 L615.6,578.3M611.4,576.8 L607.6,575.5M-174.5,187.1 L-197.8,187.8M-174.5,187.1 L-162.6,186.0M702.8,17.9 L705.4,17.7M702.8,17.9 L691.8,18.7M705.4,17.7 L702.8,17.9M659.8,-69.2 L657.9,-64.4M659.8,-69.2 L664.8,-76.4M47.0,282.5 L41.1,287.1M147.4,-28.5 L151.2,-32.3M147.4,-28.5 L142.1,-22.8M-5.5,-54.2 L-1.0,-45.5M-200.2,-104.1 L-197.8,-99.9M-200.2,-104.1 L-201.6,-106.7M735.0,25.5 L735.6,21.7 L732.2,18.6M305.8,63.4 L309.3,67.2M305.8,63.4 L302.3,59.9M302.3,59.9 L305.8,63.4M302.3,59.9 L295.9,53.2M-108.3,296.0 L-97.1,308.2M-109.2,295.2 L-116.2,290.2M159.0,233.4 L162.6,235.2M70.1,278.5 L75.2,277.2M19.4,296.0 L11.1,298.1 L5.5,296.8M19.4,296.0 L23.7,300.1M21.2,283.5 L24.3,287.2M117.0,419.5 L108.5,428.2M117.0,419.5 L123.3,412.8 L128.4,405.1M181.4,359.8 L183.6,358.7M-216.7,707.3 L-214.5,712.9M-216.7,707.3 L-219.4,701.7M249.6,455.3 L252.8,461.3 L271.4,469.6 L273.7,469.0 L275.6,465.2M656.0,-60.8 L647.0,-47.0 L646.2,-41.7M656.0,-60.8 L657.9,-64.4M657.9,-64.4 L659.8,-69.2M657.9,-64.4 L656.0,-60.8M664.1,122.6 L670.0,126.6M662.4,102.9 L666.6,103.3M662.4,102.9 L643.9,102.6M662.5,121.5 L660.1,119.8M10.5,516.2 L11.5,520.4 L16.8,523.3 L17.1,526.3 L21.9,529.1M21.9,529.1 L41.8,540.6M21.9,529.1 L17.1,526.3 L16.8,523.3 L11.5,520.4 L10.5,516.2M-132.5,686.3 L-132.2,681.2 L-133.9,676.5M-132.5,686.3 L-136.9,691.1M-44.4,-74.2 L-38.4,-74.6M352.7,585.5 L353.2,588.3M352.3,583.3 L351.7,579.7M547.4,323.9 L548.9,327.3M547.4,323.9 L545.7,320.1M-171.9,82.7 L-176.7,81.8M-171.9,82.7 L-163.0,87.5M344.6,62.2 L346.2,59.9M344.6,62.2 L342.2,66.8M230.6,251.9 L231.4,249.1M-149.2,76.9 L-143.3,78.8M-149.2,76.9 L-160.6,72.3M-160.6,72.3 L-149.2,76.9M390.7,473.7 L386.8,477.7M401.0,462.7 L402.5,461.1M401.0,462.7 L397.4,466.6M402.5,461.1 L401.0,462.7M402.5,461.1 L406.6,458.6 L411.2,458.3M51.5,678.3 L55.3,676.2M55.3,676.2 L61.5,672.6M55.3,676.2 L51.5,678.3M-41.9,363.6 L-44.6,362.0M-41.9,363.6 L-38.7,365.4M-38.7,365.4 L-41.9,363.6M-38.7,365.4 L-30.6,369.9M-58.4,384.7 L-55.5,383.7 L-51.8,379.8 L-50.8,376.8 L-52.1,369.4 L-50.8,366.7M689.7,-92.6 L687.9,-90.7M541.2,365.5 L539.4,363.0M506.3,541.7 L501.5,538.7M501.5,538.7 L506.3,541.7M501.6,496.2 L502.9,498.9M501.6,496.2 L499.9,493.0M499.9,493.0 L501.6,496.2M499.9,493.0 L495.8,485.0M485.6,438.4 L494.3,440.7M485.6,438.4 L481.4,437.3 L480.3,426.8 L481.8,425.9 L489.2,428.0M489.2,428.0 L481.8,425.9 L480.3,426.8 L481.4,437.3 L485.6,438.4M489.2,428.0 L497.0,430.1M25.4,-19.8 L27.3,-18.3M25.4,-19.8 L18.7,-25.5M355.1,155.1 L353.5,158.1M400.3,80.1 L402.1,82.1M402.1,82.1 L400.3,80.1M452.8,385.9 L449.0,385.8M452.8,385.9 L459.0,386.9M302.4,259.9 L304.6,260.7M301.9,259.7 L294.1,256.8M294.4,274.4 L291.8,273.4M294.4,274.4 L297.5,275.6M285.6,279.5 L285.4,276.2M285.8,280.9 L286.1,283.9M286.1,283.9 L285.8,280.9M268.5,279.9 L266.5,277.5M312.2,280.8 L309.8,279.9M309.8,279.9 L306.9,278.9M309.8,279.9 L312.2,280.8M312.9,290.8 L313.4,288.6 L317.0,285.6M317.0,285.6 L313.4,288.6 L312.9,290.8M313.4,292.0 L317.5,293.0M142.9,222.3 L139.4,219.3M142.9,222.3 L148.1,226.9M139.4,219.3 L142.9,222.3M153.2,223.5 L150.0,226.9M-101.1,232.7 L-104.8,233.7M-118.6,221.3 L-115.0,221.0M-121.3,217.2 L-121.9,213.9M266.2,241.2 L262.9,247.3 L260.2,246.4 L262.7,240.3 L266.2,241.2M266.2,241.2 L262.7,240.3 L260.2,246.4 L262.9,247.3 L266.2,241.2M266.8,240.2 L270.3,234.2M302.5,241.3 L305.5,241.5M298.2,249.1 L306.6,251.5M291.4,239.7 L295.9,240.4M291.4,239.7 L287.7,239.1M199.1,259.7 L197.1,262.4M199.1,259.7 L200.8,257.4M92.7,189.8 L97.9,188.8M109.7,186.5 L112.5,185.9M107.3,105.1 L109.1,107.7M109.1,107.7 L107.3,105.1M109.1,107.7 L112.0,111.4 L106.2,115.8M658.3,118.6 L654.2,115.8M74.0,265.4 L75.3,269.8M75.3,269.8 L74.0,265.4M436.3,441.1 L441.9,449.4M436.3,441.1 L442.6,436.4M-233.2,623.2 L-229.1,628.0M339.5,-7.0 L342.1,-8.1M339.5,-7.0 L340.7,-10.0 L342.1,-8.1M339.5,-7.0 L333.4,-0.9 L328.2,1.3 L305.2,3.4 L295.2,2.2 L289.6,4.3M342.1,-8.1 L340.7,-10.0 L339.5,-7.0M342.1,-8.1 L339.5,-7.0M21.7,338.0 L18.3,336.7 L13.6,331.6 L11.7,325.8 L8.0,322.1M22.5,338.0 L25.9,336.9M234.7,268.5 L238.6,272.8M391.1,332.0 L393.5,334.1M391.1,332.0 L384.1,325.8M45.1,539.1 L48.5,534.5M209.2,112.5 L212.9,111.4M208.3,112.8 L201.5,115.3M212.9,111.4 L209.2,112.5M212.9,111.4 L218.8,109.7M217.4,103.7 L213.6,94.3M217.4,103.7 L219.7,109.0M357.9,372.5 L351.9,365.7M358.8,373.4 L360.6,375.7M-5.5,-54.7 L-9.4,-63.3M565.2,-47.8 L567.8,-50.8M565.2,-47.8 L562.8,-44.7M368.7,265.3 L365.6,264.3M365.6,264.3 L368.7,265.3M-214.5,712.9 L-216.7,707.3M-214.5,712.9 L-212.7,717.5M-212.7,717.5 L-214.5,712.9M225.4,224.2 L223.8,226.4M220.7,215.5 L223.3,214.0M223.8,226.4 L225.4,224.2M303.9,319.2 L306.1,321.6M-81.6,693.4 L-86.3,692.7M-86.3,692.7 L-81.6,693.4M583.2,-69.8 L574.8,-59.1M574.8,-59.1 L572.5,-56.4M574.8,-59.1 L583.2,-69.8M113.6,141.8 L117.5,140.6M526.6,275.9 L524.5,278.4M526.6,275.9 L530.3,278.2M56.7,240.1 L65.6,252.2M56.7,240.1 L52.9,234.9M28.1,593.5 L26.1,591.8M28.1,593.5 L34.1,598.7M26.1,591.8 L28.1,593.5M26.1,591.8 L23.5,589.5M23.5,589.5 L26.1,591.8M17.9,584.6 L16.1,583.1M10.3,588.2 L13.0,585.0M13.0,585.0 L10.3,588.2M13.0,585.0 L14.6,583.1M8.9,589.9 L6.6,592.8M131.6,237.1 L128.0,239.1M128.0,239.1 L131.6,237.1M202.1,205.6 L206.0,207.2M238.7,110.0 L237.1,107.1M237.1,107.1 L238.7,110.0M200.8,257.4 L199.1,259.7M101.8,259.5 L99.4,261.5M375.7,397.5 L377.2,400.3M375.7,397.5 L374.2,394.6M374.2,394.6 L375.7,397.5M68.9,166.7 L72.2,166.4M188.0,199.6 L184.9,198.0 L184.1,199.6 L182.6,199.3M182.6,199.3 L184.1,199.6 L184.9,198.0 L188.0,199.6M191.5,201.3 L194.1,202.7M217.8,234.4 L220.9,230.2M93.5,265.7 L95.7,264.3M261.3,234.0 L258.6,240.2M261.6,233.4 L263.0,230.4M258.6,240.2 L261.3,234.0M673.4,664.9 L671.7,668.5M673.4,664.9 L675.1,661.3M306.4,235.2 L306.7,231.3M-126.4,156.1 L-126.9,161.4M-126.4,156.1 L-127.1,152.5M-11.5,612.8 L-13.5,610.7M131.0,132.6 L129.7,130.1M372.2,391.2 L370.8,389.0M371.5,406.0 L369.0,401.2M371.5,406.0 L373.0,408.2M593.3,294.2 L591.8,292.1M593.7,294.8 L595.9,297.7M591.8,292.1 L593.3,294.2M112.5,185.9 L109.7,186.5M-228.4,677.9 L-228.9,674.5M-228.9,674.5 L-228.4,677.9M-228.9,674.5 L-227.1,654.2M87.1,385.8 L96.3,398.5 L106.2,395.7M106.2,395.7 L96.3,398.5 L87.1,385.8M106.2,395.7 L126.4,388.5M490.9,349.1 L488.5,350.2 L490.9,355.7 L498.8,352.5M462.1,-49.5 L459.6,-50.9 L460.6,-52.7 L469.8,-51.8 L476.6,-54.2 L480.8,-62.0M106.9,143.0 L101.1,143.7M101.1,143.7 L106.9,143.0M101.1,143.7 L96.9,144.1M442.6,436.4 L436.3,441.1M24.3,287.2 L21.2,283.5M24.3,287.2 L30.2,294.5M365.3,21.8 L365.9,18.8M664.8,-76.4 L659.8,-69.2M6.6,592.8 L8.9,589.9M4.3,595.6 L1.9,598.6M237.4,262.6 L234.0,262.8M237.4,262.6 L240.1,262.4M234.0,262.8 L223.6,263.5M234.0,262.8 L237.4,262.6M42.7,-98.5 L38.0,-97.1M618.4,528.8 L616.8,531.0 L614.0,531.0M53.7,722.9 L46.7,729.7M373.0,408.2 L371.5,406.0M374.4,410.1 L376.6,413.0M372.8,13.0 L368.3,11.8M372.8,13.0 L371.9,20.3M-10.2,631.1 L-9.9,627.9M-10.2,631.1 L-10.4,633.7M-9.9,627.9 L-10.2,631.1M-9.9,627.9 L-9.5,623.5M-4.8,604.9 L-9.1,611.9M-4.8,604.9 L0.2,598.5M-127.5,151.8 L-130.3,148.4M191.6,119.4 L185.8,120.4M500.2,263.0 L502.7,260.2M485.8,253.9 L484.5,257.9M-9.5,623.5 L-9.9,627.9M251.6,229.8 L253.1,226.1M251.6,229.8 L249.9,235.0M424.3,129.1 L434.0,133.5M550.2,42.1 L548.1,41.1 L548.0,40.2 L549.9,40.2 L550.2,42.1M550.2,42.1 L549.9,40.2 L548.0,40.2 L548.1,41.1 L550.2,42.1M550.3,43.3 L550.7,47.1M550.7,47.1 L550.3,43.3M83.3,269.6 L86.3,268.4M83.3,269.6 L78.3,270.7M78.3,270.7 L83.3,269.6M521.9,363.1 L524.4,363.7M524.4,363.7 L529.7,365.2M524.4,363.7 L521.9,363.1M-228.0,681.3 L-228.0,688.5M76.6,270.3 L86.3,268.4M314.5,253.7 L318.0,254.7M470.9,248.8 L471.1,246.3M470.9,248.8 L470.8,254.1M470.8,254.1 L470.9,248.8M470.8,254.1 L470.7,255.6 L472.6,255.2 L472.4,254.1 L470.8,254.1M470.8,254.1 L472.4,254.1 L472.6,255.2 L470.7,255.6 L470.8,254.1M96.9,144.1 L101.1,143.7M701.4,219.9 L704.9,221.2M701.4,219.9 L697.6,218.5M704.9,221.2 L708.9,222.7M704.9,221.2 L701.4,219.9M-193.1,227.9 L-189.8,229.5 L-192.4,234.3M37.9,675.3 L41.9,682.7M37.9,675.3 L34.2,668.7M-9.3,621.8 L-9.1,619.4M480.5,668.2 L475.4,668.1M412.7,286.8 L409.8,283.0M412.7,286.8 L414.3,288.8M533.6,324.6 L530.6,326.6M140.2,430.7 L144.5,430.5 L142.1,433.4 L140.2,430.7M140.2,430.7 L142.1,433.4 L144.5,430.5 L140.2,430.7M140.2,430.7 L137.7,431.6M318.0,254.7 L314.5,253.7M373.4,272.3 L371.8,278.5M6.8,-71.6 L9.5,-68.8 L9.4,-65.8 L7.7,-64.4M7.7,-64.4 L9.4,-65.8 L9.5,-68.8 L6.8,-71.6M374.0,270.7 L374.9,267.8M586.5,24.4 L578.6,18.4M301.9,317.1 L299.9,314.9M-177.0,148.9 L-173.2,141.0M590.6,290.4 L592.9,288.2 L591.5,286.0 L588.9,288.4 L590.6,290.4M590.6,290.4 L588.9,288.4 L591.5,286.0 L592.9,288.2 L590.6,290.4M-217.1,294.0 L-214.8,294.5M-217.1,294.0 L-218.9,292.6 L-219.2,290.7 L-217.5,289.4M-203.0,-109.4 L-201.6,-106.7M-201.6,-106.7 L-200.2,-104.1M-201.6,-106.7 L-203.0,-109.4M407.8,451.5 L404.9,449.3M579.2,324.8 L576.7,321.5M-127.1,152.5 L-126.4,156.1M703.8,162.1 L697.2,156.5M552.8,261.5 L549.5,258.7M552.8,261.5 L555.9,264.2M549.5,258.7 L552.8,261.5M146.0,193.4 L148.9,194.7 L147.0,192.3M705.4,200.4 L702.6,197.9M705.4,200.4 L711.9,206.6M702.6,197.9 L705.4,200.4M660.1,119.8 L662.5,121.5M585.4,-25.4 L582.7,-26.6M585.4,-25.4 L589.5,-21.3M675.1,661.3 L673.4,664.9M95.5,144.3 L92.0,144.8M92.0,144.8 L95.5,144.3M331.5,501.4 L330.6,506.4M331.5,501.4 L332.4,496.6M330.6,506.4 L331.5,501.4M330.6,506.4 L329.6,509.8M440.8,686.4 L441.4,688.9 L443.2,690.3M443.2,690.3 L441.4,688.9 L440.8,686.4M657.9,42.2 L659.7,42.5 L663.2,39.5M359.7,93.5 L357.1,90.6M585.5,303.0 L587.1,305.1M457.7,377.8 L449.3,375.7M413.5,277.7 L413.5,280.5M413.5,277.7 L413.5,273.7M151.2,-32.3 L154.0,-34.7M151.2,-32.3 L147.4,-28.5M201.5,115.3 L208.3,112.8M210.6,113.1 L219.0,110.9M314.4,278.9 L315.4,275.9M572.5,-56.4 L574.8,-59.1M572.5,-56.4 L567.8,-50.8M567.8,-50.8 L572.5,-56.4M567.8,-50.8 L565.2,-47.8M573.8,34.6 L578.4,42.0M350.3,257.6 L347.6,256.3M490.3,266.9 L487.9,270.5M457.8,496.4 L456.0,498.7M457.8,496.4 L459.6,494.0M456.0,498.7 L457.8,496.4M456.0,498.7 L458.1,500.4M32.7,618.2 L29.1,615.3M419.0,247.8 L425.1,248.7M562.0,328.0 L567.0,324.3M410.1,242.0 L411.6,243.1 L415.3,242.9M433.3,281.7 L432.0,275.6M432.0,275.6 L433.3,281.7M487.9,270.5 L486.1,273.7M487.9,270.5 L490.3,266.9M486.1,273.7 L484.8,276.1M486.1,273.7 L487.9,270.5M491.4,274.0 L489.0,278.3M544.2,583.6 L547.1,586.5M543.2,582.4 L541.9,579.7M549.3,588.5 L553.6,592.4M558.7,594.2 L560.7,592.2M564.1,588.3 L562.4,590.2M505.5,353.4 L502.9,354.5M716.7,170.9 L723.9,176.5M716.7,170.9 L700.8,157.0 L699.7,154.7 L702.4,149.0 L705.4,145.9M426.5,231.8 L421.7,230.6M421.7,230.6 L426.5,231.8M419.6,230.2 L416.8,229.5M428.6,239.7 L415.7,237.
381381M428.6,239.7 L432.7,240.5M442.1,366.1 L440.5,363.9M442.1,366.1 L444.6,370.3M416.7,425.4 L419.1,427.1M393.6,438.8 L389.5,432.6M394.6,431.2 L396.1,430.3 L396.9,431.8 L395.7,432.5 L394.6,431.2M394.6,431.2 L395.7,432.5 L396.9,431.8 L396.1,430.3 L394.6,431.2M394.6,431.2 L393.2,429.0M18.7,608.2 L20.6,606.1M21.2,610.1 L22.9,608.0M25.9,628.6 L27.7,630.1 L35.3,620.4M35.3,620.4 L27.7,630.1 L25.9,628.6M8.5,643.9 L3.8,651.3M-131.0,126.9 L-132.2,127.1 L-131.6,128.3M599.3,614.8 L601.8,614.4M572.7,602.0 L569.9,602.1M601.8,614.4 L604.3,613.8M601.8,614.4 L599.3,614.8M464.1,717.0 L482.2,709.3M466.3,509.1 L458.1,500.4M466.3,509.1 L469.4,511.3M458.1,500.4 L456.0,498.7M458.1,500.4 L466.3,509.1M469.4,511.3 L466.3,509.1M469.4,511.3 L472.9,512.5M469.4,511.3 L466.1,524.9 L469.8,527.1 L472.8,525.3 L476.7,514.7 L476.0,512.1M476.0,512.1 L472.9,512.5M476.0,512.1 L477.8,507.7M476.0,512.1 L476.7,514.7 L472.8,525.3 L469.8,527.1 L466.1,524.9 L469.4,511.3M472.9,512.5 L469.4,511.3M472.9,512.5 L476.0,512.1M472.9,512.5 L474.9,506.9 L477.8,507.7M175.1,228.6 L178.7,230.4M175.1,228.6 L170.6,226.3M458.8,638.6 L456.0,639.0M460.7,642.0 L462.4,640.2M458.3,644.4 L456.6,648.1M456.7,626.8 L456.9,629.2M475.4,668.1 L471.7,668.0M475.4,668.1 L480.5,668.2M464.7,618.6 L462.4,617.4M462.4,617.4 L464.7,618.6M456.0,639.0 L458.8,638.6M455.6,652.2 L455.2,654.6M474.2,643.2 L476.1,644.6M476.1,644.6 L474.2,643.2M474.7,650.0 L471.6,649.6M471.6,649.6 L474.7,650.0M455.2,654.6 L455.6,652.2M497.1,664.5 L494.2,666.0M485.0,637.8 L487.1,639.9M487.1,639.9 L485.0,637.8M485.6,648.6 L488.7,647.0M453.0,670.4 L452.8,674.0M452.8,674.0 L453.0,670.4M452.8,674.0 L459.0,686.2M65.6,252.2 L67.6,254.9M65.6,252.2 L56.7,240.1M501.0,538.6 L498.0,538.0M498.0,538.0 L501.0,538.6M223.6,263.5 L234.0,262.8M295.6,218.3 L297.2,224.2M295.2,218.0 L291.1,214.9M606.0,601.1 L605.0,603.4M605.0,603.4 L606.0,601.1M541.9,579.7 L543.2,582.4M541.9,579.7 L540.8,577.2M289.2,208.3 L287.1,210.2 L287.5,212.1M-214.8,294.5 L-217.1,294.0M-214.8,294.5 L-211.6,294.2M-211.6,294.2 L-209.1,293.8M-211.6,294.2 L-214.8,294.5M478.4,683.1 L488.8,684.1M495.9,695.6 L498.4,694.9M498.4,694.9 L495.9,695.6M503.7,693.0 L506.4,691.6M506.4,691.6 L508.6,690.4M506.4,691.6 L503.7,693.0M508.6,690.4 L506.4,691.6M456.8,722.0 L453.5,724.2M451.4,722.0 L451.8,716.2M451.8,716.2 L451.4,713.8M451.8,716.2 L451.4,722.0M450.6,709.2 L450.1,705.9 L448.2,705.1M448.2,705.1 L450.1,705.9 L450.6,709.2M446.9,665.4 L443.9,664.8M446.9,665.4 L449.4,665.8M443.9,664.8 L440.4,664.3M443.9,664.8 L446.9,665.4M490.8,220.7 L493.0,222.7M490.8,220.7 L488.2,219.3 L488.7,222.2M488.7,222.2 L490.0,224.7M488.7,222.2 L488.2,219.3 L490.8,220.7M489.6,390.8 L490.9,386.4M489.6,390.8 L488.2,395.9M490.9,386.4 L489.6,390.8M498.8,352.5 L490.9,355.7 L488.5,350.2 L490.9,349.1M498.8,352.5 L498.0,350.1M509.8,351.5 L514.0,349.8M502.7,390.1 L509.7,391.9M464.4,486.8 L466.7,488.2 L465.4,490.4M465.4,490.4 L466.7,488.2 L464.4,486.8M480.9,606.5 L479.2,609.0M479.2,609.0 L480.9,606.5M497.9,549.4 L495.5,549.2M168.3,203.6 L165.5,202.5M85.2,94.3 L82.2,95.7M104.0,257.9 L108.5,254.6M108.5,254.6 L112.2,251.5M108.5,254.6 L104.0,257.9M157.7,75.7 L160.0,76.7 L162.5,80.7 L161.2,84.0 L158.5,86.5 L158.0,90.7 L160.7,101.1M185.3,234.0 L182.3,232.4M185.3,234.0 L189.0,235.8M184.5,235.0 L188.3,237.0M184.5,235.0 L181.7,233.6M258.3,240.7 L256.6,244.9M287.5,212.1 L291.1,214.9M287.5,212.1 L287.1,210.2 L289.2,208.3M291.1,214.9 L295.2,218.0M291.1,214.9 L287.5,212.1M446.5,243.7 L444.6,241.4M481.5,246.8 L487.0,247.4M-173.1,210.6 L-173.1,206.3M509.7,391.9 L502.7,390.1M553.5,351.1 L548.3,344.0M560.8,345.6 L556.2,339.1"/><path class="sh sh-before" data-ly="before" d="M30.8,190.6 L31.6,188.0 L30.1,185.7 L31.6,181.1 L32.6,180.3 L56.6,187.4 L57.5,186.7 L58.1,180.6 L59.8,180.3 L61.7,182.0 L62.9,180.6 L64.9,179.9 L65.0,176.4 L66.9,174.6 L66.1,171.6 L64.1,169.8 L66.3,167.0 L65.5,165.1 L64.9,159.6 L65.6,157.8 L65.1,154.5 L66.4,151.9 L65.6,144.3 L64.1,140.9 L59.1,139.7 L58.9,142.0 L61.0,147.3 L59.7,149.9 L56.9,150.0 L56.3,148.4 L57.6,146.5 L55.5,140.1 L56.4,136.9 L57.9,136.3 L61.4,136.7 L66.3,138.6 L67.8,141.0 L68.9,147.0 L69.6,147.6 L71.9,146.5 L73.9,147.2 L81.1,144.4 L83.0,144.9 L88.1,144.4 L94.0,142.6 L93.9,139.7 L91.7,139.4 L90.8,138.5 L89.9,131.8 L91.7,130.5 L92.1,128.8 L93.5,127.8 L94.5,125.7 L93.2,123.6 L93.5,
38138122.2 L99.0,121.0 L102.0,118.6 L100.2,116.3 L95.4,118.2 L91.9,116.9 L92.5,114.8 L95.1,115.1 L98.2,113.6 L96.7,110.3 L90.3,111.2 L86.4,109.5 L86.3,108.1 L87.3,107.2 L90.7,108.0 L94.1,107.4 L94.6,106.6 L88.9,95.0 L85.8,94.1 L86.3,92.1 L89.0,90.8 L90.4,91.2 L96.9,103.6 L103.3,99.8 L102.6,95.8 L103.7,94.9 L105.2,95.5 L107.6,100.2 L107.8,102.4 L110.1,103.1 L111.6,105.4 L111.3,108.0 L113.8,111.4 L115.9,111.4 L116.8,112.3 L116.6,113.7 L112.6,116.8 L112.5,117.7 L116.9,124.6 L120.3,123.6 L122.9,125.9 L122.6,128.8 L121.8,130.0 L119.8,131.2 L117.9,130.8 L115.1,131.7 L119.4,136.7 L125.0,134.3 L125.1,127.6 L127.1,125.3 L129.4,124.6 L131.2,126.9 L134.6,126.0 L133.8,124.1 L134.2,122.4 L133.0,120.5 L130.4,110.7 L131.1,107.3 L136.3,105.4 L135.2,99.6 L136.3,97.9 L140.2,96.7 L141.5,97.2 L141.7,101.9 L145.4,102.2 L146.5,103.1 L150.9,119.2 L151.8,119.5 L155.4,118.2 L146.9,85.2 L148.1,83.5 L154.5,81.6 L155.8,82.6 L155.6,84.0 L150.7,85.9 L150.4,87.1 L151.3,87.7 L156.8,86.7 L160.9,81.2 L159.2,78.1 L156.4,76.5 L156.8,74.5 L158.1,74.2 L161.0,75.5 L164.0,80.4 L163.6,83.0 L160.0,87.0 L159.6,90.2 L161.9,98.7 L167.4,97.2 L166.8,91.5 L170.8,88.8 L168.8,87.1 L168.6,85.7 L173.0,83.8 L174.1,84.6 L174.6,86.7 L176.9,86.7 L178.4,88.6 L181.4,89.3 L183.3,90.6 L184.1,93.2 L186.6,95.9 L187.0,98.7 L190.0,102.0 L192.3,103.0 L193.0,102.1 L191.1,95.6 L193.9,90.2 L195.2,90.1 L200.7,92.9 L202.7,90.7 L204.2,90.2 L206.1,90.8 L208.1,93.2 L210.1,92.9 L210.6,92.1 L206.2,81.3 L201.0,77.1 L197.4,76.3 L195.8,73.1 L192.9,74.0 L191.6,73.4 L191.4,71.8 L193.3,70.0 L191.6,67.6 L191.8,66.0 L193.5,65.5 L196.2,67.2 L199.7,73.7 L202.7,74.5 L205.3,76.7 L207.6,71.1 L211.4,65.5 L215.7,60.6 L217.8,60.8 L218.0,62.6 L211.1,71.5 L213.9,74.0 L214.0,75.7 L212.6,76.5 L209.8,75.3 L208.9,77.1 L208.9,79.6 L213.3,90.4 L214.5,91.4 L220.8,88.7 L222.6,86.9 L222.4,86.0 L218.6,82.7 L219.0,80.7 L220.7,80.5 L225.1,83.9 L227.9,79.6 L227.9,76.5 L224.5,69.5 L223.6,64.7 L224.9,60.2 L226.4,59.2 L227.9,60.5 L226.8,64.7 L227.4,68.3 L228.5,70.0 L233.7,68.0 L235.3,66.4 L237.2,67.5 L235.9,70.3 L230.3,73.2 L231.2,78.4 L236.8,79.3 L241.5,77.7 L242.6,78.4 L242.9,79.5 L242.1,80.6 L237.4,82.3 L230.5,81.8 L222.8,91.2 L215.8,94.2 L215.6,95.1 L218.4,101.3 L223.2,100.3 L226.9,101.2 L230.8,104.2 L255.6,98.0 L257.1,96.6 L262.2,95.5 L262.6,94.0 L260.1,88.5 L261.4,86.9 L262.9,87.5 L266.2,94.3 L267.1,94.7 L268.6,94.0 L269.3,92.4 L269.6,83.9 L273.7,82.5 L276.2,83.9 L276.6,89.3 L278.1,94.8 L277.0,95.9 L275.1,95.6 L272.2,96.3 L269.8,98.1 L271.7,107.1 L271.4,108.3 L270.3,108.8 L269.1,108.3 L267.7,104.6 L265.4,105.1 L261.5,103.5 L260.6,104.7 L260.7,107.9 L259.3,108.9 L257.9,108.8 L255.7,105.7 L256.5,103.0 L255.8,102.2 L249.1,104.1 L248.7,105.0 L250.1,111.9 L249.7,114.7 L251.7,116.2 L251.9,117.6 L250.7,118.6 L248.0,118.1 L242.0,122.5 L241.8,123.4 L244.0,126.1 L247.3,127.9 L255.2,128.6 L255.9,128.1 L256.5,125.6 L262.1,122.3 L265.7,126.4 L268.7,126.4 L270.3,127.9 L278.0,128.5 L281.6,132.9 L284.2,138.4 L284.7,142.4 L283.8,145.9 L280.7,151.7 L278.6,160.4 L278.4,164.6 L281.4,170.9 L286.3,178.3 L291.2,203.0 L294.5,207.7 L298.7,211.8 L299.6,211.6 L300.0,209.6 L301.3,208.9 L302.5,209.4 L303.5,211.6 L309.7,211.5 L310.2,212.9 L309.3,214.7 L311.8,221.4 L312.8,221.0 L316.8,212.1 L318.0,211.5 L319.2,212.1 L319.5,213.6 L314.5,224.4 L317.1,226.4 L316.2,229.3 L316.7,230.1 L318.4,229.8 L324.4,216.2 L322.3,214.1 L322.6,212.3 L325.8,212.3 L327.8,209.6 L329.6,210.8 L321.7,229.7 L322.1,230.6 L324.4,231.2 L333.0,211.4 L334.5,210.9 L335.7,211.9 L333.5,218.6 L336.2,220.1 L341.6,207.4 L341.6,204.0 L348.1,201.8 L349.6,202.6 L349.7,204.8 L345.2,206.9 L342.4,215.7 L346.4,217.2 L346.9,219.3 L348.6,220.5 L348.5,222.5 L349.2,223.2 L353.1,223.2 L354.7,219.1 L357.2,217.9 L365.3,219.7 L366.7,222.0 L365.2,228.1 L365.6,229.7 L370.2,229.2 L373.0,217.6 L372.5,216.7 L370.1,216.1 L367.4,216.3 L366.8,215.0 L367.4,213.1 L368.6,212.6 L373.6,213.6 L374.9,209.8 L375.9,208.9 L379.2,208.8 L381.3,211.0 L383.7,209.4 L388.4,212.5 L388.1,215.7 L392.0,218.3 L393.8,216.9 L395.3,217.0 L398.1,219.2 L397.7,222.2 L402.4,225.4 L404.4,224.0 L405.8,224.2 L406.5,225.3 L406.0,227.9 L413.1,232.7 L414.1,232.2 L416.5,221.4 L417.8,220.5 L419.5,221.9 L418.5,228.2 L428.5,230.6 L429.7,233.8 L436.0,235.3 L437.5,232.9 L441.4,233.3 L442.8,230.5 L445.8,230.3 L447.2,232.2 L445.6,234.1 L445.0,238.5 L447.1,241.2 L449.1,239.7 L450.4,239.8 L451.9,242.4 L453.6,242.4 L455.8,239.6 L460.4,238.5 L463.4,236.7 L464.8,237.4 L465.0,240.2 L467.3,241.1 L468.3,243.9 L469.5,243.8 L470.2,241.6 L472.3,241.1 L473.4,239.5 L477.6,239.0 L47
381387.9,236.7 L469.5,230.0 L469.4,228.5 L470.8,227.7 L486.8,239.8 L487.7,239.9 L488.9,236.1 L484.4,227.0 L485.3,225.4 L487.6,226.0 L488.4,225.4 L486.4,220.8 L486.4,219.2 L487.5,217.9 L489.3,217.7 L493.8,220.6 L495.0,218.3 L495.3,215.2 L496.4,214.3 L497.7,214.6 L505.7,221.4 L507.4,221.8 L508.3,223.5 L511.4,225.8 L512.7,224.6 L512.8,222.9 L509.9,220.0 L509.6,218.7 L513.9,213.6 L515.6,213.7 L522.9,219.5 L529.3,212.8 L531.4,212.5 L533.6,210.0 L535.6,209.6 L539.4,212.4 L540.0,215.4 L543.5,213.8 L547.6,216.9 L549.9,216.9 L561.8,227.1 L563.1,226.6 L564.1,224.3 L566.9,224.3 L567.4,226.3 L561.3,233.5 L561.4,234.8 L565.3,238.2 L565.3,239.8 L563.9,240.5 L562.0,239.5 L560.3,240.0 L558.5,239.4 L557.5,241.9 L567.0,250.4 L567.3,252.1 L565.6,253.5 L563.1,252.6 L562.1,254.9 L561.0,255.5 L557.2,252.5 L554.6,255.5 L555.1,256.3 L556.9,256.6 L557.9,258.0 L559.7,258.0 L560.6,258.8 L560.7,260.1 L558.6,264.1 L563.9,269.0 L563.0,272.7 L564.8,275.1 L564.2,276.3 L560.2,279.2 L555.4,275.0 L554.5,275.0 L554.0,276.2 L555.4,277.0 L555.7,278.7 L552.8,280.8 L553.4,282.4 L555.6,282.3 L557.3,283.4 L558.5,286.2 L558.0,287.8 L556.0,289.2 L556.3,294.2 L555.4,296.7 L557.7,318.5 L558.9,322.6 L559.6,323.8 L562.8,325.5 L564.9,323.5 L561.8,319.0 L562.3,317.1 L564.1,317.1 L568.0,321.5 L572.0,318.4 L570.3,315.3 L570.8,313.7 L574.1,313.6 L575.9,315.6 L578.5,313.8 L578.8,311.4 L576.5,308.4 L576.5,307.0 L577.7,306.2 L580.0,306.3 L579.7,304.1 L580.5,300.4 L584.3,296.8 L584.9,295.2 L587.2,293.6 L588.4,293.4 L590.1,294.5 L593.9,292.8 L598.7,298.4 L603.8,294.8 L605.1,294.7 L606.0,295.7 L605.8,297.5 L606.9,300.0 L605.2,301.2 L602.8,299.5 L600.9,300.9 L602.6,304.4 L602.2,305.8 L600.4,306.1 L597.6,303.4 L591.6,308.3 L611.6,335.2 L611.7,336.5 L610.3,338.1 L610.9,340.2 L609.5,341.3 L607.1,340.2 L603.7,342.8 L601.1,341.9 L599.0,343.3 L595.3,340.4 L593.5,342.3 L591.4,342.6 L584.8,347.5 L579.2,352.0 L584.0,358.8 L583.3,360.9 L581.8,360.8 L579.5,358.7 L572.6,363.1 L568.8,359.6 L562.2,364.0 L558.7,361.4 L547.5,369.6 L547.8,370.8 L552.3,372.6 L555.8,371.4 L561.6,373.9 L564.4,376.8 L567.1,377.0 L568.1,379.7 L569.2,379.4 L570.5,376.5 L573.4,373.7 L573.4,371.7 L574.4,370.7 L576.0,371.1 L578.5,374.6 L581.8,375.7 L581.9,377.9 L578.2,378.2 L576.6,380.0 L577.2,382.9 L573.0,386.3 L574.2,390.5 L573.5,391.9 L571.4,391.6 L569.2,386.3 L560.6,383.6 L559.8,381.8 L560.2,379.1 L555.3,377.0 L553.9,379.2 L555.9,385.4 L559.0,386.2 L559.5,388.1 L558.3,388.9 L553.9,388.7 L551.3,390.0 L549.1,389.7 L547.3,386.5 L548.0,384.8 L551.3,382.6 L550.8,378.8 L551.5,375.9 L549.0,375.2 L547.4,379.7 L547.5,382.4 L546.5,383.2 L545.3,383.0 L544.3,379.5 L546.1,373.7 L543.5,371.5 L542.7,371.9 L542.3,373.8 L538.9,377.0 L536.7,385.1 L535.0,386.3 L534.6,387.6 L546.1,393.7 L546.7,394.7 L546.3,396.0 L544.6,396.3 L534.7,391.5 L531.6,391.6 L526.7,388.8 L525.7,389.0 L525.7,391.0 L542.6,399.6 L549.4,397.0 L552.7,397.7 L557.9,394.9 L561.6,393.9 L563.4,394.7 L562.8,396.7 L557.4,398.4 L554.0,401.0 L554.1,405.6 L551.9,407.8 L554.0,410.8 L555.0,414.4 L554.3,416.9 L551.9,419.1 L549.5,419.3 L542.1,415.0 L541.9,413.6 L544.2,410.1 L544.8,406.2 L543.2,404.5 L542.2,404.6 L541.2,406.4 L541.8,408.2 L541.3,409.4 L540.2,409.8 L538.4,409.2 L537.5,410.4 L538.7,412.6 L538.6,416.4 L555.4,425.8 L556.1,427.1 L555.2,428.5 L550.6,427.0 L550.3,429.8 L548.8,430.6 L543.0,427.6 L540.5,425.2 L540.6,421.1 L537.6,419.5 L535.2,420.2 L533.8,418.8 L535.0,416.5 L535.3,413.7 L526.8,411.2 L525.8,412.0 L527.0,413.7 L527.0,415.8 L532.1,417.6 L533.1,418.8 L532.2,420.0 L530.9,420.4 L524.9,418.7 L522.9,417.0 L521.1,418.3 L517.9,417.8 L517.0,419.9 L517.5,421.1 L525.2,425.1 L527.9,425.5 L531.3,424.3 L535.0,426.2 L536.8,433.3 L535.4,434.1 L533.3,433.2 L529.7,435.5 L529.2,436.6 L535.4,440.0 L539.0,443.2 L543.8,442.0 L549.5,442.0 L551.4,441.2 L552.7,441.9 L552.8,443.2 L550.8,445.0 L544.3,445.0 L535.6,448.5 L531.2,449.3 L510.6,443.7 L509.1,447.7 L512.5,449.2 L513.0,450.9 L511.7,451.9 L508.2,451.2 L507.2,453.5 L507.8,454.3 L512.7,455.5 L519.6,451.9 L521.5,452.8 L521.1,454.5 L515.9,457.8 L510.6,458.7 L509.1,462.2 L509.6,463.3 L512.1,463.0 L513.9,463.6 L515.8,465.8 L516.0,468.4 L514.5,473.3 L515.5,476.0 L516.6,476.0 L518.9,473.4 L520.7,472.8 L525.9,473.6 L530.8,478.3 L531.5,48
381380.0 L534.5,481.3 L536.7,480.5 L538.1,480.9 L539.4,483.0 L541.5,484.4 L542.3,484.0 L542.7,482.1 L543.8,481.6 L546.8,484.1 L548.6,484.7 L549.4,484.2 L549.7,480.9 L544.3,478.3 L544.3,476.8 L545.3,476.0 L550.7,477.9 L561.8,479.5 L562.9,480.9 L561.7,482.5 L553.2,481.6 L552.6,485.8 L562.2,488.4 L565.6,491.2 L569.8,492.0 L570.7,491.6 L574.3,484.6 L575.5,484.2 L576.6,484.9 L575.9,488.1 L568.7,501.8 L550.9,524.7 L546.7,531.2 L548.1,534.9 L547.4,537.6 L548.7,538.7 L553.8,534.5 L565.1,521.2 L574.4,528.6 L574.4,530.5 L572.6,531.0 L565.6,525.3 L562.6,528.6 L576.9,542.6 L576.5,543.8 L567.4,554.2 L565.1,555.2 L566.6,557.8 L569.4,558.6 L568.7,561.8 L566.8,562.6 L560.9,560.3 L559.6,558.3 L552.5,553.2 L551.4,555.0 L550.6,560.8 L549.4,563.7 L550.0,567.0 L548.9,567.9 L547.6,567.6 L545.3,564.0 L547.7,559.9 L548.4,554.1 L547.5,551.8 L549.7,549.9 L549.7,548.9 L548.6,547.4 L546.5,547.3 L543.3,544.5 L537.9,543.6 L533.8,539.5 L529.8,538.2 L529.0,537.0 L529.4,534.5 L527.3,532.1 L529.3,529.8 L530.0,526.7 L522.4,521.5 L519.7,525.0 L518.0,525.2 L517.1,523.8 L518.4,520.6 L516.4,519.1 L513.5,522.2 L509.2,520.5 L504.6,526.4 L501.8,527.0 L502.3,528.8 L508.2,533.6 L511.8,532.0 L514.2,533.4 L514.5,534.8 L513.6,535.9 L511.6,535.8 L510.0,537.8 L508.9,538.1 L503.2,533.0 L502.0,533.2 L501.7,535.2 L507.4,540.7 L507.7,542.2 L505.9,543.2 L501.5,540.3 L498.0,539.7 L497.2,545.7 L497.9,546.3 L500.6,546.1 L502.1,548.1 L505.9,548.5 L506.7,550.3 L505.4,551.4 L499.8,551.4 L498.9,552.5 L498.7,555.5 L497.7,557.0 L498.3,560.1 L495.7,563.0 L494.0,563.0 L493.0,559.6 L495.5,520.8 L494.3,521.0 L492.2,525.0 L489.5,525.2 L488.9,527.1 L487.2,542.4 L489.3,552.2 L489.1,554.0 L487.0,554.9 L484.8,553.7 L483.7,541.8 L480.9,541.5 L479.7,542.1 L478.2,547.8 L476.7,547.9 L475.8,546.6 L476.5,541.4 L477.6,539.8 L480.2,538.5 L484.4,538.2 L486.3,524.6 L492.4,515.1 L490.5,512.8 L490.3,510.5 L488.5,510.1 L486.1,514.8 L484.7,516.5 L483.4,516.8 L482.3,514.9 L485.3,509.0 L479.9,507.1 L477.9,511.8 L478.2,515.2 L474.0,526.1 L470.1,528.6 L465.7,527.3 L464.6,524.8 L466.5,518.9 L467.2,512.0 L460.7,504.7 L456.8,501.3 L454.8,501.5 L453.3,500.4 L451.4,500.8 L448.5,499.9 L445.2,496.4 L445.3,495.1 L446.4,494.4 L449.8,495.9 L453.1,491.7 L453.1,490.7 L445.3,486.6 L439.3,481.4 L438.7,479.3 L417.8,462.7 L413.4,462.3 L411.7,461.4 L409.5,462.0 L407.7,460.0 L405.4,460.7 L403.5,462.7 L406.0,465.5 L405.8,467.2 L404.1,467.6 L401.0,465.3 L398.3,468.0 L402.3,472.5 L402.1,476.4 L400.1,476.5 L399.2,473.7 L395.7,470.9 L393.2,473.6 L395.8,477.2 L394.5,479.6 L392.6,479.7 L391.9,477.2 L390.4,476.3 L387.8,478.9 L388.0,480.9 L387.3,482.4 L385.5,483.1 L383.8,482.5 L383.0,480.3 L384.4,477.8 L382.2,475.5 L382.5,473.8 L384.0,473.3 L387.1,475.1 L389.5,472.4 L387.5,469.9 L387.7,468.2 L389.4,467.8 L392.1,469.8 L394.7,467.2 L392.7,464.4 L393.1,462.7 L394.6,462.4 L397.5,464.1 L399.9,461.5 L399.1,459.6 L399.5,458.3 L400.8,457.9 L402.7,458.8 L404.8,457.4 L402.7,451.5 L402.8,449.7 L396.4,444.3 L389.1,434.9 L380.8,436.7 L379.6,436.3 L377.2,430.1 L378.1,427.5 L375.1,425.0 L370.6,426.4 L369.5,427.9 L367.4,428.5 L366.9,437.1 L369.2,438.2 L369.6,439.8 L367.1,441.1 L364.4,440.3 L363.7,438.8 L364.3,426.3 L363.8,424.8 L365.0,385.2 L362.0,381.1 L359.0,382.9 L354.8,383.7 L353.6,383.2 L352.4,380.9 L352.6,379.6 L354.4,378.2 L356.4,378.4 L357.1,377.6 L356.8,376.7 L354.0,375.1 L354.6,372.1 L346.8,363.6 L337.1,354.6 L334.9,356.1 L332.9,355.9 L331.4,357.6 L332.8,360.1 L332.1,361.7 L331.0,361.9 L328.5,360.3 L327.6,360.5 L327.1,362.4 L321.3,369.5 L320.0,369.7 L317.8,367.9 L316.9,368.1 L315.1,370.8 L317.4,373.2 L317.4,374.6 L316.0,375.4 L313.9,374.7 L311.8,377.0 L312.7,379.6 L311.8,381.1 L310.0,381.1 L308.0,379.1 L306.9,379.5 L306.9,380.7 L309.5,381.8 L310.4,384.1 L307.9,385.5 L303.3,391.0 L299.1,388.6 L298.8,386.8 L296.8,384.1 L296.9,381.6 L295.9,379.6 L297.0,378.4 L303.7,377.3 L303.7,376.3 L300.9,373.6 L301.4,371.9 L303.0,371.7 L306.2,373.8 L310.3,369.3 L312.6,368.8 L314.6,366.0 L312.9,362.5 L316.7,357.7 L316.8,355.2 L318.1,352.7 L311.8,347.3 L306.7,352.8 L307.7,355.2 L310.1,355.9 L310.3,357.6 L299.6,370.3 L297.5,370.6 L291.2,365.3 L288.1,364.7 L284.5,361.9 L278.3,368.8 L278.4,369.9 L281.5,372.4 L286.3,373.2 L287.4,374.1 L287.9,379.1 L286.9,380.4 L284.2,379.4 L284.1,376.0 L280.5,375.4 L277.0,373.0 L276.2,373.7 L276.5,375.1 L281.1,379.0 L281.0,381.0 L279.1,381.3 L272.8,376.1 L263.3,385.6 L261.2,385.6 L259.0,384.6 L256.5,382.0 L256.3,379.6 L253.9,377.2 L249.7,380.0 L243.9,381.4 L237.2,377.6 L230.3,371.3 L228.8,368.7 L229.0,367.2 L231.8,363.7 L230.4,359.8 L233.5,352.7 L234.2,348.6 L238.1,347.2 L256.5,352.9 L262.2,348.8 L264.2,348.4 L265.6,346.6 L261.5,341.9 L261.9,340.7 L264.1,340.1 L264.4,339.0 L260.4,336.6 L258.3,336.2 L256.4,337.6 L254.0,337.0 L252.4,334.8 L251.0,334.4 L248.6,335.4 L245.7,334.2 L244.8,332.2 L241.0,330.7 L240.2,331.2 L238.7,336.1 L237.6,336.7 L236.4,336.2 L236.0,334.9 L237.5,329.5 L237.0,327.6 L238.4,326.1 L240.2,319.7 L241.7,319.2 L243.0,320.3 L241.4,326.8 L241.9,327.7 L245.8,329.1 L247.1,327.3 L248.2,326.9 L257.2,329.0 L257.9,328.3 L257.6,326.6 L245.9,323.7 L245.1,322.9 L245.2,321.6 L246.7,320.8 L256.6,322.8 L256.7,320.0 L265.9,308.2 L274.7,308.3 L276.7,310.4 L279.0,308.9 L281.9,308.5 L284.3,310.2 L286.0,310.0 L289.0,311.2 L290.3,310.8 L290.5,309.8 L284.5,306.8 L280.5,306.1 L255.8,306.4 L253.4,308.4 L252.2,307.7 L251.4,304.9 L244.8,305.0 L235.9,306.3 L218.0,314.1 L213.6,315.3 L207.8,315.7 L194.2,314.8 L188.3,313.6 L185.5,312.5 L182.0,309.7 L177.4,301.3 L175.1,299.0 L169.8,296.6 L166.8,296.2 L165.0,296.9 L163.8,296.1 L164.7,292.2 L167.4,291.5 L168.7,289.8 L173.1,278.0 L169.8,275.1 L171.1,270.8 L170.6,267.7 
38138L166.4,266.7 L163.8,265.0 L159.4,260.6 L158.8,257.0 L151.2,262.0 L150.8,263.8 L156.5,266.6 L159.8,270.6 L160.4,274.2 L159.0,280.7 L159.5,283.3 L157.0,284.5 L155.5,282.6 L153.4,282.1 L149.6,284.5 L147.9,284.1 L146.1,280.9 L146.4,277.1 L142.8,275.7 L142.1,274.4 L146.0,267.1 L147.5,266.0 L147.6,264.0 L146.7,262.3 L142.0,259.8 L138.7,255.9 L135.4,254.9 L135.2,252.6 L136.7,250.9 L137.3,243.7 L135.6,240.8 L134.6,240.7 L133.2,242.7 L130.7,244.0 L128.0,242.8 L125.0,244.2 L114.9,251.9 L114.0,253.8 L111.5,254.7 L110.5,257.5 L105.5,255.9 L104.3,254.4 L104.3,252.5 L105.4,251.7 L107.2,251.9 L108.8,250.1 L107.7,248.5 L107.6,246.8 L105.1,243.6 L105.9,240.9 L107.3,239.9 L109.4,240.0 L116.0,244.2 L120.2,240.2 L114.7,234.5 L114.8,233.2 L116.7,230.9 L118.4,230.6 L121.1,232.8 L125.0,234.1 L125.8,233.3 L124.2,231.1 L124.8,229.5 L126.4,229.4 L128.8,231.3 L130.0,230.4 L130.1,227.6 L128.6,226.4 L126.9,226.7 L124.5,225.5 L119.8,221.3 L117.3,216.2 L117.7,214.7 L120.4,213.3 L122.5,213.6 L124.9,212.3 L132.1,217.7 L137.5,211.3 L136.9,208.7 L138.1,207.0 L153.9,202.6 L159.7,204.7 L162.2,202.9 L161.6,201.2 L150.3,196.1 L145.9,196.5 L142.2,195.0 L140.5,197.1 L140.8,199.3 L139.6,200.8 L136.1,200.4 L134.6,199.5 L130.2,199.6 L126.4,197.6 L125.0,192.3 L122.3,193.1 L120.8,192.4 L119.5,190.3 L119.3,186.8 L118.5,186.3 L114.2,187.6 L114.9,192.3 L112.6,196.6 L114.2,198.3 L114.5,201.0 L114.2,202.9 L112.8,204.4 L93.0,210.4 L84.2,211.4 L78.1,210.2 L74.9,208.0 L73.4,205.1 L71.9,199.3 L70.3,198.3 L68.1,200.6 L64.2,198.8 L60.7,200.8 L57.9,199.8 L57.5,196.8 L54.7,196.2 L52.6,201.4 L51.0,202.4 L41.7,201.1 L40.0,198.6 L38.7,198.1 L37.0,200.6 L35.4,200.9 L34.1,198.7 L32.0,198.8 L31.1,198.0 L32.6,193.5 L30.8,190.6ZM604.2,338.6 L607.7,335.6 L605.5,332.5 L601.0,335.6 L603.0,338.6 L604.2,338.6ZM593.3,323.9 L592.9,325.2 L598.5,332.8 L603.2,329.9 L603.1,329.0 L597.4,321.5 L593.3,323.9ZM591.1,338.0 L592.1,338.2 L596.0,334.8 L589.6,326.8 L585.4,330.4 L591.1,338.0ZM584.7,313.0 L588.5,319.0 L591.2,317.8 L593.8,319.4 L595.0,318.7 L588.9,310.3 L584.7,313.0ZM588.3,304.1 L589.6,304.5 L591.0,301.9 L593.2,302.6 L594.4,301.8 L594.1,300.7 L592.3,299.7 L591.5,297.9 L590.0,298.5 L589.6,300.6 L587.5,302.4 L588.3,304.1ZM578.4,335.0 L578.2,336.0 L583.9,343.7 L588.6,340.7 L588.6,339.8 L582.9,332.3 L578.4,335.0ZM577.2,318.7 L580.5,323.7 L583.9,322.3 L585.1,322.9 L585.8,325.1 L587.7,324.0 L584.3,318.7 L582.0,318.4 L580.7,316.5 L577.2,318.7ZM571.5,340.8 L571.4,341.8 L576.8,349.0 L581.3,346.2 L575.9,338.1 L571.5,340.8ZM580.1,329.9 L580.4,329.0 L579.2,327.4 L575.4,328.7 L574.5,327.8 L574.4,325.6 L572.5,325.2 L571.3,323.5 L570.0,324.1 L570.1,325.0 L575.7,332.5 L580.1,329.9ZM561.0,531.8 L559.9,531.9 L557.5,535.7 L569.1,546.2 L570.1,546.3 L572.7,543.4 L572.7,542.5 L561.0,531.8ZM568.3,333.9 L568.0,336.4 L569.3,337.3 L572.6,334.4 L566.4,326.8 L562.8,329.9 L564.3,332.0 L566.9,332.2 L568.3,333.9ZM552.5,539.9 L550.7,541.9 L555.1,548.3 L559.7,552.9 L564.7,555.0 L564.8,552.6 L567.2,549.6 L567.2,548.7 L555.6,538.1 L552.5,539.9ZM551.5,490.9 L562.8,500.4 L563.7,500.1 L566.6,495.4 L566.3,494.5 L564.1,493.9 L560.9,491.3 L552.2,489.2 L551.5,490.9ZM553.1,504.8 L552.7,506.3 L556.2,509.0 L561.0,503.3 L557.4,500.2 L553.1,504.8ZM551.2,343.9 L550.9,345.1 L553.8,348.6 L558.4,345.2 L555.7,341.4 L551.2,343.9ZM554.3,336.3 L555.4,336.7 L556.9,335.3 L554.5,332.7 L553.3,333.6 L554.3,336.3ZM546.8,501.3 L549.4,500.0 L552.2,501.1 L554.8,497.5 L551.6,494.6 L550.3,494.4 L546.3,500.0 L546.8,501.3ZM390.1,304.7 L385.2,319.5 L387.5,320.3 L388.1,321.5 L386.4,325.8 L390.6,329.2 L392.9,324.9 L397.0,324.9 L397.4,326.3 L396.1,333.6 L397.3,334.7 L403.5,336.1 L408.8,331.8 L414.4,332.0 L415.1,329.8 L416.6,329.2 L417.8,330.1 L418.1,333.6 L431.4,338.0 L431.8,339.1 L431.2,340.3 L427.8,340.9 L423.9,351.6 L427.0,353.9 L426.1,357.2 L430.2,360.1 L434.4,356.7 L441.1,360.4 L445.3,357.5 L449.1,356.7 L452.9,354.6 L451.9,350.7 L453.5,348.7 L456.0,349.3 L459.8,356.6 L461.5,356.3 L464.3,353.8 L464.5,351.7 L465.6,350.4 L467.2,349.9 L468.8,350.5 L469.3,354.7 L465.6,356.7 L461.1,362.4 L462.7,364.7 L460.9,366.9 L461.2,368.3 L466.4,370.5 L467.2,371.5 L466.2,375.3 L464.8,376.7 L465.4,379.1 L464.3,380.2 L460.1,380.0 L459.3,381.4 L460.9,386.0 L468.5,389.0 L470.0,391.2 L469.9,393.0 L468.3,395.3 L464.7,397.4 L463.3,399.1 L460.5,400.2 L462.0,402.9 L464.1,403.2 L465.6,401.5 L467.3,400.9 L467.8,398.2 L471.6,397.3 L472.3,394.5 L475.6,393.4 L474.3,388.8 L473.9,383.8 L476.0,369.1 L477.2,368.5 L479.5,369.2 L480.1,370.2 L479.9,373.0 L485.3,376.4 L486.2,376.1 L487.2,373.4 L490.2,374.4 L491.0,373.7 L482.0,366.1 L481.3,362.7 L484.3,357.1 L482.2,352.1 L481.4,351.7 L478.6,352.7 L477.2,351.4 L477.8,350.0 L482.7,347.3 L480.5,344.3 L481.2,342.5 L482.8,342.5 L486.7,345.7 L495.8,341.6 L493.9,337.6 L489.6,339.0 L488.5,338.7 L487.6,335.4 L481.9,337.5 L480.3,336.8 L480.6,334.8 L486.2,332.1 L484.2,329.9 L482.4,325.4 L482.9,322.8 L484.7,322.7 L486.1,324.7 L488.7,324.1 L495.3,320.3 L497.7,316.5 L499.5,315.1 L501.4,314.5 L503.9,315.2 L505.7,318.0 L503.6,320.7 L505.8,321.7 L506.2,323.2 L500.8,326.4 L502.0,329.3 L499.7,331.6 L503.2,334.0 L504.4,335.8 L506.4,336.1 L510.4,334.5 L510.1,332.2 L510.8,331.1 L524.0,324.4 L525.5,324.6 L526.8,326.5 L528.0,326.2 L527.7,322.8 L528.8,321.8 L531.4,322.0 L530.7,318.5 L531.8,317.1 L533.1,317.3 L534.6,319.2 L539.2,317.6 L541.8,320.7 L543.4,319.2 L543.4,316.4 L545.1,315.9 L550.1,325.2 L553.0,323.5 L552.1,320.8 L553.8,318.8 L551.3,298.4 L539.1,288.6 L538.0,289.7 L538.6,295.3 L536.4,298.5 L539.3,301.5 L538.6,303.5 L537.0,303.4 L524.5,293.2 L523.4,294.3 L526.4,297.3 L526.1,299.3 L524.8,299.6 L523.1,298.6 L521.3,299.7 L519.4,299.2 L517.2,299.7 L516.2,298.4 L516.9,295.6 L514.3,293.8 L511.9,295.0 L510.5,293.6 L516.9,285.1 L515.0,282.7 L513.9,282.8 L506.3,291.5 L505.0,291.7 L503.9,290.9 L504.1,289.3 L509.6,282.9 L507.3,280.4 L501.9,286.0 L497.5,284.7 L495.3,288.5 L493.6,289.7 L493.4,291.5 L492.6,292.3 L491.4,292.2 L488.6,290.2 L486.6,287.5 L485.5,287.7 L483.6,290.9 L483.7,291.8 L492.9,297.3 L495.3,294.7 L497.0,294.8 L497.6,296.2 L496.4,299.1 L498.5,301.6 L497.9,302.8 L496.4,303.0 L481.5,294.6 L480.0,298.1 L487.9,302.8 L488.6,303.8 L488.1,305.2 L486.7,305.6 L478.6,300.9 L477.5,301.2 L476.8,303.5 L484.5,308.2 L484.6,309.7 L483.4,310.5 L472.7,304.3 L472.8,303.0 L478.7,293.1 L476.4,291.0 L475.5,291.4 L467.1,305.0 L465.7,305.5 L464.6,304.7 L464.6,303.3 L472.9,289.6 L472.6,288.6 L469.0,287.2 L455.9,309.0 L456.5,310.3 L461.3,311.8 L463.3,315.4 L463.0,319.2 L460.9,320.8 L461.1,323.0 L460.1,324.1 L458.7,323.8 L456.9,321.6 L446.4,325.6 L440.3,326.0 L437.0,325.2 L429.7,321.9 L421.2,314.7 L418.8,315.0 L413.4,313.0 L410.5,313.6 L409.6,312.4 L410.2,311.0 L414.7,310.0 L415.3,309.2 L410.5,298.0 L408.0,294.6 L405.1,295.8 L402.5,294.0 L401.0,295.0 L400.7,297.5 L399.0,297.9 L397.2,295.4 L397.2,293.4 L396.5,292.8 L393.1,296.9 L391.9,300.4 L394.6,303.4 L398.7,299.8 L400.2,299.6 L401.4,300.7 L401.5,303.1 L395.7,309.7 L394.4,309.2 L391.3,304.8 L390.1,304.7ZM541.1,506.2 L540.5,508.1 L547.8,515.1 L548.8,519.5 L550.1,519.7 L552.3,516.9 L551.6,514.7 L542.0,506.2 L541.1,506.2ZM547.8,414.1 L548.1,415.1 L550.4,416.2 L552.0,414.1 L549.9,411.0 L547.8,414.1ZM549.1,339.6 L550.1,340.0 L551.8,338.6 L549.8,334.4 L547.5,335.7 L549.1,339.6ZM548.5,255.7 L550.9,253.4 L550.3,252.5 L546.5,253.5 L548.5,255.7ZM546.1,401.4 L545.9,402.6 L548.4,404.5 L550.8,404.1 L550.3,400.1 L546.1,401.4ZM547.2,287.5 L546.2,289.7 L549.5,292.4 L550.6,292.3 L549.8,286.6 L547.2,287.5ZM545.8,331.9 L546.8,332.2 L548.7,330.7 L546.8,326.3 L544.5,326.1 L543.8,327.1 L545.8,331.9ZM539.1,232.8 L539.2,233.8 L544.1,237.8 L547.5,234.3 L542.5,229.5 L539.1,232.8ZM537.8,244.2 L533.8,239.3 L531.9,241.1 L542.0,250.3 L544.7,249.9 L544.5,247.5 L546.6,245.0 L546.4,243.9 L541.4,239.8 L540.4,240.4 L540.8,243.3 L539.5,244.5 L537.8,244.2ZM541.8,338.8 L543.8,343.6 L546.5,342.4 L544.5,337.1 L542.0,337.6 L541.8,338.8ZM530.2,497.3 L531.4,501.8 L532.9,503.2 L536.5,499.7 L537.7,499.9 L539.6,501.5 L540.5,500.3 L538.7,498.3 L538.9,496.7 L540.4,496.2 L543.2,497.5 L546.0,494.1 L546.4,492.5 L543.1,490.1 L541.0,491.9 L539.6,491.7 L538.9,490.1 L540.2,487.9 L539.1,487.2 L535.7,490.7 L536.9,492.7 L536.7,494.0 L535.5,494.7 L533.3,494.1 L530.2,497.3ZM542.3,515.7 L543.7,523.6 L544.8,524.1 L546.0,521.5 L545.2,516.8 L543.2,514.9 L542.3,515.7ZM539.6,284.2 L540.7,284.2 L544.4,279.7 L541.1,276.9 L540.9,273.8 L538.4,272.7 L533.4,278.6 L539.6,284.2ZM535.4,323.0 L540.4,334.7 L542.9,333.6 L538.4,322.0 L537.5,321.5 L535.4,323.0ZM539.4,227.7 L539.4,226.6 L535.0,223.0 L531.5,226.8 L536.0,231.0 L539.4,227.7ZM531.3,384.9 L532.3,384.4 L535.0,375.1 L538.7,370.8 L538.3,369.6 L533.3,373.0 L530.4,383.8 L531.3,384.9ZM535.5,262.8 L535.9,263.7 L537.7,264.0 L538.7,262.8 L536.4,261.6 L535.5,262.8ZM536.8,401.9 L537.7,401.4 L537.4,400.4 L532.9,398.1 L531.9,398.4 L531.8,400.5 L536.8,401.9ZM525.7,248.1 L527.3,251.9 L528.6,252.4 L536.4,251.3 L537.0,250.6 L529.7,244.0 L525.7,248.1ZM525.9,332.7 L533.3,350.9 L534.4,351.3 L535.7,350.0 L533.6,346.4 L534.2,342.7 L535.5,341.1 L534.4,338.9 L537.0,336.4 L536.2,335.6 L532.9,336.9 L531.4,336.1 L531.6,334.4 L535.2,332.2 L533.0,327.6 L525.9,332.7ZM520.8,285.7 L527.7,291.0 L531.0,288.0 L534.1,289.1 L536.2,286.2 L530.9,281.6 L527.5,282.6 L524.6,281.0 L520.8,285.7ZM530.0,275.5 L531.1,275.4 L536.0,269.8 L535.9,268.6 L533.4,267.9 L531.3,269.6 L527.1,269.3 L527.0,270.4 L528.7,271.8 L528.4,274.1 L530.0,275.5ZM531.3,446.2 L534.7,445.5 L535.5,444.5 L531.1,440.9 L513.2,435.7 L512.3,436.1 L511.2,439.8 L511.6,440.7 L531.3,446.2ZM531.6,530.8 L534.1,532.5 L535.1,531.4 L533.3,529.0 L531.6,530.8ZM527.5,234.1 L525.0,235.1 L525.1,236.1 L529.2,239.1 L533.8,233.6 L529.4,229.9 L527.6,231.7 L527.5,234.1ZM513.7,430.9 L514.0,432.7 L525.4,435.7 L527.7,433.1 L532.4,430.0 L532.7,428.8 L531.4,427.5 L528.4,428.5 L523.7,428.0 L521.8,430.5 L520.4,430.8 L519.3,429.4 L520.3,426.2 L516.2,424.0 L513.7,430.9ZM526.9,223.3 L529.1,224.5 L532.1,221.2 L532.1,220.3 L529.1,218.3 L526.0,221.8 L526.9,223.3ZM529.3,260.6 L531.3,261.9 L531.8,260.4 L529.8,259.8 L529.3,260.6ZM519.0,479.1 L527.9,487.5 L528.8,487.3 L531.0,484.9 L530.9,483.9 L528.4,481.7 L523.5,481.8 L523.5,477.6 L521.8,476.0 L520.8,476.0 L519.3,477.6 L519.0,479.1ZM519.0,355.8 L520.7,358.2 L520.8,361.0 L522.8,361.6 L525.1,356.1 L530.2,356.8 L531.0,355.4 L529.4,351.5 
38138L528.5,351.1 L519.3,354.9 L519.0,355.8ZM526.5,362.0 L526.9,362.8 L528.7,363.1 L529.5,360.1 L527.3,359.5 L526.5,362.0ZM527.5,366.3 L522.9,365.5 L522.9,367.0 L527.6,367.8 L527.5,366.3ZM519.4,505.8 L522.7,508.7 L523.8,508.3 L523.9,506.0 L527.7,500.5 L525.3,497.2 L524.3,497.3 L521.8,500.1 L523.3,503.4 L522.2,504.5 L519.8,504.5 L519.4,505.8ZM515.6,347.0 L516.5,351.1 L517.4,351.4 L521.3,349.8 L521.4,347.7 L522.3,346.8 L523.6,346.8 L525.1,348.2 L527.0,347.4 L527.4,346.6 L526.0,343.3 L525.1,343.0 L515.6,347.0ZM523.1,489.5 L524.2,491.8 L526.0,490.6 L525.7,489.7 L517.5,482.3 L516.3,482.3 L515.5,484.3 L519.2,487.0 L520.9,489.2 L523.1,489.5ZM518.2,370.7 L518.7,371.6 L523.3,373.0 L525.4,371.7 L524.9,370.8 L519.4,369.1 L518.2,370.7ZM522.6,383.2 L523.5,382.6 L524.9,376.9 L517.8,374.9 L516.1,381.1 L522.6,383.2ZM518.7,241.5 L519.2,246.4 L522.6,246.8 L524.0,245.0 L522.6,242.5 L524.5,239.6 L521.8,238.0 L518.7,241.5ZM513.6,342.9 L514.6,343.2 L523.7,339.3 L524.0,338.4 L522.5,334.8 L521.6,334.6 L512.0,338.8 L511.8,339.7 L513.6,342.9ZM519.6,230.5 L519.7,231.6 L521.4,232.5 L523.9,229.3 L522.8,228.7 L520.5,229.4 L519.6,230.5ZM523.7,276.4 L523.6,275.3 L521.5,274.2 L517.0,280.2 L519.3,281.6 L523.7,276.4ZM513.3,390.5 L513.8,391.5 L520.3,393.1 L522.2,386.6 L515.3,384.5 L513.3,390.5ZM518.5,293.3 L519.7,293.4 L521.5,291.0 L518.5,288.5 L516.3,291.0 L518.5,293.3ZM519.2,495.6 L517.0,497.4 L517.4,498.2 L519.6,497.8 L519.2,495.6ZM511.6,401.1 L517.7,402.6 L519.3,396.9 L512.5,394.5 L510.6,400.1 L511.6,401.1ZM511.5,279.8 L512.6,279.7 L518.9,272.3 L518.9,271.4 L516.8,269.7 L515.9,269.8 L509.6,277.2 L509.6,278.1 L511.5,279.8ZM508.4,359.6 L509.1,362.0 L509.2,366.3 L515.2,367.8 L517.4,362.0 L515.3,357.1 L513.8,357.6 L515.0,361.4 L513.8,363.5 L512.3,363.7 L510.9,363.0 L510.0,361.9 L510.4,360.2 L509.8,359.2 L508.4,359.6ZM497.8,481.7 L499.1,487.0 L501.1,491.0 L503.6,491.0 L504.7,492.1 L504.6,493.4 L503.2,494.8 L503.7,496.1 L506.7,496.4 L508.9,500.0 L510.7,499.4 L517.4,491.0 L515.7,488.7 L505.9,479.8 L504.6,477.3 L504.6,473.5 L507.9,464.9 L507.6,463.9 L504.7,462.8 L503.8,463.2 L497.8,481.7ZM495.7,413.1 L496.3,414.1 L513.2,418.6 L515.3,411.8 L511.3,410.1 L510.8,408.5 L512.3,407.4 L515.8,408.2 L516.4,407.0 L507.4,404.0 L506.4,404.4 L505.2,409.4 L512.5,412.9 L513.3,415.1 L512.0,416.0 L507.4,414.3 L505.1,415.0 L503.8,413.7 L496.9,411.8 L495.7,413.1ZM514.1,502.8 L516.0,500.9 L515.7,499.5 L512.9,501.7 L513.1,502.7 L514.1,502.8ZM514.0,246.6 L514.7,248.1 L516.0,247.7 L515.5,245.8 L514.0,246.6ZM510.4,354.8 L513.3,353.6 L513.3,352.4 L509.8,353.3 L509.5,354.3 L510.4,354.8ZM508.2,477.8 L511.6,480.7 L513.4,479.2 L511.5,474.4 L513.0,467.5 L512.0,466.1 L510.3,466.8 L507.7,474.2 L508.2,477.8ZM508.9,374.4 L510.0,371.6 L508.3,370.6 L507.6,371.2 L506.1,377.7 L513.0,379.4 L513.2,377.7 L509.9,377.1 L508.9,374.4ZM510.7,264.9 L509.7,268.6 L511.2,269.5 L513.3,266.9 L510.7,264.9ZM510.3,254.4 L512.6,253.8 L512.5,252.6 L511.1,251.5 L509.2,253.1 L510.3,254.4ZM488.5,423.0 L487.4,424.9 L487.6,425.9 L503.7,430.4 L505.0,432.1 L504.7,436.3 L507.9,437.3 L508.8,436.9 L510.1,431.9 L506.4,430.5 L505.8,428.9 L507.1,427.8 L511.1,428.3 L512.5,423.9 L512.1,423.1 L490.4,417.0 L489.0,417.9 L488.5,423.0ZM510.0,244.4 L511.1,244.2 L512.3,241.8 L502.1,232.9 L501.0,232.9 L499.5,234.7 L499.6,235.6 L510.0,244.4ZM508.4,340.6 L500.5,344.0 L501.6,346.4 L506.8,344.8 L508.4,346.0 L507.8,347.6 L503.0,349.6 L503.7,352.1 L505.5,351.7 L508.9,349.3 L511.6,349.0 L508.4,340.6ZM502.9,387.4 L503.3,388.6 L509.5,390.1 L510.4,389.5 L511.4,385.5 L509.1,384.4 L508.2,382.7 L504.9,381.8 L502.9,387.4ZM500.9,398.1 L507.3,399.6 L508.5,396.0 L507.5,393.1 L504.0,392.0 L501.6,392.6 L500.1,397.1 L500.9,398.1ZM505.5,225.4 L502.2,226.1 L501.5,227.7 L506.8,231.8 L508.3,229.1 L506.1,227.5 L505.5,225.4ZM506.8,514.9 L502.2,521.5 L502.7,522.6 L503.6,522.4 L506.4,518.9 L508.2,515.8 L508.0,514.9 L506.8,514.9ZM502.5,442.4 L499.3,444.6 L500.8,447.5 L500.7,451.3 L503.9,452.6 L507.6,440.7 L503.8,439.5 L502.5,442.4ZM499.6,248.2 L499.1,249.5 L503.3,252.9 L507.4,248.7 L503.3,245.0 L499.6,248.2ZM499.9,281.0 L500.2,282.0 L501.3,282.1 L504.4,278.5 L504.3,277.5 L502.3,276.6 L499.9,281.0ZM499.2,268.5 L501.0,270.0 L503.1,270.1 L504.1,268.6 L503.5,263.4 L502.4,263.3 L499.0,267.1 L499.2,268.5ZM475.7,430.9 L472.0,423.6 L473.8,420.8 L472.5,418.0 L465.9,422.1 L465.9,423.0 L47
381387.6,438.9 L478.9,446.9 L482.2,446.6 L483.5,447.6 L483.0,449.3 L476.1,453.3 L481.7,462.2 L482.6,462.5 L483.2,461.8 L481.5,454.3 L483.3,453.0 L484.4,453.9 L486.4,459.9 L489.8,460.5 L497.9,465.4 L499.5,465.6 L500.4,463.1 L498.4,460.9 L498.2,459.6 L500.1,457.8 L502.4,457.7 L502.9,456.3 L498.2,453.4 L497.6,447.6 L495.0,446.8 L492.8,450.4 L490.7,450.4 L490.2,449.0 L491.3,446.3 L488.3,444.7 L486.1,445.2 L484.6,444.4 L484.0,442.7 L485.0,440.1 L480.2,438.4 L479.1,432.0 L475.7,430.9ZM499.0,401.9 L497.7,407.9 L500.9,408.6 L502.5,402.9 L499.0,401.9ZM498.6,321.7 L497.4,322.9 L497.9,323.9 L502.3,321.7 L501.5,320.8 L498.6,321.7ZM498.8,336.5 L497.5,337.2 L498.8,340.1 L502.0,339.1 L501.3,336.9 L498.8,336.5ZM500.8,527.2 L501.9,526.2 L500.1,525.2 L499.4,526.3 L500.8,527.2ZM482.0,428.6 L483.2,436.2 L484.3,436.3 L485.3,434.6 L486.6,434.3 L487.7,435.2 L488.2,437.5 L492.6,438.6 L494.0,436.9 L495.3,436.6 L496.3,437.5 L496.6,439.7 L499.3,440.5 L500.1,440.0 L501.9,433.7 L501.4,432.8 L499.7,432.5 L498.0,433.6 L495.0,432.9 L493.3,430.7 L490.1,431.5 L486.8,430.6 L485.6,428.7 L482.8,427.9 L482.0,428.6ZM493.1,243.8 L497.0,247.3 L500.4,242.7 L496.3,239.3 L493.9,241.7 L493.1,243.8ZM498.4,275.4 L499.4,275.2 L499.9,273.7 L496.6,270.8 L495.7,270.8 L494.7,272.8 L498.4,275.4ZM494.6,232.9 L496.3,233.6 L498.9,230.5 L498.9,229.6 L497.9,228.9 L495.3,229.3 L493.6,231.5 L494.6,232.9ZM493.1,346.9 L492.6,347.9 L493.8,349.7 L498.3,347.5 L496.9,345.0 L493.1,346.9ZM480.1,479.4 L487.7,487.2 L486.6,489.0 L484.1,488.0 L483.3,488.6 L485.2,492.7 L484.2,495.4 L492.6,498.0 L497.4,492.0 L495.6,488.1 L494.9,487.7 L492.7,488.5 L491.5,488.0 L491.3,485.5 L490.0,484.0 L490.0,481.5 L480.9,477.8 L479.7,478.2 L480.1,479.4ZM491.4,278.0 L491.6,278.9 L495.3,281.5 L497.3,279.1 L493.3,275.7 L491.4,278.0ZM494.6,377.8 L496.6,379.1 L497.0,378.3 L495.4,376.8 L494.6,377.8ZM490.9,503.8 L491.2,507.2 L492.8,508.0 L495.0,506.5 L495.6,505.0 L491.5,503.1 L490.9,503.8ZM479.1,408.3 L479.9,409.3 L487.1,411.3 L489.5,407.9 L488.7,405.5 L489.4,402.7 L491.1,401.5 L494.3,401.9 L494.8,400.7 L487.5,398.5 L484.8,406.4 L482.7,407.5 L479.6,407.1 L479.1,408.3ZM490.3,255.0 L491.0,256.1 L494.2,256.0 L494.9,255.2 L493.8,252.8 L491.2,251.8 L490.4,252.4 L490.3,255.0ZM486.5,464.9 L493.3,468.3 L494.8,467.5 L494.1,466.3 L488.6,463.4 L486.7,463.4 L486.5,464.9ZM479.4,378.0 L479.2,380.7 L485.9,385.4 L485.9,387.4 L484.3,389.3 L484.7,394.3 L491.7,396.0 L493.7,388.1 L492.2,387.7 L490.8,391.7 L488.9,392.1 L488.1,390.9 L488.9,387.8 L488.4,384.2 L480.4,377.8 L479.4,378.0ZM490.0,281.5 L488.9,281.7 L488.5,283.3 L492.0,284.4 L492.2,283.3 L490.0,281.5ZM465.7,461.2 L467.6,467.2 L469.8,467.3 L470.2,459.0 L471.5,458.1 L472.8,458.6 L473.0,468.1 L470.6,471.7 L467.7,472.4 L468.0,474.3 L475.8,474.3 L476.6,471.8 L478.1,471.1 L479.2,471.9 L480.0,474.5 L488.4,477.4 L490.0,476.4 L489.7,475.2 L482.8,472.0 L482.8,470.0 L485.3,469.6 L485.7,468.4 L483.5,466.4 L480.7,466.2 L473.3,455.1 L467.5,458.1 L467.2,459.8 L465.7,461.2ZM483.9,501.9 L484.6,503.3 L486.7,503.9 L488.6,502.6 L488.1,501.7 L484.8,500.6 L483.9,501.9ZM483.6,261.5 L483.8,271.7 L484.7,272.5 L488.5,266.4 L487.7,263.5 L484.8,260.9 L483.6,261.5ZM480.7,244.0 L481.4,244.8 L486.3,245.4 L487.2,244.6 L481.8,240.0 L481.0,240.6 L480.7,244.0ZM484.4,278.2 L480.7,279.6 L480.7,280.6 L484.3,282.7 L486.4,279.8 L484.4,278.2ZM476.7,418.9 L476.5,425.9 L478.1,428.3 L479.9,424.7 L484.2,424.5 L485.5,422.0 L485.3,419.5 L486.2,416.2 L480.3,414.1 L477.4,414.2 L475.2,415.9 L476.7,418.9ZM480.3,257.0 L481.3,257.9 L483.3,256.4 L485.4,250.1 L485.1,249.2 L480.5,249.4 L480.3,257.0ZM471.2,284.1 L480.5,289.6 L482.7,285.8 L473.3,280.3 L471.2,284.1ZM478.1,401.6 L481.6,403.1 L482.7,399.7 L481.8,399.2 L478.4,400.2 L478.1,401.6ZM478.5,270.7 L479.3,271.5 L480.2,271.0 L480.4,267.3 L479.9,266.6 L478.5,267.1 L478.5,270.7ZM475.0,276.7 L478.5,279.4 L479.6,279.0 L479.2,275.3 L475.8,274.6 L475.0,276.7ZM468.2,487.1 L468.4,490.4 L478.0,493.5 L479.0,493.0 L477.5,489.4 L475.2,489.9 L469.0,486.6 L468.2,487.1ZM476.1,500.0 L477.3,499.9 L477.4,498.3 L475.5,498.2 L476.1,500.0ZM477.5,242.7 L473.4,242.4 L472.9,243.7 L477.4,244.3 L477.5,242.7ZM472.4,252.1 L474.6,255.3 L476.6,255.4 L477.0,250.4 L472.7,249.3 L472.4,252.1ZM476.8,485.2 L474.5,485.1 L474.6,486.0 L476.7,486.7 L476.8,485.2ZM444.0,440.0 L441.5,439.0 L438.8,440.9 L438.7,441.8 L441.6,446.0 L444.3,445.1 L447.4,445.9 L447.5,447.
381386 L444.7,450.5 L450.9,459.3 L452.8,460.8 L454.2,461.0 L455.3,459.4 L462.0,455.8 L463.1,451.7 L461.1,448.0 L461.9,446.3 L463.7,446.6 L468.6,453.6 L476.1,449.1 L475.1,446.5 L470.3,446.1 L468.6,447.1 L467.3,446.6 L467.2,443.7 L455.9,429.4 L452.4,431.5 L453.2,433.9 L452.5,435.2 L451.1,435.3 L448.9,433.8 L446.4,435.6 L446.6,437.8 L445.9,439.1 L444.0,440.0ZM468.3,401.0 L468.8,404.3 L474.7,407.0 L475.7,406.6 L475.5,403.6 L474.0,400.0 L468.3,401.0ZM474.2,443.5 L475.3,442.8 L474.8,440.2 L463.4,424.7 L462.4,424.5 L459.1,426.9 L458.9,428.0 L469.0,441.1 L471.7,443.2 L474.2,443.5ZM468.7,525.3 L470.3,525.3 L471.4,524.4 L474.9,515.2 L474.5,514.2 L470.9,513.5 L470.1,514.0 L469.5,519.6 L468.0,524.4 L468.7,525.3ZM468.7,508.5 L470.2,510.0 L471.9,510.2 L474.1,504.6 L470.5,503.4 L468.7,508.5ZM465.2,409.3 L469.6,415.3 L472.3,413.7 L471.9,412.7 L469.8,412.4 L468.5,411.3 L468.1,408.9 L465.7,408.2 L465.2,409.3ZM468.1,271.6 L467.9,273.0 L471.1,274.9 L472.0,274.6 L471.8,271.0 L468.1,271.6ZM466.0,267.4 L467.0,268.3 L471.0,267.5 L471.5,265.3 L470.5,264.7 L466.2,265.9 L466.0,267.4ZM467.6,282.0 L468.6,281.8 L470.3,278.1 L463.3,274.4 L461.4,278.2 L467.6,282.0ZM468.0,498.2 L469.1,497.8 L469.4,495.7 L464.0,494.3 L464.0,495.5 L468.0,498.2ZM467.7,250.3 L467.4,253.5 L469.0,253.2 L469.0,250.3 L467.7,250.3ZM463.7,256.4 L462.9,257.4 L465.0,261.5 L468.6,260.6 L468.3,258.6 L466.8,258.1 L465.7,256.7 L463.7,256.4ZM454.0,481.0 L460.8,483.6 L461.3,485.1 L459.8,487.2 L462.3,488.3 L463.2,485.8 L464.9,484.6 L464.3,481.8 L465.3,481.1 L468.4,480.9 L468.6,478.1 L467.8,477.4 L446.3,477.5 L445.6,478.0 L445.8,478.9 L449.7,481.9 L454.0,481.0ZM466.9,486.5 L468.0,486.1 L467.7,484.7 L465.7,484.3 L465.4,485.4 L466.9,486.5ZM463.2,419.2 L464.2,419.4 L466.6,417.6 L465.5,415.3 L464.5,415.3 L462.7,417.7 L463.2,419.2ZM452.6,387.4 L451.8,388.2 L452.4,389.4 L456.5,390.0 L461.1,395.6 L466.5,392.6 L466.1,391.6 L462.8,391.1 L458.1,388.2 L452.6,387.4ZM463.9,288.1 L464.9,287.8 L466.1,284.8 L459.1,281.2 L457.8,284.3 L463.9,288.1ZM435.2,470.5 L439.3,468.1 L441.4,467.7 L442.4,468.3 L442.4,470.3 L438.4,472.5 L440.4,474.5 L463.6,474.4 L464.4,473.6 L464.0,471.0 L457.4,470.9 L456.2,469.7 L457.3,467.9 L464.1,467.6 L463.8,464.6 L462.5,462.8 L457.6,465.0 L450.3,463.3 L448.2,466.2 L448.7,468.9 L447.2,469.7 L444.1,466.1 L445.9,463.4 L446.1,461.3 L445.1,460.7 L434.0,468.9 L435.2,470.5ZM459.7,371.2 L457.5,367.2 L456.0,366.9 L452.2,374.7 L455.6,375.6 L456.9,374.1 L458.1,373.8 L459.9,376.6 L463.6,377.1 L463.4,373.0 L459.7,371.2ZM457.2,412.2 L453.0,417.8 L454.4,419.5 L461.0,415.1 L463.5,412.3 L462.2,410.4 L461.3,410.2 L460.0,412.1 L457.2,412.2ZM444.5,281.4 L446.0,286.0 L460.3,294.1 L461.2,293.9 L462.5,291.8 L462.2,290.7 L445.4,280.6 L444.5,281.4ZM458.7,407.3 L457.9,407.9 L458.2,408.8 L460.6,408.9 L460.3,407.5 L458.7,407.3ZM457.7,271.7 L455.9,274.5 L458.1,275.6 L460.4,272.2 L459.1,268.2 L457.3,268.7 L457.7,271.7ZM458.9,248.5 L459.7,247.9 L459.3,247.0 L456.9,247.1 L457.1,248.2 L458.9,248.5ZM459.0,297.2 L449.3,291.1 L448.3,291.7 L453.6,304.2 L454.6,304.6 L459.0,297.2ZM453.0,381.0 L454.7,384.4 L457.0,384.1 L457.4,381.9 L456.3,379.3 L450.2,377.8 L449.8,380.9 L453.0,381.0ZM453.6,402.5 L455.3,403.3 L456.1,402.5 L454.4,400.5 L453.7,401.0 L453.6,402.5ZM451.6,315.7 L453.3,319.6 L456.0,318.1 L454.2,314.6 L451.6,315.7ZM449.8,277.6 L449.6,279.0 L453.9,281.6 L455.8,279.9 L455.5,278.9 L451.4,276.4 L449.8,277.6ZM412.7,446.1 L412.4,447.3 L415.9,451.5 L416.8,451.6 L423.5,446.8 L422.0,443.5 L422.7,441.9 L424.3,441.8 L426.2,444.2 L427.1,444.4 L455.4,424.8 L455.7,423.7 L452.3,422.8 L450.2,420.6 L449.3,420.5 L435.7,430.0 L431.3,431.1 L429.5,434.6 L412.7,446.1ZM445.6,406.0 L442.9,409.2 L443.7,410.6 L444.8,411.2 L448.6,411.0 L451.1,414.8 L453.6,412.7 L454.9,407.2 L454.2,406.4 L445.6,406.0ZM442.8,363.2 L446.8,370.7 L447.9,370.4 L454.0,359.2 L453.7,358.2 L446.6,360.3 L442.8,363.2ZM449.8,312.2 L450.7,312.6 L453.1,311.4 L451.6,307.9 L448.7,309.1 L449.8,312.2ZM430.9,399.7 L431.3,400.8 L435.7,402.1 L449.7,403.1 L450.5,402.5 L450.9,399.6 L453.0,398.0 L450.1,393.6 L448.5,392.5 L446.4,387.6 L443.8,385.4 L436.6,385.0 L434.8,385.4 L431.9,387.5 L434.0,390.7 L434.6,393.4 L430.9,399.7ZM450.4,247.8 L450.9,248.6 L452.3,248.7 L452.8,246.8 L451.0,246.3 L450.4,247.8ZM446.2,254.7 L448.8,261.2 L450.2,260.8 L449.6,257.7 L451.1,255.1 L446.8,253.7 L446.2,254.7ZM442.5,295.4 L447.1,305.7 L450.0,304.9 L445.2,293.9 L442.5,295.4ZM447.3,317.5 L446.8,318.3 L447.8,321.0 L449.3,321.3 L449.8,320.4 L448.7,317.7 L447.3,317.5ZM409.2,416.9 L412.2,422.9 L415.5,422.6 L418.7,424.7 L420.4,422.1 L421.9,421.8 L422.9,423.0 L422.2,425.5 L422.7,426.3 L432.7,427.3 L434.4,426.3 L433.6,424.0 L434.3,422.7 L435.7,422.6 L437.6,424.1 L441.2,421.8 L440.4,419.1 L441.1,417.8 L442.7,417.6 L444.6,419.3 L447.5,416.8 L441.9,413.1 L439.0,410.0 L438.8,408.6 L440.5,407.0 L440.3,406.0 L433.8,404.8 L425.7,411.7 L428.5,415.4 L432.0,416.8 L432.6,419.3 L431.9,422.1 L429.8,421.9 L429.0,418.7 L426.1,417.7 L423.7,419.2 L420.2,417.1 L420.0,415.7 L423.0,409.8 L422.1,408.7 L420.5,409.1 L419.6,411.3 L417.1,411.7 L415.9,414.1 L417.9,415.3 L418.2,416.6 L415.8,419.1 L414.1,419.0 L412.1,416.5 L409.2,416.9ZM430.0,241.9 L427.3,246.5 L427.8,247.5 L446.2,250.4 L447.1,249.8 L447.3,246.2 L445.5,245.4 L443.5,243.0 L440.6,244.5 L437.4,244.4 L435.7,243.7 L434.1,241.5 L430.0,241.9ZM446.5,314.4 L446.9,313.6 L446.1,311.5 L445.0,311.0 L444.5,311.8 L445.3,314.1 L446.5,314.4ZM441.7,374.0 L441.4,375.2 L443.4,378.1 L444.4,378.2 L445.1,375.3 L444.1,373.5 L443.3,373.1 L441.7,374.0ZM426.4,463.5 L431.4,466.8 L444.7,457.1 L444.8,456.1 L442.1,452.3 L441.1,452.3 L426.5,462.4 L426.4,463.5ZM438.8,321.0 L438.6,322.3 L440.7,322.9 L444.1,322.8 L444.8,322.2 L443.5,319.2 L438.8,321.0ZM436.9,289.0 L436.7,290.0 L438.3,293.3 L444.1,290.5 L442.4,286.6 L436.9,289.0ZM427.2,255.8 L427.0,259.3 L429.2,259.7 L430.2,260.9 L430.0,263.4 L432.5,271.9 L435.0,271.8 L435.2,270.7 L433.4,269.1 L433.8,267.6 L436.0,267.0 L438.2,268.7 L439.0,267.9 L436.0,258.5 L439.8,256.0 L442.2,255.6 L442.0,253.1 L427.2,250.6 L426.6,251.4 L427.1,252.3 L429.7,252.7 L431.0,254.8 L429.8,256.2 L427.2,255.8ZM442.0,316.3 L442.4,315.4 L440.8,312.0 L434.0,315.0 L435.8,318.8 L442.0,316.3ZM438.1,381.5 L441.2,382.1 L441.6,381.1 L439.4,377.9 L438.6,377.6 L437.6,379.0 L438.1,381.5ZM435.5,281.6 L435.5,284.9 L436.3,285.4 L441.6,282.8 L440.7,280.0 L437.3,280.0 L435.2,276.3 L434.0,277.2 L435.5,281.6ZM434.5,363.9 L433.7,364.9 L435.2,367.1 L436.7,368.5 L438.6,368.3 L440.0,366.3 L439.6,365.1 L438.1,364.1 L434.5,363.9ZM432.7,311.5 L439.7,308.6 L438.6,305.4 L431.5,308.4 L432.7,311.5ZM419.7,457.9 L423.6,460.6 L433.7,453.6 L432.3,450.2 L432.8,448.7 L434.5,448.5 L436.9,451.2 L439.4,449.7 L439.6,448.7 L436.3,443.8 L435.3,443.6 L420.3,454.0 L419.0,456.3 L419.7,457.9ZM427.8,303.2 L430.1,305.3 L437.2,302.3 L436.2,298.3 L432.2,298.8 L428.0,302.2 L427.8,303.2ZM425.9,371.1 L425.3,382.4 L429.8,384.9 L434.7,382.0 L434.6,380.2 L431.6,375.6 L429.7,368.9 L426.7,369.6 L425.9,371.1ZM425.5,299.5 L431.1,295.9 L434.7,295.0 L433.9,291.6 L423.7,295.2 L425.5,299.5ZM426.1,290.3 L432.6,288.3 L432.2,284.9 L423.9,286.2 L423.8,287.2 L426.1,290.3ZM429.7,314.9 L428.6,317.3 L430.5,318.7 L431.4,318.6 L430.6,315.1 L429.7,314.9ZM414.2,284.1 L418.2,286.1 L419.9,284.0 L422.3,284.5 L423.9,283.0 L431.0,281.6 L431.5,280.8 L431.0,278.2 L430.2,277.7 L426.8,278.4 L414.2,282.9 L414.2,284.1ZM425.0,392.7 L426.3,395.3 L425.3,397.9 L427.5,398.9 L431.4,393.2 L431.3,392.2 L427.6,388.5 L425.1,391.1 L425.0,392.7ZM404.0,369.9 L399.5,372.8 L397.4,372.5 L395.3,374.1 L395.2,375.0 L404.9,383.3 L412.4,388.6 L414.7,387.6 L419.4,382.0 L421.8,380.8 L423.0,375.2 L423.0,369.9 L424.5,367.2 L429.5,365.0 L429.7,363.7 L420.9,357.8 L416.2,359.8 L415.8,364.0 L414.7,365.7 L413.4,366.0 L412.2,364.7 L412.8,360.2 L409.5,359.3 L408.9,360.2 L410.2,361.8 L410.0,363.2 L408.7,363.8 L406.4,363.0 L405.2,365.1 L406.3,366.7 L411.8,369.7 L412.5,371.3 L411.8,372.8 L409.2,373.6 L404.0,369.9ZM418.0,235.5 L426.8,237.8 L428.2,235.5 L424.6,233.3 L421.1,233.5 L419.7,232.8 L418.0,235.5ZM425.7,272.3 L427.5,272.1 L426.5,270.3 L424.9,270.8 L425.7,272.3ZM409.5,441.5 L411.8,442.4 L421.7,435.5 L422.7,433.6 L424.7,433.4 L427.0,431.9 L427.3,430.3 L421.7,429.4 L420.5,429.9 L418.1,434.2 L409.6,440.6 L409.5,441.5ZM418.9,311.6 L423.2,311.8 L426.0,308.7 L426.1,307.8 L425.1,307.5 L418.7,310.5 L418.9,311.6ZM417.4,336.8 L410.2,355.3 L410.6,356.2 L413.1,356.8 L416.0,356.5 
38138L419.4,355.0 L424.8,339.8 L417.4,336.8ZM420.8,403.1 L422.0,403.5 L424.0,402.0 L424.0,401.1 L421.7,400.1 L420.8,403.1ZM393.9,247.2 L392.1,257.3 L394.2,259.5 L399.9,259.4 L400.5,258.7 L400.4,253.1 L401.3,252.1 L402.6,252.3 L403.4,253.4 L404.1,267.3 L406.8,267.8 L407.9,270.7 L416.4,271.5 L417.3,270.8 L417.0,266.0 L418.4,265.0 L421.1,265.4 L423.8,257.1 L422.6,254.2 L421.2,253.1 L418.5,254.1 L416.7,253.6 L414.4,254.3 L408.6,253.4 L406.9,252.0 L406.4,250.3 L406.9,246.3 L408.0,245.6 L410.3,245.8 L410.9,245.1 L408.8,242.7 L408.7,241.4 L410.1,240.4 L412.2,241.6 L413.8,241.4 L413.7,237.0 L407.3,232.7 L404.4,236.1 L401.6,235.4 L399.6,232.9 L401.0,228.3 L393.5,223.3 L392.7,223.9 L389.4,239.9 L391.8,240.5 L393.2,237.2 L394.9,236.7 L395.9,237.9 L395.5,241.1 L401.2,242.7 L402.0,244.2 L399.9,247.5 L393.9,247.2ZM417.8,241.7 L418.8,242.6 L421.8,241.4 L422.2,240.5 L418.2,239.3 L417.8,241.7ZM416.3,390.5 L416.2,391.8 L419.6,393.7 L422.1,390.0 L421.9,387.5 L420.5,386.5 L419.1,387.0 L416.3,390.5ZM417.9,398.7 L418.5,400.0 L420.2,399.1 L419.2,397.9 L417.9,398.7ZM409.6,399.1 L409.1,401.3 L412.8,404.8 L416.4,406.2 L417.9,405.2 L417.9,400.0 L415.4,399.6 L411.7,395.4 L410.8,395.4 L409.2,397.2 L409.6,399.1ZM416.0,275.6 L415.0,276.3 L415.7,278.0 L417.6,276.8 L416.0,275.6ZM404.7,437.0 L405.7,438.7 L407.0,438.8 L413.8,433.7 L414.0,432.8 L412.6,431.7 L411.1,431.9 L405.3,436.0 L404.7,437.0ZM411.9,338.6 L413.1,338.3 L413.7,335.4 L410.7,334.6 L408.6,335.4 L408.6,336.6 L411.9,338.6ZM395.9,427.6 L398.6,432.5 L399.6,432.8 L402.6,432.1 L406.9,428.7 L408.8,428.4 L409.9,427.0 L412.5,426.6 L411.2,424.1 L407.5,425.7 L405.2,423.3 L405.1,421.9 L406.7,420.2 L405.2,416.8 L406.0,414.7 L403.2,412.1 L400.9,411.6 L399.7,412.3 L402.8,416.5 L402.9,418.0 L402.1,419.6 L400.1,419.3 L399.7,417.0 L397.6,415.2 L394.5,417.8 L396.8,422.8 L400.8,424.2 L403.2,426.1 L403.4,427.7 L401.7,428.6 L397.2,426.1 L395.9,427.6ZM397.0,404.8 L397.4,408.1 L398.4,408.8 L400.9,407.8 L398.9,405.7 L399.1,404.0 L400.3,403.5 L402.2,404.2 L404.6,407.4 L405.2,409.7 L409.5,413.3 L411.5,413.0 L410.8,410.9 L411.1,409.0 L407.4,406.5 L407.3,403.8 L404.4,403.0 L403.3,401.3 L397.6,401.7 L397.0,404.8ZM398.6,338.5 L398.3,346.3 L399.2,348.5 L406.4,353.6 L407.4,353.6 L411.3,341.9 L408.5,340.3 L407.6,337.9 L406.8,337.5 L404.1,339.2 L398.6,338.5ZM408.2,448.9 L409.1,448.9 L411.0,447.0 L407.4,445.0 L406.0,446.9 L408.2,448.9ZM407.0,394.1 L407.9,394.0 L410.0,391.7 L408.7,390.1 L407.8,390.2 L405.8,392.7 L407.0,394.1ZM401.0,278.2 L399.5,280.1 L400.1,284.1 L402.1,284.5 L406.9,281.9 L405.2,274.5 L401.5,274.7 L401.0,278.2ZM384.9,385.2 L384.0,386.2 L386.2,391.2 L388.5,391.5 L389.5,392.4 L389.8,398.1 L394.2,398.2 L394.9,394.3 L396.3,393.4 L397.8,394.5 L397.9,398.3 L401.1,398.4 L405.2,393.8 L403.5,391.2 L405.2,387.5 L404.2,386.9 L402.5,387.9 L401.2,387.6 L400.6,386.5 L401.2,384.2 L396.0,379.8 L388.3,384.6 L384.9,385.2ZM404.9,288.5 L404.5,287.0 L402.8,287.8 L403.5,289.1 L404.9,288.5ZM370.3,358.1 L373.0,356.2 L374.6,356.8 L376.2,359.5 L376.0,361.9 L379.7,363.7 L381.0,361.3 L378.5,358.8 L378.4,357.2 L379.8,356.4 L382.4,357.3 L383.3,354.4 L386.2,351.2 L386.8,349.4 L388.6,348.5 L390.5,349.5 L390.8,351.4 L386.0,356.1 L385.4,361.7 L389.3,362.4 L390.3,358.6 L393.4,358.3 L394.4,359.5 L394.4,363.9 L397.5,365.9 L399.3,364.6 L401.5,364.7 L404.7,359.4 L404.0,358.5 L401.7,359.0 L400.6,358.5 L400.3,356.8 L402.1,355.5 L402.2,354.6 L396.9,350.5 L394.9,345.7 L392.9,345.7 L391.9,344.9 L392.1,343.2 L395.1,341.6 L394.9,337.2 L394.0,337.0 L388.9,339.8 L386.6,336.1 L383.5,336.3 L380.3,333.5 L368.8,349.5 L367.8,356.0 L370.3,358.1ZM394.4,268.1 L400.6,269.0 L400.5,262.8 L394.6,262.8 L393.5,267.3 L394.4,268.1ZM397.5,434.0 L393.7,434.3 L394.4,435.9 L397.0,435.9 L397.5,434.0ZM381.6,285.8 L382.6,287.7 L394.1,290.1 L396.9,287.8 L396.2,286.5 L382.9,283.5 L382.1,284.0 L381.6,285.8ZM390.1,281.9 L395.9,283.1 L396.4,280.0 L394.7,277.6 L393.0,277.2 L389.9,274.7 L389.1,275.4 L389.0,281.1 L390.1,281.9ZM390.0,370.6 L392.7,372.3 L395.4,370.0 L395.1,367.9 L392.6,366.9 L391.0,367.3 L389.3,369.5 L390.0,370.6ZM384.5,413.5 L385.7,413.9 L387.8,411.7 L391.3,412.8 L392.1,411.3 L394.1,410.3 L393.3,407.2 L389.5,407.7 L388.3,409.5 L384.3,410.9 L384.5,413.5ZM383.6,381.2 L385.3,382.1 L386.9,381.9 L392.7,377.6 L385.4,371.2 L381.4,376.9 L383.6,381.2ZM389.5,423.9 L388.3,424.8 L389.3,427.0 L390.1,427.3 L391.7,424.7 L389.5,423.9ZM390.6,294.3 L391.5,293.6 L391.0,292.6 L382.7,290.9 L381.8,291.4 L382.3,292.6 L390.6,294.3ZM385.6,264.0 L388.0,268.9 L389.7,269.2 L391.5,261.4 L389.3,259.1 L385.1,257.2 L382.4,264.2 L383.3,264.9 L385.6,264.0ZM381.3,330.1 L386.2,332.9 L387.1,335.8 L390.1,336.0 L391.4,335.0 L391.2,334.1 L382.7,327.0 L381.3,330.1ZM386.8,420.3 L387.5,420.8 L389.9,420.3 L391.2,417.9 L390.0,417.2 L386.6,417.6 L386.8,420.3ZM385.6,253.2 L386.1,254.0 L388.9,255.0 L389.7,251.0 L386.4,250.3 L385.6,253.2ZM384.6,239.5 L385.4,238.9 L389.5,220.9 L386.4,218.4 L385.5,219.0 L381.1,238.2 L381.6,239.0 L384.6,239.5ZM302.8,309.8 L299.6,308.2 L297.7,309.7 L300.
381381,312.8 L301.7,313.6 L303.7,313.3 L305.1,314.7 L307.1,314.7 L308.8,316.6 L313.3,313.3 L315.3,313.3 L325.5,324.3 L328.7,319.7 L321.9,316.9 L319.3,313.6 L319.8,310.7 L323.4,307.2 L327.0,305.8 L335.8,305.6 L336.6,302.7 L337.8,301.9 L339.2,302.6 L340.1,305.3 L348.9,305.0 L355.2,306.0 L355.9,307.6 L352.7,320.3 L350.5,321.8 L346.5,322.8 L338.5,323.9 L338.1,330.0 L339.6,333.2 L341.3,334.7 L344.1,330.0 L347.3,328.6 L348.6,328.9 L349.1,330.0 L348.4,332.3 L355.4,339.6 L353.1,344.5 L355.7,346.0 L359.3,346.8 L360.3,348.0 L360.3,350.2 L362.7,351.5 L365.6,349.4 L369.1,343.3 L366.5,342.0 L359.9,342.0 L359.7,339.1 L355.1,335.2 L355.6,330.4 L356.6,329.6 L358.0,330.1 L361.7,334.4 L362.7,338.0 L364.0,338.8 L367.0,338.8 L368.1,337.6 L368.7,334.8 L371.3,333.7 L370.9,332.7 L366.4,329.6 L366.6,328.2 L368.5,326.7 L370.2,326.7 L373.0,330.4 L375.2,331.2 L378.0,324.3 L374.9,321.3 L374.8,319.8 L377.4,317.9 L380.5,320.1 L381.6,319.8 L389.2,297.8 L388.7,297.0 L382.1,295.6 L380.7,294.1 L375.7,293.2 L373.3,294.3 L368.5,293.2 L367.2,291.7 L365.5,291.3 L365.0,289.6 L369.7,279.7 L367.8,278.4 L367.0,276.7 L364.8,277.1 L360.0,275.2 L359.2,275.7 L356.9,282.1 L363.7,285.2 L364.3,287.1 L362.6,288.0 L355.6,285.4 L353.2,290.8 L360.0,294.3 L360.5,295.6 L359.7,296.7 L352.0,294.4 L350.0,298.4 L348.4,299.0 L347.3,297.5 L348.1,294.1 L344.0,292.4 L340.5,298.8 L338.9,299.5 L337.7,298.3 L338.0,295.0 L328.2,290.8 L327.9,289.2 L329.5,288.2 L339.0,292.0 L340.0,291.6 L351.9,261.5 L351.5,260.6 L345.7,257.9 L337.9,273.5 L338.6,275.6 L337.8,279.5 L335.6,280.5 L333.7,284.4 L332.6,285.1 L330.9,283.9 L331.6,280.9 L329.7,280.4 L324.5,291.1 L324.8,292.1 L327.6,292.6 L331.7,295.7 L331.8,297.9 L330.1,298.2 L326.2,295.4 L319.5,294.7 L317.3,296.9 L315.2,297.2 L313.8,295.2 L311.5,295.0 L310.8,293.2 L308.9,291.8 L309.3,290.1 L311.4,289.3 L311.4,287.7 L304.0,285.6 L303.4,286.6 L304.5,288.5 L303.9,290.5 L305.4,292.4 L305.5,294.5 L314.7,301.5 L317.2,300.7 L319.0,301.0 L320.1,302.1 L320.5,304.4 L318.8,306.2 L316.2,306.2 L309.3,301.7 L304.1,306.2 L304.7,307.0 L307.5,307.4 L309.2,305.8 L310.7,305.9 L311.4,307.6 L309.8,309.8 L307.2,310.5 L302.8,309.8ZM382.6,365.4 L386.4,367.8 L387.8,365.9 L383.6,363.9 L382.6,365.4ZM384.4,431.9 L386.3,432.1 L387.0,431.0 L383.2,422.1 L382.3,421.7 
38138L381.4,422.8 L384.4,431.9ZM383.0,391.0 L381.8,389.5 L379.7,391.0 L381.5,394.7 L382.9,394.3 L383.0,391.0ZM383.0,250.3 L382.4,249.5 L379.0,249.0 L378.1,251.2 L382.0,252.6 L383.0,250.3ZM372.0,235.2 L372.5,237.5 L377.2,237.7 L382.2,215.9 L378.2,212.8 L377.1,213.4 L372.0,235.2ZM367.7,361.7 L368.1,370.6 L370.3,371.5 L372.2,373.8 L371.0,375.4 L368.2,374.9 L368.1,378.6 L371.8,380.3 L374.7,377.8 L375.1,375.1 L379.0,374.7 L382.1,369.6 L368.6,360.9 L367.7,361.7ZM377.7,266.1 L378.6,265.6 L381.6,256.4 L381.1,255.6 L377.9,254.8 L377.1,255.3 L374.2,264.3 L377.7,266.1ZM379.0,397.0 L377.6,397.3 L378.5,399.4 L380.9,399.1 L381.0,397.9 L379.0,397.0ZM374.0,386.3 L374.9,389.4 L375.9,389.8 L379.6,387.1 L379.8,386.2 L377.9,384.4 L376.1,385.5 L374.6,385.4 L374.0,386.3ZM367.1,420.8 L368.1,421.5 L373.9,419.9 L376.1,421.0 L378.2,420.2 L379.6,418.7 L368.6,404.5 L367.6,405.2 L367.1,420.8ZM371.9,286.6 L375.8,287.7 L377.4,289.1 L379.2,288.6 L376.5,285.0 L372.2,285.0 L371.9,286.6ZM376.1,391.1 L375.1,390.7 L374.4,391.8 L376.2,394.2 L377.0,393.3 L376.1,391.1ZM366.7,257.4 L368.6,259.7 L371.4,259.8 L373.8,252.7 L374.1,248.2 L370.0,247.9 L366.7,257.4ZM360.9,271.4 L361.3,272.4 L366.0,274.4 L367.1,276.4 L370.8,275.6 L371.2,273.3 L369.2,271.9 L368.7,269.7 L366.8,269.3 L365.6,267.7 L362.8,267.3 L360.9,271.4ZM367.9,394.4 L369.0,395.1 L370.6,393.4 L369.8,392.2 L368.5,392.3 L367.9,394.4ZM359.5,253.1 L363.1,255.8 L364.1,255.5 L366.3,250.4 L366.4,247.0 L362.0,246.6 L359.5,253.1ZM362.7,368.2 L360.6,373.2 L363.5,376.6 L364.6,376.7 L364.2,365.2 L362.5,365.6 L362.7,368.2ZM362.8,358.0 L363.7,357.8 L363.8,356.8 L361.7,355.0 L360.8,355.0 L360.3,356.5 L362.8,358.0ZM357.3,225.3 L362.3,226.4 L363.5,222.6 L357.5,221.1 L356.3,224.1 L357.3,225.3ZM355.8,230.6 L356.9,232.1 L360.7,232.0 L361.6,231.5 L361.9,230.2 L357.3,228.5 L356.1,229.1 L355.8,230.6ZM358.9,359.9 L356.2,364.8 L357.7,366.1 L361.1,365.0 L361.3,360.8 L358.9,359.9ZM357.2,264.3 L357.5,267.3 L356.2,267.8 L353.9,267.2 L353.3,269.2 L357.9,270.5 L360.2,265.0 L357.9,263.7 L357.2,264.3ZM353.8,257.3 L354.9,256.8 L359.9,242.0 L359.3,241.3 L352.6,240.2 L351.9,240.7 L351.7,242.5 L355.7,244.2 L356.6,245.8 L353.4,255.1 L353.2,256.6 L353.8,257.3ZM342.1,351.6 L342.0,352.8 L352.2,363.2 L354.2,361.6 L356.5,357.9 L356.6,355.6 L358.1,353.1 L357.6,352.3 L353.7,351.1 L353.0,354.2 L351.5,355.1 L350.2,354.2 L349.5,350.8 L342.1,351.6ZM348.9,290.9 L349.9,290.4 L356.3,274.5 L355.9,273.6 L352.4,272.3 L351.5,272.8 L345.1,288.7 L345.4,289.6 L348.9,290.9ZM348.4,234.9 L349.2,236.1 L353.0,234.7 L352.3,232.4 L353.5,227.3 L353.0,226.5 L350.1,226.9 L348.4,234.9ZM341.4,316.4 L336.0,315.8 L334.0,318.5 L334.2,319.5 L337.2,320.6 L340.5,320.7 L350.0,318.6 L352.3,308.9 L348.8,308.1 L339.8,308.5 L338.6,313.0 L340.8,313.4 L345.4,312.3 L346.4,312.9 L346.6,314.2 L345.7,315.2 L341.4,316.4ZM351.5,340.7 L351.4,339.7 L346.4,334.7 L345.2,334.7 L344.5,337.7 L349.9,341.7 L351.5,340.7ZM343.7,251.6 L349.3,254.3 L350.2,252.6 L349.5,249.2 L347.6,247.6 L348.5,243.7 L347.6,241.8 L346.8,242.2 L343.7,251.6ZM341.5,231.5 L342.1,232.3 L345.8,232.6 L346.6,227.3 L342.3,227.8 L341.5,231.5ZM338.7,336.9 L331.0,340.7 L330.9,341.8 L338.4,348.5 L345.8,347.6 L343.3,342.6 L343.1,340.6 L338.7,336.9ZM335.0,236.1 L333.9,236.6 L331.2,245.5 L333.1,246.1 L335.7,239.2 L337.6,238.6 L338.5,240.3 L336.0,247.9 L339.8,249.8 L344.0,237.8 L342.5,235.5 L340.8,235.3 L338.8,236.9 L335.0,236.1ZM334.3,259.1 L334.6,260.1 L339.4,262.1 L342.3,256.3 L340.9,255.7 L338.6,258.2 L335.9,256.4 L334.3,259.1ZM329.8,268.8 L330.2,269.8 L335.0,271.8 L337.9,265.3 L332.7,263.0 L329.8,268.8ZM323.6,314.3 L331.4,316.8 L334.6,312.4 L335.9,309.1 L326.6,309.0 L322.5,312.3 L323.6,314.3ZM327.7,326.9 L329.6,330.4 L327.5,333.5 L329.6,336.7 L330.6,336.7 L333.2,334.2 L335.7,334.1 L334.7,323.1 L331.4,322.0 L327.7,326.9ZM335.4,277.6 L335.1,275.5 L332.4,274.9 L331.8,277.4 L334.4,278.4 L335.4,277.6ZM328.3,230.9 L328.8,232.0 L331.8,232.1 L334.9,224.0 L334.6,223.1 L331.9,222.5 L328.3,230.9ZM321.9,241.4 L328.1,243.8 L330.7,235.7 L322.6,234.5 L321.9,236.1 L320.5,237.1 L320.0,239.1 L321.9,241.4ZM321.1,264.9 L321.5,265.9 L326.6,267.8 L329.5,261.3 L324.4,258.8 L321.1,264.9ZM319.4,285.6 L314.4,290.0 L314.9,291.0 L320.9,291.4 L329.5,273.8 L329.3,272.8 L320.4,268.8 L319.4,269.0 L318.6,272.8 L321.1,273.9 L323.6,273.3 L325.8,274.4 L326.2,275.7 L325.4,276.8 L323.5,277.1 L320.5,280.7 L320.7,283.0 L319.4,285.6ZM326.4,348.7 L323.0,352.0 L324.4,353.6 L327.4,350.3 L326.4,348.7ZM323.0,345.8 L324.1,345.9 L325.8,343.8 L324.4,341.9 L321.9,344.3 L323.0,345.8ZM320.8,360.3 L320.2,365.0 L321.2,365.0 L323.4,362.2 L323.3,361.2 L320.8,360.3ZM317.7,324.3 L317.3,327.9 L318.8,328.9 L322.0,325.6 L314.8,317.1 L313.9,316.8 L312.7,318.4 L317.7,324.3ZM309.7,260.3 L310.1,261.2 L317.6,264.2 L320.4,259.0 L318.4,258.2 L317.1,260.1 L315.1,260.7 L312.6,259.9 L310.9,257.8 L309.7,260.3ZM307.3,268.4 L315.4,271.0 L316.4,267.3 L308.6,264.3 L307.3,268.4ZM312.2,285.8 L312.9,286.9 L314.6,286.1 L315.4,285.3 L315.3,284.0 L313.3,283.4 L312.2,285.8ZM304.3,275.5 L304.7,276.5 L310.8,278.6 L312.5,275.2 L310.5,273.0 L306.3,271.5 L304.3,275.5ZM308.5,233.1 L310.2,234.2 L311.1,233.5 L309.5,232.1 L308.5,233.1ZM302.8,216.2 L305.8,225.5 L307.4,228.4 L308.7,228.7 L310.0,226.2 L306.3,215.2 L303.2,214.8 L302.8,216.2ZM293.7,252.0 L296.4,254.0 L296.7,256.1 L300.5,257.5 L301.4,257.2 L302.3,255.2 L303.9,255.0 L304.8,256.2 L304.5,258.9 L306.0,259.5 L306.8,259.1 L308.0,254.2 L307.6,253.4 L294.8,249.9 L293.7,252.0ZM299.9,303.9 L305.0,301.6 L306.4,300.0 L306.4,299.1 L304.4,297.6 L303.3,297.7 L302.9,299.8 L301.5,301.6 L299.4,302.6 L299.9,303.9ZM290.2,262.2 L303.6,267.1 L305.0,264.6 L300.5,262.3 L299.4,260.4 L291.5,257.9 L290.2,262.2ZM288.4,227.4 L291.4,229.9 L294.0,230.5 L293.9,234.1 L294.5,234.7 L296.7,233.6 L298.6,234.5 L304.5,234.1 L304.3,232.5 L301.2,231.3 L301.7,228.9 L301.
381381,228.1 L288.8,226.3 L288.4,227.4ZM300.5,382.2 L300.1,383.8 L303.0,385.9 L304.0,385.8 L304.4,384.5 L302.4,381.9 L300.5,382.2ZM299.2,350.4 L300.3,350.3 L304.2,345.3 L303.1,343.5 L302.2,343.6 L297.7,348.2 L299.2,350.4ZM301.4,281.8 L302.0,283.1 L303.0,283.2 L303.9,280.2 L302.3,279.9 L301.4,281.8ZM302.4,353.7 L300.9,355.2 L301.7,356.1 L303.3,355.2 L302.4,353.7ZM293.9,337.7 L290.9,335.6 L289.8,337.8 L292.1,339.3 L292.9,341.2 L295.2,340.9 L298.3,343.0 L299.1,341.7 L297.8,340.5 L297.7,339.2 L301.6,334.5 L301.7,332.6 L302.9,330.9 L293.8,323.5 L292.1,325.7 L297.5,330.7 L297.9,332.6 L297.1,335.8 L295.5,337.7 L293.9,337.7ZM300.5,269.9 L299.7,274.2 L300.7,275.0 L302.6,271.1 L302.4,270.1 L300.5,269.9ZM292.9,362.0 L293.1,362.9 L297.0,366.0 L301.3,360.8 L296.7,357.5 L292.9,362.0ZM293.4,296.7 L296.4,298.3 L299.1,295.2 L297.1,291.2 L296.1,291.3 L294.7,294.4 L293.1,295.2 L293.4,296.7ZM294.0,313.5 L289.0,317.2 L290.6,319.3 L295.1,314.0 L294.0,313.5ZM292.1,211.2 L291.3,211.6 L291.4,212.6 L293.6,214.2 L294.5,214.1 L294.6,212.9 L292.1,211.2ZM291.9,280.5 L292.7,281.2 L293.5,280.5 L294.4,276.7 L293.9,275.9 L292.4,276.1 L291.5,278.6 L291.9,280.5ZM287.8,330.9 L290.1,331.6 L291.5,329.6 L289.0,327.8 L287.2,329.7 L287.8,330.9ZM284.7,250.4 L285.1,251.4 L289.5,253.1 L291.3,249.1 L286.5,246.7 L284.7,250.4ZM287.0,277.7 L287.7,278.3 L288.7,278.0 L289.5,275.0 L289.1,274.2 L287.1,274.2 L287.0,277.7ZM283.5,263.5 L284.8,264.5 L285.8,264.2 L288.4,256.8 L284.2,254.4 L282.0,258.2 L283.0,259.7 L283.5,263.5ZM281.8,320.4 L286.2,323.9 L288.1,322.4 L286.0,318.4 L285.9,316.4 L286.9,314.2 L284.3,312.4 L282.6,312.6 L280.7,311.6 L279.5,312.3 L277.8,316.0 L279.2,318.0 L281.7,315.9 L283.4,316.3 L283.7,317.8 L281.8,320.4ZM215.9,165.5 L213.3,164.6 L212.9,165.5 L219.5,191.1 L219.8,194.8 L220.9,195.2 L222.1,193.8 L223.9,193.3 L225.4,195.2 L228.7,196.7 L230.5,195.5 L232.6,195.7 L237.4,191.8 L230.9,186.0 L230.9,184.6 L232.4,182.8 L234.9,182.8 L236.9,180.6 L239.6,179.5 L241.4,179.6 L242.5,177.7 L249.4,173.9 L251.7,173.9 L253.0,172.5 L257.1,170.4 L259.9,170.2 L261.0,168.1 L263.2,166.6 L265.8,166.7 L267.4,168.5 L266.0,176.6 L266.5,179.3 L263.5,184.8 L260.7,185.2 L256.4,180.7 L255.4,180.5 L253.1,182.0 L253.6,184.3 L253.1,185.9 L251.6,186.9 L249.2,187.3 L249.0,189.6 L247.5,191.5 L246.3,191.8 L243.6,190.8 L235.7,197.2 L235.6,198.3 L237.6,200.2 L237.2,201.9 L235.9,202.2 L233.4,200.5 L232.4,200.8 L231.5,202.9 L233.0,204.3 L233.1,205.7 L232.1,206.6 L230.2,206.6 L229.5,208.4 L230.4,211.2 L232.8,212.4 L233.7,214.6 L234.6,214.5 L237.3,211.5 L239.7,207.0 L239.5,203.1 L242.1,199.4 L244.8,198.4 L250.9,197.8 L252.8,198.4 L255.0,200.3 L258.1,196.8 L260.7,196.7 L264.0,193.5 L267.6,196.2 L267.8,197.7 L266.2,200.3 L268.8,203.3 L268.5,205.0 L266.0,209.0 L269.0,210.7 L274.0,210.9 L277.2,202.7 L274.2,197.6 L273.0,192.2 L274.2,190.7 L275.9,191.4 L277.2,194.3 L277.3,197.1 L280.1,201.0 L284.7,204.1 L287.2,202.6 L285.6,194.1 L282.7,190.7 L280.6,185.9 L274.9,183.0 L272.4,179.7 L272.5,177.1 L273.6,175.0 L275.6,173.8 L278.2,173.9 L278.9,173.2 L275.2,164.3 L277.2,153.1 L276.8,152.2 L270.6,152.5 L270.7,155.5 L268.1,158.7 L263.0,161.2 L261.8,160.7 L261.4,159.5 L263.7,157.5 L263.8,156.6 L260.8,153.8 L259.6,154.0 L252.7,157.4 L251.5,158.9 L248.9,159.4 L248.2,161.5 L245.9,163.0 L246.0,165.2 L244.8,166.2 L243.4,165.7 L241.2,162.0 L234.6,162.6 L222.9,161.6 L220.6,165.4 L215.9,165.5ZM284.9,342.5 L282.4,346.6 L283.3,347.0 L286.2,345.8 L287.2,344.3 L284.9,342.5ZM284.3,337.1 L285.3,337.1 L287.1,334.9 L284.9,332.7 L282.5,335.0 L284.3,337.1ZM282.6,211.7 L284.6,213.8 L285.3,212.9 L284.2,210.5 L282.6,211.7ZM256.3,221.9 L264.9,223.2 L266.6,225.8 L270.2,225.8 L272.2,224.2 L275.7,224.8 L276.4,226.0 L276.0,229.4 L274.5,231.3 L275.7,233.2 L277.5,232.7 L278.5,229.6 L281.4,229.3 L282.4,226.8 L282.0,225.9 L278.6,224.8 L278.0,220.5 L274.2,220.4 L272.1,221.7 L259.7,219.8 L258.5,218.7 L258.8,216.4 L255.8,214.5 L255.0,215.5 L255.5,217.7 L253.9,219.6 L256.3,221.9ZM281.6,206.9 L281.9,205.7 L280.1,204.7 L278.5,207.8 L279.5,208.4 L281.6,206.9ZM211.8,157.5 L218.4,158.0 L219.3,156.3 L220.6,155.9 L222.0,156.4 L223.1,158.5 L233.4,159.5 L238.8,159.3 L245.1,157.5 L249.3,150.6 L251.0,149.6 L252.4,150.0 L254.7,152.8 L261.8,150.1 L278.1,149.2 L281.2,144.1 L281.5,139.9 L278.2,133.5 L274.0,131.0 L267.6,131.2 L265.6,133.2 L263.4,131.4 L260.0,131.5 L259.2,134.4 L257.9,135.2 L249.7,135.5 L248.0,133.4 L244.9,132.3 L241.7,134.2 L239.3,132.6 L237.3,132.6 L236.3,131.8 L235.2,128.3 L237.2,126.2 L236.7,124.2 L237.5,122.1 L236.4,120.6 L234.6,121.7 L233.2,121.3 L228.1,112.4 L227.1,112.1 L226.2,113.0 L227.3,117.3 L225.7,121.4 L226.5,130.7 L224.9,131.7 L222.3,131.2 L213.9,139.9 L215.4,140.8 L219.0,137.5 
38138L221.6,137.1 L228.1,141.6 L230.1,143.6 L230.2,144.8 L229.5,145.7 L228.2,145.8 L226.6,144.4 L222.4,142.9 L220.5,141.1 L219.6,141.2 L218.5,142.5 L219.9,144.3 L219.6,145.7 L217.4,147.5 L214.3,147.2 L211.9,150.1 L213.6,153.7 L211.7,155.7 L211.8,157.5ZM263.8,325.9 L261.2,326.3 L261.4,329.4 L264.4,327.1 L266.5,327.7 L266.4,329.3 L262.9,333.2 L263.1,334.3 L264.8,334.7 L268.0,331.5 L269.8,332.3 L269.7,333.8 L267.2,336.9 L269.1,338.7 L272.5,335.6 L275.2,336.2 L276.8,334.8 L276.8,333.7 L275.2,332.6 L275.2,331.2 L281.3,324.7 L279.4,323.6 L275.2,326.8 L269.0,327.7 L267.4,327.1 L268.0,324.9 L274.1,323.8 L276.1,321.8 L276.4,320.5 L274.8,317.2 L270.4,318.4 L267.6,317.9 L266.6,317.0 L266.5,314.8 L265.4,314.4 L262.0,318.4 L265.6,321.6 L265.8,323.1 L263.8,325.9ZM276.5,279.3 L278.7,279.3 L280.0,277.9 L279.1,273.5 L280.5,271.2 L279.6,270.4 L278.8,270.6 L276.1,275.4 L274.7,276.4 L276.5,279.3ZM277.4,180.3 L278.8,181.7 L279.9,181.3 L278.8,178.9 L277.9,179.1 L277.4,180.3ZM276.9,346.1 L277.9,346.2 L279.6,344.1 L278.3,342.4 L275.8,344.4 L276.9,346.1ZM275.7,216.0 L275.7,217.4 L278.1,218.4 L279.0,218.0 L279.0,214.7 L275.7,216.0ZM272.9,254.3 L273.3,259.1 L276.4,259.2 L278.3,254.9 L276.0,253.3 L273.7,253.0 L272.9,254.3ZM258.4,250.3 L267.8,252.0 L269.3,249.2 L273.0,249.3 L274.0,246.4 L275.4,245.9 L277.3,246.9 L277.9,245.6 L276.9,244.9 L275.6,245.1 L274.4,243.9 L272.3,244.5 L267.6,242.5 L263.6,248.6 L261.6,248.8 L257.9,247.2 L257.3,249.6 L258.4,250.3ZM175.0,286.1 L177.5,293.4 L176.5,295.9 L180.0,299.7 L184.3,307.6 L188.0,310.3 L194.4,311.7 L207.9,312.6 L213.2,312.3 L233.0,304.0 L239.4,302.4 L275.3,301.3 L276.1,300.7 L274.9,298.8 L275.4,296.5 L274.6,295.7 L224.6,296.3 L223.8,294.6 L225.2,293.4 L274.5,292.7 L275.3,291.7 L272.3,288.3 L229.0,289.2 L228.1,287.8 L229.2,286.4 L240.1,286.0 L240.9,285.3 L240.4,280.6 L237.4,279.8 L236.1,278.2 L229.5,278.0 L227.9,277.0 L227.9,273.2 L230.2,265.2 L217.0,265.7 L212.8,265.1 L209.2,263.7 L208.2,261.6 L205.7,260.7 L203.2,258.6 L201.4,259.7 L202.7,262.5 L201.8,264.6 L200.4,265.2 L197.8,264.2 L195.4,267.3 L205.2,275.4 L205.5,277.1 L203.4,280.4 L205.9,282.7 L206.0,284.3 L204.1,285.4 L201.2,288.4 L193.6,282.9 L191.2,285.1 L198.0,291.4 L197.8,293.5 L196.3,293.8 L193.3,291.9 L190.2,295.1 L188.9,295.4 L184.4,290.1 L182.1,288.9 L180.9,286.5 L176.1,284.2 L175.0,286.1ZM266.4,275.0 L270.1,276.3 L272.9,275.0 L275.9,268.4 L269.3,264.7 L264.8,267.3 L262.3,269.7 L266.4,275.0ZM261.2,354.9 L264.4,357.0 L273.4,365.5 L274.7,365.5 L275.6,361.3 L266.3,352.7 L261.3,353.4 L261.2,354.9ZM274.9,349.5 L274.8,348.5 L273.0,347.5 L269.8,351.7 L271.8,352.9 L274.9,349.5ZM266.4,215.6 L265.2,216.2 L265.3,217.2 L268.2,217.6 L268.3,216.4 L266.4,215.6ZM253.9,261.9 L260.0,266.8 L265.4,262.8 L264.7,262.0 L255.4,259.7 L253.9,261.9ZM263.3,258.4 L264.2,257.8 L264.2,255.0 L257.5,253.3 L256.7,253.6 L256.6,256.7 L263.3,258.4ZM263.0,367.5 L263.9,365.9 L260.6,362.8 L257.4,365.3 L260.6,369.1 L263.0,367.5ZM238.8,277.0 L242.7,277.6 L244.5,280.2 L253.4,279.9 L257.1,277.9 L258.0,275.9 L260.7,275.0 L261.1,274.2 L258.6,271.7 L255.0,274.0 L254.5,276.0 L253.4,276.9 L252.0,276.5 L251.1,274.6 L248.2,274.5 L239.4,274.8 L238.3,276.1 L238.8,277.0ZM252.5,231.9 L247.3,252.3 L251.0,252.3 L253.3,253.2 L256.3,241.4 L255.4,239.0 L257.4,237.5 L258.6,234.8 L258.3,234.0 L253.4,231.6 L252.5,231.9ZM256.0,269.6 L256.2,268.5 L253.6,266.3 L250.0,264.7 L248.1,265.0 L248.0,266.8 L249.5,271.3 L252.8,271.5 L256.0,269.6ZM244.0,285.2 L244.7,285.9 L254.7,285.7 L255.5,284.8 L254.3,283.0 L244.7,283.3 L244.0,283.8 L244.0,285.2ZM246.7,260.6 L250.6,260.8 L253.0,257.3 L253.0,254.9 L246.2,256.0 L245.6,259.9 L246.7,260.6ZM243.8,202.8 L244.2,204.2 L247.1,206.4 L251.7,204.4 L250.7,200.9 L244.5,201.6 L243.8,202.8ZM249.1,225.3 L248.1,225.6 L247.9,227.0 L250.7,227.6 L250.9,226.3 L249.1,225.3ZM243.8,367.9 L243.8,368.9 L244.9,369.1 L248.1,365.9 L248.1,365.0 L247.0,364.7 L243.8,367.9ZM247.7,238.4 L247.2,237.5 L244.9,237.4 L243.3,243.9 L245.9,244.3 L247.7,238.4ZM242.4,109.0 L241.1,111.3 L243.9,116.4 L245.0,116.8 L246.2,115.2 L247.0,111.9 L245.3,105.2 L241.7,105.9 L241.3,107.1 L242.4,109.0ZM233.9,266.1 L238.5,269.4 L239.8,271.6 L245.7,271.0 L244.4,264.3 L242.1,264.4 L240.1,266.7 L236.3,266.3 L234.9,264.9 L233.9,266.
381381ZM244.4,229.9 L242.4,232.6 L244.6,233.4 L245.5,230.5 L244.4,229.9ZM243.0,212.5 L243.2,213.4 L244.3,213.6 L245.2,211.7 L244.0,211.1 L243.0,212.5ZM242.6,247.0 L241.7,247.5 L240.4,251.9 L241.0,252.9 L243.5,252.5 L244.8,248.5 L244.4,247.6 L242.6,247.0ZM238.4,184.8 L241.5,187.7 L243.6,185.8 L243.1,184.5 L239.7,182.7 L238.2,183.8 L238.4,184.8ZM224.8,261.1 L241.4,260.3 L242.3,256.6 L241.5,256.0 L224.6,257.1 L224.8,261.1ZM233.7,230.0 L239.2,231.6 L242.0,226.7 L241.8,225.7 L239.8,225.1 L238.0,225.6 L236.5,223.9 L235.4,224.1 L233.7,230.0ZM239.2,242.8 L240.0,242.3 L241.8,236.5 L237.4,234.8 L235.1,241.3 L239.2,242.8ZM241.5,372.0 L234.9,366.3 L233.0,368.4 L239.3,374.3 L240.2,374.4 L241.5,372.0ZM236.7,351.6 L237.7,352.9 L239.0,351.2 L237.6,350.3 L236.7,351.6ZM232.5,250.9 L234.4,253.2 L236.8,253.0 L238.5,246.0 L234.2,245.0 L232.5,250.9ZM234.8,356.4 L234.8,357.5 L235.7,358.0 L236.8,356.2 L235.8,355.5 L234.8,356.4ZM231.1,274.9 L235.1,275.1 L236.6,272.9 L236.1,271.5 L233.2,269.4 L232.3,269.9 L231.0,273.8 L231.1,274.9ZM226.7,231.8 L223.0,234.7 L223.5,236.0 L231.8,238.6 L232.7,238.2 L233.8,234.5 L233.4,233.7 L226.7,231.8ZM228.4,222.7 L228.1,223.8 L230.0,226.5 L228.1,228.5 L230.1,229.4 L232.7,221.4 L230.9,220.8 L228.4,222.7ZM220.2,242.0 L220.3,244.7 L223.6,245.3 L225.2,244.0 L227.0,244.1 L228.6,247.5 L230.3,247.0 L231.5,242.4 L231.0,241.6 L222.0,238.8 L220.2,242.0ZM223.2,207.9 L224.2,207.6 L225.9,203.7 L221.8,202.1 L219.9,206.2 L223.2,207.9ZM216.9,250.6 L215.4,253.3 L216.1,254.1 L224.1,253.8 L224.8,253.0 L224.3,250.6 L222.1,250.0 L216.9,250.6ZM222.8,224.1 L223.9,223.3 L223.0,222.0 L219.0,220.6 L218.1,220.9 L218.3,222.1 L222.8,224.1ZM222.1,106.8 L222.6,106.1 L222.1,104.2 L220.1,104.3 L220.5,106.8 L222.1,106.8ZM215.6,260.7 L216.3,261.6 L221.1,261.4 L221.2,257.4 L216.8,257.2 L215.6,260.7ZM170.4,135.7 L175.3,141.7 L180.4,142.5 L185.1,142.1 L187.2,142.8 L194.8,142.1 L196.2,139.6 L197.9,138.8 L208.7,139.1 L217.6,129.9 L219.5,126.6 L220.7,121.3 L218.9,113.5 L217.8,112.8 L212.9,114.1 L211.4,115.8 L208.4,115.9 L207.6,116.6 L207.8,118.6 L206.5,120.9 L209.9,122.8 L209.0,126.2 L211.7,126.1 L212.7,126.8 L212.9,128.1 L212.0,129.1 L209.1,130.0 L205.4,127.6 L203.4,130.2 L200.4,128.2 L198.4,129.5 L197.2,129.4 L196.3,127.7 L198.1,125.2 L194.5,121.0 L192.8,124.0 L187.4,125.7 L185.7,125.3 L184.6,122.8 L183.4,123.0 L185.3,131.7 L184.0,133.3 L182.4,132.5 L179.9,123.8 L173.3,125.0 L173.0,126.0 L175.4,130.7 L170.1,134.3 L170.4,135.7ZM214.4,233.7 L214.6,234.8 L215.7,234.7 L220.5,228.2 L220.3,227.2 L214.7,226.7 L214.6,227.7 L216.5,230.1 L214.4,233.7ZM213.6,106.5 L212.8,107.3 L213.6,108.9 L216.5,108.0 L215.9,106.3 L213.6,106.5ZM162.8,196.8 L162.6,198.2 L165.7,199.5 L182.6,203.6 L184.1,201.5 L181.6,200.5 L181.0,199.1 L183.4,196.9 L185.0,196.4 L187.2,197.2 L189.3,196.1 L191.2,198.2 L193.9,198.6 L196.6,194.9 L200.1,195.2 L202.3,192.4 L215.2,197.1 L216.0,194.4 L215.4,190.3 L207.9,164.0 L206.4,163.2 L191.6,166.5 L190.3,168.8 L189.6,173.3 L187.6,177.2 L191.9,181.2 L192.3,182.5 L188.9,186.5 L179.6,186.6 L173.3,181.1 L174.3,178.0 L171.1,175.5 L171.8,172.4 L169.0,172.6 L163.8,179.6 L166.0,182.4 L174.1,189.6 L174.5,191.0 L172.2,193.6 L164.3,195.2 L162.8,196.8ZM211.6,96.0 L204.6,96.0 L203.8,97.0 L205.0,99.4 L207.4,99.6 L209.0,102.0 L210.3,102.3 L213.2,100.5 L211.6,96.0ZM211.6,258.7 L213.0,258.5 L212.9,256.3 L209.9,256.7 L210.0,257.7 L211.6,258.7ZM213.2,224.2 L212.2,223.2 L210.6,224.2 L212.4,225.8 L213.2,224.2ZM212.5,230.9 L212.4,229.9 L209.4,227.6 L207.9,227.4 L206.9,228.4 L207.1,229.3 L209.9,230.6 L210.9,232.0 L212.5,230.9ZM202.7,197.8 L209.7,201.3 L211.0,199.7 L210.6,198.9 L203.8,196.1 L202.7,197.8ZM206.1,238.1 L198.8,248.3 L201.8,250.3 L205.7,245.9 L209.2,240.0 L206.1,238.1ZM199.5,159.6 L200.4,160.2 L206.2,158.9 L207.1,157.3 L206.4,152.4 L201.4,153.2 L199.2,154.4 L199.5,159.6ZM193.9,214.2 L189.5,213.5 L189.3,217.3 L191.1,219.2 L193.2,219.1 L194.4,216.7 L195.8,216.2 L198.1,217.2 L198.9,219.3 L202.4,220.8 L206.6,213.3 L205.1,210.9 L198.1,209.0 L195.3,213.8 L193.9,214.2ZM199.0,141.9 L196.1,143.5 L196.6,148.3 L197.4,148.8 L199.5,148.0 L201.0,149.9 L202.3,149.9 L203.7,146.1 L203.3,142.2 L202.1,141.6 L199.0,141.9ZM201.5,124.4 L202.6,124.4 L202.8,123.3 L199.9,119.5 L198.8,119.5 L198.5,12
381380.8 L201.5,124.4ZM195.2,272.4 L195.2,271.4 L193.8,270.4 L192.2,271.5 L193.8,273.4 L195.2,272.4ZM192.5,153.7 L193.3,157.7 L194.7,157.2 L194.4,153.6 L193.6,152.7 L192.5,153.7ZM191.9,262.7 L192.1,263.6 L193.3,264.3 L194.6,262.9 L193.2,261.5 L191.9,262.7ZM190.1,254.9 L193.5,256.2 L194.4,255.1 L193.7,253.2 L190.7,253.5 L190.1,254.9ZM180.6,92.5 L175.6,91.1 L175.3,92.0 L182.0,110.6 L186.0,110.9 L187.8,116.3 L189.1,116.9 L190.8,113.1 L193.9,111.2 L192.7,107.6 L188.0,104.4 L183.8,99.6 L183.7,97.1 L181.4,94.8 L180.6,92.5ZM185.4,226.6 L185.6,227.7 L189.3,229.4 L191.1,225.4 L187.4,223.5 L185.4,226.6ZM186.0,278.4 L186.4,282.8 L188.2,283.5 L190.5,280.2 L187.4,277.7 L186.0,278.4ZM184.3,268.7 L184.7,269.9 L185.6,270.1 L189.8,267.2 L190.0,266.2 L185.7,264.0 L184.3,268.7ZM185.1,200.7 L185.2,202.1 L187.2,201.8 L186.8,200.7 L185.1,200.7ZM178.4,258.4 L179.2,259.6 L181.0,258.3 L183.1,258.4 L186.5,252.7 L186.6,249.8 L181.8,246.9 L180.8,247.4 L180.1,255.3 L178.4,258.4ZM181.7,171.7 L181.8,172.7 L184.0,174.5 L185.9,173.2 L183.4,170.5 L181.7,171.7ZM181.8,146.7 L185.4,146.9 L185.8,145.8 L184.8,145.2 L182.2,145.5 L181.8,146.7ZM183.8,114.3 L181.6,115.5 L182.2,116.2 L184.3,115.5 L183.8,114.3ZM177.1,222.7 L178.0,225.0 L177.2,227.1 L179.5,228.1 L182.1,223.7 L183.8,219.0 L181.3,217.7 L179.2,218.1 L177.1,222.7ZM175.5,111.0 L176.6,111.4 L178.5,110.0 L175.7,102.0 L174.8,101.6 L172.9,102.9 L175.5,111.0ZM174.1,213.4 L174.2,214.5 L176.2,215.4 L177.6,214.6 L177.4,213.7 L175.5,212.7 L174.1,213.4ZM172.1,164.2 L173.5,166.3 L176.7,165.6 L177.2,164.6 L176.5,163.8 L172.7,163.4 L172.1,164.2ZM176.4,233.7 L169.2,229.6 L167.1,233.7 L174.3,237.5 L176.4,233.7ZM171.7,119.6 L172.5,120.1 L174.8,119.3 L173.9,116.3 L171.2,117.1 L171.7,119.6ZM169.9,93.5 L172.2,99.1 L174.1,97.9 L171.6,92.4 L169.9,93.5ZM167.5,103.9 L167.0,104.8 L169.7,113.4 L170.5,113.9 L172.3,113.2 L172.7,112.3 L169.9,103.8 L167.5,103.9ZM163.1,255.8 L162.6,259.5 L168.7,264.3 L170.3,264.0 L172.5,260.9 L172.1,260.0 L164.0,255.3 L163.1,255.8ZM166.5,130.3 L166.3,131.3 L168.1,133.2 L171.4,129.4 L170.0,128.1 L166.5,130.3ZM167.8,206.6 L166.1,209.6 L167.4,211.1 L169.8,209.4 L167.8,206.6ZM131.9,148.0 L128.9,153.6 L136.2,158.0 L135.7,160.3 L136.0,165.4 L135.1,167.1 L135.4,171.7 L140.5,179.6 L148.0,175.3 L148.3,173.9 L145.9,170.5 L145.6,168.8 L146.9,167.3 L152.1,167.0 L153.1,164.8 L151.0,162.6 L151.2,161.0 L159.9,156.7 L158.3,152.4 L158.6,151.0 L165.0,148.1 L169.9,144.3 L167.2,139.2 L162.6,140.9 L161.3,140.6 L158.7,135.1 L157.9,134.7 L145.9,140.0 L147.8,146.2 L147.1,147.8 L138.5,151.5 L134.1,150.5 L131.9,148.0ZM164.8,189.1 L166.8,191.9 L168.0,191.6 L169.3,190.0 L166.7,187.4 L164.8,189.1ZM166.3,120.9 L167.1,121.5 L168.5,121.0 L167.8,118.4 L166.3,118.7 L166.3,120.9ZM163.6,248.7 L164.3,249.4 L165.2,248.9 L166.0,244.5 L165.4,243.6 L164.1,244.7 L163.6,248.7ZM161.9,231.4 L163.9,230.5 L165.3,227.7 L165.0,226.8 L163.0,226.1 L159.7,228.5 L159.4,230.0 L161.9,231.4ZM162.7,136.6 L163.7,137.0 L165.3,135.7 L162.6,131.9 L161.5,133.5 L162.7,136.6ZM162.1,105.4 L161.3,106.2 L161.9,108.5 L164.6,109.6 L165.0,108.7 L164.0,105.5 L162.1,105.4ZM161.5,213.1 L158.5,215.7 L159.8,216.8 L162.6,214.3 L161.5,213.1ZM158.7,113.3 L161.5,114.4 L161.4,112.6 L159.0,111.2 L158.4,111.9 L158.7,113.3ZM155.9,252.6 L157.1,253.4 L159.0,251.3 L160.4,242.8 L159.9,241.9 L157.9,242.3 L155.9,252.6ZM156.1,102.7 L155.6,103.6 L156.3,104.4 L159.6,103.7 L158.8,102.0 L156.1,102.7ZM156.1,171.2 L158.3,170.6 L158.4,169.4 L156.0,169.8 L156.1,171.2ZM154.0,98.2 L153.5,99.2 L154.4,100.0 L158.0,98.9 L158.4,98.1 L157.5,97.1 L154.0,98.2ZM151.9,207.5 L153.7,209.3 L156.1,207.0 L154.1,205.7 L152.1,206.3 L151.9,207.5ZM146.2,214.1 L147.1,214.2 L150.6,211.5 L148.4,207.5 L141.8,209.5 L146.2,214.1ZM147.2,273.3 L148.7,273.4 L150.5,270.2 L150.2,269.3 L148.1,269.6 L146.8,272.1 L147.2,273.3ZM141.5,254.5 L145.3,258.5 L147.1,257.8 L147.0,256.9 L142.0,250.2 L141.1,250.9 L141.5,254.5ZM140.4,143.5 L141.9,144.1 L142.6,141.4 L141.7,141.2 L140.4,142.3 L140.4,143.5ZM129.4,195.2 L129.9,196.2 L132.1,196.6 L133.3,193.4 L130.7,192.4 L129.4,195.2ZM122.5,188.3 L124.7,189.3 L125.1,186.3 L122.7,185.8 L122.5,188.3ZM121.7,162.9 L122.3,162.0 L121.6,161.2 L118.4,161.5 L117.7,162.2 L118.4,163.2 L121.7,162.9ZM120.2,153.8 L118.6,155.8 L118.8,157.8 L121.3,158.0 L121.1,154.2 L120.2,153.8ZM120.0,173.5 L116.6,172.0 L116.0,172.8 L117.1,182.6 L118.0,183.2 L120.1,182.8 L120.6,182.0 L120.0,173.5ZM116.1,148.9 L117.2,150.3 L120.0,149.0 L118.9,147.0 L116.1,147.5 L116.1,148.9ZM112.9,170.2 L116.1,171.6 L116.9,171.2 L116.7,165.0 L112.7,165.7 L112.9,170.2ZM112.0,135.8 L112.9,134.6 L111.1,133.1 L110.7,135.3 L112.0,135.8ZM107.2,189.6 L106.4,188.8 L105.4,189.6 L106.6,202.0 L107.4,202.7 L111.2,201.6 L111.7,197.4 L108.5,195.
381386 L107.2,189.6ZM100.9,132.6 L103.6,133.7 L109.8,132.3 L110.3,131.3 L108.8,129.8 L101.4,131.5 L100.9,132.6ZM108.3,110.2 L102.7,113.2 L103.6,115.1 L109.2,111.6 L109.4,110.7 L108.3,110.2ZM105.9,138.8 L106.6,139.4 L107.7,139.0 L107.3,136.0 L105.7,136.6 L105.9,138.8ZM101.8,124.4 L103.2,126.8 L105.5,126.3 L106.1,125.2 L104.8,123.3 L102.4,123.6 L101.8,124.4ZM100.3,198.3 L97.0,200.6 L98.3,202.0 L98.8,204.9 L103.5,203.6 L101.8,189.8 L99.7,190.6 L100.3,198.3ZM92.4,156.9 L92.8,162.4 L102.1,160.7 L101.0,153.3 L97.5,153.5 L95.5,152.7 L94.7,154.8 L92.4,156.9ZM96.9,138.5 L97.7,142.5 L102.0,141.5 L100.6,137.0 L96.9,138.5ZM94.1,171.2 L98.0,171.0 L97.6,168.8 L93.9,169.1 L94.1,171.2ZM94.8,194.6 L95.6,195.3 L96.9,194.6 L96.0,190.9 L94.5,191.5 L94.8,194.6ZM93.7,203.4 L94.4,204.1 L95.2,203.7 L96.0,200.9 L95.6,200.1 L93.6,200.5 L93.7,203.4ZM91.9,182.8 L93.1,187.9 L95.1,187.6 L94.7,181.9 L93.3,181.8 L91.9,182.8ZM83.8,196.2 L84.5,207.8 L90.5,207.6 L90.1,199.1 L87.3,197.3 L85.9,193.3 L84.9,193.5 L83.8,196.2ZM85.9,150.8 L83.9,152.6 L85.8,154.5 L89.8,153.7 L88.9,148.6 L86.5,148.9 L85.9,150.8ZM74.5,150.5 L70.0,155.9 L70.6,156.7 L76.7,156.5 L78.4,159.1 L81.5,159.3 L85.8,162.4 L87.0,166.2 L89.4,165.8 L88.8,157.8 L85.0,157.7 L82.5,155.7 L79.9,155.8 L78.5,150.1 L74.5,150.5ZM78.5,168.4 L79.6,179.5 L78.8,181.5 L79.2,185.9 L79.8,186.6 L82.0,186.4 L82.7,185.6 L82.1,177.5 L84.5,174.7 L83.8,167.5 L83.1,166.8 L79.2,167.2 L78.5,168.4ZM70.4,159.8 L69.7,160.6 L70.4,161.9 L74.5,161.5 L75.1,160.8 L74.4,159.5 L70.4,159.8ZM65.8,183.5 L66.1,187.8 L68.1,187.0 L67.8,183.5 L65.8,183.5ZM57.3,192.7 L57.7,193.5 L61.6,195.2 L63.5,194.2 L63.9,192.7 L63.2,191.8 L58.1,190.8 L57.3,192.7ZM41.0,193.8 L41.8,196.2 L43.9,196.1 L45.4,191.2 L45.0,190.4 L42.4,189.9 L41.0,193.8Z"/><path class="sh sh-pilot" data-ly="pilot" d="M105.2,242.1 L106.9,240.1 L108.6,239.8 L116.0,244.2 L120.2,240.2 L114.7,234.5 L114.8,233.2 L116.7,230.9 L118.4,230.6 L121.1,232.8 L125.0,234.1 L125.8,233.3 L124.2,231.1 L124.8,229.5 L126.4,229.4 L128.7,231.3 L130.0,230.6 L130.1,227.6 L128.6,226.4 L126.9,226.7 L124.5,225.5 L119.8,221.3 L117.3,216.2 L117.9,214.6 L120.7,213.2 L122.5,213.6 L124.9,212.3 L132.1,217.7 L137.5,211.3 L136.9,208.7 L138.1,207.0 L153.9,202.6 L159.7,204.7 L162.1,202.9 L161.8,201.4 L150.3,196.1 L145.9,196.5 L142.3,195.0 L140.6,197.1 L140.8,199.3 L139.6,200.8 L134.6,199.5 L130.2,199.6 L126.4,197.6 L125.0,192.3 L122.3,193.1 L120.8,192.4 L119.5,190.3 L119.3,186.8 L118.5,186.3 L114.2,187.6 L114.9,192.3 L112.6,196.5 L114.3,198.6 L113.8,203.4 L112.4,204.6 L92.8,210.5 L84.2,211.4 L76.7,209.5 L74.1,206.8 L72.0,199.4 L70.3,198.3 L68.1,200.6 L64.2,198.8 L60.7,200.8 L57.9,199.8 L57.5,196.8 L54.5,196.2 L52.5,201.4 L50.6,202.5 L41.7,201.1 L40.0,198.6 L38.7,198.1 L37.0,200.6 L35.6,200.9 L34.1,198.7 L31.9,198.8 L30.9,197.5 L32.6,193.4 L31.0,191.6 L31.6,188.0 L30.0,185.8 L32.0,180.6 L33.5,180.3 L57.1,187.2 L58.0,180.7 L59.8,180.3 L61.6,182.1 L63.1,180.5 L64.6,180.2 L65.0,176.4 L66.8,174.9 L66.1,171.7 L64.5,170.8 L64.1,169.7 L66.3,167.0 L65.2,163.1 L64.9,159.5 L65.6,156.3 L65.0,154.7 L67.4,150.1 L71.6,146.6 L73.8,147.2 L81.1,144.4 L83.0,144.9 L88.1,144.4 L94.0,142.6 L93.9,139.7 L91.7,139.4 L90.8,138.5 L89.9,131.8 L91.7,130.5 L92.1,128.8 L93.5,127.8 L94.5,125.7 L93.2,123.6 L93.5,122.2 L99.0,121.0 L102.0,118.7 L100.2,116.3 L95.4,118.2 L91.9,116.9 L92.5,114.8 L95.1,115.1 L98.2,113.6 L96.7,110.3 L90.3,111.2 L86.3,109.3 L86.4,108.0 L87.3,107.2 L90.7,108.0 L94.0,107.4 L94.6,106.7 L88.9,95.0 L86.7,94.9 L85.7,94.0 L86.1,92.3 L88.7,90.8 L90.5,91.4 L96.9,103.6 L103.3,99.8 L102.5,96.0 L103.5,95.0 L104.8,95.2 L107.6,100.2 L107.8,102.4 L110.1,103.1 L111.6,105.4 L111.4,108.0 L113.8,111.4 L115.8,111.3 L116.7,112.0 L116.6,113.7 L112.4,117.4 L116.9,124.6 L120.3,123.6 L122.9,125.9 L122.6,128.8 L121.8,130.0 L119.8,131.2 L117.9,130.8 L115.1,131.7 L119.3,136.7 L125.0,134.3 L125.1,127.6 L127.1,125.3 L129.4,124.6 L131.2,126.9 L134.6,126.0 L133.8,124.1 L134.2,122.4 L133.0,120.5 L130.4,110.7 L131.1,107.3 L136.3,105.4 L135.2,99.6 L136.3,97.9 L140.2,96.7 L141.5,97.2 L141.7,101.9 L145.4,102.2 L146.5,103.1 L150.9,119.2 L151.8,119.5 L155.4,118.2 L146.9,85.2 L148.1,83.5 L154.5,81.6 L155.8,82.6 L155.6,84.0 L150.7,85.9 L150.4,87.1 L151.3,87.7 L156.8,86.7 L160.9,81.3 L159.2,78.1 L156.4,76.4 L156.3,75.2 L157.2,74.2 L161.0,75.5 L164.0,80.4 L163.6,83.0 L160.0,87.0 L159.6,90.2 L161.9,98.7 L167.4,97.2 L166.8,91.5 L170.8,88.8 L168.8,87.1 L168.6,85.7 L173.0,83.8 L174.1,84.6 L174.6,86.7 L176.9,86.7 L178.4,88.6 L181.4,89.3 L183.3,90.6 L184.1,93.2 L186.6,95.9 L187.0,98.7 L190.0,102.0 L192.1,103.0 L193.0,102.1 L191.1,95.5 L193.9,90.2 L195.2,90.1 L200.7,92.9 L202.7,90.7 L204.2,90.2 L206.1,90.8 L208.1,93.2 L210.1,92.9 L210.6,92.1 L206.2,81.3 L201.0,77.1 L197.4,76.3 L195.8,73.1 L192.9,74.0 L191.5,73.2 L191.5,71.7 L193.3,70.0 L191.5,67.1 L192.7,65.5 L196.4,67.5 L199.7,73.8 L202.7,74.5 L205.3,76.7 L207.6,71.1 L211.6,65.3 L215.7,60.6 L217.9,60.9 L217.9,62.7 L211.1,71.5 L213.9,74.0 L214.0,75.7 L212.6,76.5 L2
3813809.8,75.3 L208.9,77.1 L208.9,79.6 L213.3,90.4 L214.3,91.4 L220.8,88.7 L222.6,86.9 L222.4,86.0 L218.6,82.7 L219.0,80.7 L220.7,80.5 L225.1,83.9 L227.9,79.6 L227.9,76.4 L224.5,69.6 L223.9,66.8 L223.7,64.3 L225.2,59.8 L226.5,59.3 L227.8,60.2 L226.8,64.7 L227.4,68.3 L228.6,70.0 L233.7,68.0 L235.2,66.5 L236.9,66.8 L237.3,68.2 L236.0,70.2 L230.3,73.2 L231.1,78.3 L236.8,79.3 L241.6,77.7 L242.8,78.8 L242.6,80.2 L237.3,82.3 L230.5,81.8 L222.8,91.2 L215.5,94.7 L218.3,101.3 L222.7,100.3 L226.5,101.1 L230.6,104.2 L255.6,98.0 L257.1,96.6 L262.0,95.7 L262.6,94.0 L260.5,89.5 L257.7,86.8 L255.0,82.0 L255.7,79.9 L257.4,80.2 L260.1,84.8 L262.1,86.5 L265.2,85.2 L269.0,80.6 L270.4,81.0 L271.5,82.8 L275.2,82.8 L276.3,84.2 L277.2,91.6 L282.3,91.3 L284.1,93.9 L284.7,96.4 L287.9,96.4 L289.0,97.3 L288.5,99.2 L285.2,100.1 L285.2,103.5 L283.9,104.2 L282.7,103.5 L281.0,96.9 L280.2,96.3 L270.1,98.9 L271.8,107.2 L270.6,108.8 L269.0,108.2 L267.5,104.5 L265.5,105.1 L261.1,103.6 L260.5,104.8 L260.9,107.5 L258.5,108.9 L257.0,108.2 L255.8,105.8 L256.5,103.0 L256.0,102.2 L249.1,104.1 L248.7,105.0 L250.1,111.9 L249.7,114.7 L251.7,116.2 L251.9,117.6 L250.7,118.6 L248.0,118.1 L242.0,122.5 L241.8,123.4 L244.0,126.1 L247.3,127.9 L255.2,128.6 L256.0,128.0 L256.4,125.7 L261.2,122.3 L262.7,122.6 L266.0,126.4 L268.3,126.0 L268.4,123.9 L270.6,120.2 L275.5,121.3 L275.5,124.0 L279.1,126.5 L279.8,130.5 L282.2,133.8 L284.6,140.0 L284.4,144.3 L280.7,151.7 L278.3,164.0 L281.4,170.9 L286.3,178.3 L291.3,203.3 L294.5,207.7 L298.7,211.8 L299.6,211.6 L300.0,209.6 L301.3,208.9 L302.5,209.4 L303.5,211.6 L309.7,211.5 L310.2,212.9 L309.3,214.7 L311.8,221.4 L312.8,221.0 L316.8,212.1 L318.0,211.5 L319.1,212.0 L319.5,213.6 L314.5,224.5 L317.0,226.3 L316.2,229.3 L316.9,230.2 L318.4,229.8 L324.4,216.2 L322.4,214.3 L322.4,212.7 L323.5,212.0 L325.7,212.3 L327.3,209.8 L329.1,209.9 L329.6,211.7 L321.7,229.8 L322.1,230.6 L324.2,231.2 L325.0,230.7 L332.9,211.6 L334.3,210.9 L335.6,211.8 L333.5,218.6 L336.2,220.1 L341.2,207.3 L338.5,206.2 L332.2,205.7 L329.4,204.1 L326.4,206.2 L322.5,207.2 L321.7,206.2 L322.0,204.9 L327.1,201.5 L325.5,199.3 L323.6,198.3 L321.0,198.7 L317.5,201.7 L316.4,208.1 L315.1,209.2 L313.5,208.0 L314.0,203.5 L313.5,202.7 L308.9,202.1 L300.1,197.0 L296.7,200.0 L293.8,200.0 L293.4,198.0 L296.0,196.7 L296.6,195.3 L294.1,193.5 L291.6,189.8 L291.1,188.1 L291.7,185.9 L290.2,181.6 L289.0,173.0 L284.3,170.1 L283.9,169.0 L284.5,167.8 L285.9,167.6 L290.0,169.7 L292.8,167.3 L297.3,166.0 L314.2,166.5 L316.6,167.6 L317.6,169.6 L319.1,180.9 L318.8,186.4 L315.6,191.9 L309.3,197.5 L309.4,198.5 L311.3,199.1 L315.4,199.0 L320.2,195.5 L324.4,194.6 L327.3,187.5 L332.9,178.4 L333.4,172.6 L334.5,169.4 L342.8,163.1 L341.6,160.4 L341.8,159.1 L343.6,158.6 L346.2,160.6 L352.6,156.4 L354.8,153.6 L356.6,154.7 L355.6,157.7 L356.6,160.0 L361.6,164.6 L362.5,167.4 L364.4,169.0 L363.7,170.5 L359.7,171.7 L350.1,180.2 L358.5,188.4 L367.9,181.3 L369.8,181.1 L373.1,183.3 L380.2,175.4 L380.4,170.3 L378.5,168.3 L377.9,166.4 L379.3,160.0 L379.0,157.7 L380.4,156.1 L382.1,156.8 L382.6,159.2 L387.5,159.9 L389.6,161.9 L391.6,160.5 L393.0,160.7 L394.2,163.3 L408.2,174.9 L410.6,172.3 L408.1,168.6 L410.6,164.2 L404.5,161.7 L402.3,158.1 L399.9,156.5 L400.0,154.8 L402.1,154.4 L404.4,155.9 L406.7,159.5 L410.1,160.3 L416.1,164.1 L416.9,163.9 L417.5,162.7 L401.7,149.1 L401.4,147.7 L402.0,146.4 L404.3,144.3 L406.5,144.3 L410.9,138.9 L395.9,126.5 L395.8,124.4 L397.3,123.9 L400.5,125.7 L419.1,142.2 L420.1,142.1 L420.8,140.6 L422.1,140.2 L425.4,142.5 L426.5,141.0 L423.2,137.6 L423.5,135.7 L425.3,135.4 L429.1,138.6 L432.6,134.6 L424.2,131.4 L422.8,128.6 L424.6,127.6 L428.5,129.9 L429.7,127.9 L431.1,127.6 L435.0,131.6 L436.0,131.6 L436.7,130.4 L435.8,128.1 L437.2,126.1 L432.7,122.6 L433.1,120.5 L434.8,120.5 L441.7,125.3 L445.4,121.5 L443.5,118.7 L444.3,117.1 L445.6,117.0 L448.1,118.6 L453.4,114.0 L460.5,118.3 L466.0,112.7 L466.8,109.4 L468.1,109.1 L470.0,110.2 L470.7,112.5 L468.7,114.6 L468.7,115.6 L478.9,124.3 L483.4,124.4 L487.3,126.7 L487.6,128.4 L486.0,129.3 L482.5,127.6 L478.4,127.6 L475.0,124.9 L474.0,125.0 L471.4,128.0 L473.8,130.7 L473.5,132.4 L471.9,132.8 L468.6,130.7 L464.8,134.9 L471.0,141.1 L473.3,139.6 L475.0,140.3 L474.8,142.9 L473.2,144.8 L474.1,147.4 L473.8,149.1 L472.2,150.1 L470.2,149.4 L469.7,144.6 L462.9,137.7 L462.0,137.6 L458.7,141.5 L464.5,147.1 L464.7,148.9 L462.6,149.4 L456.7,144.1 L455.8,144.1 L455.1,145.4 L457.0,147.6 L455.1,151.1 L458.3,154.3 L458.5,155.9 L456.5,156.7 L453.2,154.3 L452.3,157.1 L449.7,157.4 L449.4,158.4 L461.7,171.6 L463.5,172.4 L480.4,164.9 L481.1,162.5 L483.7,161.0 L486.3,161.9 L488.9,160.8 L493.2,160.8 L494.1,161.7 L493.9,163.1 L491.4,164.1 L489.6,166.4 L493.0,169.7 L493.3,171.0 L492.5,172.1 L491.2,172.1 L487.2,168.8 L485.4,168.5 L483.9,166.7 L473.1,172.1 L47
381387.1,181.0 L482.7,186.1 L482.1,189.4 L480.8,190.6 L476.2,189.5 L473.6,187.1 L469.8,190.4 L467.9,189.9 L466.3,188.2 L464.3,189.6 L463.1,189.6 L452.0,178.2 L451.0,179.0 L451.8,183.9 L450.2,185.4 L450.2,186.3 L452.0,187.8 L456.6,188.9 L460.7,192.1 L462.2,194.1 L475.5,206.4 L479.6,211.2 L478.2,214.4 L485.5,222.2 L486.5,221.7 L486.3,219.4 L487.8,214.6 L497.8,203.2 L499.6,203.1 L500.2,205.2 L490.8,215.8 L490.2,217.4 L493.8,220.0 L495.0,218.4 L495.4,215.0 L497.3,214.4 L505.7,221.4 L507.5,221.9 L508.3,223.5 L511.3,225.8 L512.7,224.6 L512.8,222.9 L509.6,218.9 L512.7,214.2 L502.3,204.6 L502.8,203.4 L506.3,200.4 L509.6,195.5 L514.0,192.8 L506.5,185.8 L506.4,184.3 L507.8,182.8 L509.8,182.8 L510.5,185.1 L526.6,198.9 L532.1,200.7 L537.3,195.7 L544.5,198.0 L549.1,193.2 L558.1,190.6 L559.4,190.8 L560.8,192.5 L560.4,196.0 L554.8,203.4 L561.0,208.9 L561.2,211.3 L564.0,214.8 L568.8,218.0 L571.5,218.0 L572.7,219.7 L561.3,233.4 L561.4,234.8 L565.3,238.2 L565.2,239.9 L563.8,240.5 L562.0,239.5 L560.3,240.0 L558.6,239.4 L557.5,241.7 L567.0,250.4 L567.3,252.2 L565.6,253.5 L563.1,252.6 L562.1,254.9 L561.0,255.5 L557.2,252.5 L554.7,255.4 L555.1,256.3 L557.0,256.7 L557.9,258.0 L559.7,258.0 L560.6,258.8 L560.7,260.1 L558.6,264.1 L563.9,269.0 L563.0,272.7 L564.8,275.1 L564.2,276.3 L560.2,279.2 L555.4,275.0 L554.5,275.0 L554.0,276.2 L555.4,277.0 L555.7,278.7 L552.8,280.9 L553.4,282.4 L555.6,282.3 L557.3,283.4 L558.5,286.0 L558.0,287.8 L556.0,289.2 L556.3,294.2 L555.4,296.7 L557.7,318.5 L559.3,323.5 L562.4,325.6 L564.8,323.9 L561.8,318.8 L562.6,316.9 L564.3,317.2 L568.0,321.5 L572.0,318.4 L570.3,315.3 L570.8,313.7 L574.1,313.6 L575.9,315.6 L578.5,313.8 L578.8,311.4 L576.5,308.4 L576.5,307.0 L577.7,306.2 L580.0,306.3 L579.7,304.1 L580.5,300.4 L584.3,296.8 L584.9,295.2 L587.2,293.6 L588.4,293.4 L590.1,294.5 L593.9,292.8 L598.7,298.4 L605.0,294.7 L606.0,295.5 L605.8,297.6 L606.9,299.3 L605.8,301.2 L603.0,299.5 L600.9,300.9 L602.6,304.5 L601.9,306.1 L600.3,306.0 L597.6,303.4 L591.6,308.2 L611.6,335.2 L611.7,336.5 L610.3,338.1 L610.5,340.8 L609.2,341.3 L607.2,340.2 L603.7,342.8 L601.1,341.9 L599.0,343.3 L595.5,340.4 L593.4,342.3 L591.3,342.6 L579.3,351.8 L584.0,358.8 L583.3,360.9 L581.8,360.8 L579.5,358.7 L572.6,363.1 L568.8,359.6 L562.2,364.0 L558.7,361.4 L547.4,369.8 L547.9,370.9 L552.3,372.6 L555.8,371.4 L561.5,373.8 L564.4,376.8 L567.1,377.0 L568.1,379.7 L569.2,379.4 L570.5,376.5 L573.4,373.7 L573.4,371.7 L574.4,370.7 L576.0,371.1 L578.5,374.6 L581.8,375.7 L581.9,377.9 L578.2,378.2 L576.6,380.0 L577.2,382.9 L573.0,386.3 L574.2,390.4 L573.8,391.6 L572.6,392.2 L571.5,391.7 L569.2,386.3 L560.6,383.6 L559.8,381.8 L560.2,379.1 L555.3,377.0 L553.9,379.2 L555.9,385.4 L559.0,386.2 L559.5,388.1 L558.3,388.9 L553.9,388.7 L551.3,390.0 L549.1,389.7 L547.3,386.5 L548.0,384.8 L551.3,382.6 L550.8,378.8 L551.5,375.9 L549.0,375.2 L547.4,379.7 L547.5,382.4 L546.5,383.2 L545.3,383.0 L544.3,379.5 L546.1,373.7 L543.5,371.5 L542.7,371.9 L542.3,373.8 L538.9,377.0 L536.7,385.1 L535.0,386.3 L534.6,387.6 L546.1,393.7 L546.7,394.7 L546.3,396.0 L544.6,396.3 L534.7,391.5 L532.7,391.8 L526.6,388.8 L525.5,389.3 L525.7,391.0 L542.6,399.6 L549.4,397.0 L552.7,397.7 L557.9,394.9 L561.6,393.9 L563.4,394.7 L562.8,396.7 L557.4,398.4 L554.0,401.0 L554.1,405.6 L551.9,407.8 L554.0,410.8 L555.0,414.4 L554.3,416.9 L551.9,419.1 L549.5,419.3 L542.1,415.0 L541.9,413.6 L544.2,410.1 L544.8,406.2 L543.2,404.5 L542.2,404.6 L541.2,406.4 L541.8,408.2 L541.3,409.4 L540.2,409.8 L538.4,409.2 L537.5,410.4 L538.7,412.6 L538.6,416.4 L555.4,425.8 L556.1,427.1 L555.2,428.5 L550.6,427.0 L550.3,429.8 L548.8,430.6 L543.0,427.6 L540.5,425.2 L540.6,421.1 L537.6,419.5 L535.2,420.2 L533.8,418.8 L535.0,416.5 L535.3,413.7 L526.8,411.2 L525.8,412.0 L527.0,413.7 L527.0,415.8 L532.1,417.6 L533.1,418.8 L532.2,420.0 L530.9,420.4 L524.9,418.7 L522.9,417.0 L521.1,418.3 L517.9,417.8 L517.0,419.9 L517.5,421.1 L525.2,425.1 L527.9,425.5 L531.4,424.3 L535.1,426.3 L536.9,433.2 L535.5,434.1 L533.2,433.2 L529.6,435.5 L529.5,437.0 L532.6,438.2 L539.2,443.3 L543.8,442.0 L549.5,442.0 L551.4,441.2 L552.7,442.0 L552.6,443.6 L550.8,445.0 L544.3,445.0 L535.6,448.5 L531.2,449.3 L510.6,443.7 L509.1,447.7 L512.5,449.2 L513.0,450.9 L511.7,451.9 L508.2,451.2 L507.2,453.4 L507.8,454.3 L512.7,455.5 L519.6,451.9 L521.5,452.8 L521.1,454.5 L515.9,457.8 L510.6,458.7 L509.1,462.2 L509.6,463.3 L512.1,463.0 L513.9,463.6 L515.8,465.8 L516.0,468.4 L514.5,473.3 L515.5,476.0 L516.6,476.0 L518.9,473.4 L520.7,472.8 L525.7,473.6 L528.1,475.3 L531.8,480.2 L534.6,481.3 L536.7,480.5 L538.1,480.9 L539.4,483.0 L541.5,484.4 L542.3,484.0 L542.9,482.0 L544.3,481.7 L546.7,484.0 L548.7,484.7 L549.5,484.1 L549.8,481.0 L544.7,478.7 L544.1,477.7 L544.5,476.5 L545.9,476.0 L550.7,477.9 L558.7,478.9 L559.3,477.8 L557.4,474.4 L557.9,473.4 L559.2,473.0 L562.5,476.9 L563.2,479.3 L568.9,478.1 L570.0,479.0 L570.0,480.3 L564.0,482.5 L553.5,481.5 L552.4,485.1 L552.8,486.0 L562.2,488.4 L565.6,491.2 L570.0,492.0 L574.2,484.7 L575.5,484.2 L576.6,484.9 L575.9,488.1 L568.7,501.8 L550.9,524.7 L546.7,531.2 L548.1,534.9 L547.4,537.6 L548.7,538.7 L553.8,534.5 L565.1,521.2 L574.4,528.6 L574.4,530.5 L572.6,531.0 L565.6,525.3 L562.6,528.6 L576.9,542.6 L576.5,543.8 L567.4,554.2 L565.1,555.2 L566.6,557.8 L569.4,558.6 L568.7,561.8 L566.8,562.6 L560.9,560.3 L559.6,558.3 L553.2,553.3 L552.3,5
3813853.3 L549.4,563.8 L550.0,567.0 L547.3,568.2 L544.6,573.9 L543.8,576.4 L543.9,580.3 L542.8,581.1 L541.5,580.7 L540.7,577.6 L541.0,574.7 L545.4,563.6 L547.6,560.0 L548.4,554.1 L547.5,551.9 L549.8,549.0 L548.7,547.5 L546.5,547.3 L543.4,544.5 L538.4,543.8 L533.8,539.5 L529.8,538.2 L529.0,537.0 L529.4,534.5 L527.3,532.1 L529.3,529.8 L530.0,526.7 L522.4,521.5 L519.7,525.0 L518.0,525.2 L517.1,523.8 L518.4,520.6 L516.4,519.1 L513.5,522.2 L509.2,520.5 L504.6,526.4 L501.8,527.0 L502.3,528.8 L508.2,533.6 L511.8,532.0 L514.2,533.4 L514.5,534.8 L513.6,535.9 L511.6,535.8 L510.0,537.8 L508.9,538.1 L503.2,533.0 L502.0,533.2 L501.7,535.2 L507.4,540.7 L507.7,542.2 L505.9,543.2 L501.5,540.3 L498.0,539.7 L497.2,545.7 L497.9,546.3 L500.6,546.1 L502.1,548.1 L505.9,548.5 L506.7,550.3 L505.4,551.4 L499.8,551.4 L498.9,552.5 L498.7,555.5 L497.7,557.0 L498.3,560.1 L495.7,563.0 L494.0,563.0 L493.0,559.6 L495.5,520.8 L494.3,521.0 L492.2,525.0 L489.5,525.2 L488.9,527.1 L487.2,542.4 L489.3,552.2 L489.1,554.0 L487.0,554.9 L484.8,553.7 L483.7,541.8 L480.9,541.5 L479.7,542.1 L478.2,547.8 L476.7,547.9 L475.8,546.6 L476.5,541.4 L477.6,539.8 L480.2,538.5 L484.4,538.2 L486.3,524.6 L492.4,515.1 L490.5,512.8 L490.3,510.5 L488.5,510.1 L486.1,514.8 L484.7,516.5 L483.4,516.8 L482.3,514.9 L485.3,509.0 L479.9,507.1 L477.9,511.8 L478.2,515.2 L474.0,526.1 L470.1,528.6 L465.7,527.3 L464.6,524.8 L466.5,518.9 L467.2,512.0 L460.7,504.7 L456.8,501.3 L454.8,501.5 L453.3,500.4 L451.4,500.8 L448.5,499.9 L445.2,496.4 L445.3,495.1 L446.4,494.4 L449.8,495.9 L453.1,491.7 L453.1,490.7 L445.3,486.6 L439.3,481.4 L438.7,479.3 L417.8,462.7 L413.4,462.3 L411.7,461.4 L409.5,462.0 L407.7,460.0 L405.4,460.7 L403.5,462.7 L406.0,465.5 L405.8,467.2 L404.1,467.6 L401.0,465.3 L398.3,468.0 L402.3,472.5 L402.1,476.4 L400.1,476.5 L399.2,473.7 L395.7,470.9 L393.2,473.6 L395.8,477.2 L394.5,479.6 L392.6,479.7 L391.9,477.2 L390.4,476.3 L387.8,478.9 L388.0,480.9 L387.3,482.4 L385.5,483.1 L383.8,482.5 L383.0,480.3 L384.4,477.8 L382.2,475.5 L382.5,473.8 L384.0,473.3 L387.1,475.1 L389.5,472.4 L387.5,469.9 L387.7,468.2 L389.4,467.8 L392.1,469.8 L394.7,467.2 L392.7,464.4 L393.1,462.7 L394.6,462.4 L397.5,464.1 L399.9,461.5 L399.1,459.6 L399.5,458.3 L400.8,457.9 L402.7,458.8 L404.8,457.4 L402.7,451.5 L402.8,449.7 L396.4,444.3 L389.1,434.9 L380.8,436.7 L379.6,436.3 L377.2,430.1 L378.1,427.5 L375.1,425.0 L370.6,426.4 L369.5,427.9 L367.4,428.5 L366.9,437.1 L369.2,438.2 L369.6,439.8 L367.1,441.1 L364.4,440.3 L363.7,438.8 L364.3,426.3 L363.8,424.8 L365.0,385.2 L362.0,381.1 L359.0,382.9 L354.8,383.7 L353.6,383.2 L352.4,380.9 L352.6,379.6 L354.4,378.2 L356.4,378.4 L357.1,377.6 L356.8,376.7 L354.0,375.1 L354.6,372.1 L346.8,363.6 L337.1,354.6 L334.9,356.1 L332.9,355.9 L331.4,357.6 L332.8,360.1 L332.1,361.7 L331.0,361.9 L328.5,360.3 L327.6,360.5 L327.1,362.4 L321.3,369.5 L320.0,369.7 L317.8,367.9 L316.9,368.1 L315.1,370.8 L317.4,373.2 L317.4,374.6 L316.0,375.4 L313.9,374.7 L311.8,377.0 L312.7,379.6 L311.8,381.1 L310.0,381.1 L308.0,379.1 L306.9,379.5 L306.9,380.7 L309.5,381.8 L310.4,384.1 L307.9,385.5 L303.3,391.0 L299.0,388.5 L298.8,386.8 L296.8,384.1 L296.0,379.3 L297.0,378.4 L303.7,377.3 L303.7,376.3 L300.9,373.6 L301.5,371.8 L303.0,371.7 L306.2,373.8 L310.3,369.3 L312.6,368.7 L314.7,365.7 L313.0,363.7 L312.9,362.4 L316.8,357.6 L316.8,355.2 L318.0,352.3 L312.1,347.4 L311.1,347.5 L306.7,352.9 L307.7,355.2 L310.1,355.9 L310.3,357.6 L300.0,370.0 L298.7,370.8 L296.2,369.8 L291.1,365.3 L288.2,364.8 L284.9,362.1 L283.9,362.1 L278.1,369.4 L281.6,372.4 L286.2,373.2 L287.3,374.0 L287.9,379.2 L287.4,381.3 L284.9,382.8 L281.2,382.4 L279.4,386.2 L277.7,386.8 L276.2,384.6 L277.8,381.8 L277.6,380.4 L272.7,376.2 L263.5,385.6 L263.1,387.7 L261.1,390.5 L260.6,395.3 L264.3,398.3 L266.4,397.4 L267.9,397.9 L268.6,401.0 L271.7,403.7 L271.7,406.7 L269.5,409.5 L268.2,409.4 L267.4,408.3 L268.6,404.7 L263.5,402.8 L261.0,399.2 L257.2,396.6 L258.2,389.3 L260.2,385.9 L257.5,383.2 L256.6,383.3 L253.8,385.7 L246.2,388.2 L233.7,388.0 L233.2,386.5 L234.3,385.4 L245.7,385.2 L252.4,382.9 L255.7,379.0 L253.5,377.2 L250.0,379.8 L246.1,381.2 L243.5,381.3 L240.8,380.1 L229.2,370.0 L228.9,367.5 L231.7,363.9 L231.6,362.9 L225.0,356.9 L219.8,357.0 L217.3,354.6 L217.3,353.0 L2
3813818.7,352.3 L220.9,353.3 L222.0,351.3 L223.6,351.0 L230.9,357.7 L233.5,352.7 L234.1,348.9 L236.4,347.4 L242.8,348.4 L246.4,350.2 L256.5,352.9 L262.2,348.8 L264.2,348.4 L265.6,346.2 L261.5,341.6 L262.2,340.5 L264.0,340.1 L264.5,339.3 L262.1,337.3 L258.5,336.2 L256.0,337.6 L253.6,336.9 L252.7,334.9 L251.2,334.4 L248.7,335.4 L245.7,334.2 L244.8,332.2 L241.1,330.7 L240.2,331.2 L238.7,336.1 L237.6,336.7 L236.4,336.2 L236.0,334.9 L237.5,329.5 L237.0,327.6 L238.4,326.1 L240.2,319.9 L241.7,319.2 L243.0,320.3 L241.4,326.8 L241.9,327.7 L245.8,329.1 L247.1,327.3 L248.2,326.9 L257.2,329.0 L257.9,328.3 L257.6,326.6 L245.9,323.7 L245.1,322.9 L245.2,321.6 L246.7,320.8 L256.6,322.8 L256.7,320.0 L265.9,308.3 L274.7,308.3 L276.7,310.4 L279.0,308.9 L281.8,308.5 L284.4,310.2 L286.0,310.0 L289.0,311.2 L290.3,310.8 L290.4,309.7 L288.5,308.4 L284.4,306.7 L278.5,306.0 L255.8,306.4 L253.4,308.4 L252.2,307.7 L251.4,304.9 L244.8,305.0 L235.9,306.3 L217.8,314.2 L211.7,315.6 L194.1,314.8 L186.8,313.1 L181.9,309.6 L177.4,301.3 L175.2,299.0 L169.8,296.6 L166.8,296.2 L165.0,296.9 L163.8,296.1 L164.7,292.2 L167.4,291.5 L168.7,289.8 L173.1,278.0 L169.8,275.1 L171.1,270.8 L170.6,267.7 L166.4,266.7 L163.8,265.0 L159.5,260.7 L158.7,257.0 L151.2,262.0 L150.8,263.8 L156.5,266.6 L159.8,270.6 L160.4,274.2 L159.0,280.7 L159.6,283.2 L157.2,286.3 L154.5,285.0 L151.0,287.1 L149.4,286.5 L146.1,281.1 L146.4,277.1 L142.9,275.7 L142.1,274.5 L146.0,267.1 L147.5,266.0 L147.6,264.0 L146.7,262.3 L142.0,259.8 L138.7,255.9 L135.4,254.9 L135.2,252.6 L136.7,250.9 L137.3,243.7 L135.1,240.6 L130.9,244.0 L127.8,242.8 L121.2,247.1 L125.9,254.5 L125.7,267.8 L127.0,276.6 L129.8,277.3 L130.4,278.8 L129.5,280.0 L123.3,281.5 L123.4,283.7 L122.5,285.7 L123.5,289.6 L120.3,293.0 L118.4,293.9 L117.4,296.9 L115.6,297.9 L114.5,300.1 L115.3,302.8 L114.5,304.1 L112.8,304.6 L111.6,303.9 L109.9,297.0 L104.1,298.2 L102.6,294.7 L98.4,294.7 L97.1,289.6 L94.9,289.1 L93.3,287.5 L87.3,288.0 L82.9,286.7 L76.1,291.1 L74.8,290.6 L73.3,288.6 L70.3,288.5 L68.7,290.8 L66.0,289.8 L61.5,292.0 L61.1,294.1 L59.9,295.0 L58.4,294.4 L56.5,290.3 L53.6,292.1 L51.7,292.0 L48.5,294.9 L51.3,299.2 L50.5,301.2 L51.8,304.4 L50.0,306.3 L48.0,305.8 L43.9,299.4 L41.5,300.2 L40.3,299.7 L38.1,297.2 L38.5,294.9 L37.4,293.7 L32.0,297.5 L30.1,297.1 L28.8,294.1 L32.2,290.8 L28.8,286.6 L30.5,283.5 L28.8,279.8 L29.6,279.0 L30.9,279.0 L35.0,283.3 L37.0,281.6 L37.9,276.3 L42.9,276.0 L40.8,268.2 L41.2,266.8 L44.9,265.3 L46.6,266.1 L47.1,268.6 L44.8,270.6 L47.7,278.4 L54.7,274.6 L50.0,262.1 L41.7,262.2 L38.9,264.0 L36.7,263.5 L31.7,265.1 L30.2,264.2 L30.8,262.2 L38.3,259.6 L38.9,253.5 L40.8,251.9 L41.1,249.4 L47.9,248.4 L49.2,249.1 L50.9,259.0 L55.0,258.6 L56.6,256.9 L59.5,255.5 L63.2,256.1 L64.6,255.2 L62.2,253.1 L61.4,251.3 L59.3,250.5 L59.0,245.9 L47.1,229.9 L47.1,228.6 L49.9,224.6 L51.3,224.4 L52.3,225.5 L50.9,229.7 L62.2,244.7 L66.7,240.3 L77.3,237.6 L84.5,237.0 L86.0,238.2 L88.4,247.0 L89.4,247.6 L92.2,246.7 L93.6,244.5 L99.9,242.8 L99.3,241.2 L97.1,239.3 L89.9,239.7 L88.6,238.7 L89.4,236.7 L95.1,236.0 L99.2,237.0 L103.8,242.5 L105.2,242.1ZM131.3,192.4 L130.4,192.8 L129.4,195.5 L131.8,196.7 L133.4,193.7 L131.3,192.4ZM125.2,186.7 L123.1,185.6 L122.4,186.4 L122.6,188.6 L124.1,189.5 L125.0,188.8 L125.2,186.7ZM120.6,182.2 L119.7,173.0 L117.1,171.9 L116.2,172.2 L117.1,182.5 L117.7,183.2 L120.6,182.2ZM135.1,167.0 L135.5,172.0 L140.0,179.5 L147.8,175.5 L148.4,174.0 L145.9,170.5 L145.7,168.4 L147.0,167.2 L152.0,167.1 L153.1,164.8 L151.0,162.6 L151.2,161.0 L159.9,156.6 L158.3,152.4 L158.5,151.1 L165.0,148.1 L169.7,144.9 L167.5,139.4 L161.5,140.8 L158.7,135.1 L157.8,134.7 L145.9,140.0 L147.8,146.2 L147.0,147.8 L138.5,151.5 L135.5,151.2 L133.7,150.2 L132.6,148.2 L131.6,148.2 L128.7,153.1 L136.2,158.0 L135.7,160.3 L136.0,165.4 L135.1,167.0ZM166.6,130.2 L166.3,131.3 L168.1,133.2 L171.4,129.4 L170.0,128.1 L166.6,130.2ZM170.3,135.7 L175.3,141.7 L180.4,142.5 L185.1,142.1 L187.2,142.8 L194.8,142.1 L196.2,139.6 L197.9,138.8 L208.7,139.1 L217.6,129.9 L219.5,126.6 L220.7,121.3 L218.9,113.5 L217.8,112.8 L212.9,114.1 L211.4,115.8 L208.4,115.9 L207.6,116.
381386 L207.8,118.6 L206.5,120.9 L209.9,122.8 L209.0,126.2 L211.7,126.1 L212.7,126.8 L212.9,128.1 L212.0,129.1 L209.1,130.0 L205.4,127.6 L203.4,130.2 L200.4,128.2 L198.4,129.5 L197.2,129.4 L196.3,127.7 L198.1,125.2 L194.5,121.0 L192.8,124.0 L187.4,125.7 L185.7,125.3 L184.6,122.8 L183.4,123.0 L185.3,131.7 L184.0,133.3 L182.4,132.5 L179.9,123.8 L173.3,125.0 L173.0,126.0 L175.4,130.7 L170.1,134.3 L170.3,135.7ZM210.8,101.9 L213.4,100.2 L211.6,96.0 L204.0,96.3 L205.0,99.4 L207.4,99.6 L208.9,102.0 L210.8,101.9ZM228.1,112.5 L227.2,112.0 L226.2,112.9 L227.3,117.1 L225.7,121.3 L226.5,130.8 L224.8,131.7 L222.3,131.2 L213.9,139.9 L215.4,140.8 L219.0,137.5 L221.8,137.2 L228.9,142.3 L230.2,144.9 L228.2,145.8 L219.6,141.1 L218.5,142.5 L219.9,144.3 L219.6,145.7 L217.4,147.5 L214.3,147.2 L211.9,150.0 L213.6,153.7 L211.6,155.8 L212.1,158.0 L218.3,158.1 L219.3,156.3 L220.6,155.9 L222.0,156.4 L223.1,158.5 L233.4,159.5 L238.8,159.3 L245.1,157.5 L249.3,150.6 L251.0,149.6 L252.4,150.0 L254.8,152.8 L261.8,150.1 L278.6,148.9 L281.2,144.2 L281.7,141.2 L280.8,137.9 L277.8,133.1 L276.3,132.7 L275.1,131.3 L272.5,131.0 L272.1,132.1 L273.9,134.0 L273.3,135.6 L270.8,136.2 L269.4,138.1 L265.1,138.3 L263.7,137.2 L263.6,132.1 L262.9,131.4 L259.7,131.6 L259.3,134.3 L257.9,135.2 L249.7,135.5 L248.0,133.4 L244.9,132.3 L241.8,134.2 L239.3,132.6 L237.4,132.7 L236.3,131.8 L235.2,128.3 L237.2,126.2 L236.7,124.2 L237.6,122.2 L236.4,120.6 L234.5,121.7 L233.1,121.2 L228.1,112.5ZM342.3,203.4 L344.9,202.8 L345.2,201.7 L337.3,194.6 L332.8,196.3 L328.5,194.8 L327.6,195.2 L327.5,196.4 L333.0,202.3 L342.3,203.4ZM345.7,206.9 L342.3,215.5 L346.4,217.2 L346.9,219.3 L348.6,220.5 L349.1,223.1 L353.3,223.0 L354.6,219.2 L356.5,217.9 L356.6,215.0 L357.4,213.9 L359.2,214.2 L360.1,216.5 L363.0,217.1 L364.6,214.5 L367.2,213.1 L366.7,212.1 L364.5,211.6 L362.6,212.1 L361.1,210.8 L356.1,209.5 L354.3,207.3 L350.7,206.3 L345.7,206.9ZM366.6,221.4 L365.2,229.2 L366.0,229.8 L369.8,229.6 L372.8,217.0 L369.8,216.3 L368.9,219.0 L366.6,221.4ZM373.1,213.6 L374.0,213.2 L374.0,211.6 L372.3,211.1 L370.8,211.7 L370.9,213.0 L373.1,213.6ZM405.9,227.0 L406.1,228.0 L412.8,232.6 L413.9,232.4 L417.3,217.8 L416.0,215.8 L414.8,215.8 L405.9,227.0ZM418.3,227.5 L418.9,228.4 L430.5,231.0 L431.3,230.5 L432.0,227.4 L431.4,226.6 L419.8,224.0 L419.0,224.5 L418.3,227.5ZM449.3,229.1 L445.6,234.1 L444.9,238.4 L447.1,241.2 L449.1,239.7 L450.4,239.8 L451.9,242.4 L453.6,242.4 L455.8,239.6 L460.4,238.5 L463.4,236.7 L464.8,237.4 L465.0,240.2 L467.3,241.1 L468.3,243.9 L469.5,243.8 L470.2,241.6 L472.3,241.1 L473.4,239.5 L477.7,238.9 L477.9,236.7 L469.5,230.0 L469.4,228.5 L470.6,227.7 L486.9,239.9 L488.0,239.7 L489.0,237.0 L487.3,232.1 L484.7,227.8 L465.5,206.8 L463.0,208.3 L459.8,206.8 L457.4,208.9 L455.9,209.2 L453.9,208.4 L452.5,206.8 L447.7,204.8 L446.4,202.7 L437.4,203.8 L434.2,203.2 L422.4,210.1 L422.0,213.5 L430.8,215.7 L434.2,211.5 L437.1,212.3 L438.8,210.3 L440.9,210.5 L442.6,209.4 L444.1,210.4 L444.2,213.9 L446.5,213.2 L451.0,214.2 L451.4,216.6 L450.6,219.8 L454.0,219.9 L454.8,221.7 L452.2,224.5 L452.0,227.8 L449.3,229.1ZM524.1,218.5 L523.9,217.4 L512.5,207.7 L511.4,207.8 L511.4,208.9 L522.8,218.7 L524.1,218.5ZM527.5,214.7 L532.6,209.0 L532.6,208.1 L523.1,200.0 L518.4,198.3 L513.8,204.6 L526.1,215.2 L527.5,214.7ZM284.4,376.9 L284.0,375.9 L280.5,375.4 L277.3,373.1 L276.2,373.5 L277.1,375.8 L280.7,378.6 L283.2,379.2 L284.4,376.9ZM604.2,338.6 L607.7,335.6 L605.5,332.5 L601.0,335.6 L603.0,338.6 L604.2,338.6ZM593.1,324.1 L592.9,325.2 L598.5,332.8 L603.2,329.9 L603.1,329.0 L597.4,321.5 L593.1,324.1ZM591.1,338.1 L592.2,338.1 L596.0,334.8 L589.6,326.8 L585.4,330.4 L591.1,338.1ZM588.1,318.7 L589.0,319.1 L591.5,317.8 L594.0,319.4 L595.0,318.5 L588.7,310.2 L584.5,313.5 L588.1,318.7ZM588.5,304.3 L589.7,304.4 L590.8,302.0 L593.2,302.6 L594.4,301.8 L594.1,300.7 L592.3,299.7 L591.5,297.9 L590.0,298.5 L589.6,300.6 L587.5,302.4 L588.5,304.3ZM578.4,335.0 L578.2,336.0 L583.9,343.7 L588.6,340.7 L588.6,339.8 L582.9,332.3 L578.4,335.0ZM577.2,318.7 L580.5,323.7 L583.9,322.3 L585.1,322.9 L585.8,325.1 L587.7,324.0 L584.3,318.7 L582.0,318.4 L580.7,316.5 L577.2,318.7ZM571.5,340.9 L571.4,341.8 L576.8,349.0 L581.3,346.2 L575.9,338.1 L571.5,340.9ZM580.2,329.8 L580.3,328.9 L579.2,327.4 L575.4,328.7 L574.5,327.8 L574.4,325.6 L572.5,325.2 L571.3,323.5 L570.0,324.1 L570.1,325.0 L575.7,332.5 L580.2,329.8ZM560.9,531.7 L559.8,531.9 L557.5,535.7 L569.1,546.2 L570.1,546.3 L572.7,543.4 L572.7,542.5 L560.9,531.7ZM568.3,333.9 L568.0,336.4 L569.3,337.3 L572.6,334.4 L566.4,326.8 L562.8,329.9 L564.3,332.0 L566.9,332.2 L568.3,333.9ZM551.0,541.0 L550.7,542.1 L557.1,550.7 L561.1,553.9 L564.8,555.0 L564.7,552.7 L567.2,549.6 L567.1,548.6 L555.5,538.1 L551.0,541.0ZM551.5,490.9 L562.8,500.4 L563.7,500.1 L566.6,495.4 L566.3,494.5 L564.1,493.9 L560.9,491.3 L552.2,489.2 L551.5,490.9ZM552.7,505.3 L552.7,506.4 L556.3,509.0 L561.0,503.2 L557.3,500.2 L552.7,505.3ZM551.1,344.0 L550.9,345.1 L553.8,348.6 L558.4,345.2 L555.7,341.4 L551.1,344.0ZM554.4,336.4 L555.4,336.7 L556.9,335.3 L554.5,332.7 L553.3,333.6 L554.4,336.4ZM546.9,501.3 L549.4,500.0 L552.2,501.1 L554.8,497.5 L551.6,494.6 L550.3,494.4 L546.3,500.0 L546.9,501.3ZM390.1,304.7 L385.2,319.6 L387.5,320.3 L388.1,321.4 L386.4,325.6 L390.0,329.0 L391.2,328.8 L393.0,324.8 L396.1,324.5 L397.2,325.2 L396.8,331.8 L396.1,333.5 L397.3,334.7 L403.5,336.1 L408.8,331.8 L414.4,332.0 L415.1,329.8 L416.6,329.2 L417.8,330.1 L418.1,333.6 L431.4,338.0 L431.8,339.1 L431.2,340.3 L427.8,340.9 L423.9,351.6 L427.0,353.9 L426.1,357.2 L430.3,360.2 L433.0,358.0 L435.6,354.4 L438.0,347.5 L442.4,346.5 L441.0,342.4 L441.2,340.5 L444.8,336.5 L449.0,335.6 L455.3,336.5 L456.8,335.5 L458.5,335.4 L460.3,337.3 L461.2,339.8 L465.9,341.8 L466.3,343.1 L465.5,345.9 L460.2,355.7 L461.4,356.4 L464.3,353.8 L464.6,351.6 L465.7,350.3 L467.9,350.0 L469.0,350.7 L469.2,354.8 L465.6,356.7 L461.1,362.4 L462.7,364.7 L460.9,366.9 L461.2,368.2 L466.6,370.6 L467.2,372.2 L466.2,375.4 L464.8,376.7 L465.5,378.5 L465.2,379.6 L462.5,380.4 L460.1,380.0 L459.3,381.5 L460.9,386.0 L464.3,386.9 L465.9,388.3 L468.6,389.1 L469.8,390.4 L470.1,392.1 L468.1,395.6 L460.5,400.2 L462.0,402.9 L464.1,403.2 L465.6,401.5 L467.3,400.9 L467.8,398.2 L471.6,397.3 L472.3,394.5 L475.6,393.4 L474.3,388.8 L473.9,383.8 L476.0,369.1 L477.2,368.5 L479.5,369.2 L480.1,370.2 L479.9,373.0 L485.3,376.4 L486.2,376.1 L487.2,373.4 L490.2,374.4 L491.0,373.7 L482.0,366.1 L481.3,362.7 L484.3,357.1 L482.2,352.1 L481.4,351.7 L478.6,352.7 L477.2,351.4 L477.8,350.0 L482.7,347.3 L480.5,344.3 L481.2,342.5 L482.8,342.5 L486.7,345.7 L495.8,341.6 L493.9,337.6 L489.6,339.0 L488.5,338.7 L487.6,335.4 L481.9,337.5 L480.3,336.8 L480.6,334.8 L486.2,332.1 L484.2,329.9 L482.4,325.4 L482.9,322.8 L484.7,322.7 L486.1,324.7 L488.7,324.1 L495.3,320.3 L497.7,316.5 L499.5,315.1 L501.4,314.5 L503.9,315.2 L505.7,318.0 L503.6,320.7 L505.8,321.7 L506.2,323.2 L500.8,326.4 L502.0,329.3 L499.7,331.6 L503.2,334.0 L504.4,335.8 L506.4,336.1 L510.4,334.5 L510.1,332.2 L510.8,331.1 L524.0,324.4 L525.5,324.6 L526.8,326.5 L528.0,326.2 L527.7,322.8 L528.8,321.8 L531.4,322.0 L530.7,318.5 L531.8,317.1 L533.1,317.3 L534.6,319.2 L539.2,317.6 L541.8,320.7 L543.4,319.2 L543.4,316.4 L545.1,315.9 L550.1,325.2 L553.0,323.5 L552.1,320.8 L553.8,318.8 L551.3,298.4 L539.1,288.6 L538.0,289.7 L538.6,295.3 L536.4,298.5 L539.3,301.5 L538.6,303.5 L537.0,303.4 L524.5,293.2 L523.4,294.3 L526.4,297.3 L526.1,299.3 L524.8,299.6 L523.1,298.6 L521.3,299.7 L519.4,299.2 L517.2,299.7 L516.2,298.4 L516.9,295.6 L514.3,293.8 L511.9,295.0 L510.5,293.6 L516.9,285.1 L515.0,282.7 L513.9,282.8 L506.3,291.5 L505.0,291.7 L503.9,290.9 L504.1,289.3 L509.6,282.9 L507.3,280.4 L501.9,286.0 L497.5,284.7 L495.3,288.5 L493.6,289.7 L493.4,291.5 L492.6,292.3 L491.4,292.2 L488.6,290.2 L486.6,287.5 L485.5,287.7 L483.6,290.9 L483.7,291.8 L492.9,297.3 L495.3,294.7 L497.0,294.8 L497.6,296.2 L496.4,299.1 L498.5,301.6 L497.9,302.8 L496.4,303.0 L481.5,294.6 L480.0,298.1 L487.9,302.8 L488.6,303.8 L488.1,305.2 L486.7,305.6 L478.6,300.9 L477.5,301.2 L476.8,303.5 L484.5,308.2 L484.6,309.7 L483.4,310.5 L472.7,304.3 L472.8,303.0 L478.7,293.1 L476.4,291.0 L475.5,291.4 L467.1,305.0 L465.7,305.5 L464.6,304.7 L464.6,303.3 L472.9,289.6 L472.6,288.6 L469.0,287.2 L455.9,309.0 L456.5,310.3 L458.8,310.5 L461.4,311.9 L463.3,315.2 L463.6,317.4 L465.0,318.9 L464.3,322.0 L461.5,322.6 L460.1,324.1 L458.7,323.8 L456.9,321.6 L446.4,325.6 L440.3,326.0 L437.0,325.2 L429.7,321.9 L421.2,314.7 L418.8,315.0 L413.4,313.0 L410.5,313.6 L409.6,312.4 L410.2,311.0 L414.7,310.0 L415.3,309.2 L410.5,298.0 L408.0,294.6 L405.1,295.8 L402.5,294.0 L401.0,295.0 L400.7,297.5 L399.0,297.9 L397.2,295.4 L397.2,293.4 L396.5,292.8 L393.1,296.9 L391.9,300.4 L394.6,303.4 L398.7,299.8 L400.2,299.6 L401.4,300.7 L401.5,303.1 L395.7,309.7 L394.4,309.2 L391.3,304.8 L390.1,304.7ZM437.5,357.7 L441.4,360.3 L445.3,357.5 L449.0,356.7 L452.7,354.8 L451.9,350.8 L452.9,348.5 L452.0,346.2 L451.1,346.1 L447.9,348.7 L445.9,349.1 L443.4,351.7 L439.9,350.6 L437.5,357.7ZM456.9,351.2 L458.4,351.4 L461.0,346.1 L459.5,344.7 L457.5,339.6 L454.4,339.6 L453.7,340.3 L454.0,342.6 L456.9,351.2ZM541.1,506.2 L540.5,508.1 L547.8,515.1 L548.8,519.5 L550.1,519.7 L552.3,516.9 L551.6,514.7 L542.0,506.2 L541.1,506.2ZM547.8,414.2 L548.1,415.1 L550.4,416.2 L552.0,414.1 L549.9,411.0 L547.8,414.2ZM549.2,339.7 L550.1,340.0 L551.8,338.6 L549.8,334.4 L547.5,335.8 L549.2,339.7ZM550.7,253.9 L550.
381381,252.5 L547.0,252.9 L546.5,253.7 L548.6,255.7 L550.7,253.9ZM546.0,401.5 L545.9,402.6 L548.4,404.5 L550.8,404.1 L550.3,400.1 L546.0,401.5ZM546.1,288.8 L546.3,289.8 L549.5,292.4 L550.6,292.3 L549.8,286.6 L547.2,287.5 L546.1,288.8ZM545.8,331.9 L546.8,332.2 L548.7,330.7 L546.8,326.3 L544.5,326.1 L543.8,327.1 L545.8,331.9ZM539.0,232.9 L539.2,233.8 L544.1,237.8 L547.5,234.3 L542.4,229.5 L539.0,232.9ZM537.8,244.2 L533.8,239.3 L531.9,241.1 L542.0,250.3 L544.7,249.9 L544.5,247.5 L546.6,245.0 L546.4,243.9 L541.4,239.8 L540.4,240.4 L540.8,243.3 L539.5,244.5 L537.8,244.2ZM541.8,338.8 L543.8,343.6 L546.5,342.4 L544.5,337.1 L542.0,337.6 L541.8,338.8ZM530.2,497.3 L531.4,501.8 L532.9,503.2 L536.5,499.7 L537.7,499.9 L539.6,501.5 L540.5,500.3 L538.7,498.3 L538.9,496.7 L540.4,496.2 L543.2,497.5 L546.0,494.1 L546.4,492.5 L543.1,490.1 L541.0,491.9 L539.6,491.7 L538.9,490.1 L540.2,487.9 L539.1,487.2 L535.7,490.7 L536.9,492.7 L536.7,494.0 L535.5,494.7 L533.2,494.2 L530.2,497.3ZM542.3,515.8 L543.8,523.8 L545.0,524.0 L546.0,521.6 L545.2,517.0 L543.1,514.9 L542.3,515.8ZM539.7,284.3 L540.7,284.2 L544.4,279.7 L541.1,276.9 L540.9,273.8 L538.4,272.7 L533.4,278.6 L539.7,284.3ZM539.9,334.2 L540.9,334.7 L543.0,333.2 L538.4,322.0 L537.4,321.5 L535.4,323.0 L539.9,334.2ZM539.5,227.6 L539.4,226.6 L535.0,223.0 L531.5,226.8 L536.0,231.0 L539.5,227.6ZM531.4,384.9 L532.3,384.4 L535.0,375.1 L538.7,370.8 L538.3,369.6 L533.3,373.0 L530.4,383.8 L531.4,384.9ZM535.5,262.9 L535.9,263.7 L537.7,264.0 L538.7,262.8 L536.4,261.6 L535.5,262.9ZM536.9,401.9 L537.7,401.4 L537.4,400.4 L532.9,398.1 L531.9,398.4 L531.8,400.5 L536.9,401.9ZM525.7,248.1 L527.3,251.9 L528.6,252.4 L536.4,251.3 L537.0,250.6 L529.7,244.0 L525.7,248.1ZM525.9,332.7 L533.3,350.9 L534.5,351.2 L535.7,350.0 L533.6,346.4 L534.2,342.7 L535.5,341.1 L534.4,338.9 L537.0,336.4 L536.2,335.6 L532.9,336.9 L531.4,336.1 L531.6,334.4 L535.2,332.2 L533.0,327.6 L525.9,332.7ZM520.8,285.7 L527.7,291.0 L531.0,288.0 L534.1,289.1 L536.2,286.2 L530.9,281.6 L527.5,282.6 L524.6,281.0 L520.8,285.7ZM530.1,275.6 L531.1,275.4 L536.0,269.8 L535.9,268.6 L533.4,267.9 L531.3,269.6 L527.1,269.3 L527.0,270.4 L528.7,271.8 L528.4,274.1 L530.1,275.6ZM531.4,446.2 L534.7,445.5 L535.5,444.5 L531.1,440.9 L513.2,435.7 L512.3,436.1 L511.2,439.8 L511.6,440.7 L531.4,446.2ZM531.6,530.9 L534.3,532.4 L535.1,531.3 L534.3,529.6 L533.1,529.0 L531.6,530.9ZM525.7,234.7 L525.1,236.1 L529.2,239.1 L533.8,233.6 L529.4,229.9 L527.6,231.7 L527.5,234.1 L525.7,234.7ZM513.5,431.7 L514.0,432.7 L525.4,435.7 L527.7,433.1 L532.4,430.0 L532.7,428.8 L531.4,427.5 L528.4,428.5 L523.7,428.0 L521.8,430.5 L520.4,430.8 L519.3,429.4 L520.3,426.2 L516.2,424.0 L513.5,431.7ZM526.9,223.3 L529.1,224.5 L532.1,221.2 L532.1,220.3 L529.1,218.3 L526.0,221.8 L526.9,223.3ZM529.3,260.6 L531.3,261.9 L531.8,260.4 L529.8,259.8 L529.3,260.6ZM519.0,479.2 L527.9,487.5 L528.8,487.3 L531.0,484.9 L530.9,483.9 L528.4,481.7 L523.5,481.8 L523.5,477.6 L521.8,476.0 L520.8,476.0 L519.3,477.6 L519.0,479.2ZM520.1,357.2 L520.8,360.9 L522.8,361.6 L525.1,356.1 L530.2,356.8 L531.0,355.4 L529.4,351.5 L528.5,351.1 L519.3,354.9 L519.0,355.8 L520.1,357.2ZM526.4,362.0 L527.0,362.9 L528.8,363.0 L529.5,360.0 L527.3,359.5 L526.4,362.0ZM523.8,365.2 L522.8,365.7 L523.0,367.0 L526.8,368.1 L527.6,367.7 L527.5,366.2 L523.8,365.2ZM519.4,505.8 L522.7,508.7 L523.8,508.3 L523.9,506.0 L527.7,500.5 L525.3,497.2 L524.3,497.3 L521.8,500.1 L523.3,503.4 L522.2,504.5 L519.8,504.5 L519.4,505.8ZM516.5,350.9 L517.4,351.4 L521.2,349.9 L521.5,347.6 L522.4,346.7 L523.6,346.8 L525.0,348.2 L527.1,347.4 L527.3,346.5 L526.0,343.2 L525.0,343.0 L515.5,347.1 L516.5,350.9ZM523.2,489.6 L524.2,491.8 L526.0,490.6 L525.7,489.7 L517.5,482.3 L516.3,482.3 L515.5,484.3 L519.2,487.0 L520.9,489.2 L523.2,489.6ZM518.2,370.8 L518.7,371.6 L523.3,373.0 L525.4,371.7 L524.9,370.8 L519.4,369.1 L518.2,370.8ZM522.7,383.2 L523.5,382.6 L524.9,376.9 L517.8,374.9 L516.1,381.1 L522.7,383.2ZM518.7,241.5 L519.2,246.4 L522.6,246.8 L524.0,245.0 L522.6,242.5 L524.5,239.6 L521.8,238.0 L518.7,241.5ZM513.7,343.0 L514.6,343.2 L523.8,339.2 L522.5,334.8 L521.6,334.6 L512.0,338.8 L511.8,339.7 L513.7,343.0ZM519.5,230.6 L519.7,231.6 L521.4,232.5 L523.9,229.3 L522.8,228.7 L520.5,229.4 L519.5,230.6ZM523.7,276.3 L523.5,275.3 L521.4,274.3 L517.0,280.2 L519.3,281.6 L523.7,276.3ZM513.3,390.6 L513.8,391.5 L520.3,393.1 L522.2,386.6 L515.3,384.5 L513.3,390.6ZM518.6,293.4 L519.7,293.4 L521.5,291.0 L518.5,288.5 L516.3,291.0 L518.6,293.4ZM519.2,495.6 L517.0,497.4 L517.4,498.2 L519.6,497.8 L519.2,495.6ZM511.6,401.1 L517.7,402.6 L519.3,396.9 L512.5,394.5 L510.6,400.2 L511.6,401.1ZM511.6,279.8 L512.6,279.7 L518.9,272.3 L518.9,271.4 L516.8,269.7 L515.9,269.8 L509.6,277.2 L509.6,278.1 L511.6,279.8ZM508.4,359.6 L509.1,362.0 L509.2,366.3 L515.2,367.8 L517.4,362.0 L515.3,357.1 L513.8,357.6 L515.0,361.4 L513.8,363.5 L512.3,363.7 L510.9,363.0 L510.0,361.9 L510.4,360.2 L509.8,359.2 L508.4,359.6ZM497.8,481.8 L499.1,487.0 L501.1,491.0 L503.6,491.0 L504.7,492.1 L504.6,493.4 L503.2,494.8 L503.7,496.1 L506.7,496.4 L508.9,500.0 L510.7,499.4 L517.4,491.0 L515.7,488.7 L505.9,479.8 L504.6,477.3 L504.6,473.5 L507.9,464.9 L507.6,463.9 L504.7,462.8 L503.8,463.2 L497.8,481.8ZM495.7,413.2 L496.3,414.1 L513.2,418.6 L515.3,411.8 L511.3,410.1 L510.8,408.5 L512.3,407.4 L515.8,408.2 L516.4,407.0 L507.4,404.0 L506.4,404.4 L505.2,409.4 L512.5,412.9 L513.3,415.1 L512.0,416.0 L507.4,414.3 L505.1,415.0 L503.8,413.7 L496.9,411.8 L495.7,413.2ZM514.1,502.8 L516.0,500.9 L515.7,499.5 L512.9,501.7 L513.1,502.7 L514.1,502.8ZM514.0,246.7 L514.7,248.1 L516.0,247.7 L515.5,245.8 L514.0,246.7ZM510.5,354.8 L513.3,353.6 L513.3,352.4 L509.8,353.3 L509.5,354.3 L510.5,354.8ZM508.2,477.8 L511.6,480.7 L513.4,479.2 L511.5,474.4 L513.0,467.5 L512.0,466.1 L510.3,466.8 L507.7,474.2 L508.2,477.8ZM508.9,374.4 L510.0,371.6 L508.3,370.6 L507.6,371.2 L506.1,377.7 L513.0,379.4 L513.3,377.8 L509.9,377.0 L508.9,374.4ZM510.7,264.9 L509.7,268.6 L511.2,269.5 L513.3,266.9 L510.7,264.9ZM510.7,254.4 L512.3,254.2 L512.7,253.2 L510.9,251.5 L509.1,253.3 L510.7,254.4ZM488.5,423.0 L487.4,424.9 L487.6,425.9 L503.7,430.4 L505.0,432.1 L504.7,436.3 L507.9,437.3 L508.8,436.9 L510.1,431.9 L506.4,430.5 L505.8,428.9 L507.1,427.8 L511.1,428.3 L512.5,423.9 L512.1,423.1 L490.4,417.0 L489.0,417.9 L488.5,423.0ZM510.1,244.4 L511.1,244.2 L512.3,241.8 L502.1,232.9 L501.0,232.9 L499.5,234.7 L499.6,235.6 L510.1,244.4ZM500.9,343.4 L500.5,344.4 L501.7,346.5 L506.8,344.8 L508.4,345.9 L507.8,347.6 L502.9,349.7 L503.8,352.1 L505.5,351.7 L508.9,349.3 L511.6,348.9 L508.3,340.6 L500.9,343.4ZM502.8,387.6 L503.3,388.6 L509.5,390.1 L510.4,389.5 L511.4,385.5 L509.1,384.4 L508.2,382.7 L504.9,381.8 L502.8,387.6ZM500.2,397.5 L507.6,399.3 L508.5,395.9 L507.2,392.9 L503.9,392.0 L501.4,392.8 L500.2,397.5ZM505.5,225.3 L502.3,226.1 L501.5,227.7 L506.8,231.8 L508.3,229.1 L506.1,227.5 L505.5,225.3ZM502.3,521.3 L502.5,522.5 L503.6,522.3 L507.5,517.1 L507.9,514.9 L506.8,515.0 L502.3,521.3ZM502.5,442.4 L499.3,444.7 L500.8,447.5 L500.7,451.3 L503.9,452.6 L507.6,440.7 L503.8,439.5 L502.5,442.4ZM499.5,248.2 L499.1,249.5 L503.3,252.9 L507.4,248.7 L503.3,245.0 L499.5,248.2ZM499.9,281.0 L500.3,282.1 L501.3,282.1 L504.4,278.5 L504.3,277.5 L502.3,276.6 L499.9,281.0ZM500.7,269.8 L502.7,270.4 L504.1,268.8 L503.2,263.2 L498.8,267.4 L500.7,269.8ZM465.7,461.2 L467.6,467.2 L469.8,467.3 L470.2,459.0 L471.5,458.1 L472.8,458.6 L473.0,468.1 L470.6,471.7 L467.7,472.4 L468.0,474.3 L475.8,474.3 L476.6,471.8 L478.1,471.1 L479.2,471.9 L480.0,474.5 L488.4,477.4 L490.0,476.4 L489.7,475.2 L482.8,472.0 L482.8,470.0 L485.3,469.6 L485.7,468.4 L483.5,466.4 L480.7,466.2 L473.3,455.1 L467.5,458.1 L467.2,459.8 L465.7,461.2ZM483.0,458.5 L481.5,454.4 L483.1,453.0 L484.4,453.9 L486.4,459.9 L489.8,460.5 L499.1,465.7 L500.4,463.1 L498.4,460.9 L498.2,459.6 L500.1,457.8 L502.4,457.7 L502.9,456.3 L498.2,453.4 L497.6,451.5 L497.7,448.1 L497.0,447.0 L494.9,446.8 L493.4,449.7 L491.4,450.7 L490.2,449.3 L491.2,446.2 L488.3,444.7 L486.0,445.2 L484.5,444.4 L484.0,442.7 L485.0,440.1 L480.2,438.4 L479.1,431.9 L476.0,431.1 L474.0,428.4 L473.3,425.3 L472.0,423.5 L473.6,421.5 L473.8,420.1 L471.9,417.9 L466.1,421.9 L465.8,422.7 L477.6,438.9 L478.9,446.9 L482.2,446.6 L483.4,447.4 L483.0,449.3 L479.0,451.1 L476.1,453.4 L482.2,462.6 L483.2,461.9 L483.0,458.5ZM497.4,407.0 L497.9,408.0 L501.1,408.5 L502.4,402.7 L498.9,402.0 L497.4,407.0ZM498.6,321.7 L497.4,322.9 L497.9,323.9 L502.3,321.7 L501.5,320.8 L498.6,321.7ZM498.8,336.5 L497.5,337.2 L498.8,340.1 L502.0,339.1 L501.3,336.9 L498.8,336.5ZM500.8,527.2 L501.9,526.2 L500.1,525.2 L499.4,526.3 L500.8,527.2ZM482.0,428.6 L483.2,436.2 L484.3,436.3 L485.3,434.6 L486.7,434.3 L487.7,435.2 L488.1,437.5 L492.6,438.6 L494.0,43
381386.9 L495.3,436.6 L496.3,437.5 L496.5,439.6 L499.3,440.5 L500.1,439.9 L501.9,433.7 L500.1,432.5 L498.0,433.6 L494.8,432.9 L492.7,430.6 L490.6,431.6 L487.1,430.7 L485.6,428.7 L482.8,427.9 L482.0,428.6ZM493.1,243.9 L497.0,247.3 L500.4,242.7 L496.3,239.3 L493.9,241.7 L493.1,243.9ZM498.5,275.5 L499.4,275.2 L499.9,273.7 L496.6,270.8 L495.7,270.8 L494.7,272.8 L498.5,275.5ZM497.4,232.4 L499.0,229.6 L497.9,228.9 L495.4,229.3 L494.5,231.2 L496.3,232.7 L497.4,232.4ZM498.8,387.2 L497.8,386.0 L496.8,386.6 L497.6,388.4 L498.8,387.2ZM493.0,346.9 L492.6,347.9 L493.8,349.7 L498.3,347.4 L496.9,345.0 L493.0,346.9ZM479.7,478.2 L487.7,487.2 L486.6,489.0 L484.1,488.0 L483.3,488.6 L485.2,492.7 L484.2,495.4 L492.6,498.0 L497.4,492.0 L495.6,488.1 L494.9,487.7 L492.7,488.5 L491.5,488.0 L491.3,485.5 L490.0,484.0 L490.0,481.5 L480.9,477.8 L479.7,478.2ZM491.3,278.0 L491.6,278.9 L495.3,281.5 L497.3,279.1 L493.3,275.7 L491.3,278.0ZM494.6,377.8 L496.6,379.1 L497.0,378.2 L495.4,376.8 L494.6,377.8ZM491.0,506.4 L492.8,508.0 L495.0,506.5 L495.5,505.0 L491.5,503.1 L491.0,506.4ZM479.1,408.3 L479.9,409.3 L487.1,411.3 L489.5,407.9 L488.7,405.5 L489.4,402.7 L491.1,401.5 L494.3,401.9 L494.8,400.7 L487.5,398.5 L484.8,406.4 L482.7,407.5 L479.6,407.1 L479.1,408.3ZM490.3,255.1 L491.0,256.1 L494.2,256.0 L494.9,255.2 L493.8,252.8 L491.2,251.8 L490.4,252.4 L490.3,255.1ZM493.2,468.3 L494.7,467.6 L494.1,466.3 L488.6,463.4 L486.6,463.5 L486.6,465.1 L487.7,466.0 L493.2,468.3ZM479.4,378.0 L479.2,380.7 L485.9,385.4 L485.9,387.4 L484.3,389.3 L484.7,394.3 L491.7,396.0 L493.7,388.1 L492.2,387.7 L490.8,391.7 L488.9,392.1 L488.1,390.9 L488.9,387.8 L488.4,384.2 L480.4,377.8 L479.4,378.0ZM489.9,281.5 L488.8,281.8 L488.6,283.4 L492.0,284.4 L492.2,283.3 L489.9,281.5ZM483.9,501.9 L484.6,503.3 L486.7,503.9 L488.6,502.6 L488.1,501.7 L484.8,500.6 L483.9,501.9ZM483.6,261.5 L483.8,271.7 L484.7,272.5 L488.5,266.4 L487.7,263.5 L484.8,260.9 L483.6,261.5ZM480.7,244.1 L481.4,244.8 L486.4,245.4 L487.2,244.5 L481.8,240.0 L481.0,240.6 L480.7,244.1ZM484.4,278.2 L480.7,279.6 L480.7,280.6 L484.2,282.7 L486.4,279.8 L484.4,278.2ZM476.7,418.9 L476.5,425.9 L478.1,428.3 L479.9,424.7 L484.2,424.5 L485.5,422.0 L486.2,416.1 L480.3,414.1 L477.4,414.2 L475.2,415.9 L476.7,418.9ZM480.4,257.3 L481.6,257.8 L483.3,256.4 L485.4,250.1 L485.0,249.2 L480.5,249.4 L480.4,257.3ZM479.8,289.5 L480.9,289.3 L482.6,285.5 L474.1,280.3 L473.1,280.3 L471.3,284.2 L479.8,289.5ZM478.1,401.7 L481.6,403.1 L482.7,399.7 L481.8,399.2 L478.4,400.2 L478.1,401.7ZM478.5,270.8 L479.3,271.5 L480.2,271.0 L480.4,267.3 L479.9,266.6 L478.5,267.1 L478.5,270.8ZM475.0,276.8 L478.5,279.4 L479.6,279.0 L479.7,275.8 L478.9,275.1 L475.7,274.6 L475.0,276.8ZM468.2,487.1 L468.4,490.4 L478.0,493.5 L479.0,493.0 L477.5,489.4 L475.2,489.9 L469.0,486.6 L468.2,487.1ZM476.1,500.0 L477.1,500.1 L477.7,499.0 L476.2,497.9 L475.3,498.7 L476.1,500.0ZM477.5,242.7 L473.4,242.4 L472.9,243.7 L477.4,244.3 L477.5,242.7ZM472.4,252.1 L474.6,255.3 L476.6,255.4 L477.0,250.4 L472.6,249.4 L472.4,252.1ZM475.3,484.7 L474.6,486.0 L476.7,486.7 L476.8,485.2 L475.3,484.7ZM444.0,440.0 L441.5,439.0 L438.8,440.9 L438.7,441.8 L441.6,446.0 L444.3,445.1 L447.4,445.9 L447.5,447.6 L444.7,450.5 L450.9,459.3 L452.8,460.8 L454.2,461.0 L455.3,459.4 L462.0,455.8 L463.1,451.7 L461.1,448.0 L461.9,446.3 L463.7,446.6 L468.6,453.6 L476.1,449.1 L475.1,446.5 L470.3,446.1 L468.6,447.1 L467.3,446.6 L467.2,443.7 L455.9,429.4 L452.4,431.5 L453.2,433.9 L452.5,435.2 L451.1,435.3 L448.9,433.8 L446.4,435.6 L446.6,437.8 L445.9,439.1 L444.0,440.0ZM468.3,401.0 L468.8,404.3 L474.7,407.0 L475.7,406.6 L475.5,403.6 L474.0,400.0 L468.3,401.0ZM474.5,443.4 L475.3,442.7 L474.8,440.2 L463.4,424.7 L462.4,424.5 L459.1,426.9 L458.9,428.0 L469.0,441.1 L471.7,443.2 L474.5,443.4ZM468.8,525.3 L471.4,524.4 L474.9,515.2 L474.5,514.2 L470.9,513.5 L470.1,514.0 L469.5,519.6 L468.0,524.4 L468.8,525.3ZM468.6,508.6 L470.2,510.0 L471.9,510.2 L474.1,504.6 L470.5,503.4 L468.6,508.6ZM465.2,409.3 L469.6,415.3 L472.3,413.7 L471.9,412.7 L469.8,412.4 L468.5,411.3 L468.1,408.9 L465.7,408.2 L465.2,409.3ZM468.1,271.6 L467.9,273.0 L471.1,274.9 L472.0,274.6 L471.8,271.0 L468.1,271.6ZM466.0,267.4 L467.0,268.3 L471.0,267.5 L471.5,265.3 L470.5,264.7 L466.2,265.9 L466.0,267.4ZM467.6,282.1 L468.6,281.7 L470.3,278.1 L463.3,274.4 L461.4,278.2 L467.6,282.1ZM468.1,498.2 L469.1,497.8 L469.4,495.7 L464.0,494.3 L464.0,495.5 L468.1,498.2ZM467.7,250.3 L467.4,253.5 L469.0,253.2 L469.0,250.3 L467.7,250.3ZM463.6,256.4 L462.9,257.4 L465.0,261.5 L468.6,260.6 L468.3,258.6 L466.8,258.1 L465.7,256.7 L463.6,256.4ZM454.0,48
381381.0 L460.8,483.6 L461.3,485.1 L459.8,487.2 L462.3,488.3 L463.2,485.8 L464.9,484.6 L464.3,481.8 L465.3,481.1 L468.4,480.9 L468.6,478.1 L467.8,477.4 L446.3,477.5 L445.6,478.0 L445.8,478.9 L449.7,481.9 L454.0,481.0ZM467.0,486.5 L468.0,486.0 L467.6,484.6 L465.6,484.3 L465.4,485.4 L467.0,486.5ZM463.2,419.3 L464.2,419.4 L466.7,417.6 L465.4,415.2 L464.5,415.3 L462.7,417.7 L463.2,419.3ZM452.5,387.4 L451.8,388.2 L452.4,389.4 L456.5,390.0 L461.1,395.6 L466.5,392.6 L466.1,391.6 L462.8,391.1 L461.2,389.6 L458.0,388.2 L452.5,387.4ZM464.0,288.1 L465.0,287.8 L466.1,284.8 L459.1,281.2 L457.8,284.3 L464.0,288.1ZM435.2,470.5 L439.3,468.1 L441.4,467.7 L442.4,468.3 L442.4,470.3 L438.4,472.5 L440.4,474.5 L463.6,474.4 L464.4,473.6 L464.0,471.0 L457.4,470.9 L456.2,469.7 L457.3,467.9 L464.1,467.6 L463.8,464.6 L462.5,462.8 L457.6,465.0 L450.3,463.3 L448.2,466.2 L448.7,468.9 L447.2,469.7 L444.1,466.1 L445.9,463.4 L446.1,461.3 L445.1,460.7 L434.0,468.9 L435.2,470.5ZM459.7,371.2 L457.5,367.2 L456.0,366.9 L452.2,374.7 L455.6,375.6 L456.9,374.1 L458.1,373.8 L459.9,376.6 L463.6,377.1 L463.4,373.0 L459.7,371.2ZM457.2,412.2 L453.0,417.8 L454.4,419.5 L461.0,415.1 L463.5,412.3 L462.2,410.4 L461.3,410.2 L460.0,412.1 L457.2,412.2ZM444.5,281.4 L446.0,286.0 L460.3,294.1 L461.2,293.9 L462.5,291.8 L462.2,290.7 L445.4,280.6 L444.5,281.4ZM458.6,407.3 L457.9,407.9 L458.2,408.8 L460.6,408.9 L460.3,407.5 L458.6,407.3ZM456.2,273.2 L456.0,274.6 L458.5,275.3 L460.5,271.8 L459.1,268.2 L457.3,268.7 L457.7,271.7 L456.2,273.2ZM459.0,248.5 L459.7,247.8 L459.3,247.0 L456.9,247.1 L457.1,248.2 L459.0,248.5ZM449.5,291.2 L448.6,291.3 L448.4,292.2 L453.6,304.2 L454.6,304.6 L459.0,297.1 L449.5,291.2ZM454.0,383.8 L456.3,384.5 L457.1,384.0 L457.4,381.9 L456.3,379.3 L450.2,377.8 L449.8,380.9 L453.0,381.0 L454.0,383.8ZM453.6,402.6 L455.4,403.3 L456.1,402.4 L454.4,400.5 L453.7,401.1 L453.6,402.6ZM452.6,319.1 L453.5,319.6 L455.9,318.3 L454.4,314.7 L451.5,315.9 L452.6,319.1ZM449.8,277.6 L449.6,279.0 L453.9,281.6 L455.8,279.9 L455.5,278.9 L451.4,276.4 L449.8,277.6ZM412.7,446.1 L412.4,447.3 L415.9,451.5 L416.8,451.6 L423.5,446.8 L422.0,443.5 L422.7,441.9 L424.3,441.8 L426.2,444.2 L427.1,444.4 L455.4,424.8 L455.7,423.7 L452.3,422.8 L450.2,420.6 L449.3,420.5 L435.7,430.0 L431.3,431.1 L429.5,434.6 L412.7,446.1ZM445.6,406.0 L442.9,409.2 L443.7,410.6 L444.8,411.2 L448.6,411.0 L451.1,414.8 L453.6,412.7 L454.9,407.2 L454.2,406.4 L445.6,406.0ZM446.5,370.4 L447.9,370.4 L454.0,359.2 L453.6,358.1 L446.6,360.3 L442.8,363.3 L446.5,370.4ZM449.8,312.3 L450.7,312.6 L453.1,311.4 L451.6,307.9 L448.7,309.1 L449.8,312.3ZM430.9,399.8 L431.3,400.8 L435.7,402.1 L449.7,403.1 L450.5,402.5 L450.9,399.6 L453.0,398.0 L450.1,393.6 L448.5,392.5 L446.4,387.6 L443.8,385.4 L436.6,385.0 L434.8,385.4 L431.9,387.5 L434.0,390.7 L434.6,393.4 L430.9,399.8ZM450.4,247.9 L452.4,248.7 L452.8,246.7 L450.9,246.3 L450.4,247.9ZM446.2,254.7 L448.8,261.2 L450.2,260.8 L449.6,257.7 L451.1,255.1 L446.8,253.7 L446.2,254.7ZM442.5,295.4 L447.1,305.7 L450.0,304.9 L445.2,293.9 L442.5,295.4ZM447.2,317.5 L446.8,318.3 L447.9,321.1 L449.4,321.2 L449.8,320.4 L448.6,317.6 L447.2,317.5ZM409.2,416.9 L412.2,423.0 L415.5,422.6 L418.7,424.7 L420.4,422.1 L421.9,421.8 L422.9,423.0 L422.2,425.5 L422.7,426.3 L432.7,427.3 L434.4,426.3 L433.6,424.0 L434.3,422.7 L435.7,422.6 L437.6,424.1 L441.2,421.8 L440.4,419.1 L441.1,417.8 L442.7,417.6 L444.6,419.3 L447.5,416.8 L441.9,413.1 L439.0,410.0 L438.8,408.6 L440.5,407.0 L440.3,406.0 L433.8,404.8 L425.7,411.7 L428.5,415.4 L432.0,416.8 L432.6,419.3 L431.9,422.1 L429.8,421.9 L429.0,418.7 L426.1,417.7 L423.7,419.2 L420.2,417.1 L420.0,415.7 L423.0,409.8 L422.1,408.7 L420.5,409.1 L419.6,411.3 L417.1,411.7 L415.9,414.1 L417.9,415.3 L418.2,416.6 L415.8,419.1 L414.1,419.0 L412.1,416.5 L409.2,416.9ZM430.0,241.9 L427.3,246.5 L427.8,247.5 L446.2,250.4 L447.1,249.8 L447.3,246.2 L445.5,245.4 L443.5,243.0 L440.6,244.5 L437.4,244.4 L435.7,243.7 L434.1,241.5 L430.0,241.9ZM446.6,314.4 L446.9,313.5 L446.1,311.5 L445.0,311.0 L444.5,311.8 L445.3,314.1 L446.6,314.4ZM441.6,374.1 L441.4,375.2 L443.4,378.1 L444.4,378.2 L445.1,375.3 L444.1,373.5 L443.2,373.1 L441.6,374.1ZM430.4,466.7 L431.4,466.7 L444.8,457.0 L444.8,456.1 L442.1,452.3 L441.1,452.3 L426.4,462.4 L426.5,463.5 L430.4,466.7ZM438.8,321.1 L438.6,322.3 L440.7,322.9 L444.1,322.8 L444.8,322.1 L443.5,319.2 L438.8,321.1ZM436.8,289.1 L438.3,293.3 L444.1,290.5 L442.4,286.6 L436.8,289.1ZM426.7,258.5 L430.2,260.9 L430.0,263.4 L432.5,271.9 L434.8,271.9 L435.3,270.7 L433.4,269.1 L433.8,267.6 L436.0,267.0 L438.2,268.7 L439.0,268.0 L436.0,258.5 L439.8,256.0 L442.2,255.6 L442.1,253.3 L427.2,250.6 L426.6,251.4 L427.1,252.3 L429.7,252.7 L431.0,254.8 L429.8,256.2 L427.2,255.8 L426.7,258.5ZM442.1,316.3 L442.4,315.3 L440.7,311.9 L434.0,315.1 L435.9,318.8 L442.1,316.3ZM438.1,381.5 L441.3,382.1 L441.6,381.1 L439.4,377.9 L438.6,377.6 L437.6,379.0 L438.1,381.5ZM435.5,281.6 L435.5,284.9 L436.3,285.4 L441.6,282.8 L440.7,280.0 L437.3,280.0 L435.2,276.3 L434.0,277.2 L435.5,281.6ZM434.4,363.9 L433.7,365.0 L436.4,368.3 L438.6,368.3 L440.1,366.2 L439.6,365.1 L438.1,364.1 L434.4,363.9ZM432.7,311.5 L439.7,308.6 L438.6,305.4 L431.5,308.4 L432.7,311.5ZM419.7,458.0 L423.6,460.6 L433.7,453.6 L432.3,450.2 L432.8,448.7 L434.5,448.5 L436.9,451.2 L439.4,449.7 L439.6,448.7 L436.3,443.8 L435.3,443.6 L420.3,454.0 L419.0,456.3 L419.7,458.0ZM429.4,3
3813805.2 L437.2,302.3 L436.2,298.3 L432.2,298.8 L428.0,302.2 L427.8,303.2 L429.4,305.2ZM425.9,371.1 L425.3,382.4 L429.8,384.9 L434.7,382.0 L434.6,380.2 L431.6,375.6 L429.7,368.9 L426.7,369.6 L425.9,371.1ZM430.1,296.5 L434.7,294.9 L433.8,291.5 L423.6,295.6 L425.9,299.6 L430.1,296.5ZM426.1,290.3 L432.6,288.2 L432.2,284.9 L423.9,286.2 L423.8,287.2 L426.1,290.3ZM429.7,314.9 L428.6,317.3 L430.5,318.7 L431.4,318.6 L430.6,315.1 L429.7,314.9ZM414.2,284.1 L418.2,286.1 L419.9,284.0 L422.3,284.5 L423.9,283.0 L431.0,281.6 L431.5,280.8 L431.0,278.2 L430.2,277.7 L426.8,278.4 L414.2,282.9 L414.2,284.1ZM425.0,392.8 L426.3,395.3 L425.3,397.9 L427.5,398.9 L431.4,393.2 L431.3,392.2 L427.6,388.5 L425.1,391.1 L425.0,392.8ZM404.0,369.9 L399.5,372.8 L397.4,372.5 L395.3,374.1 L395.2,375.0 L404.9,383.3 L412.4,388.6 L414.7,387.6 L419.4,382.0 L421.8,380.8 L423.0,375.2 L423.0,369.9 L424.5,367.2 L429.5,365.0 L429.7,363.7 L420.9,357.8 L416.2,359.8 L415.8,364.0 L414.7,365.7 L413.4,366.0 L412.2,364.7 L412.8,360.2 L409.5,359.3 L408.9,360.2 L410.2,361.8 L410.0,363.2 L408.7,363.8 L406.4,363.0 L405.2,365.1 L406.3,366.7 L411.8,369.7 L412.5,371.3 L411.8,372.8 L409.2,373.6 L404.0,369.9ZM418.0,235.6 L426.8,237.8 L428.0,236.1 L427.0,234.6 L422.9,232.9 L421.3,233.5 L419.2,233.0 L418.0,235.6ZM425.8,272.3 L427.5,272.1 L426.5,270.3 L424.9,270.8 L425.8,272.3ZM410.6,442.5 L411.8,442.4 L421.7,435.5 L422.7,433.6 L424.7,433.4 L427.0,431.9 L427.3,430.3 L421.7,429.4 L420.5,429.9 L418.1,434.2 L409.6,440.6 L409.5,441.6 L410.6,442.5ZM419.0,311.7 L423.2,311.8 L426.0,308.7 L426.1,307.8 L425.0,307.5 L418.6,310.5 L419.0,311.7ZM410.2,355.2 L410.9,356.3 L414.2,356.9 L419.3,355.0 L424.8,340.3 L424.6,339.4 L416.9,337.1 L410.2,355.2ZM420.8,403.2 L422.0,403.5 L424.0,402.0 L424.0,401.0 L421.6,400.1 L420.8,403.2ZM392.0,256.8 L394.4,259.5 L400.
381380,259.4 L400.4,253.1 L401.3,252.1 L402.6,252.3 L403.4,253.4 L404.1,267.3 L406.8,267.8 L407.9,270.7 L416.5,271.5 L417.3,270.8 L417.0,266.0 L418.4,265.0 L421.1,265.4 L423.8,257.1 L422.6,254.2 L421.2,253.1 L418.5,254.1 L416.7,253.6 L414.4,254.3 L408.6,253.4 L406.9,252.0 L406.4,250.3 L406.9,246.3 L408.0,245.6 L410.3,245.8 L410.9,245.1 L408.8,242.7 L408.7,241.4 L410.1,240.4 L412.2,241.6 L413.8,241.4 L413.7,237.0 L407.3,232.7 L405.0,235.8 L401.7,236.6 L397.6,234.1 L393.2,234.0 L392.7,231.8 L396.6,230.9 L398.3,226.8 L393.5,223.3 L392.7,223.9 L389.4,239.9 L391.8,240.5 L393.2,237.2 L394.9,236.7 L395.9,237.9 L395.5,241.1 L401.2,242.7 L402.0,244.2 L399.9,247.5 L393.8,247.2 L392.0,256.8ZM417.8,241.8 L418.8,242.6 L421.8,241.4 L422.2,240.5 L418.2,239.3 L417.8,241.8ZM416.2,390.5 L416.2,391.8 L419.6,393.7 L422.1,390.0 L421.9,387.5 L420.5,386.5 L419.1,387.0 L416.2,390.5ZM417.9,398.8 L418.5,400.0 L420.2,399.0 L419.1,397.8 L417.9,398.8ZM409.6,399.1 L409.1,401.3 L412.8,404.8 L416.4,406.2 L417.9,405.2 L417.9,400.0 L415.4,399.6 L411.7,395.4 L410.8,395.4 L409.2,397.2 L409.6,399.1ZM415.9,275.6 L415.0,276.4 L415.8,278.0 L417.6,276.7 L415.9,275.6ZM404.7,437.1 L405.8,438.7 L407.0,438.8 L413.8,433.7 L414.0,432.8 L412.6,431.7 L411.1,431.9 L405.3,436.0 L404.7,437.1ZM412.0,338.6 L413.1,338.3 L413.7,335.4 L410.7,334.6 L408.6,335.4 L408.6,336.6 L412.0,338.6ZM395.9,427.7 L398.6,432.5 L399.6,432.8 L402.6,432.1 L406.9,428.7 L408.8,428.4 L409.9,427.0 L412.5,426.6 L411.2,424.1 L407.5,425.7 L405.2,423.3 L405.1,421.9 L406.7,420.2 L405.2,416.8 L406.0,414.7 L403.2,412.1 L400.9,411.6 L399.7,412.3 L402.8,416.5 L402.9,418.0 L402.1,419.6 L400.1,419.3 L399.7,417.0 L397.6,415.2 L394.5,417.8 L396.8,422.8 L400.8,424.2 L403.2,426.1 L403.4,427.7 L401.7,428.6 L397.2,426.1 L395.9,427.7ZM397.0,406.4 L397.9,408.7 L400.5,408.4 L400.9,407.3 L399.0,406.0 L398.8,404.6 L400.1,403.5 L402.1,404.1 L404.5,407.3 L405.2,409.7 L409.6,413.4 L411.5,412.9 L410.8,410.9 L411.0,408.9 L407.4,406.5 L407.3,403.8 L404.4,403.0 L403.3,401.2 L397.5,401.8 L397.0,406.4ZM398.6,338.5 L398.3,346.3 L399.2,348.5 L406.4,353.6 L407.4,353.6 L411.3,341.9 L408.5,340.3 L407.6,337.9 L406.8,337.5 L404.1,339.2 L398.6,338.5ZM408.2,448.9 L410.6,447.8 L411.0,447.0 L407.4,445.0 L406.0,446.9 L408.2,448.9ZM407.1,394.2 L410.0,391.7 L408.6,390.0 L405.7,392.7 L407.1,394.2ZM401.0,278.2 L399.5,280.1 L400.1,284.1 L402.1,284.5 L406.9,281.9 L405.2,274.5 L401.5,274.7 L401.0,278.2ZM384.8,385.2 L384.0,386.2 L386.2,391.2 L388.5,391.5 L389.5,392.4 L389.8,398.1 L394.2,398.2 L394.9,394.3 L396.3,393.4 L397.8,394.5 L397.9,398.3 L401.1,398.4 L405.2,393.8 L403.5,391.2 L405.2,387.5 L404.2,386.9 L402.5,387.9 L401.2,387.6 L400.6,386.5 L401.2,384.2 L396.0,379.8 L388.3,384.6 L384.8,385.2ZM404.9,288.5 L404.5,287.0 L402.8,287.9 L403.5,289.1 L404.9,288.5ZM370.3,358.1 L373.0,356.2 L374.6,356.8 L376.2,359.5 L376.0,361.9 L379.7,363.7 L381.0,361.3 L378.5,358.8 L378.4,357.2 L379.8,356.4 L382.4,357.3 L383.3,354.4 L386.2,351.2 L386.8,349.4 L388.6,348.5 L390.5,349.5 L390.8,351.4 L386.0,356.1 L385.4,361.7 L389.3,362.4 L390.3,358.6 L393.4,358.3 L394.4,359.5 L394.4,363.9 L397.5,365.9 L399.3,364.6 L401.5,364.7 L404.7,359.4 L404.0,358.5 L401.7,359.0 L400.6,358.5 L400.3,356.8 L402.1,355.5 L402.2,354.6 L396.9,350.5 L394.9,345.7 L392.9,345.7 L391.9,344.9 L392.1,343.2 L395.1,341.6 L394.9,337.2 L394.0,337.0 L388.9,339.8 L386.6,336.1 L383.5,336.3 L380.3,333.5 L368.8,349.5 L367.8,356.0 L370.3,358.1ZM394.5,268.1 L400.6,269.0 L400.5,262.8 L394.6,262.8 L393.5,267.3 L394.5,268.1ZM397.5,434.0 L393.6,434.4 L394.4,435.9 L397.0,435.9 L397.5,434.0ZM381.6,285.9 L382.6,287.7 L394.1,290.1 L396.9,287.8 L396.2,286.5 L382.9,283.5 L382.1,284.0 L381.6,285.9ZM389.0,281.3 L396.1,283.0 L396.4,279.7 L394.7,277.6 L389.6,274.7 L389.0,281.3ZM390.0,370.6 L392.7,372.3 L395.4,370.0 L395.1,367.9 L392.6,366.9 L391.0,367.3 L389.3,369.5 L390.0,370.6ZM384.5,413.5 L385.7,413.9 L387.8,411.7 L391.3,412.8 L392.1,411.3 L394.1,410.3 L393.3,407.2 L389.5,407.7 L388.3,409.5 L384.3,410.9 L384.5,413.5ZM383.7,381.3 L385.3,382.1 L386.9,381.9 L392.7,377.6 L385.4,371.2 L381.4,376.9 L383.7,381.3ZM389.4,423.8 L388.3,424.8 L389.3,427.0 L390.1,427.3 L391.7,424.6 L389.4,423.8ZM390.7,294.3 L391.5,293.6 L391.0,292.6 L382.7,290.9 L381.8,291.4 L382.3,292.6 L390.7,294.3ZM385.6,264.0 L388.0,268.9 L389.7,269.2 L391.5,261.4 L389.3,259.1 L385.1,257.2 L382.4,264.2 L383.3,264.9 L385.6,264.0ZM381.3,330.1 L386.2,332.9 L387.1,335.8 L390.1,336.0 L391.4,335.0 L391.2,334.1 L382.7,327.0 L381.3,330.1ZM386.8,420.3 L389.9,420.3 L391.2,417.9 L390.0,417.2 L386.6,417.6 L386.8,420.3ZM385.6,253.3 L388.9,255.0 L389.7,251.0 L386.4,250.3 L385.6,253.3ZM384.7,239.5 L385.5,238.9 L389.5,220.9 L386.4,218.4 L385.5,219.0 L381.1,238.2 L381.6,239.0 L384.7,239.5ZM302.8,309.8 L299.6,308.2 L297.7,309.7 L300.
381381,312.8 L301.7,313.6 L303.7,313.3 L305.1,314.7 L307.1,314.7 L308.8,316.6 L313.3,313.3 L315.3,313.3 L325.4,324.3 L328.7,319.8 L323.6,317.8 L320.2,315.5 L319.3,313.5 L319.8,310.7 L323.3,307.3 L325.5,306.1 L335.9,305.6 L336.5,302.8 L337.5,302.0 L339.1,302.5 L340.0,305.3 L348.9,305.0 L354.7,305.8 L362.5,308.5 L367.6,311.3 L368.3,312.7 L367.2,314.0 L362.4,312.7 L361.9,318.8 L360.2,319.8 L359.0,319.0 L358.6,316.8 L359.5,310.8 L355.9,309.5 L353.7,318.6 L352.5,320.6 L343.7,323.5 L338.7,323.8 L338.0,324.8 L338.2,330.0 L340.9,334.7 L341.9,334.4 L344.2,329.9 L347.3,328.6 L348.8,329.1 L348.4,332.3 L355.4,339.6 L353.1,344.5 L355.7,346.0 L359.3,346.8 L360.3,348.0 L360.3,350.2 L362.7,351.5 L365.6,349.4 L369.1,343.3 L366.5,342.0 L359.9,342.0 L359.7,339.1 L355.1,335.2 L355.6,330.4 L356.6,329.6 L358.0,330.1 L361.7,334.4 L362.7,338.0 L364.0,338.8 L367.0,338.8 L368.1,337.6 L368.7,334.8 L371.3,333.7 L370.9,332.7 L366.4,329.6 L366.6,328.2 L368.5,326.7 L370.2,326.7 L373.0,330.4 L375.2,331.2 L378.0,324.3 L374.9,321.3 L374.8,319.8 L377.4,317.9 L380.5,320.1 L381.6,319.8 L389.2,297.8 L388.7,297.0 L382.1,295.6 L380.7,294.1 L375.7,293.2 L373.3,294.3 L368.5,293.2 L367.2,291.7 L365.5,291.3 L365.0,289.6 L369.7,279.7 L367.8,278.4 L367.0,276.7 L364.8,277.1 L360.0,275.2 L359.2,275.7 L356.9,282.1 L363.7,285.2 L364.3,287.1 L362.6,288.0 L355.6,285.4 L353.2,290.8 L360.0,294.3 L360.5,295.6 L359.7,296.7 L352.0,294.4 L350.0,298.4 L348.4,299.0 L347.3,297.5 L348.1,294.1 L344.0,292.4 L340.5,298.8 L338.9,299.5 L337.7,298.3 L338.0,295.0 L328.2,290.8 L327.9,289.2 L329.5,288.2 L339.0,292.0 L340.0,291.6 L351.9,261.5 L351.5,260.6 L345.7,257.9 L337.9,273.5 L338.6,275.6 L337.8,279.5 L335.6,280.5 L333.7,284.4 L332.6,285.1 L330.9,283.9 L331.6,280.9 L329.7,280.4 L324.5,291.1 L324.8,292.1 L327.6,292.6 L331.7,295.7 L331.8,297.9 L330.1,298.2 L326.2,295.4 L319.5,294.7 L317.3,296.9 L315.2,297.2 L313.8,295.2 L311.5,295.0 L310.8,293.2 L308.9,291.8 L309.3,290.1 L311.4,289.3 L311.4,287.7 L304.0,285.6 L303.4,286.6 L304.5,288.5 L303.9,290.5 L305.4,292.4 L305.6,294.5 L314.7,301.5 L317.6,300.7 L320.4,301.8 L322.6,300.9 L323.8,302.7 L320.7,305.4 L317.4,306.3 L315.0,305.6 L309.3,301.7 L304.1,306.2 L304.7,307.0 L307.5,307.4 L309.2,305.8 L310.7,305.9 L311.4,307.6 L309.8,309.8 L307.2,310.5 L302.8,309.8ZM382.7,365.8 L386.7,367.7 L387.7,365.6 L383.3,364.0 L382.7,365.8ZM384.5,432.0 L386.4,432.0 L387.0,431.0 L383.2,422.1 L382.3,421.7 
38138L381.4,422.8 L384.5,432.0ZM382.9,390.9 L381.7,389.5 L379.7,391.0 L381.5,394.7 L382.9,394.3 L382.9,390.9ZM383.0,250.3 L382.3,249.5 L378.9,249.0 L378.1,251.2 L382.1,252.6 L383.0,250.3ZM372.0,235.3 L372.5,237.5 L376.4,238.2 L377.2,237.6 L382.2,215.9 L378.2,212.8 L377.1,213.4 L372.0,235.3ZM367.9,370.1 L370.4,371.6 L372.2,373.8 L371.0,375.4 L368.2,374.9 L368.1,378.7 L371.9,380.3 L374.7,377.8 L375.1,375.1 L379.0,374.7 L382.1,369.5 L368.5,360.9 L367.7,361.7 L367.9,370.1ZM377.8,266.1 L378.6,265.6 L381.6,256.4 L381.1,255.6 L377.9,254.8 L377.1,255.3 L374.2,264.3 L374.7,265.1 L377.8,266.1ZM379.0,396.9 L377.6,397.3 L378.5,399.4 L380.9,399.1 L381.0,397.9 L379.0,396.9ZM374.0,386.3 L374.9,389.5 L375.9,389.8 L379.6,387.1 L379.8,386.2 L377.9,384.4 L376.1,385.5 L374.6,385.4 L374.0,386.3ZM367.1,420.8 L368.1,421.5 L373.9,419.9 L376.2,420.9 L378.2,420.2 L379.6,418.7 L368.6,404.5 L367.6,405.2 L367.1,420.8ZM371.9,286.6 L375.8,287.7 L377.4,289.1 L379.2,288.6 L376.5,285.0 L372.2,285.0 L371.9,286.6ZM376.1,391.0 L375.1,390.7 L374.4,391.8 L376.2,394.2 L377.0,393.3 L376.1,391.0ZM366.7,257.5 L368.6,259.7 L371.4,259.8 L373.8,252.7 L374.1,248.2 L370.0,247.9 L366.7,257.5ZM360.9,271.5 L361.3,272.4 L366.0,274.4 L367.1,276.4 L370.8,275.6 L371.2,273.3 L369.2,271.9 L368.7,269.7 L366.8,269.3 L365.6,267.7 L362.8,267.3 L360.9,271.5ZM367.9,394.4 L368.7,395.1 L370.4,394.3 L370.0,392.4 L368.2,392.5 L367.9,394.4ZM359.5,253.1 L363.1,255.8 L364.1,255.5 L366.3,250.4 L366.4,247.0 L362.0,246.6 L359.5,253.1ZM360.5,372.3 L363.5,376.7 L364.7,376.7 L364.2,365.2 L362.5,365.6 L362.7,368.2 L360.5,372.3ZM362.8,358.0 L363.8,357.7 L363.8,356.8 L361.7,355.0 L360.8,355.0 L360.3,356.5 L362.8,358.0ZM357.3,225.3 L362.3,226.4 L363.5,222.6 L357.5,221.1 L356.3,224.2 L357.3,225.3ZM355.8,230.7 L356.9,232.1 L360.7,232.0 L361.6,231.5 L361.9,230.2 L361.4,229.5 L357.2,228.5 L356.1,229.1 L355.8,230.7ZM358.9,359.9 L356.3,364.8 L357.7,366.1 L361.1,365.0 L361.3,360.8 L358.9,359.9ZM357.2,264.4 L357.4,267.4 L353.9,267.2 L353.3,269.2 L357.8,270.6 L360.2,264.9 L357.8,263.7 L357.2,264.4ZM353.9,257.3 L354.9,256.8 L359.9,242.0 L359.3,241.3 L352.6,240.2 L351.9,240.7 L351.7,242.5 L355.7,244.2 L356.6,245.8 L353.4,255.1 L353.2,256.6 L353.9,257.3ZM342.0,352.8 L352.2,363.2 L354.2,361.6 L356.6,357.7 L356.5,355.7 L357.9,352.5 L353.6,351.2 L353.0,354.2 L351.5,355.1 L350.2,354.2 L349.5,350.8 L342.1,351.6 L342.0,352.8ZM349.0,291.0 L349.9,290.4 L356.3,274.5 L355.9,273.6 L352.4,272.3 L351.5,272.8 L345.1,288.7 L345.5,289.6 L349.0,291.0ZM348.4,234.9 L349.2,236.1 L353.0,234.7 L352.3,232.4 L353.5,227.3 L353.0,226.5 L350.1,226.9 L348.4,234.9ZM341.4,316.4 L336.0,315.8 L334.0,318.5 L334.2,319.5 L337.2,320.6 L340.5,320.7 L350.0,318.6 L352.3,308.9 L348.8,308.1 L339.8,308.5 L338.6,313.0 L340.8,313.4 L345.4,312.3 L346.4,312.9 L346.6,314.2 L345.7,315.2 L341.4,316.4ZM344.2,336.9 L349.9,341.7 L351.5,340.6 L351.4,339.7 L346.2,334.6 L345.2,334.7 L344.2,336.9ZM343.7,251.6 L349.3,254.3 L350.2,252.6 L349.5,249.2 L347.6,247.6 L348.5,243.7 L347.6,241.8 L346.8,242.2 L343.7,251.6ZM341.5,231.5 L342.1,232.3 L345.8,232.6 L346.6,227.3 L342.3,227.8 L341.5,231.5ZM338.7,336.9 L331.0,340.7 L330.9,341.8 L338.4,348.5 L345.8,347.6 L343.3,342.6 L343.1,340.6 L338.7,336.9ZM334.8,236.1 L333.9,236.6 L331.2,245.5 L333.1,246.1 L335.7,239.2 L337.6,238.6 L338.5,240.3 L336.0,247.9 L339.8,249.8 L344.0,237.8 L342.5,235.5 L340.8,235.3 L338.8,236.9 L334.8,236.1ZM338.7,258.2 L335.6,256.6 L334.3,259.8 L339.5,262.1 L342.3,256.2 L340.8,255.7 L338.7,258.2ZM329.8,268.9 L330.2,269.8 L335.1,271.8 L337.9,265.3 L332.7,263.0 L329.8,268.9ZM325.0,315.0 L331.2,317.0 L334.6,312.4 L336.0,309.3 L328.4,308.8 L325.2,309.7 L322.4,312.7 L325.0,315.0ZM327.7,326.9 L329.6,330.4 L327.5,333.5 L329.6,336.7 L330.6,336.7 L333.2,334.2 L335.7,334.1 L334.7,323.1 L331.4,322.0 L327.7,326.9ZM335.4,277.5 L335.1,275.5 L332.4,274.9 L331.8,277.4 L334.4,278.4 L335.4,277.5ZM328.3,231.0 L328.9,232.0 L331.8,232.1 L334.9,224.0 L334.6,223.1 L331.9,222.5 L328.3,231.0ZM321.9,241.5 L328.1,243.8 L330.7,235.7 L322.6,234.5 L321.9,236.1 L320.5,237.1 L320.0,239.1 L321.9,241.5ZM321.1,265.0 L321.5,265.9 L326.6,267.8 L329.5,261.3 L324.4,258.8 L321.1,265.0ZM319.0,286.3 L314.4,290.3 L315.0,291.0 L320.9,291.4 L329.5,273.8 L329.3,272.8 L320.4,268.8 L319.4,269.0 L318.6,272.8 L321.1,273.9 L323.6,273.3 L325.8,274.4 L326.2,275.7 L325.4,276.8 L323.4,277.2 L320.4,280.9 L320.7,283.0 L319.0,286.3ZM323.2,351.6 L323.1,352.7 L324.8,353.5 L327.3,349.9 L325.8,348.7 L323.2,351.6ZM323.0,345.9 L324.1,345.9 L325.8,343.8 L324.4,341.9 L321.9,344.3 L323.0,345.9ZM320.8,360.3 L320.2,365.0 L321.2,365.0 L323.4,362.2 L323.3,361.2 L320.8,360.3ZM317.7,324.3 L317.3,327.9 L318.8,328.9 L322.0,325.6 L314.8,317.1 L313.9,316.8 L312.7,318.4 L317.7,324.3ZM309.7,260.4 L310.1,261.2 L317.6,264.2 L320.4,259.0 L318.4,258.2 L317.1,260.1 L315.1,260.7 L312.6,259.9 L310.9,257.8 L309.7,260.4ZM314.5,271.2 L315.5,270.8 L316.3,267.2 L308.5,264.3 L307.4,268.5 L314.5,271.2ZM312.2,285.9 L312.9,286.9 L314.6,286.1 L315.4,285.3 L315.3,284.0 L313.3,283.4 L312.2,285.9ZM304.3,275.6 L304.7,276.5 L310.8,278.6 L312.5,275.2 L310.5,273.0 L306.3,271.5 L304.3,275.6ZM308.5,233.2 L310.2,234.2 L311.1,233.4 L309.4,232.0 L308.5,233.2ZM302.9,216.2 L305.8,225.5 L307.4,228.4 L308.7,228.7 L310.0,226.2 L306.3,215.2 L303.2,214.8 L302.9,216.2ZM293.7,252.0 L296.4,254.0 L296.7,256.1 L300.5,257.5 L301.4,257.2 L302.3,255.2 L303.9,255.0 L304.8,256.2 L304.5,258.9 L306.0,259.5 L306.8,259.1 L308.0,254.2 L307.6,253.4 L294.8,249.9 L293.7,252.0ZM299.9,304.0 L305.1,301.6 L306.4,299.1 L304.4,297.6 L303.3,297.7 L302.9,299.8 L301.5,301.6 L299.4,302.6 L299.9,304.0ZM290.2,262.2 L303.6,267.1 L305.0,264.6 L300.5,262.3 L299.4,260.4 L291.5,257.9 L290.2,262.2ZM288.4,227.4 L291.4,229.9 L294.0,230.5 L293.9,234.1 L294.5,234.7 L296.7,233.6 L298.6,234.5 L304.5,234.1 L304.3,232.5 L301.2,231.3 L301.7,228.9 L301.
381381,228.1 L288.8,226.3 L288.4,227.4ZM300.4,382.2 L300.1,383.8 L303.0,385.9 L304.0,385.8 L304.4,384.5 L302.3,381.8 L300.4,382.2ZM299.2,350.5 L300.3,350.3 L304.2,345.3 L303.1,343.5 L302.2,343.6 L297.7,348.2 L299.2,350.5ZM301.4,281.9 L302.0,283.1 L303.0,283.1 L303.8,280.2 L302.3,280.0 L301.4,281.9ZM301.0,354.4 L300.9,355.4 L301.9,356.1 L303.3,355.0 L302.3,353.7 L301.0,354.4ZM293.9,337.7 L290.9,335.6 L289.8,337.8 L292.1,339.3 L292.9,341.2 L295.2,340.9 L298.3,343.0 L299.1,341.7 L297.8,340.5 L297.7,339.2 L301.6,334.5 L301.7,332.6 L302.9,330.9 L293.8,323.5 L292.1,325.7 L297.5,330.7 L297.9,332.6 L297.1,335.8 L295.5,337.7 L293.9,337.7ZM300.5,269.9 L299.7,274.2 L300.7,275.0 L302.6,271.1 L302.4,270.1 L300.5,269.9ZM292.9,362.1 L297.0,366.0 L301.3,360.8 L296.7,357.5 L292.9,362.1ZM293.5,296.8 L296.4,298.3 L299.1,295.2 L297.1,291.2 L296.1,291.3 L294.7,294.4 L293.1,295.2 L293.5,296.8ZM294.0,313.5 L289.0,317.2 L290.6,319.3 L295.1,314.0 L294.0,313.5ZM292.0,211.2 L291.4,212.6 L293.6,214.2 L294.5,214.1 L294.6,212.9 L292.9,211.2 L292.0,211.2ZM291.9,280.6 L292.7,281.2 L293.5,280.5 L294.4,276.7 L293.9,275.9 L292.4,276.1 L291.5,278.6 L291.9,280.6ZM288.1,331.3 L290.3,331.6 L291.5,329.4 L288.9,327.8 L287.2,329.8 L288.1,331.3ZM284.7,250.5 L285.1,251.4 L289.5,253.1 L291.3,249.1 L286.5,246.7 L284.7,250.5ZM287.0,277.8 L287.8,278.3 L288.7,277.9 L289.5,275.0 L289.1,274.2 L287.1,274.2 L287.0,277.8ZM283.6,263.6 L284.9,264.6 L285.8,264.2 L288.4,256.8 L284.2,254.4 L282.0,258.2 L283.0,259.7 L283.6,263.6ZM281.8,320.4 L286.2,323.9 L288.1,322.4 L286.0,318.4 L285.9,316.4 L286.9,314.2 L284.3,312.4 L282.6,312.6 L280.7,311.6 L279.5,312.3 L277.8,316.0 L279.2,318.0 L281.7,315.9 L283.4,316.3 L283.7,317.8 L281.8,320.4ZM215.9,165.5 L213.3,164.6 L212.9,165.5 L219.5,191.1 L219.8,194.8 L220.9,195.2 L222.1,193.8 L223.9,193.3 L225.4,195.2 L228.7,196.7 L230.5,195.5 L232.6,195.7 L237.4,191.8 L230.9,186.0 L230.9,184.6 L232.4,182.8 L234.9,182.8 L236.9,180.6 L239.6,179.5 L241.4,179.6 L242.5,177.7 L249.4,173.9 L251.7,173.9 L253.0,172.5 L257.1,170.4 L259.9,170.2 L261.0,168.1 L263.2,166.6 L265.8,166.7 L267.4,168.5 L266.0,176.6 L266.5,179.3 L263.5,184.8 L260.7,185.2 L256.4,180.7 L255.4,180.5 L253.1,182.0 L253.6,184.3 L253.1,185.9 L251.6,186.9 L249.2,187.3 L249.0,189.6 L247.5,191.5 L246.3,191.8 L243.6,190.8 L235.7,197.2 L235.6,198.3 L237.6,200.2 L237.2,201.9 L235.9,202.2 L233.4,200.5 L232.4,200.8 L231.5,202.9 L233.0,204.3 L233.1,205.7 L232.1,206.6 L230.2,206.6 L229.5,208.4 L230.4,211.2 L232.8,212.4 L233.7,214.6 L234.6,214.5 L237.3,211.5 L239.7,207.0 L239.5,203.1 L242.1,199.4 L244.8,198.4 L250.9,197.8 L252.8,198.4 L255.0,200.3 L258.1,196.8 L260.7,196.7 L264.0,193.5 L267.6,196.2 L267.8,197.7 L266.2,200.3 L268.8,203.3 L268.5,205.0 L266.0,209.0 L269.0,210.7 L274.0,210.9 L277.2,202.7 L274.2,197.6 L273.0,192.2 L274.2,190.7 L275.9,191.4 L277.2,194.3 L277.3,197.1 L280.1,201.0 L284.7,204.1 L287.2,202.6 L285.6,194.1 L282.7,190.7 L280.6,185.9 L274.9,183.0 L272.4,179.7 L272.5,177.1 L273.6,175.0 L275.6,173.8 L278.2,173.9 L278.9,173.2 L275.2,164.3 L277.2,153.1 L276.8,152.2 L270.6,152.5 L270.7,155.5 L268.1,158.7 L263.0,161.2 L261.8,160.7 L261.4,159.5 L263.7,157.5 L263.8,156.6 L260.8,153.8 L259.6,154.0 L252.7,157.4 L251.5,158.9 L248.9,159.4 L248.2,161.5 L245.9,163.0 L246.0,165.2 L244.8,166.2 L243.4,165.7 L241.2,162.0 L234.6,162.6 L222.9,161.6 L220.6,165.4 L215.9,165.5ZM284.9,342.5 L282.4,346.6 L283.3,347.0 L286.2,345.8 L287.2,344.3 L284.9,342.5ZM284.3,337.2 L285.3,337.1 L287.1,334.9 L284.9,332.7 L282.5,335.0 L284.3,337.2ZM283.8,213.6 L284.7,213.7 L285.3,212.9 L284.2,210.5 L282.6,211.7 L283.8,213.6ZM256.3,221.9 L264.9,223.2 L266.6,225.8 L270.2,225.8 L272.2,224.2 L275.7,224.8 L276.4,226.0 L276.0,229.4 L274.5,231.3 L275.7,233.2 L277.5,232.7 L278.5,229.6 L281.4,229.3 L282.4,226.8 L282.0,225.9 L278.6,224.8 L278.0,220.5 L274.2,220.4 L272.1,221.7 L259.7,219.8 L258.5,218.7 L258.8,216.4 L255.8,214.5 L255.0,215.5 L255.5,217.7 L253.9,219.6 L256.3,221.9ZM281.6,206.9 L281.9,205.7 L280.0,204.8 L278.5,207.8 L279.5,208.4 L281.6,206.9ZM263.8,325.9 L261.2,326.3 L261.4,329.4 L264.4,327.1 L266.5,327.7 L266.4,329.3 L262.9,333.2 L263.1,334.3 L264.8,334.7 L268.0,331.5 L269.8,332.3 L269.7,333.8 L267.2,336.9 L269.1,338.7 L272.5,335.6 L275.2,336.2 L276.8,334.8 L276.8,333.7 L275.2,332.6 L275.2,331.2 L281.3,324.7 L279.4,323.6 L275.2,326.8 L269.0,327.7 L267.4,327.1 L268.0,324.9 L274.1,323.8 L276.1,321.8 L276.4,320.5 L274.8,317.2 L270.4,318.4 L267.6,317.9 L266.6,317.0 L266.5,314.8 L265.4,314.4 L262.0,318.4 L265.6,321.6 L265.8,323.1 L263.8,325.9ZM276.6,279.4 L278.7,279.3 L280.0,277.9 L279.1,273.5 L280.5,271.2 L279.6,270.4 L278.8,270.6 L274.7,276.5 L276.6,279.4ZM277.4,180.4 L278.8,181.7 L279.9,181.3 L278.7,178.9 L277.8,179.2 L277.4,180.4ZM276.9,346.2 L277.9,346.2 L279.6,344.1 L278.3,342.4 L275.8,344.4 L276.9,346.2ZM275.6,216.0 L275.7,217.4 L278.1,218.4 L279.0,218.0 L279.0,214.7 L275.6,216.0ZM272.9,254.3 L273.3,259.1 L276.4,259.2 L278.3,254.9 L276.0,253.3 L273.7,253.0 L272.9,254.3ZM258.5,250.3 L267.8,252.0 L269.3,249.2 L273.0,249.3 L274.0,246.4 L275.4,245.9 L277.3,246.9 L277.9,245.6 L276.9,244.9 L275.6,245.1 L274.4,243.9 L272.3,244.5 L267.6,242.5 L263.6,248.6 L261.6,248.8 L257.9,247.2 L257.3,249.6 L258.5,250.3ZM274.4,311.3 L273.9,312.6 L275.5,313.1 L276.0,311.4 L274.4,311.3ZM175.0,286.1 L177.5,293.6 L176.5,295.9 L180.0,299.7 L184.3,307.6 L188.0,310.3 L194.5,311.8 L207.9,312.6 L213.2,312.3 L233.0,304.0 L239.4,302.4 L275.3,301.3 L276.1,300.7 L274.9,298.8 L275.4,296.5 L274.6,295.7 L224.6,296.3 L223.8,294.6 L225.2,293.4 L274.5,292.7 L275.3,291.7 L272.3,288.3 L229.0,289.2 L228.1,287.8 L229.2,286.4 L240.1,286.0 L240.9,285.3 L240.4,280.6 L237.4,279.8 L236.1,278.2 L229.5,278.0 L227.9,277.0 L227.9,273.2 L230.2,265.2 L217.0,265.7 L212.8,265.1 L209.2,263.7 L208.2,261.6 L205.7,260.7 L203.2,258.6 L201.4,259.7 L202.7,262.5 L201.8,264.6 L200.4,265.2 L197.8,264.2 L195.4,267.3 L205.2,275.4 L205.5,277.1 L203.4,280.4 L205.9,282.7 L206.0,284.3 L204.1,285.4 L201.2,288.4 L193.6,282.9 L191.2,285.1 L198.0,291.4 L197.9,293.4 L196.3,293.8 L193.3,291.9 L190.2,295.1 L188.7,295.3 L184.4,290.1 L182.1,288.9 L181.0,286.6 L176.4,284.2 L175.0,286.1ZM266.5,27
381385.0 L268.5,275.2 L270.1,276.3 L272.9,275.0 L275.9,268.4 L269.2,264.7 L262.6,268.9 L262.4,270.0 L266.5,275.0ZM260.9,354.6 L273.4,365.5 L274.7,365.5 L275.6,361.3 L266.3,352.7 L261.1,353.5 L260.9,354.6ZM274.9,349.4 L274.8,348.4 L273.0,347.5 L269.8,351.7 L271.8,352.9 L274.9,349.4ZM266.4,215.6 L265.2,216.2 L265.3,217.3 L268.3,217.5 L268.3,216.4 L266.4,215.6ZM253.9,261.9 L260.0,266.8 L265.4,262.8 L264.7,262.0 L255.4,259.7 L253.9,261.9ZM263.4,258.4 L264.2,257.8 L264.2,255.0 L257.5,253.3 L256.7,253.6 L256.6,256.7 L263.4,258.4ZM263.0,367.5 L263.9,365.9 L260.6,362.8 L257.4,365.3 L260.6,369.1 L263.0,367.5ZM239.3,277.3 L242.8,277.7 L244.5,280.2 L253.4,279.9 L257.1,277.9 L258.0,275.9 L260.7,275.0 L261.1,274.2 L258.6,271.7 L255.0,274.0 L253.6,276.8 L252.2,276.6 L250.8,274.6 L239.6,274.7 L238.3,276.2 L239.3,277.3ZM247.1,251.5 L247.8,252.6 L251.0,252.3 L252.7,253.4 L253.5,252.8 L256.3,241.4 L255.4,239.0 L257.4,237.5 L258.7,234.6 L253.4,231.6 L252.4,232.2 L247.1,251.5ZM256.1,269.5 L256.1,268.4 L252.7,265.7 L249.0,264.6 L248.1,265.0 L248.0,266.8 L249.5,271.3 L252.8,271.5 L256.1,269.5ZM244.0,285.3 L244.7,285.9 L254.7,285.7 L255.5,284.8 L254.3,283.0 L244.7,283.3 L244.0,283.8 L244.0,285.3ZM246.7,260.6 L250.6,260.8 L253.0,257.3 L253.0,254.9 L246.2,256.0 L245.6,259.9 L246.7,260.6ZM243.9,202.8 L244.2,204.2 L247.1,206.4 L251.7,204.4 L250.7,200.9 L244.5,201.6 L243.9,202.8ZM247.9,227.0 L250.9,227.4 L250.9,226.3 L248.3,225.5 L247.9,227.0ZM243.8,368.0 L243.9,369.0 L244.9,369.1 L248.1,365.9 L248.1,365.0 L247.0,364.7 L243.8,368.0ZM247.7,238.3 L247.2,237.5 L244.9,237.4 L243.3,243.9 L245.9,244.3 L247.7,238.3ZM233.9,266.2 L238.5,269.4 L239.8,271.6 L245.7,271.0 L244.4,264.3 L242.1,264.4 L240.1,266.7 L236.3,266.3 L234.8,264.9 L233.9,266.2ZM244.4,229.9 L242.4,232.6 L244.6,233.4 L245.5,230.5 L244.4,229.9ZM243.0,212.5 L243.3,213.4 L244.3,213.6 L245.2,211.7 L243.9,211.2 L243.0,212.5ZM242.6,247.0 L241.7,247.5 L240.4,251.9 L241.0,252.9 L243.5,252.5 L244.8,248.5 L244.4,247.6 L242.6,247.0ZM238.4,184.9 L241.5,187.7 L243.6,185.8 L243.1,184.5 L239.6,182.7 L238.2,183.8 L238.4,184.9ZM224.8,261.1 L241.4,260.3 L242.3,256.6 L241.5,256.0 L224.6,257.1 L224.8,261.1ZM238.4,231.8 L239.3,231.5 L242.0,226.1 L239.9,225.1 L237.8,225.5 L235.7,223.9 L233.7,230.1 L238.4,231.8ZM239.2,242.8 L240.0,242.3 L241.8,236.5 L237.4,234.8 L235.1,241.3 L239.2,242.8ZM241.5,372.0 L234.9,366.3 L233.0,368.4 L239.3,374.3 L240.2,374.4 L241.5,372.0ZM236.7,352.0 L237.9,352.8 L239.0,351.0 L237.3,350.4 L236.7,352.0ZM232.5,250.9 L234.4,253.2 L236.8,253.0 L238.5,246.0 L234.1,245.1 L232.5,250.9ZM234.8,356.5 L234.9,357.6 L235.7,357.9 L236.8,356.2 L235.8,355.5 L234.8,356.5ZM230.9,274.4 L231.6,275.2 L235.2,275.0 L236.5,273.0 L236.2,271.7 L232.7,269.5 L230.9,274.4ZM226.6,231.8 L223.0,234.7 L223.5,236.0 L231.8,238.6 L232.7,238.2 L233.8,234.5 L233.3,233.6 L226.6,231.8ZM228.1,223.1 L230.0,226.5 L228.1,228.6 L230.2,229.4 L232.7,221.3 L230.8,220.8 L228.1,223.1ZM220.2,241.2 L220.3,244.7 L223.6,245.3 L225.2,244.0 L227.0,244.1 L228.7,247.5 L230.3,246.9 L231.5,242.4 L231.0,241.6 L222.0,238.8 L220.2,241.2ZM223.3,207.9 L224.2,207.6 L225.9,203.7 L221.8,202.1 L219.9,206.2 L223.3,207.9ZM220.4,106.7 L222.5,106.4 L221.8,103.9 L219.9,104.6 L220.4,106.7ZM216.9,250.6 L215.4,253.3 L216.1,254.1 L224.1,253.8 L224.8,253.0 L224.3,250.6 L222.1,250.0 L216.9,250.6ZM222.9,224.1 L223.9,223.3 L223.0,222.0 L219.0,220.6 L218.1,220.9 L218.3,222.1 L222.9,224.1ZM215.6,260.8 L216.3,261.6 L221.1,261.4 L221.2,257.4 L216.8,257.2 L215.6,260.8ZM214.3,233.7 L214.6,234.8 L215.7,234.7 L220.5,228.2 L220.3,227.2 L214.7,226.7 L214.6,227.7 L216.5,230.1 L214.3,233.7ZM213.5,106.5 L212.8,107.4 L213.7,108.9 L216.5,108.0 L215.9,106.3 L213.5,106.5ZM162.7,196.8 L162.6,198.2 L165.7,199.5 L182.6,203.6 L184.1,201.5 L181.6,200.5 L181.0,199.1 L183.4,196.9 L185.0,196.4 L187.2,197.2 L189.3,196.1 L191.2,198.2 L193.9,198.6 L196.6,194.9 L200.1,195.2 L202.3,192.4 L215.2,197.1 L216.0,194.4 L215.4,190.3 L207.9,164.0 L206.4,163.2 L191.6,166.5 L190.3,168.8 L189.6,173.3 L187.6,177.2 L191.9,181.2 L192.3,182.5 L188.9,186.5 L179.6,186.6 L173.3,181.1 L174.3,178.0 L171.1,175.5 L171.8,172.4 L169.0,172.6 L163.8,179.6 L166.0,182.4 L174.1,189.6 L174.5,191.0 L172.2,193.6 L164.3,195.2 L162.7,196.8ZM211.6,258.7 L212.9,258.6 L213.2,256.5 L210.2,256.4 L209.9,257.5 L211.6,258.7ZM213.2,224.1 L212.1,223.2 L210.6,224.3 L212.4,225.8 L213.2,224.1ZM212.6,230.8 L212.4,229.9 L209.4,227.6 L207.9,227.4 L206.9,228.4 L207.1,229.3 L209.9,230.6 L210.9,232.0 L212.6,230.8ZM202.9,198.4 L210.2,201.3 L210.9,199.3 L204.2,196.2 L203.2,196.4 L202.9,198.4ZM199.3,247.0 L199.0,248.6 L202.0,250.2 L205.8,245.9 L209.2,240.8 L209.2,239.9 L206.0,238.2 L199.3,247.0ZM199.5,159.7 L200.4,160.2 L206.2,158.9 L207.1,157.3 L206.4,152.4 L201.4,153.2 L199.2,154.4 L199.5,159.7ZM193.9,214.2 L189.5,213.5 L189.3,217.3 L191.1,219.2 L193.2,219.1 L194.4,216.7 L195.8,216.2 L198.1,217.2 L198.9,219.3 L202.4,220.8 L206.6,213.3 L205.1,210.9 L198.1,209.0 L195.3,213.8 L193.9,214.2ZM198.9,141.9 L196.1,143.5 L196.6,148.3 L197.4,148.8 L199.5,148.0 L201.0,149.9 L202.3,149.9 L203.7,146.1 L203.3,142.2 L202.1,141.6 L198.9,141.9ZM193.6,273.4 L194.6,273.2 L195.4,271.9 L193.6,270.3 L192.2,271.8 L193.6,273.4ZM192.8,157.0 L193.6,157.8 L194.7,
38138157.1 L194.4,153.5 L193.6,152.7 L192.5,153.7 L192.8,157.0ZM191.9,262.8 L193.3,264.3 L194.6,262.9 L193.2,261.5 L191.9,262.8ZM190.1,254.9 L193.5,256.2 L194.4,255.1 L193.7,253.2 L190.7,253.5 L190.1,254.9ZM185.4,226.6 L185.6,227.7 L189.3,229.4 L191.1,225.4 L187.4,223.5 L185.4,226.6ZM185.9,278.4 L186.4,282.9 L188.2,283.5 L190.5,280.2 L187.4,277.7 L185.9,278.4ZM184.3,268.8 L184.7,269.9 L185.6,270.1 L189.8,267.2 L190.0,266.2 L185.7,264.0 L184.3,268.8ZM185.0,200.7 L185.2,202.1 L187.2,201.8 L186.2,200.4 L185.0,200.7ZM178.4,258.5 L179.2,259.6 L181.0,258.3 L183.1,258.4 L186.5,252.7 L186.6,249.8 L181.8,246.9 L180.8,247.4 L180.1,255.3 L178.4,258.5ZM181.7,171.7 L181.8,172.7 L184.0,174.5 L185.9,173.2 L183.4,170.5 L181.7,171.7ZM182.2,147.1 L185.7,146.7 L185.6,145.5 L181.8,145.8 L182.2,147.1ZM177.1,222.7 L178.0,225.1 L177.2,227.1 L179.5,228.1 L182.1,223.7 L183.8,219.0 L181.3,217.7 L179.2,218.1 L177.1,222.7ZM174.1,213.5 L174.2,214.5 L176.2,215.4 L177.6,214.6 L177.3,213.7 L175.4,212.7 L174.1,213.5ZM172.8,166.0 L176.7,165.6 L177.2,164.6 L176.5,163.8 L172.7,163.4 L172.1,164.2 L172.8,166.0ZM169.9,229.7 L168.8,229.9 L167.1,233.9 L174.5,237.4 L176.2,233.4 L169.9,229.7ZM163.1,255.8 L162.6,259.5 L168.7,264.3 L170.3,264.0 L172.5,260.9 L172.1,260.0 L164.0,255.3 L163.1,255.8ZM166.2,208.6 L166.1,209.7 L167.4,211.1 L169.8,209.4 L167.8,206.6 L166.2,208.6ZM166.1,191.4 L168.0,191.6 L169.3,190.0 L166.7,187.4 L164.8,189.1 L166.1,191.4ZM163.6,248.8 L164.3,249.4 L165.2,248.9 L166.0,244.5 L165.4,243.6 L164.1,244.7 L163.6,248.8ZM161.9,231.4 L163.9,230.5 L165.3,227.7 L165.0,226.8 L163.0,226.1 L159.7,228.5 L159.4,230.0 L161.9,231.4ZM161.5,133.4 L162.9,136.9 L165.2,136.3 L163.1,132.1 L162.1,132.1 L161.5,133.4ZM158.8,214.8 L158.6,215.8 L159.8,216.8 L162.6,214.2 L161.5,213.1 L158.8,214.8ZM157.9,242.3 L156.0,252.8 L156.9,253.5 L159.1,251.2 L160.4,242.8 L159.9,242.0 L157.9,242.3ZM156.2,171.2 L158.3,170.6 L158.4,169.4 L156.0,169.8 L156.2,171.2ZM152.9,208.9 L154.1,209.1 L155.9,207.6 L155.9,206.6 L154.2,205.7 L152.1,206.3 L151.8,207.2 L152.9,208.9ZM146.3,214.2 L150.6,211.5 L148.4,207.5 L141.8,209.5 L146.3,214.2ZM147.3,273.4 L148.7,273.4 L150.5,270.2 L150.1,269.3 L148.1,269.6 L146.8,272.1 L147.3,273.4ZM141.6,254.6 L145.3,258.5 L147.1,257.8 L142.0,250.2 L141.2,250.7 L140.9,252.9 L141.6,254.6ZM546.6,201.1 L548.0,204.9 L549.1,204.5 L555.7,196.8 L555.6,195.7 L554.1,195.4 L550.6,196.5 L546.6,201.1ZM550.9,207.2 L550.8,208.3 L553.1,210.2 L555.2,208.6 L552.7,205.9 L550.9,207.2ZM539.8,207.2 L540.7,207.1 L543.5,203.8 L542.0,201.8 L540.0,201.2 L538.6,202.6 L538.0,205.2 L539.8,207.2ZM510.5,201.9 L511.5,201.8 L514.7,197.9 L514.6,196.7 L513.5,196.7 L510.9,198.7 L509.7,200.8 L510.5,201.9ZM464.1,175.6 L463.7,176.9 L471.4,183.4 L472.3,183.5 L473.7,182.1 L470.0,173.9 L464.1,175.6ZM463.2,120.1 L463.3,121.1 L468.4,125.7 L471.9,122.6 L471.7,121.8 L466.2,117.6 L463.2,120.1ZM457.0,126.6 L456.9,127.7 L462.1,132.4 L466.1,128.5 L460.8,123.2 L457.0,126.6ZM458.9,180.4 L458.9,181.3 L460.0,182.0 L462.4,180.2 L460.8,178.8 L458.9,180.4ZM450.6,133.2 L450.6,134.3 L455.8,138.9 L459.8,135.2 L454.4,129.8 L450.6,133.2ZM453.6,124.5 L454.7,124.5 L457.8,121.0 L455.8,118.7 L453.7,117.7 L450.4,121.1 L453.6,124.5ZM457.5,177.0 L455.4,175.3 L454.8,176.3 L456.6,178.1 L457.5,177.0ZM444.6,139.5 L444.2,140.9 L449.2,145.7 L453.5,141.8 L448.2,136.4 L444.6,139.5ZM435.7,188.5 L431.2,195.3 L433.8,197.4 L434.7,199.6 L436.8,200.7 L448.6,199.2 L451.7,195.6 L451.4,194.6 L437.7,183.5 L435.5,185.5 L435.7,188.5ZM445.5,162.9 L447.3,165.7 L449.4,165.4 L450.3,164.1 L447.2,161.1 L445.5,162.9ZM442.1,179.7 L446.5,183.4 L448.5,181.8 L447.6,174.3 L446.8,173.5 L445.2,174.7 L444.8,176.4 L442.1,179.7ZM445.5,129.2 L447.3,130.9 L448.3,130.2 L447.7,126.2 L446.0,127.4 L445.5,129.2ZM442.7,217.7 L446.0,219.7 L447.9,217.1 L444.1,214.5 L442.7,217.7ZM421.4,216.6 L420.6,217.1 L420.0,220.0 L420.6,221.0 L440.0,225.3 L443.4,222.6 L442.7,221.5 L421.4,216.6ZM439.3,135.8 L440.2,137.0 L441.2,136.9 L441.2,133.9 L439.7,134.2 L439.3,135.8ZM431.7,140.6 L431.8,141.6 L435.1,144.5 L439.0,140.5 L435.4,137.0 L431.7,140.6ZM431.5,153.1 L431.5,154.2 L436.4,158.9 L438.3,157.8 L438.3,156.8 L435.3,154.5 L436.2,150.6 L435.7,149.7 L434.7,149.8 L431.5,153.1ZM435.6,228.4 L434.9,230.7 L437.2,231.3 L438.2,229.5 L435.6,228.4ZM426.7,180.0 L425.6,182.3 L428.0,184.6 L427.7,187.2 L429.1,188.1 L434.7,181.1 L433.6,180.3 L432.0,180.7 L430.4,179.9 L426.7,180.0ZM425.8,148.6 L429.1,146.8 L431.4,148.6 L432.7,
38138147.0 L428.9,143.7 L425.2,147.4 L425.8,148.6ZM416.3,156.6 L416.4,157.6 L420.3,160.2 L426.2,153.6 L424.8,152.2 L422.8,152.8 L420.9,152.0 L416.3,156.6ZM415.8,171.5 L416.5,174.9 L422.1,179.5 L424.0,178.2 L424.1,175.8 L422.3,173.6 L421.5,170.5 L419.9,169.1 L418.3,169.0 L415.8,171.5ZM397.8,195.2 L398.8,200.8 L405.6,209.3 L407.0,209.3 L408.8,206.7 L410.2,205.9 L410.7,203.1 L413.3,203.2 L415.1,202.0 L417.5,204.0 L417.2,207.5 L418.8,208.4 L419.7,208.0 L421.7,201.6 L419.9,199.2 L418.6,194.0 L421.7,189.0 L409.8,178.7 L408.7,178.9 L396.3,192.7 L396.4,193.9 L397.8,195.2ZM408.7,146.2 L409.0,148.4 L412.3,149.0 L414.6,147.7 L417.7,150.1 L420.1,148.0 L413.7,141.5 L408.7,146.2ZM412.4,210.1 L411.8,210.9 L412.4,211.7 L413.9,212.1 L415.9,211.3 L414.9,210.0 L412.4,210.1ZM402.9,179.6 L404.0,179.5 L405.4,178.0 L405.3,177.0 L393.7,166.9 L392.7,166.9 L391.8,168.4 L392.6,170.8 L402.9,179.6ZM394.7,184.4 L394.8,185.4 L397.2,187.0 L401.0,182.2 L398.4,180.4 L394.7,184.4ZM395.8,178.5 L395.7,177.5 L391.8,174.7 L389.1,180.1 L392.0,182.4 L395.8,178.5ZM384.3,196.0 L384.5,197.0 L387.0,198.4 L394.4,190.3 L394.5,189.3 L391.8,187.6 L384.3,196.0ZM389.4,185.6 L389.2,184.5 L386.7,183.1 L379.4,191.3 L379.3,192.3 L381.9,193.9 L389.4,185.6ZM381.1,166.3 L383.3,169.4 L383.6,175.2 L386.6,177.3 L389.5,171.5 L386.1,162.8 L381.5,162.7 L381.1,166.3ZM376.1,189.2 L377.1,189.2 L384.3,181.0 L384.3,180.1 L382.5,178.5 L381.5,178.6 L374.4,186.6 L374.5,187.6 L376.1,189.2ZM384.1,201.7 L384.0,200.7 L381.6,199.1 L377.5,204.2 L380.4,205.7 L384.1,201.7ZM369.8,202.0 L370.8,205.1 L371.9,205.2 L379.0,197.2 L379.0,196.3 L377.2,194.7 L376.3,194.7 L369.8,202.0ZM364.1,198.4 L365.5,201.2 L366.4,201.1 L374.0,192.6 L374.1,191.6 L372.5,190.0 L371.4,190.1 L364.1,198.4ZM355.9,203.0 L370.2,186.7 L369.3,184.7 L368.4,184.7 L362.3,189.6 L352.1,201.0 L352.0,201.9 L355.9,203.0ZM344.9,175.3 L345.1,176.4 L347.8,178.0 L350.3,175.3 L354.7,172.5 L359.0,167.7 L359.0,166.5 L356.4,165.0 L344.9,175.3ZM345.7,197.0 L345.8,198.0 L348.9,200.0 L356.2,191.6 L356.3,190.6 L353.2,188.7 L345.7,197.0ZM339.1,169.7 L339.0,170.9 L341.6,173.3 L342.5,173.3 L354.1,162.9 L353.4,160.4 L352.3,160.1 L339.1,169.7ZM350.8,186.6 L350.6,185.6 L348.2,183.3 L347.3,183.3 L339.8,191.6 L339.7,192.5 L343.2,195.0 L350.8,186.6ZM332.4,193.0 L336.2,191.1 L345.1,181.0 L337.4,173.8 L336.4,174.3 L335.9,179.5 L337.9,181.3 L337.9,182.8 L336.6,183.7 L333.8,183.0 L329.2,191.0 L329.6,191.9 L332.4,193.0ZM309.5,169.8 L310.5,184.6 L315.4,186.1 L316.0,181.3 L314.0,169.7 L309.5,169.8ZM302.4,188.4 L297.5,187.5 L295.1,187.9 L294.5,188.7 L296.3,191.2 L305.8,196.4 L313.2,189.6 L311.1,188.2 L302.4,188.4ZM294.4,184.3 L305.1,185.6 L307.3,184.8 L307.1,178.6 L301.9,179.1 L299.7,178.6 L298.9,177.3 L300.0,175.7 L306.6,175.1 L305.7,169.3 L295.8,169.4 L294.2,170.1 L292.3,172.4 L292.3,176.0 L294.4,184.3ZM264.4,89.0 L264.1,90.0 L266.2,94.4 L268.5,94.1 L269.4,92.2 L269.0,87.0 L268.0,86.8 L264.4,89.0ZM242.4,109.0 L241.1,111.3 L243.9,116.4 L245.0,116.8 L246.2,115.2 L247.0,111.9 L245.3,105.2 L241.7,105.9 L241.3,107.1 L242.4,109.0ZM201.6,124.4 L202.6,124.4 L202.8,123.3 L199.9,119.5 L198.7,119.6 L198.5,120.8 L201.6,124.4ZM180.6,92.5 L175.6,91.1 L175.3,92.0 L182.0,110.6 L186.0,110.9 L187.8,116.3 L189.1,116.9 L190.8,113.1 L193.9,111.2 L192.7,107.6 L188.0,104.4 L183.8,99.6 L183.7,97.1 L181.4,94.8 L180.6,92.5ZM183.8,114.3 L181.6,115.5 L182.2,116.2 L184.3,115.5 L183.8,114.3ZM175.6,111.0 L176.6,111.4 L178.5,110.0 L175.7,102.0 L174.8,101.6 L172.9,102.9 L175.6,111.0ZM171.7,119.7 L172.5,120.1 L174.8,119.3 L173.9,116.3 L171.2,117.1 L171.7,119.7ZM171.5,98.5 L172.4,99.1 L174.1,97.9 L171.6,92.4 L169.9,93.6 L171.5,98.5ZM167.4,103.9 L167.0,104.8 L169.7,113.4 L170.5,113.9 L172.3,113.2 L172.7,112.3 L169.9,103.8 L167.4,103.9ZM166.3,120.9 L167.1,121.5 L168.6,120.9 L167.7,118.3 L166.2,118.8 L166.3,120.9ZM162.0,105.4 L161.3,106.2 L161.9,108.5 L164.6,109.6 L165.0,108.7 L164.0,105.5 L162.0,105.4ZM158.7,113.3 L161.5,114.3 L161.3,112.5 L158.9,111.2 L158.7,113.3ZM156.0,102.8 L155.6,103.7 L156.3,104.4 L159.6,103.7 L158.8,102.0 L156.0,102.8ZM153.9,98.3 L153.5,99.2 L154.4,100.0 L158.0,98.9 L158.4,98.1 L157.5,97.1 L153.9,98.3ZM140.4,143.6 L141.9,144.1 L142.6,141.4 L141.7,141.2 L14
381380.4,142.3 L140.4,143.6ZM123.6,276.2 L119.8,274.7 L119.0,275.3 L119.8,278.5 L123.7,277.9 L123.6,276.2ZM119.6,257.6 L120.1,259.6 L121.0,259.4 L122.7,257.8 L122.6,256.1 L121.7,255.9 L119.6,257.6ZM121.7,162.8 L122.3,162.0 L121.6,161.2 L118.4,161.5 L117.7,162.2 L118.4,163.2 L121.7,162.8ZM120.1,153.8 L118.6,155.8 L118.8,157.8 L121.3,158.0 L121.1,154.2 L120.1,153.8ZM117.1,254.9 L118.1,254.9 L120.6,252.5 L119.1,250.2 L115.6,252.6 L117.1,254.9ZM116.1,148.9 L117.2,150.3 L120.0,149.0 L118.9,147.0 L116.1,147.5 L116.1,148.9ZM118.2,269.9 L113.2,270.1 L114.1,272.6 L118.7,271.4 L118.2,269.9ZM113.0,170.2 L116.1,171.6 L116.9,171.2 L116.7,165.0 L112.7,165.7 L113.0,170.2ZM108.3,264.6 L106.9,266.6 L107.7,268.5 L110.9,267.9 L113.1,268.9 L114.0,268.4 L113.5,266.2 L110.7,265.6 L109.2,261.6 L108.2,262.0 L108.3,264.6ZM112.1,135.8 L112.9,134.6 L111.1,133.1 L110.7,135.3 L112.1,135.8ZM106.7,202.1 L107.5,202.7 L111.1,201.6 L111.7,197.4 L108.5,195.6 L107.2,189.3 L106.4,188.8 L105.4,189.6 L106.7,202.1ZM100.9,132.7 L103.6,133.7 L109.8,132.3 L110.3,131.3 L108.8,129.8 L101.4,131.5 L100.9,132.7ZM108.3,110.2 L102.7,113.2 L103.6,115.1 L109.2,111.6 L109.4,110.7 L108.3,110.2ZM105.9,138.9 L106.6,139.4 L107.7,139.0 L107.3,136.0 L105.7,136.6 L105.9,138.9ZM100.6,291.0 L101.4,291.6 L105.9,290.6 L106.4,289.1 L105.5,288.5 L101.0,289.4 L100.6,291.0ZM101.8,124.4 L103.2,126.8 L105.6,126.3 L106.1,125.2 L104.8,123.3 L102.4,123.6 L101.8,124.4ZM95.9,276.1 L96.8,276.6 L98.2,275.7 L104.9,274.7 L104.7,271.0 L103.8,270.6 L95.8,272.4 L95.9,276.1ZM100.7,263.7 L101.4,267.7 L103.6,267.3 L102.8,262.8 L100.7,263.7ZM97.6,199.6 L97.0,200.6 L98.3,202.0 L98.8,204.9 L103.5,203.6 L101.8,189.8 L99.7,190.6 L100.3,198.3 L97.6,199.6ZM92.3,156.9 L92.8,162.4 L102.1,160.7 L101.0,153.3 L97.5,153.5 L95.5,152.7 L94.7,154.8 L92.3,156.9ZM96.8,138.5 L97.7,142.5 L102.0,141.5 L100.6,137.0 L96.8,138.5ZM94.1,171.2 L98.0,171.0 L97.6,168.8 L93.9,169.1 L94.1,171.2ZM94.8,194.7 L95.6,195.3 L96.9,194.6 L96.0,190.9 L94.5,191.5 L94.8,194.7ZM90.5,284.9 L96.4,283.6 L96.0,280.3 L93.9,279.8 L92.0,281.0 L87.5,282.1 L87.3,284.7 L90.5,284.9ZM93.7,203.5 L94.4,204.1 L95.2,203.7 L96.0,200.9 L95.6,200.1 L93.5,200.6 L93.7,203.5ZM91.9,182.8 L93.1,187.9 L95.1,187.6 L94.7,181.9 L93.3,181.8 L91.9,182.8ZM89.6,250.9 L90.6,258.0 L93.7,258.0 L93.0,254.1 L94.3,252.4 L94.4,249.7 L89.6,250.9ZM88.1,277.8 L89.0,278.5 L91.5,277.5 L90.4,272.8 L87.4,273.5 L88.1,277.8ZM83.7,196.2 L84.5,207.8 L90.5,207.6 L90.1,199.1 L87.3,197.3 L85.9,193.3 L84.9,193.5 L83.7,196.2ZM85.9,150.8 L83.9,152.6 L85.8,154.5 L89.8,153.7 L88.9,148.6 L86.5,148.9 L85.9,150.8ZM74.5,150.5 L70.0,155.9 L70.6,156.7 L76.7,156.5 L78.4,159.1 L81.5,159.3 L85.8,162.4 L87.0,166.2 L89.4,165.8 L88.8,157.8 L85.0,157.7 L82.5,155.7 L79.9,155.8 L78.5,150.1 L74.5,150.5ZM78.8,257.9 L79.7,258.8 L81.2,263.9 L80.4,266.8 L82.8,267.0 L87.4,265.6 L86.8,260.8 L87.2,255.4 L85.4,248.6 L76.5,249.5 L78.8,257.9ZM78.6,169.4 L79.6,179.5 L78.8,181.5 L79.2,185.9 L79.8,186.6 L82.0,186.4 L82.7,185.6 L82.1,177.5 L84.5,174.7 L83.7,167.3 L83.0,166.8 L79.0,167.3 L78.6,169.4ZM70.3,159.8 L69.7,160.7 L70.4,161.9 L74.5,161.5 L75.1,160.8 L74.4,159.5 L70.3,159.8ZM67.6,258.5 L65.0,260.3 L66.7,264.6 L65.9,266.8 L67.2,269.9 L72.9,269.0 L73.3,268.1 L71.6,263.3 L68.6,258.8 L67.6,258.5ZM65.8,183.5 L66.1,187.8 L68.1,187.0 L67.8,183.5 L65.8,183.5ZM58.1,190.8 L57.6,193.5 L61.4,195.1 L63.7,193.8 L63.8,192.3 L62.5,191.6 L58.1,190.8ZM41.0,193.8 L41.8,196.2 L43.9,196.1 L45.4,191.2 L45.0,190.4 L42.4,189.9 L41.0,193.8Z"/><path class="sh sh-gained" data-ly="gained" d="M279.1,166.6 L280.0,167.8 L281.4,168.5 L283.2,168.5 L285.6,167.5 L289.2,169.1 L290.8,168.8 L294.6,166.5 L297.4,166.0 L314.2,166.5 L316.3,167.3 L317.6,169.8 L319.2,183.6 L318.8,186.6 L317.0,190.5 L316.9,192.3 L318.4,194.6 L321.1,195.1 L323.5,194.5 L325.0,193.1 L327.4,187.5 L332.8,178.5 L333.4,172.6 L334.5,169.5 L341.3,164.1 L341.9,162.4 L341.5,160.0 L341.9,159.1 L343.2,158.5 L345.6,159.6 L347.6,159.5 L352.6,156.1 L354.2,153.9 L355.5,153.7 L356.6,154.9 L356.0,157.6 L356.6,159.8 L361.6,164.6 L364.4,169.5 L363.6,170.6 L359.5,172.1 L356.5,175.0 L352.4,177.7 L351.4,179.1 L351.2,180.8 L352.1,182.7 L356.5,186.7 L358.1,187.4 L359.8,187.4 L367.8,181.3 L369.5,181.0 L372.4,182.2 L374.4,181.7 L379.8,175.8 L380.4,174.3 L380.4,171.1 L378.5,168.2 L377.9,166.3 L379.0,160.1 L379.0,157.7 L380.3,156.1 L381.7,156.4 L383.0,158.3 L384.4,159.2 L389.5,160.8 L392.9,160.6 L394.6,163.6 L403.1,170.8 L405.5,171.0 L407.7,169.4 L408.6,166.5 L408.1,164.3 L404.4,161.7 L402.3,158.3 L400.1,156.7 L399.7,155.6 L402.3,152.0 L402.3,150.3 L401.4,148.1 L401.6,146.9 L404.1,144.4 L406.3,143.9 L407.7,143.0 L409.5,140.8 L409.7,138.4 L408.9,136.9 L405.7,134.1 L398.8,128.4 L395.8,126.5 L395.4,125.2 L396.0,124.1 L397.4,123.9 L400.4,125.6 L417.1,140.2 L418.6,140.9 L420.0,140.8 L422.4,139.2 L423.1,136.3 L424.5,133.9 L424.3,131.9 L422.8,129.5 L423.0,128.3 L424.4,127.6 L426.5,128.6 L428.1,128.7 L431.7,127.0 L433.0,124.9 L432.4,121.7 L433.1,120.5 L434.6,120.3 L439.1,123.0 L441.1,122.9 L443.2,121.2 L443.5,
38138118.1 L444.1,117.2 L445.1,116.9 L447.1,117.6 L448.8,117.4 L453.1,114.0 L458.9,117.0 L461.3,117.1 L462.5,116.3 L465.6,113.0 L466.6,109.6 L468.1,109.1 L470.0,110.2 L470.7,111.2 L470.0,115.1 L471.1,117.4 L478.7,124.1 L480.3,124.6 L483.5,124.4 L487.2,126.6 L487.7,128.2 L487.1,129.1 L486.1,129.3 L482.7,127.7 L476.4,127.6 L474.4,129.1 L473.3,132.6 L472.6,133.0 L470.2,132.8 L468.6,133.7 L467.5,136.3 L468.5,138.8 L470.5,140.0 L473.4,139.4 L475.1,140.5 L474.8,142.8 L473.8,145.0 L474.2,147.8 L473.9,149.0 L472.8,149.9 L471.6,150.1 L468.8,148.2 L467.1,147.8 L465.7,148.2 L463.8,149.6 L461.3,149.3 L459.8,149.8 L458.1,152.1 L458.4,156.1 L457.5,156.7 L455.3,156.8 L454.0,157.4 L452.9,158.8 L452.6,160.7 L453.3,162.4 L459.7,169.6 L462.0,171.8 L463.9,172.4 L465.6,172.0 L479.1,165.5 L480.2,164.5 L481.2,162.4 L483.8,161.0 L486.8,161.5 L488.9,160.8 L492.7,160.7 L494.0,161.5 L494.0,163.0 L492.2,164.7 L491.5,166.3 L491.8,168.1 L493.3,170.5 L492.5,172.0 L491.1,172.1 L487.5,169.2 L483.0,167.5 L475.9,170.6 L474.2,172.3 L474.1,174.9 L476.9,180.7 L482.7,186.1 L481.8,189.9 L479.7,190.6 L474.6,188.5 L473.0,188.4 L469.7,190.4 L467.0,189.6 L465.2,189.8 L463.7,190.7 L462.9,192.3 L463.0,194.0 L463.7,195.5 L475.5,206.4 L479.4,210.9 L479.2,214.8 L481.0,217.4 L483.1,218.6 L485.7,218.0 L488.4,213.8 L497.9,203.2 L498.9,202.9 L500.9,203.5 L502.4,203.3 L506.3,200.3 L508.4,196.8 L511.2,194.1 L511.9,192.5 L511.1,189.8 L506.4,185.4 L506.6,183.9 L508.9,182.4 L510.0,183.0 L511.5,185.9 L525.8,198.2 L530.9,200.2 L533.5,199.6 L537.3,195.7 L542.7,197.4 L544.2,197.4 L545.7,196.7 L546.2,196.3 L548.6,193.6 L549.1,193.2 L558.1,190.6 L559.3,190.7 L560.7,192.4 L560.4,195.8 L556.1,201.2 L555.8,202.7 L556.2,204.3 L561.0,208.8 L561.9,211.8 L564.2,214.4 L568.3,217.5 L571.6,218.0 L572.5,219.0 L572.7,220.0 L572.3,220.8 L572.3,220.8 L566.6,227.3 L563.6,230.7 L567.4,226.3 L567.5,225.2 L566.9,224.3 L564.4,224.2 L561.9,225.5 L559.9,225.2 L550.0,216.9 L547.1,216.4 L543.8,213.9 L540.7,213.6 L535.9,209.7 L534.2,209.7 L531.6,212.0 L529.3,212.8 L525.0,217.5 L523.5,218.3 L520.8,218.0 L514.9,213.4 L513.7,213.8 L510.7,217.1 L511.6,214.8 L510.8,212.5 L503.6,206.2 L501.0,205.6 L499.0,206.5 L496.0,210.2 L496.0,212.7 L497.6,214.6 L495.7,214.6 L494.4,217.1 L493.0,218.2 L491.2,218.4 L488.4,217.6 L486.6,218.7 L486.2,220.0 L486.7,223.3 L484.4,226.8 L486.0,229.7 L466.9,208.4 L465.2,207.8 L462.8,208.3 L460.2,207.6 L456.4,209.2 L454.0,209.0 L452.1,206.8 L448.3,205.1 L446.7,204.9 L445.0,205.6 L443.8,207.3 L443.6,209.0 L444.4,211.3 L446.3,213.1 L450.9,213.8 L451.7,218.0 L452.6,219.1 L454.6,220.4 L454.8,221.9 L452.7,224.2 L451.9,227.8 L448.9,229.7 L447.2,232.4 L447.0,231.5 L446.2,230.6 L444.5,230.1 L442.8,230.5 L440.6,232.6 L437.8,232.8 L435.9,234.3 L434.2,234.7 L430.7,233.6 L428.4,230.6 L421.3,229.0 L420.1,228.3 L418.8,225.9 L419.4,221.7 L418.2,220.5 L416.6,221.3 L415.6,225.5 L415.4,223.3 L413.9,221.6 L411.7,221.2 L409.7,222.2 L407.0,226.0 L407.3,228.1 L408.5,229.6 L406.8,228.0 L405.9,224.3 L404.8,223.9 L402.0,224.6 L399.8,223.6 L398.5,222.1 L397.8,218.7 L394.8,216.8 L392.0,217.2 L390.3,216.7 L389.0,215.2 L388.3,212.4 L383.9,209.4 L381.3,209.7 L378.7,208.7 L375.7,209.0 L374.9,209.6 L374.1,211.6 L372.8,212.7 L371.1,213.1 L368.5,212.6 L367.5,213.0 L366.5,216.9 L364.8,218.6 L362.8,218.9 L357.5,217.9 L355.1,218.7 L356.3,217.1 L357.5,212.2 L356.9,210.3 L354.4,207.7 L350.9,206.4 L348.6,206.4 L346.2,207.1 L344.7,209.0 L346.0,206.7 L349.6,204.9 L349.6,202.8 L348.4,201.8 L341.8,203.8 L341.3,204.7 L341.6,207.2 L340.7,209.7 L340.0,210.9 L338.5,211.8 L336.7,211.9 L334.3,210.9 L331.3,211.3 L328.0,209.6 L325.3,211.6 L322.0,212.5 L320.6,212.6 L317.6,211.6 L315.3,213.9 L312.9,214.3 L311.1,213.5 L309.1,211.2 L311.4,210.9 L313.0,209.3 L313.6,205.9 L313.0,204.0 L311.7,202.8 L308.8,202.1 L302.0,198.3 L299.5,198.2 L296.8,199.9 L293.7,200.9 L292.7,202.2 L292.3,203.7 L292.7,205.3 L293.7,206.8 L292.8,205.5 L291.0,202.4 L289.1,193.4 L289.2,191.4 L287.8,188.1 L286.3,178.3 L279.1,166.6ZM515.4,202.0 L514.8,203.9 L515.5,206.1 L524.6,213.8 L526.3,214.3 L527.9,213.9 L531.2,210.5 L531.6,208.4 L530.9,206.6 L523.1,200.1 L520.4,199.0 L518.7,199.0 L517.2,199.8 L515.4,202.0ZM432.9,192.6 L432.4,194.3 L432.8,196.0 L435.1,199.5 L436.9,200.6 L448.1,199.2 L449.8,198.1 L450.6,196.4 L450.5,194.6 L449.6,193.1 L441.4,186.4 L439.9,185.7 L438.2,185.8 L436.7,186.7 L432.9,192.6ZM425.5,208.4 L424.1,210.7 L424.5,213.1 L426.3,214.6 L430.0,215.3 L432.1,214.3 L434.1,211.5 L437.1,211.3 L439.0,210.2 L440.1,208.8 L440.4,207.1 L439.9,205.5 L438.6,204.3 L434.4,203.6 L425.5,208.4ZM397.8,191.1 L397.2,193.5 L398.3,196.1 L398.9,200.8 L403.0,206.2 L404.8,207.6 L406.3,207.9 L407.8,207.5 L409.5,205.9 L410.8,203.0 L417.2,201.8 L418.4,201.1 L419.4,199.7 L419.5,197.9 L418.7,193.9 L420.6,190.7 L420.4,188.2 L419.4,186.9 L410.9,180.0 L408.9,179.8 L407.2,180.6 L397.8,191.1ZM333.5,196.1 L332.5,197.4 L332.0,198.8 L332.3,200.4 L333.3,201.8 L334.7,202.5 L337.3,202.7 L339.8,201.5 L340.5,200.1 L340.6,198.6 L340.1,197.3 L338.8,195.9 L336.2,195.0 L333.5,196.1ZM292.3,175.7 L293.0,177.3 L294.3,178.3 L295.9,178.6 L297.4,178.2 L301.2,174.3 L301.6,172.7 L301.2,171.0 L300.2,169.8 L298.6,169.1 L294.5,169.9 L292.4,172.5 L292.3,175.7ZM552.2,478.1 L554.4,478.3 L556.1,477.6 L557.1,476.1 L557.7,473.7 L559.1,473.0 L560.1,473.5 L563.8,478.2 L565.7,478.7 L569.0,478.1 L569.9,478.7 L570.1,479.8 L569.9,480.8 L563.6,482.6 L562.2,483.6 L561.4,486.2 L562.7,488.7 L561.0,487.3 L560.4,485.4 L561.0,483.4 L562.8,481.5 L562.4,479.9 L552.2,478.1ZM540.7,577.4 L541.1,574.5 L545.0,565.9 L545.3,564.2 L547.5,567.5 L548.9,567.9 L546.9,569.3 L544.5,574.1 L543.8,576.6 L544.1,579.8 L543.6,580.7 L542.4,581.1 L541.4,580.5 L540.7,577.4ZM427.1,354.7 L427.5,356.7 L429.0,358.2 L431.1,358.5 L432.9,357.7 L435.7,353.8 L436.1,351.6 L437.8,347.8 L440.9,345.3 L441.5,339.9 L444.7,336.6 L448.8,335.7 L454.4,336.3 L457.1,335.4 L459.1,335.7 L461.5,339.5 L466.1,342.0 L466.3,343.0 L465.7,344.8 L465.6,347.4 L466.4,349.0 L468.1,350.0 L465.6,350.4 L463.3,354.1 L460.7,355.0 L458.3,353.8 L456.2,349.6 L455.2,348.7 L453.6,348.7 L452.5,349.4 L451.9,350.5 
38138L452.0,351.7 L451.4,350.3 L450.2,349.1 L448.6,348.7 L446.8,349.1 L444.1,351.6 L443.6,353.9 L445.0,356.3 L447.7,357.0 L445.4,357.4 L441.9,359.4 L438.1,358.5 L434.8,356.7 L431.8,358.5 L429.4,358.5 L427.6,357.0 L427.1,354.7ZM460.8,323.6 L461.6,321.0 L463.1,319.0 L463.4,315.7 L465.1,319.0 L464.6,321.5 L463.9,322.3 L460.8,323.6ZM396.1,240.0 L395.4,236.9 L391.8,235.7 L390.7,233.4 L392.2,226.9 L393.3,225.6 L395.0,225.0 L396.9,225.5 L399.7,227.5 L400.5,229.7 L399.6,232.5 L399.7,234.1 L403.6,236.3 L401.3,236.9 L400.0,238.7 L399.9,240.9 L401.3,242.8 L397.1,241.4 L396.1,240.0ZM353.3,319.5 L355.9,307.5 L355.6,306.4 L354.7,305.8 L362.5,308.5 L368.1,311.9 L368.2,313.0 L367.5,313.9 L364.6,314.1 L362.8,315.1 L362.0,316.7 L361.9,318.8 L361.1,319.7 L359.9,319.7 L358.1,318.2 L356.4,317.8 L354.5,318.3 L353.3,319.5ZM323.7,301.9 L324.9,304.8 L326.3,305.6 L328.0,305.7 L323.9,306.4 L321.4,305.2 L320.0,302.0 L318.7,300.6 L318.1,299.1 L318.3,297.1 L319.7,295.5 L321.6,294.9 L325.7,295.4 L326.9,295.9 L329.2,297.6 L327.0,296.9 L324.7,297.7 L323.6,299.5 L323.7,301.9ZM271.3,97.3 L273.3,96.0 L276.9,96.0 L277.9,95.2 L278.1,94.1 L276.7,89.5 L276.9,87.5 L277.2,89.1 L278.1,90.4 L279.6,91.2 L282.5,91.4 L285.0,95.3 L286.2,96.1 L288.4,96.6 L289.1,98.0 L288.6,99.1 L286.2,100.7 L285.1,103.6 L284.0,104.2 L282.7,103.4 L281.4,98.9 L279.8,97.2 L277.7,96.8 L272.5,98.0 L271.2,99.1 L270.5,100.8 L271.5,106.2 L270.1,100.0 L270.4,98.6 L271.3,97.3ZM275.4,378.5 L279.7,381.5 L283.1,379.8 L287.0,380.3 L287.8,379.5 L287.8,378.1 L287.9,379.6 L287.5,381.1 L286.8,381.8 L285.0,382.8 L281.3,383.3 L280.2,384.5 L279.3,386.4 L278.1,386.8 L276.4,385.4 L277.1,381.0 L275.4,378.5ZM258.7,135.0 L260.1,133.2 L261.6,132.4 L263.2,132.3 L265.6,133.2 L268.7,131.2 L273.5,131.0 L278.3,133.7 L279.4,135.1 L279.6,135.5 L280.7,137.8 L279.1,134.9 L277.0,133.8 L274.8,134.2 L273.1,135.8 L269.0,138.2 L264.7,138.2 L262.0,135.0 L260.3,134.6 L258.7,135.0ZM263.0,122.9 L264.6,124.2 L266.6,124.4 L268.5,123.4 L270.7,120.2 L275.0,120.9 L275.7,121.6 L276.6,124.2 L279.1,126.6 L280.6,131.5 L277.9,128.4 L271.3,127.8 L268.6,126.4 L266.1,126.1 L264.6,125.2 L263.0,122.9ZM256.0,84.3 L254.8,81.3 L255.2,80.3 L256.2,79.8 L257.5,80.4 L260.3,84.9 L262.2,85.9 L263.7,85.9 L265.1,85.2 L269.0,80.7 L270.1,80.8 L272.2,82.3 L273.6,82.5 L269.8,83.7 L268.6,87.1 L266.7,88.6 L264.3,88.5 L262.0,86.9 L260.8,87.2 L260.1,88.6 L260.3,89.1 L261.2,91.1 L261.3,91.2 L261.4,91.4 L261.4,91.5 L260.3,89.3 L256.0,84.3ZM233.4,386.0 L238.5,384.5 L240.1,382.3 L239.6,379.6 L237.4,377.8 L241.0,380.2 L243.7,381.4 L246.1,381.2 L251.6,378.9 L253.7,378.8 L255.3,379.7 L256.7,382.3 L259.9,385.2 L263.4,385.5 L265.2,384.1 L263.8,385.6 L263.1,387.8 L261.2,390.5 L260.8,394.4 L261.7,395.8 L263.6,397.2 L267.1,397.5 L268.1,398.1 L269.2,401.0 L271.7,403.8 L271.6,406.9 L269.8,409.3 L268.1,409.3 L267.5,408.5 L267.5,406.3 L266.8,404.7 L263.5,402.8 L260.9,399.2 L257.4,396.9 L257.1,395.8 L258.2,388.8 L257.6,387.2 L256.5,386.1 L253.9,385.7 L246.1,388.2 L233.9,388.2 L233.2,387.2 L233.4,386.0ZM219.4,356.7 L217.3,354.6 L217.3,353.1 L218.2,352.4 L220.8,352.1 L222.8,350.9 L224.0,351.3 L227.2,354.7 L228.6,355.5 L230.8,355.4 L232.5,354.2 L230.4,359.7 L231.0,363.6 L230.8,364.7 L230.5,365.3 L230.0,365.8 L230.7,364.0 L230.4,362.1 L226.1,357.9 L224.3,357.1 L220.9,357.4 L219.4,356.7ZM147.8,283.9 L149.4,284.6 L152.2,283.0 L153.6,282.8 L155.1,283.1 L157.1,284.5 L159.1,283.9 L157.2,286.3 L153.9,285.8 L150.6,287.1 L149.5,286.6 L147.8,283.9ZM29.0,295.5 L28.8,294.0 L30.4,292.1 L30.8,290.4 L30.4,288.7 L28.8,286.4 L29.6,283.4 L28.7,280.7 L28.9,279.6 L30.3,278.8 L33.1,280.3 L35.5,280.0 L37.0,278.7 L37.9,276.3 L41.0,274.8 L41.9,272.6 L40.6,266.4 L39.5,264.8 L36.4,263.8 L31.2,265.0 L30.2,264.0 L30.4,262.6 L36.0,260.5 L37.2,259.5 L38.7,255.9 L39.0,253.2 L40.4,251.5 L41.1,249.4 L41.9,248.8 L47.9,248.4 L49.0,248.9 L49.7,249.9 L50.4,256.1 L51.3,257.4 L52.7,258.1 L55.4,257.8 L58.9,255.5 L60.0,253.8 L60.1,252.1 L59.1,250.0 L58.3,245.0 L47.0,229.8 L47.1,228.5 L50.0,224.5 L51.4,224.4 L52.2,225.4 L51.5,229.0 L52.0,231.1 L59.6,241.4 L61.3,242.5 L63.3,242.5 L66.8,240.3 L77.3,237.6 L83.5,237.0 L87.1,237.7 L89.8,236.6 L95.0,236.0 L97.8,236.2 L99.1,236.9 L103.5,240.7 L105.2,240.8 L106.7,240.2 L105.6,241.2 L105.0,243.2 L105.5,244.5 L107.3,246.8 L107.6,249.1 L106.6,250.9 L104.4,252.4 L104.2,254.1 L105.7,256.1 L109.4,257.6 L110.8,257.3 L111.9,255.2 L114.1,253.6 L115.4,251.5 L120.1,248.2 L121.3,246.8 L123.9,244.9 L122.7,246.2 L122.4,248.1 L125.9,254.6 L125.7,267.7 L126.6,274.2 L127.7,276.3 L130.1,277.6 L130.4,278.9 L129.6,280.0 L125.6,280.9 L123.9,282.3 L122.7,285.9 L123.5,289.6 L118.5,294.3 L117.4,296.9 L11
381385.5,298.6 L114.9,300.5 L115.3,303.0 L114.5,304.1 L112.9,304.6 L111.8,304.1 L110.3,299.9 L108.9,298.4 L107.2,298.0 L104.3,298.3 L101.9,295.6 L98.5,294.8 L96.7,290.2 L92.3,287.8 L87.3,288.0 L82.7,287.2 L76.2,291.0 L72.1,289.2 L70.4,289.5 L68.4,290.9 L64.9,290.4 L62.3,291.7 L60.9,294.4 L59.9,295.0 L58.7,294.7 L57.5,292.9 L56.0,292.0 L52.0,292.4 L50.6,293.6 L49.9,295.1 L50.1,297.0 L51.3,299.0 L51.0,301.6 L51.9,304.1 L51.4,305.2 L49.9,306.3 L48.0,305.8 L44.5,300.8 L43.1,300.2 L40.7,300.0 L36.9,296.3 L34.4,296.0 L31.2,297.6 L30.2,297.2 L29.0,295.5ZM78.2,256.1 L80.3,260.6 L81.4,261.9 L83.7,262.5 L85.7,261.7 L86.9,259.7 L87.2,255.8 L85.6,249.9 L84.4,249.0 L82.9,248.6 L80.0,248.9 L78.5,249.7 L77.2,252.3 L78.2,256.1ZM46.4,269.4 L45.6,270.6 L45.4,272.2 L47.1,276.2 L48.4,277.0 L50.0,277.1 L53.0,275.6 L53.9,274.1 L53.9,272.5 L52.0,268.5 L50.7,267.7 L49.1,267.6 L46.4,269.4Z"/><path class="sh sh-lost" data-ly="lost" d="M55.9,142.4 L55.6,138.5 L56.3,137.1 L57.8,136.3 L61.5,136.7 L64.7,137.6 L66.4,138.7 L67.8,140.9 L69.2,145.1 L70.5,146.1 L72.2,146.5 L71.0,146.8 L67.6,149.9 L65.1,154.3 L65.3,151.7 L63.7,149.6 L61.4,149.2 L58.3,150.4 L56.6,149.7 L56.3,148.6 L56.9,145.8 L55.9,142.4Z"/><g class="rts"><path class="rt rt-red stay" data-rt="Red" style="--c:#C8102E" d="M157.0,166.4 L153.9,167.8 L151.7,170.4 L156.4,174.2 L158.0,172.6 L163.6,170.2 L210.0,159.8 L209.2,150.0 L210.5,141.1 L214.9,142.5 L216.3,145.7 L217.4,145.6 L217.7,144.5 L214.9,142.5 L213.9,142.1 L210.5,141.1 L209.4,140.9 L208.3,149.8 L209.0,160.0 L210.0,159.8 L212.5,159.6 L216.7,159.6 L237.9,161.0 L247.3,158.4 L262.4,151.4 L276.2,150.5 L279.3,151.1 L277.1,159.8 L276.9,164.3 L278.9,169.4 L285.0,179.3 L289.6,203.6 L292.8,208.1 L300.9,216.1 L304.6,226.6 L306.8,230.1 L305.9,241.4 L296.4,240.5 L287.3,264.6 L285.8,271.5 L285.5,277.7 L286.6,296.4 L284.9,305.4 L292.8,309.1 L298.3,314.6 L279.6,334.9 L294.9,348.9 L304.5,338.8 L311.5,344.7 L319.8,334.9 L336.9,351.0 L337.6,350.4 L352.1,349.3 L359.4,351.5 L371.1,360.9 L387.2,370.4 L408.2,387.8 L422.3,398.2 L427.5,401.1 L438.0,404.2 L466.3,405.9 L480.9,412.0 L493.0,415.4 L506.4,367.8 L510.9,369.1 L516.6,372.2 L527.6,375.5 L529.6,369.8 L539.1,362.6 L543.8,369.0 L536.6,375.2 L532.6,388.5 L529.6,387.2M529.7,387.2 L524.9,385.3 L527.6,375.5 L516.6,372.2 L510.9,369.1 L506.4,367.8 L493.0,415.4 L480.9,412.0 L466.3,405.9 L438.0,404.2 L427.5,401.1 L422.3,398.2 L408.2,387.8 L387.2,370.4 L371.1,360.9 L359.4,351.5 L352.1,349.3 L337.6,350.4 L319.4,333.7 L310.5,344.0 L304.5,338.8 L294.9,348.9 L279.6,334.9 L298.9,313.9 L293.7,308.2 L287.4,303.6 L286.2,300.4 L286.6,294.1 L285.5,277.7 L285.8,271.5 L287.3,264.6 L296.4,240.5 L305.9,241.4 L306.8,230.1 L304.6,226.6 L300.9,216.1 L292.8,208.1 L289.8,203.4 L285.0,179.3 L278.9,169.4 L276.9,164.3 L277.1,159.8 L279.3,151.1 L276.2,150.5 L262.4,151.4 L245.2,159.2 L237.9,161.0 L210.0,159.8 L209.2,150.0 L210.5,141.1 L214.9,142.5 L216.2,145.6 L217.2,145.6 L217.7,144.5 L214.9,142.5 L213.9,142.1 L210.5,141.1 L209.4,140.9 L208.3,149.8 L209.0,160.0 L171.5,168.4 L167.5,159.6 L164.7,162.6 L157.0,166.4" data-v="Red route" data-k="still in service"/><path class="rt rt-green stay" data-rt="Green" style="--c:#2E8B3E" d="M157.1,166.4 L153.9,167.8 L151.7,170.4 L155.8,173.7 L151.3,178.5 L144.3,193.3 L154.0,197.9 L168.4,203.8 L194.1,206.8 L234.8,219.8 L244.9,221.4 L281.0,237.8 L301.4,241.4 L312.6,241.9 L322.5,244.3 L357.6,261.4 L381.4,269.5 L394.9,272.5 L406.2,272.5 L416.2,273.5 L420.1,274.8 L421.7,276.5 L426.5,276.3 L438.1,273.6 L459.4,265.6 L484.4,258.6 L502.0,257.8 L502.5,259.0 L504.5,260.1 L507.7,259.3 L543.7,289.6 L546.5,286.2 L551.0,283.5 L552.4,287.7 L552.5,288.4 L552.5,289.3 L552.8,290.7 L553.5,297.7 L554.6,306.6 L554.9,309.7 L555.5,315.8 L555.9,319.9 L556.2,320.9 L556.6,322.2 L556.7,322.8 L557.2,324.0 L557.4,324.4 L557.8,325.5 L559.5,328.3 L568.5,340.5 L567.4,341.4 L561.1,346.1 L557.5,348.8 L553.8,351.5 L550.2,354.2 L539.1,362.6 L543.8,369.0 L536.6,375.2 L532.6,388.5 L524.9,385.3 L529.1,370.4 L529.8,369.6 L534.8,365.9 L539.1,362.6 L545.4,357.9 L545.4,357.9 L568.5,340.5 L560.0,329.4 L560.2,329.2 L559.5,328.3 L558.8,327.2 L558.5,326.7 L557.8,325.5 L557.8,325.2 L557.2,324.0 L557.0,323.3 L556.6,322.2 L556.3,321.4 L556.2,320.9 L556.0,320.2 L555.9,319.9 L554.6,306.6 L552.5,288.9 L552.5,288.4 L552.4,287.7 L552.3,287.3 L544.9,266.3 L543.3,265.3 L539.7,267.0 L509.7,259.2 L508.7,258.4 L508.7,256.1 L505.7,254.7 L502.6,255.8 L502.0,257.8 L485.0,258.5 L484.4,258.6M529.2,387.0 L524.9,385.3 L529.6,369.8 L568.5,340.5 L559.5,328.3 L556.3,321.4 L552.3,287.3 L544.1,265.4 L539.7,267.0 L509.7,259.2 L508.7,258.4 L509.1,256.9 L508.4,255.9 L504.9,254.7 L502.6,255.8 L502.0,257.8 L484.4,258.6 L461.
381380,265.0 L443.3,271.5 L431.8,274.7 L427.8,274.8 L424.4,274.5 L423.3,273.5 L420.9,274.2 L408.9,272.6 L404.4,272.5 L396.9,272.7 L385.5,270.6 L383.3,269.9 L382.5,269.8 L381.4,269.5 L375.2,267.4 L371.5,266.1 L362.7,263.4 L359.6,262.3 L354.9,260.2 L333.6,249.5 L329.0,247.1 L328.1,246.6 L322.5,244.3 L325.2,245.3 L328.1,246.6 L333.0,249.2 L333.6,249.5 L340.9,253.2 L341.7,253.3 L354.4,259.6 L354.9,260.1 L362.7,263.4 L371.5,266.1 L375.2,267.4 L379.3,268.8 L381.4,269.5 L384.8,270.4 L385.5,270.6 L394.9,272.5 L396.9,272.7 L397.6,272.7 L400.8,272.6 L399.4,272.6 L397.6,272.7 L396.9,272.7 L396.0,272.6 L394.9,272.5 L390.8,271.8 L385.5,270.6 L381.4,269.5 L379.3,268.8 L375.2,267.4 L371.5,266.1 L362.7,263.4 L358.3,261.7 L354.9,260.1 L354.9,259.9 L354.4,259.6 L350.9,258.0 L341.7,253.3 L341.3,253.2 L340.9,253.2 L336.5,251.0 L333.6,249.5 L333.0,249.2 L329.0,247.1 L328.1,246.6 L325.2,245.3 L322.4,244.2 L312.6,241.9 L300.5,241.2 L280.4,237.7 L247.5,222.2 L242.3,220.5 L197.4,206.9 L195.5,207.1 L187.9,205.2 L173.0,203.9 L157.5,198.5 L147.5,193.6 L146.6,190.8 L151.3,180.7 L156.4,174.2 L156.5,173.6 L162.2,170.6 L163.6,170.2 L171.5,168.4 L172.0,168.3 L171.5,168.4 L167.5,159.6 L164.7,162.6 L153.9,167.8 L152.3,169.4 L151.7,170.4 L156.4,174.2" data-v="Green route" data-k="still in service"/><path class="rt rt-brown stay" data-rt="Brown" style="--c:#8B5A2B" d="M157.0,166.4 L153.9,167.8 L151.7,170.4 L155.8,173.7 L151.3,178.5 L144.3,193.3 L155.5,198.5 L170.7,204.3 L172.1,208.7 L171.6,211.0 L170.6,212.0 L148.1,227.8 L187.0,248.0 L211.8,262.7 L216.5,263.7 L246.7,262.2 L253.5,263.9 L259.7,269.1 L279.8,294.0 L286.6,294.1 L286.4,298.9 L284.9,305.4 L292.8,309.1 L298.3,314.6 L297.7,315.3 L276.3,338.6 L271.7,343.5 L262.7,336.0 L260.8,335.5 L257.3,334.5 L250.8,332.7 L249.0,331.9 L249.8,328.6 L248.1,328.2 L247.3,331.5 L248.4,332.1 L259.2,335.1 L260.8,335.5 L262.7,336.0 L264.6,337.2 L271.7,343.5 L298.3,314.6 L304.3,321.3 L313.0,329.3 L310.6,332.9 L304.5,338.8 L320.3,352.6 L318.3,355.9 L318.3,357.2 L319.1,361.2 L318.9,362.7 L310.4,374.2 L308.0,376.8 L303.6,379.5 L303.9,381.1 L304.2,382.2 L304.3,383.6 L303.8,385.5 L303.6,385.9 L303.2,386.3 L302.6,386.4 L302.3,386.7 L302.9,387.4 L303.4,387.2 L303.2,386.4 L303.5,385.9 L303.8,385.5 L303.9,385.1 L304.3,383.6 L303.6,379.5 L305.7,378.5 L308.0,376.8 L310.4,374.2 L317.1,365.4 L318.9,362.7 L318.3,357.2 L318.3,355.9 L318.8,354.7 L320.3,352.6 L328.6,343.0 L351.1,364.7 L363.6,379.1 L374.3,395.0 L379.6,406.1 L385.9,425.1 L390.8,434.9 L398.0,443.5 L414.4,456.9 L412.8,458.4 L407.3,458.7 L404.0,459.8 L402.6,461.1 L386.7,478.1 L384.6,480.0 L385.2,481.6 L386.5,480.8 L386.1,479.1 L386.7,478.2 L404.0,459.8 L405.4,459.0 L407.3,458.7 L411.2,458.5 L412.8,458.4 L413.2,458.2 L414.4,456.9 L435.0,473.4 L435.0,474.0 L451.6,486.4 L460.9,490.9 L492.8,501.0 L498.1,503.4 L514.1,513.0 L535.8,527.8 L541.1,533.4 L545.4,529.0 L543.1,526.7 L542.3,524.9 L539.7,510.6 L536.9,508.4 L527.4,521.9 L517.8,515.5 L514.1,513.0 L508.5,509.4 L499.0,491.6 L495.4,482.8 L506.5,450.2 L529.1,370.4 L539.1,362.6 L543.8,369.0 L536.6,375.2 L532.6,388.5 L529.6,387.2M529.4,387.1 L524.9,385.3 L506.5,450.2 L495.4,482.8 L496.3,486.0 L504.5,502.0 L504.5,504.1 L503.3,506.3 L535.8,527.8 L541.1,533.4 L545.4,529.0 L543.1,526.7 L542.3,524.9 L539.7,510.7 L536.9,508.4 L527.4,521.9 L507.2,508.7 L506.2,508.2 L503.3,506.3 L502.0,505.5 L492.2,500.4 L461.5,490.2 L452.7,486.1 L435.0,473.4 L414.4,456.9 L412.8,458.4 L407.3,458.7 L404.0,459.8 L402.6,461.1 L384.8,480.0 L384.8,481.3 L385.6,481.7 L386.4,481.0 L386.2,479.1 L387.0,477.7 L404.0,459.8 L405.4,459.0 L407.3,458.7 L411.2,458.5 L412.8,458.4 L413.2,458.2 L414.4,456.9 L398.0,443.5 L390.8,434.9 L385.9,425.1 L378.0,402.1 L372.1,391.2 L366.6,383.1 L346.9,359.7 L332.3,345.2 L323.7,337.3 L320.3,334.4 L319.9,334.1 L319.4,333.7 L310.5,344.0 L320.3,352.6 L318.3,355.9 L319.1,361.2 L318.9,362.7 L310.4,374.2 L308.0,376.8 L305.7,378.5 L303.6,379.5 L304.3,383.6 L303.8,385.5 L302.4,387.0 L302.8,387.4 L303.5,386.9 L303.4,386.3 L303.8,385.5 L303.9,385.1 L304.3,383.6 L304.2,382.2 L303.6,379.5 L307.6,377.1 L310.4,374.2 L317.1,365.4 L318.9,362.7 L318.3,355.9 L318.8,354.7 L320.3,352.6 L311.5,344.7 L320.3,334.4 L309.2,324.6 L298.9,313.9 L297.7,315.3 L276.3,338.6 L271.7,343.5 L262.7,336.0 L260.8,335.5 L250.3,332.6 L249.1,332.0 L249.8,328.7 L248.1,328.3 L247.3,331.4 L250.5,332.6 L262.7,336.0 L264.6,337.2 L271.7,343.5 L298.9,313.9 L293.7,308.2 L287.2,303.2 L286.2,300.4 L286.6,294.1 L279.8,294.0 L259.7,269.1 L254.8,264.6 L250.3,262.6 L246.7,262.2 L216.5,263.7 L211.8,262.7 L186.2,246.4 L149.3,227.2 L170.6,212.0 L172.5,211.4 L173.1,209.0 L171.3,203.5 L155.8,197.8 L147.5,193.6 L147.1,192.7 L146.6,191.0 L151.5,180.4 L156.5,173.6 L162.2,170.6 L171.5,168.4 L167.5,159.6 L164.7,162.6 L156.9,166.4" data-v="Brown route" data-k="still in service"/><path class="rt rt-orange gone" data-rt="Orange" style="--c:#E07B00" d="M482.2,259.2 L461.0,265.0 L434.6,274.1 L427.8,274.8 L424.4,274.5 L423.3,273.5 L421.5,273.7 L420.6,276.9 L417.8,279.4 L405.0,284.8 L397.3,289.5 L393.1,294.1 L389.9,300.2 L379.1,331.1 L368.2,347.5 L366.2,353.0 L364.6,354.5 L363.1,354.3 L357.6,350.7 L353.4,349.4 L337.6,350.4 L309.2,324.6 L298.9,313.9 L298.3,314.6 L297.7,315.3 L276.3,338.6 L273.4,341.6 L271.7,343.5 L262.7,336.0 L249.8,332.5 L249.1,331.9 L249.8,328.7 L248.1,328.3 L247.3,331.5 L248.4,331.9 L250.2,332.6 L262.7,336.0 L264.6,337.2 L271.7,343.5 L276.3,338.6 L291.5,322.1 L297.7,315.3 L298.3,314.6 L304.3,321.3 L313.0,329.3 L310.6,332.9 L304.5,338.8 L320.3,352.6 L318.3,355.9 L318.3,357.2 L319.1,361.2 L318.9,362.7 L310.4,374.2 L308.0,376.8 L303.6,379.5 L304.3,383.6 L303.5,385.8 L302.3,386.6 L302.8,387.4 L303.3,387.1 L304.3,383.6 L304.2,382.2 L303.6,379.5 L305.7,378.5 L308.0,376.8 L310.4,374.2 L317.1,365.4 L318.9,362.7 L318.3,357.2 L318.3,355.9 L318.8,354.7 L320.3,352.6 L328.6,343.0 L351.1,364.7 L363.6,379.1 L374.3,395.0 L379.6,406.1 L385.9,425.1 L390.8,434.9 L398.0,443.5 L414.4,456.9 L412.8,458.4 L407.3,458.7 L404.0,459.8 L385.6,479.1 L384.8,480.0 L384.8,481.3 L386.1,481.5 L386.3,479.4M385.9,479.3 L404.0,459.8 L405.4,459.0 L413.2,458.2 L414.4,456.9 L413.6,456.2 L472.8,415.4 L477.3,412.0 L47
381387.7,410.8 L466.3,405.9 L436.6,404.0 L429.3,401.9 L424.8,399.8 L404.8,385.2 L387.2,370.4 L371.1,360.9 L365.9,356.8 L367.4,349.3 L379.1,331.1 L389.9,300.2 L393.1,294.1 L397.3,289.5 L405.0,284.8 L419.7,278.7 L421.7,276.8 L432.0,275.3 L438.1,273.6 L461.0,265.0 L483.4,258.7 L485.0,258.5 L486.6,258.3 L500.0,257.8 L502.0,257.8 L503.7,259.8 L506.2,260.1 L508.2,259.1 L509.1,256.9 L507.4,255.2 L504.9,254.7 L502.6,255.8 L502.1,257.8 L495.5,258.0 L488.3,258.2 L486.3,258.3 L481.9,259.3" data-v="Orange route" data-k="replaced by Go! Time in 2024"/><path class="rt rt-purple gone" data-rt="Purple" style="--c:#6A3FA0" d="M157.0,166.4 L152.3,169.4 L149.0,176.4 L139.0,182.3 L134.9,182.0 L132.8,178.9 L125.1,183.2 L122.1,184.0 L90.1,190.4 L76.8,191.7 L72.1,191.1 L72.7,185.3 L71.6,181.4 L67.4,172.7 L67.0,168.9 L67.5,166.8 L66.7,166.0 L66.3,161.4 L67.8,154.6 L71.5,149.8 L75.7,147.3 L90.9,144.7 L109.7,142.6 L118.5,140.6 L128.3,136.6 L169.3,124.0 L195.1,118.7 L205.7,114.7 L219.7,110.6 L221.9,119.4 L221.3,126.5 L219.1,130.5 L212.0,137.1 L209.4,140.9 L214.9,142.5 L216.3,145.7 L217.7,145.2 L217.4,143.9 L214.9,142.5 L213.9,142.1 L209.4,140.9 L208.3,149.8 L209.0,160.0 L163.6,170.2 L155.8,173.7 L151.3,178.5 L144.3,193.3 L168.4,203.8 L194.9,207.0 L234.8,219.8 L247.5,222.2 L281.0,237.8 L301.4,241.4 L312.6,241.9 L322.5,244.3 L359.6,262.3 L385.5,270.6 L396.9,272.7 L406.2,272.5 L416.2,273.5 L420.1,274.8 L421.7,276.5 L426.5,276.3 L438.1,273.6 L459.4,265.6 L484.4,258.6 L502.0,257.8 L502.5,259.0 L504.5,260.1 L507.7,259.3 L543.7,289.6 L546.5,286.2 L551.0,283.5 L552.4,287.7 L556.3,321.4 L559.5,328.3 L568.5,340.5 L539.1,362.6 L543.8,369.0 L536.6,375.2 L532.6,388.5 L529.6,387.2M529.5,387.1 L524.9,385.3 L527.6,375.5 L516.6,372.2 L510.9,369.1 L506.4,367.8 L497.4,399.1 L519.3,405.3 L506.5,450.2 L495.4,482.8 L496.3,486.0 L504.5,502.0 L504.5,504.1 L503.3,506.3 L535.8,527.8 L541.1,533.4 L545.4,529.0 L543.1,526.7 L542.3,524.9 L539.7,510.7 L536.9,508.4 L527.4,521.9 L507.2,508.7 L506.2,508.2 L503.3,506.3 L500.8,504.9 L492.2,500.4 L461.5,490.2 L452.0,485.8 L432.4,471.4 L413.6,456.2 L472.8,415.4 L477.3,412.0 L47
381387.7,410.8 L468.1,406.4 L464.5,405.5 L438.0,404.2 L427.5,401.1 L422.3,398.2 L408.2,387.8 L387.2,370.4 L371.1,360.9 L359.4,351.5 L352.1,349.3 L337.6,350.4 L319.4,333.7 L310.5,344.0 L320.3,352.6 L318.3,355.9 L318.3,357.2 L319.1,361.2 L318.9,362.7 L310.4,374.2 L308.3,376.5 L308.0,376.8 L303.6,379.5 L304.3,383.6 L302.3,387.2 L303.4,386.9 L304.3,383.6 L304.2,382.2 L303.6,379.5 L305.7,378.5 L308.0,376.8 L310.4,374.2 L317.1,365.4 L318.9,362.7 L319.1,361.2 L318.3,355.9 L318.8,354.7 L320.3,352.6 L304.5,338.8 L294.9,348.9 L279.6,334.9 L276.3,338.6 L271.7,343.5 L262.7,336.0 L260.8,335.5 L249.7,332.4 L249.1,331.9 L249.7,328.7 L248.0,328.3 L247.3,331.1 L248.4,332.1 L262.7,336.0 L264.6,337.2 L271.7,343.5 L298.9,313.9 L293.7,308.2 L287.2,303.2 L286.2,300.4 L286.6,294.1 L279.8,294.0 L259.7,269.1 L253.5,263.9 L246.7,262.2 L216.5,263.7 L211.8,262.7 L186.2,246.4 L149.3,227.2 L170.6,212.0 L172.5,211.4 L173.1,209.0 L171.3,203.5 L155.4,197.6 L147.5,193.6 L147.1,192.7 L146.6,191.0 L151.5,180.4 L156.5,173.6 L162.2,170.6 L171.5,168.4 L167.5,159.6 L164.7,162.6 L156.9,166.4M156.6,165.8 L151.7,170.4 L156.4,174.2 L158.2,172.5 L163.6,170.2 L210.0,159.8 L209.2,150.0 L210.5,141.1 L214.9,142.5 L216.2,145.6 L217.7,145.2 L217.4,144.0 L214.9,142.5 L213.9,142.1 L210.5,141.1 L212.2,138.4 L219.3,131.8 L221.7,128.0 L222.7,124.8 L222.8,119.3 L220.1,109.3 L194.5,117.7 L174.2,121.7 L151.7,128.2 L125.5,136.4 L117.1,140.5 L111.8,142.0 L75.7,147.3 L71.5,149.8 L66.6,156.1 L65.5,160.0 L65.2,167.2 L67.5,175.4 L71.2,182.7 L71.6,187.1 L70.9,191.8 L78.2,192.5 L83.3,192.0 L122.8,183.8 L125.0,184.4 L155.5,198.5 L170.7,204.3 L172.1,208.7 L171.6,211.0 L148.1,227.8 L187.0,248.0 L211.8,262.7 L216.5,263.7 L248.3,262.4 L253.5,263.9 L257.2,266.5 L279.8,294.0 L286.6,294.1 L286.4,298.9 L284.9,305.4 L292.8,309.1 L298.3,314.6 L297.7,315.3 L276.3,338.6 L271.7,343.5 L262.7,336.0 L260.8,335.5 L257.3,334.5 L249.9,332.5 L249.1,331.9 L249.7,328.6 L248.1,328.2 L247.3,331.3 L249.9,332.6 L262.7,336.0 L264.6,337.2 L271.7,343.5 L298.3,314.6 L304.3,321.3 L313.0,329.3 L310.6,332.9 L304.5,338.8 L320.3,352.6 L318.3,355.9 L318.3,357.2 L319.1,361.2 L318.9,362.7 L310.4,374.2 L308.3,376.5 L308.0,376.8 L303.6,379.5 L304.3,383.6 L303.8,385.5 L302.3,386.4 L302.5,387.4 L303.5,387.0 L303.4,386.1 L303.8,385.5 L303.9,385.1 L304.3,383.6 L304.2,382.2 L303.6,379.5 L305.7,378.5 L308.0,376.8 L310.4,374.2 L317.1,365.4 L318.9,362.7 L318.3,357.2 L318.3,355.9 L318.8,354.7 L320.3,352.6 L328.6,343.0 L336.9,351.0 L337.6,350.4 L352.1,349.3 L359.4,351.5 L371.1,360.9 L387.2,370.4 L408.2,387.8 L422.3,398.2 L427.5,401.1 L438.0,404.2 L464.5,405.5 L468.1,406.4 L477.7,410.8 L477.3,412.0 L472.8,415.4 L413.6,456.2 L442.5,479.9 L451.6,486.4 L460.1,490.5 L492.8,501.0 L500.8,504.9 L535.8,527.8 L541.1,533.4 L545.4,529.0 L543.1,526.7 L542.3,524.9 L539.7,510.6 L536.9,508.4 L527.4,521.9 L508.5,509.4 L499.0,491.6 L495.4,482.8 L505.6,453.5 L514.9,421.6 L493.0,415.4 L506.4,367.8 L510.9,369.1 L516.6,372.2 L527.6,375.5 L529.6,369.8 L539.1,362.6 L543.8,369.0 L536.6,375.2 L532.6,388.5 L529.6,387.2M529.6,387.2 L524.9,385.3 L529.6,369.8 L568.5,340.5 L559.5,328.3 L556.3,321.4 L552.3,287.3 L544.2,265.4 L543.0,265.4 L539.7,267.0 L509.7,259.2 L508.7,258.4 L509.1,256.9 L508.4,255.9 L504.9,254.7 L502.6,255.8 L502.0,257.8 L484.4,258.6 L461.0,265.0 L443.3,271.5 L431.8,274.7 L426.2,274.8 L424.4,274.5 L423.3,273.5 L420.9,274.2 L408.9,272.6 L396.9,272.7 L385.5,270.6 L359.6,262.3 L322.5,244.3 L312.6,241.9 L301.4,241.4 L281.0,237.8 L247.5,222.2 L196.8,206.9 L195.9,207.3 L188.8,205.3 L170.8,203.4 L153.6,196.7 L147.5,193.6 L146.6,191.0 L152.6,178.5 L156.5,173.6 L158.7,172.1 L163.6,170.2 L171.5,168.4 L167.5,159.6 L164.7,162.6 L156.9,166.4" data-v="Purple route" data-k="replaced by Go! Time in 2024"/></g><g class="scale"><line x1="528.8" y1="583" x2="656" y2="583"/><text x="592.4" y="577" text-anchor="middle">1 mile</text></g></svg>
38139  <figcaption><b>Figure 3 · Ten-minute walkable access to transit</b>Walk-sheds computed on the pedestrian street network, 805 m (ten minutes at 3 mph) from every boarding point, identically for both networks. Switch views to compare the networks, or toggle layers and routes individually. Orange and Purple are the two routes Go! Time replaced.</figcaption>
38140</figure>
38141
38142<p>On weekdays the citywide routes stop at about 7 p.m., and Go! Time runs until about 10 p.m. On Saturdays it covers the evening after the buses finish, and on Sundays, when no citywide fixed route operates, it is the city’s transit service for the whole day (Figure 4). Across the week, that is about 32 hours in which Go! Time is the only citywide option.</p>
38143
38144<figure class="chartfig">
38145  <svg class="chart" viewBox="0 0 680 244" role="img" aria-label="Service span by day type: citywide fixed routes against Go! Time.">
38146<rect class="key bus" x="92" y="4" width="12" height="12" rx="2"/><text class="lg" x="110" y="14">Citywide fixed routes (Red, Green, Brown)</text><rect class="key dem" x="370" y="4" width="12" height="12" rx="2"/><text class="lg" x="388" y="14">Go! Time on-demand</text>
38147<line class="gl" x1="92.0" y1="36" x2="92.0" y2="222"/>
38148<text class="ax" x="92.0" y="238" text-anchor="middle">5a</text>
38149<line class="gl" x1="152.6" y1="36" x2="152.6" y2="222"/>
38150<text class="ax" x="152.6" y="238" text-anchor="middle">7a</text>
38151<line class="gl" x1="213.3" y1="36" x2="213.3" y2="222"/>
38152<text class="ax" x="213.3" y="238" text-anchor="middle">9a</text>
38153<line class="gl" x1="273.9" y1="36" x2="273.9" y2="222"/>
38154<text class="ax" x="273.9" y="238" text-anchor="middle">11a</text>
38155<line class="gl" x1="334.5" y1="36" x2="334.5" y2="222"/>
38156<text class="ax" x="334.5" y="238" text-anchor="middle">1p</text>
38157<line class="gl" x1="395.2" y1="36" x2="395.2" y2="222"/>
38158<text class="ax" x="395.2" y="238" text-anchor="middle">3p</text>
38159<line class="gl" x1="455.8" y1="36" x2="455.8" y2="222"/>
38160<text class="ax" x="455.8" y="238" text-anchor="middle">5p</text>
38161<line class="gl" x1="516.4" y1="36" x2="516.4" y2="222"/>
38162<text class="ax" x="516.4" y="238" text-anchor="middle">7p</text>
38163<line class="gl" x1="577.1" y1="36" x2="577.1" y2="222"/>
38164<text class="ax" x="577.1" y="238" text-anchor="middle">9p</text>
38165<line class="gl" x1="637.7" y1="36" x2="637.7" y2="222"/>
38166<text class="ax" x="637.7" y="238" text-anchor="middle">11p</text>
38167<text class="rw" x="0" y="67">Weekday</text>
38168<rect class="bar bus" x="107.2" y="44" width="409.3" height="16" rx="3" tabindex="0" data-v="5:30 am – 7:00 pm" data-k="Weekday · citywide fixed routes"/>
38169<rect class="bar dem" x="107.2" y="64" width="500.2" height="16" rx="3" tabindex="0" data-v="5:30 am – 10:00 pm" data-k="Weekday · Go! Time"/>
38170<text class="vl" x="614.4" y="77">+3 h</text>
38171<text class="rw" x="0" y="129">Saturday</text>
38172<rect class="bar bus" x="152.6" y="106" width="363.8" height="16" rx="3" tabindex="0" data-v="7:00 am – 7:00 pm" data-k="Saturday · citywide fixed routes"/>
38173<rect class="bar dem" x="516.4" y="126" width="106.1" height="16" rx="3" tabindex="0" data-v="7:00 pm – 10:30 pm" data-k="Saturday · Go! Time"/>
38174<text class="vl" x="629.5" y="139">+3.5 h</text>
38175<text class="rw" x="0" y="191">Sunday</text>
38176<text class="nt" x="152.6" y="180">no citywide fixed route operates</text>
38177<rect class="bar dem" x="152.6" y="188" width="394.1" height="16" rx="3" tabindex="0" data-v="7:00 am – 8:00 pm" data-k="Sunday · Go! Time"/>
38178<text class="vl" x="553.7" y="201">all day</text>
38179</svg>
38180  <figcaption><b>Figure 4 · When a ride is available</b>Typical first and last service by day type, rounded to the nearest half hour. Fixed-route spans from the City’s published schedule; Go! Time spans from its operating record.</figcaption>
38181</figure>
38182</section>
38183
38184<section class="sec" id="convenience">
38185<span class="tick"></span>
38186<h2>Convenience: returning riders at an all-time high!</h2>
38187<p>The first test of convenience is whether people use the service. In its first full fiscal year Go! Time carried 8% more passenger trips than the Orange and Purple routes had in their last. In its second year ridership rose another 21%, and the service now carries tens of thousands of trips a year (Figure 5).</p>
38188
38189<figure class="chartfig">
38190  <svg class="chart" viewBox="0 0 680 232" role="img" aria-label="Annual passenger trips indexed to the replaced routes: 100, 108, 131.">
38191<text class="pt" x="0" y="14">Annual passenger trips, indexed to the routes Go! Time replaced (= 100)</text>
38192<line class="zero" x1="60" y1="190.0" x2="660" y2="190.0"/><text class="ax" x="52" y="194.0" text-anchor="end">0</text>
38193<line class="gl" x1="60" y1="136.4" x2="660" y2="136.4"/><text class="ax" x="52" y="140.4" text-anchor="end">50</text>
38194<line class="gl" x1="60" y1="82.9" x2="660" y2="82.9"/><text class="ax" x="52" y="86.9" text-anchor="end">100</text>
38195<rect class="bar bus" x="100" y="82.9" width="120" height="107.1" rx="3" tabindex="0" data-v="100" data-k="Orange + Purple routes, FY2024 · index"/>
38196<text class="vlb" x="160.0" y="74.9" text-anchor="middle">100</text>
38197<text class="rw" x="160.0" y="208" text-anchor="middle">FY2024</text><text class="ax2" x="160.0" y="223" text-anchor="middle">Orange + Purple routes</text>
38198<rect class="bar dem" x="300" y="74.2" width="120" height="115.8" rx="3" tabindex="0" data-v="108" data-k="Go! Time, FY2025 · index"/>
38199<text class="vlb" x="360.0" y="66.2" text-anchor="middle">108</text>
38200<text class="rw" x="360.0" y="208" text-anchor="middle">FY2025</text><text class="ax2" x="360.0" y="223" text-anchor="middle">Go! Time</text>
38201<text class="vl" x="260.0" y="92.2" text-anchor="middle">+8%</text>
38202<rect class="bar dem" x="500" y="49.7" width="120" height="140.3" rx="3" tabindex="0" data-v="131" data-k="Go! Time, FY2026 · index"/>
38203<text class="vlb" x="560.0" y="41.7" text-anchor="middle">131</text>
38204<text class="rw" x="560.0" y="208" text-anchor="middle">FY2026</text><text class="ax2" x="560.0" y="223" text-anchor="middle">Go! Time</text>
38205<text class="vl" x="460.0" y="67.7" text-anchor="middle">+21%</text>
38206</svg>
38207  <figcaption><b>Figure 5 · Ridership against the routes it replaced</b>Annual passenger trips, indexed to the Orange and Purple routes in FY2024 (= 100). From the City’s quarterly operating reports to the Maryland Department of Transportation.</figcaption>
38208</figure>
38209
38210<p>Growth like that can come from churn: a steady stream of first-time ri
38210ders who try a service once and leave. Go! Time’s growth comes mostly from repeat use. In a typical month of 2026, about four in five active riders had ridden before, and the returning base grew by more than half between July 2025 and July 2026. Every month still brought in new riders, roughly one in six of those active (Figure 6).</p>
38211
38212<figure class="chartfig">
38213  <svg class="chart" viewBox="0 0 680 234" role="img" aria-label="Monthly active riders, indexed, split into returning and first-time riders.">
38214<rect class="key dem" x="44" y="4" width="12" height="12" rx="2"/><text class="lg" x="62" y="14">returning riders</text><rect class="key new" x="190" y="4" width="12" height="12" rx="2"/><text class="lg" x="208" y="14">first ride that month</text>
38215<line class="zero" x1="44" y1="210.0" x2="676" y2="210.0"/><text class="ax" x="37" y="214.0" text-anchor="end">0</text>
38216<line class="gl" x1="44" y1="156.9" x2="676" y2="156.9"/><text class="ax" x="37" y="160.9" text-anchor="end">50</text>
38217<line class="gl" x1="44" y1="103.8" x2="676" y2="103.8"/><text class="ax" x="37" y="107.8" text-anchor="end">100</text>
38218<line class="gl" x1="44" y1="50.6" x2="676" y2="50.6"/><text class="ax" x="37" y="54.6" text-anchor="end">150</text>
38219<g class="bar stk" tabindex="0" data-v="index 61" data-k="Jul 2024 · 1% returning riders"><rect class="dem" x="46.5" y="209.1" width="20.3" height="0.9" rx="1.5"/><rect class="new" x="46.5" y="145.4" width="20.3" height="62.2" rx="1.5"/></g>
38220<text class="ax2" x="56.6" y="226" text-anchor="middle">Jul 24</text>
38221<g class="bar stk" tabindex="0" data-v="index 61" data-k="Aug 2024 · 20% returning riders"><rect class="dem" x="71.8" y="196.7" width="20.3" height="13.3" rx="1.5"/><rect class="new" x="71.8" y="144.8" width="20.3" height="50.4" rx="1.5"/></g>
38222<g class="bar stk" tabindex="0" data-v="index 100" data-k="Sep 2024 · 39% returning riders"><rect class="dem" x="97.1" y="168.3" width="20.3" height="41.7" rx="1.5"/><rect class="new" x="97.1" y="104.1" width="20.3" height="62.8" rx="1.5"/></g>
38223<g class="bar stk" tabindex="0" data-v="index 97" data-k="Oct 2024 · 64% returning riders"><rect class="dem" x="122.3" y="144.2" width="20.3" height="65.8" rx="1.5"/><rect class="new" x="122.3" y="107.1" width="20.3" height="35.6" rx="1.5"/></g>
38224<g class="bar stk" tabindex="0" data-v="index 106" data-k="Nov 2024 · 65% returning riders"><rect class="dem" x="147.6" y="136.7" width="20.3" height="73.3" rx="1.5"/><rect class="new" x="147.6" y="97.7" width="20.3" height="37.4" rx="1.5"/></g>
38225<g class="bar stk" tabindex="0" data-v="index 96" data-k="Dec 2024 · 69% returning riders"><rect class="dem" x="172.9" y="140.3" width="20.3" height="69.7" rx="1.5"/><rect class="new" x="172.9" y="108.3" width="20.3" height="30.5" rx="1.5"/></g>
38226<g class="bar stk" tabindex="0" data-v="index 96" data-k="Jan 2025 · 70% returning riders"><rect class="dem" x="198.2" y="138.5" width="20.3" height="71.5" rx="1.5"/><rect class="new" x="198.2" y="108.3" width="20.3" height="28.7" rx="1.5"/></g>
38227<text class="ax2" x="208.3" y="226" text-anchor="middle">Jan 25</text>
38228<g class="bar stk" tabindex="0" data-v="index 92" data-k="Feb 2025 · 79% returning riders"><rect class="dem" x="223.5" y="133.3" width="20.3" height="76.7" rx="1.5"/><rect class="new" x="223.5" y="112.5" width="20.3" height="19.3" rx="1.5"/></g>
38229<g class="bar stk" tabindex="0" data-v="index 95" data-k="Mar 2025 · 76% returning riders"><rect class="dem" x="248.7" y="132.7" width="20.3" height="77.3" rx="1.5"/><rect class="new" x="248.7" y="108.6" width="20.3" height="22.6" rx="1.5"/></g>
38230<g class="bar stk" tabindex="0" data-v="index 97" data-k="Apr 2025 · 77% returning riders"><rect class="dem" x="274.0" y="130.9" width="20.3" height="79.1" rx="1.5"/><rect class="new" x="274.0" y="106.8" width="20.3" height="22.6" rx="1.5"/></g>
38231<g class="bar stk" tabindex="0" data-v="index 98" data-k="May 2025 · 78% returning riders"><rect class="dem" x="299.3" y="129.4" width="20.3" height="80.6" rx="1.5"/><rect class="new" x="299.3" y="106.2" width="20.3" height="21.7" rx="1.5"/></g>
38232<g class="bar stk" tabindex="0" data-v="index 95" data-k="Jun 2025 · 79% returning riders"><rect class="dem" x="324.6" y="129.7" width="20.3" height="80.3" rx="1.5"/><rect class="new" x="324.6" y="108.6" width="20.3" height="19.6" rx="1.5"/></g>
38233<g class="bar stk" tabindex="0" data-v="index 100" data-k="Jul 2025 · 77% returning riders"><rect class="dem" x="349.9" y="128.5" width="20.3" height="81.5" rx="1.5"/><rect class="new" x="349.9" y="103.8" width="20.3" height="23.3" rx="1.5"/></g>
38234<text class="ax2" x="360.0" y="226" text-anchor="middle">Jul 25</text>
38235<g class="bar stk" tabindex="0" data-v="index 109" data-k="Aug 2025 · 80% returning riders"><rect class="dem" x="375.1" y="117.3" width="20.3" height="92.7" rx="1.5"/><rect class="new" x="375.1" y="94.4" width="20.3" height="21.4" rx="1.5"/></g>
38236<g class="bar stk" tabindex="0" data-v="index 109" data-k="Sep 2025 · 72% returning riders"><rect class="dem" x="400.4" y="126.1" width="20.3" height="83.9" rx="1.5"/><rect class="new" x="400.4" y="94.1" width="20.3" height="30.5" rx="1.5"/></g>
38237<g class="bar stk" tabindex="0" data-v="index 119" data-k="Oct 2025 · 72% returning riders"><rect class="dem" x="425.7" y="119.7" width="20.3" height="90.3" rx="1.5"/><rect class="new" x="425.7" y="83.8" width="20.3" height="34.4" rx="1.5"/></g>
38238<g class="bar stk" tabindex="0" data-v="index 131" data-k="Nov 2025 · 75% returning riders"><rect class="dem" x="451.0" y="105.3" width="20.3" height="104.7" rx="1.5"/><rect class="new" x="451.0" y="71.2" width="20.3" height="32.6" rx="1.5"/></g>
38239<g class="bar stk" tabindex="0" data-v="index 120" data-k="Dec 2025 · 81% returning riders"><rect class="dem" x="476.3" y="107.1" width="20.3" height="102.9" rx="1.5"/><rect class="new" x="476.3" y="82.3" width="20.3" height="23.3" rx="1.5"/></g>
38240<g class="bar stk" tabindex="0" data-v="index 114" data-k="Jan 2026 · 84% returning riders"><rect class="dem" x="501.5" y="108.9" width="20.3" height="101.1" rx="1.5"/><rect class="new" x="501.5" y="89.3" width="20.3" height="18.1" rx="1.5"/></g>
38241<text class="ax2" x="511.7" y="226" text-anchor="middle">Jan 26</text>
38242<g class="bar stk" tabindex="0" data-v="index 117" data-k="Feb 2026 · 85% returning riders"><rect class="dem" x="526.8" y="103.4" width="20.3" height="106.6" rx="1.5"/><rect class="new" x="526.8" y="85.3" width="20.3" height="16.6" rx="1.5"/></g>
38243<g class="bar stk" tabindex="0" data-v="index 128" data-k="Mar 2026 · 82% returning riders"><rect class="dem" x="552.1" y="98.6" width="20.3" height="111.4" rx="1.5"/><rect class="new" x="552.1" y="74.5" width="20.3" height="22.6" rx="1.5"/></g>
38244<g class="bar stk" tabindex="0" data-v="index 139" data-k="Apr 2026 · 80% returning riders"><rect class="dem" x="577.4" y="92.0" width="20.3" height="118.0" rx="1.5"/><rect class="new" x="577.4" y="61.8" width="20.3" height="28.7" rx="1.5"/></g>
38245<g class="bar stk" tabindex="0" data-v="index 145" data-k="May 2026 · 81% returning riders"><rect class="dem" x="602.7" y="84.4" width="20.3" height="125.6" rx="1.5"/><rect class="new" x="602.7" y="55.8" width="20.3" height="27.2" rx="1.5"/></g>
38246<g class="bar stk" tabindex="0" data-v="index 147" data-k="Jun 2026 · 80% returning riders"><rect class="dem" x="627.9" y="84.4" width="20.3" height="125.6" rx="1.5"/><rect class="new" x="627.9" y="53.3" width="20.3" height="29.6" rx="1.5"/></g>
38247<g class="bar stk" tabindex="0" data-v="index 147" data-k="Jul 2026 · 82% returning riders"><rect class="dem" x="653.2" y="81.7" width="20.3" height="128.3" rx="1.5"/><rect class="new" x="653.2" y="53.3" width="20.3" height="26.9" rx="1.5"/></g>
38248<text class="ax2" x="663.4" y="226" text-anchor="middle">Jul 26</text>
38249<text class="nt" x="48" y="44.6">index: July 2025 active riders = 100</text>
38250</svg>
38251  <figcaption><b>Figure 6 · A growing base of returning riders</b>Riders active each month, indexed to July 2025 (= 100), split into riders who had ridden before and riders taking their first trip that month. Launch month to July 2026.</figcaption>
38252</figure>
38253</section>
38254
38255<section class="sec" id="cost">
38256<span class="tick"></span>
38257<h2>Cost: less per trip than the routes it replaced</h2>
38258<p>The usual intuition is that fixed buses are the cheaper way to move people. On a busy trunk line that holds, and Annapolis’s remaining citywide routes are the right tool for its heaviest corri
38258dors. For a switch, though, the comparison that matters is against the service being replaced, and against that baseline Go! Time has become the cheaper option.</p>
38259<p>In fiscal 2026, <strong>cost per passenger trip was about 8% below what the Orange and Purple routes cost in their final year, and 11% below Go! Time’s own first year</strong> (Figure 7). Both comparisons are in nominal dollars, so two years of cost inflation make the real gap wider. Go! Time is also about 11% cheaper per revenue hour than the routes it replaced.</p>
38260
38261<figure class="chartfig">
38262  <svg class="chart" viewBox="0 0 680 184" role="img" aria-label="Cost per passenger trip indexed: replaced routes 100, Go! Time FY2025 104, FY2026 92.">
38263<text class="pt" x="0" y="14">Operating cost per passenger trip, indexed (replaced routes, FY2024 = 100)</text>
38264<line class="zero" x1="236.0" y1="32" x2="236.0" y2="160"/><text class="ax" x="236.0" y="176" text-anchor="middle">0</text>
38265<line class="gl" x1="321.0" y1="32" x2="321.0" y2="160"/><text class="ax" x="321.0" y="176" text-anchor="middle">25</text>
38266<line class="gl" x1="406.0" y1="32" x2="406.0" y2="160"/><text class="ax" x="406.0" y="176" text-anchor="middle">50</text>
38267<line class="gl" x1="491.0" y1="32" x2="491.0" y2="160"/><text class="ax" x="491.0" y="176" text-anchor="middle">75</text>
38268<line class="gl" x1="576.0" y1="32" x2="576.0" y2="160"/><text class="ax" x="576.0" y="176" text-anchor="middle">100</text>
38269<text class="rw" x="224" y="59" text-anchor="end">Orange + Purple routes, FY2024</text>
38270<rect class="bar bus" x="236" y="42" width="340.0" height="24" rx="3" tabindex="0" data-v="100" data-k="Orange + Purple routes, FY2024 · cost index"/>
38271<text class="vlb" x="584.0" y="59">100</text>
38272<text class="rw" x="224" y="99" text-anchor="end">Go! Time, FY2025</text>
38273<rect class="bar dem" x="236" y="82" width="353.1" height="24" rx="3" tabindex="0" data-v="104" data-k="Go! Time, FY2025 · cost index"/>
38274<text class="vlb" x="597.1" y="99">104</text>
38275<text class="rw" x="224" y="139" text-anchor="end">Go! Time, FY2026</text>
38276<rect class="bar dem" x="236" y="122" width="314.0" height="24" rx="3" tabindex="0" data-v="92" data-k="Go! Time, FY2026 · cost index"/>
38277<text class="vlb" x="558.0" y="139">92</text>
38278</svg>
38279  <figcaption><b>Figure 7 · Operating cost per passenger trip</b>Indexed to the Orange and Purple routes in FY2024 (= 100). From the City’s quarterly operating reports to the Maryland Department of Transportation; nominal dollars.</figcaption>
38280</figure>
38281
38282<p>Most of the efficiency comes from pooling. When two riders’ trips overlap, one vehicle can serve both at the cost of a short detour. The share of rides that shared the vehicle for part of the trip rose from 55% in the second half of 2024 to about two-thirds in 2026, and <strong>rides delivered per vehicle-hour rose about 12%</strong>, for less than a minute of added median time on board (Figure 8).</p>
38283
38284<figure class="chartfig">
38285  <svg class="chart" viewBox="0 0 680 202" role="img" aria-label="Share of pooled rides rose from 55% to 66%; rides per vehicle-hour rose 12%.">
38286<text class="pt" x="18" y="14">Rides that share the vehicle</text>
38287<line class="gl" x1="42" y1="176.0" x2="306" y2="176.0"/><text class="ax" x="36" y="180.0" text-anchor="end">40</text>
38288<line class="gl" x1="42" y1="137.1" x2="306" y2="137.1"/><text class="ax" x="36" y="141.1" text-anchor="end">50</text>
38289<line class="gl" x1="42" y1="98.3" x2="306" y2="98.3"/><text class="ax" x="36" y="102.3" text-anchor="end">60</text>
38290<line class="gl" x1="42" y1="59.4" x2="306" y2="59.4"/><text class="ax" x="36" y="63.4" text-anchor="end">70</text>
38291<polyline class="ln" points="48.0,117.7 111.0,104.7 174.0,86.2 237.0,74.2 300.0,75.8"/>
38292<circle class="dot" cx="48.0" cy="117.7" r="5" tabindex="0" data-v="55%" data-k="H2 2024 · share of rides pooled"/>
38293<text class="vlb" x="52.0" y="139.7" text-anchor="start">55%</text>
38294<text class="ax2" x="48.0" y="194" text-anchor="middle">H2 2024</text>
38295<circle class="dot" cx="111.0" cy="104.7" r="5" tabindex="0" data-v="58%" data-k="H1 2025 · share of rides pooled"/>
38296<circle class="dot" cx="174.0" cy="86.2" r="5" tabindex="0" data-v="63%" data-k="H2 2025 · share of rides pooled"/>
38297<circle class="dot" cx="237.0" cy="74.2" r="5" tabindex="0" data-v="66%" data-k="H1 2026 · share of rides pooled"/>
38298<circle class="dot" cx="300.0" cy="75.8" r="5" tabindex="0" data-v="66%" data-k="Jul–Aug 2026 · share of rides pooled"/>
38299<text class="vlb" x="300.0" y="64.8" text-anchor="middle">66%</text>
38300<text class="ax2" x="300.0" y="194" text-anchor="middle">Jul–Aug 2026</text>
38301<text class="pt" x="382" y="14">Rides per vehicle-hour, indexed</text>
38302<line class="gl" x1="406" y1="176.0" x2="670" y2="176.0"/><text class="ax" x="400" y="180.0" text-anchor="end">80</text>
38303<line class="gl" x1="406" y1="142.0" x2="670" y2="142.0"/><text class="ax" x="400" y="146.0" text-anchor="end">90</text>
38304<line class="gl" x1="406" y1="108.0" x2="670" y2="108.0"/><text class="ax" x="400" y="112.0" text-anchor="end">100</text>
38305<line class="gl" x1="406" y1="74.0" x2="670" y2="74.0"/><text class="ax" x="400" y="78.0" text-anchor="end">110</text>
38306<line class="gl" x1="406" y1="40.0" x2="670" y2="40.0"/><text class="ax" x="400" y="44.0" text-anchor="end">120</text>
38307<polyline class="ln" points="412.0,108.0 475.0,128.3 538.0,93.7 601.0,75.8 664.0,67.4"/>
38308<circle class="dot" cx="412.0" cy="108.0" r="5" tabindex="0" data-v="100" data-k="H2 2024 · index, H2 2024 = 100"/>
38309<text class="vlb" x="416.0" y="130.0" text-anchor="start">100</text>
38310<text class="ax2" x="412.0" y="194" text-anchor="middle">H2 2024</text>
38311<circle class="dot" cx="475.0" cy="128.3" r="5" tabindex="0" data-v="94" data-k="H1 2025 · index, H2 2024 = 100"/>
38312<circle class="dot" cx="538.0" cy="93.7" r="5" tabindex="0" data-v="104" data-k="H2 2025 · index, H2 2024 = 100"/>
38313<circle class="dot" cx="601.0" cy="75.8" r="5" tabindex="0" data-v="109" data-k="H1 2026 · index, H2 2024 = 100"/>
38314<circle class="dot" cx="664.0" cy="67.4" r="5" tabindex="0" data-v="112" data-k="Jul–Aug 2026 · index, H2 2024 = 100"/>
38315<text class="vlb" x="664.0" y="56.4" text-anchor="middle">112</text>
38316<text class="ax2" x="664.0" y="194" text-anchor="middle">Jul–Aug 2026</text>
38317</svg>
38318  <figcaption><b>Figure 8 · Pooling and productivity</b>Left: share of served rides that shared the vehicle for part of the trip, by half-year. Right: rides delivered per vehicle-hour, indexed to the second half of 2024 (= 100). July–August 2026 is a partial period.</figcaption>
38319</figure>
38320</section>
38321
38322<section class="sec">
38323<span class="tick"></span>
38324<h2>What changed the trajectory: human-centered automation</h2>
38325<p>An on-demand service commits to a plan at the moment of booking: which vehicle, in what order, at what pickup time. Then the day happens. Traffic slows a vehicle, a rider does not come out, another cancels, a driver takes a different street, and new requests keep arriving. Each event can undo a promise made an hour earlier.</p>
38326<p>In most operations a dispatcher absorbs those events by hand, watching a map, calling drivers and moving trips one at a time. It is skilled work, and it does not scale; a transit research synthesis warned two decades ago that “continuing manual operations would overwhelm a system’s dispatchers.”<sup class="fn"><a href="#r12">12</a></sup></p>
38327<p>IT Curves started from the dispatchers’ own logs. We catalogued the events they reacted to each day and the moves they made in response, then built a watchdog that does the same job continuously (Figure 9). It monitors every vehicle, trip and pickup promise. When a plan slips, it re-optimizes the whole schedule instead of patching the one affected trip, so a change on one vehicle can open a better option on another. It is human-centered by design: dispatchers stay in the loop for exceptions and can override any change, and drivers’ own route choices feed back into the next plan.</p>
38328
38329<figure class="diagram">
38330  <svg class="diag" viewBox="0 0 680 434" role="img" aria-label="The watchdog loop: street events are monitored; when a plan slips the whole schedule is re-optimized and applied; dispatchers handle exceptions; driver route choices feed back into planning."><defs><marker id="ah" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" class="ahd"/></marker><marker id="aha" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
38330<path d="M0,0 L10,5 L0,10 z" class="aha"/></marker></defs><text class="dg-k" x="0" y="12">ON THE STREET</text><text class="dg-k" x="232" y="12">THE WATCHDOG</text><text class="dg-k" x="452" y="12">THE RESPONSE</text><g class="nd"><rect class="bx" x="0" y="28" width="196" height="34" rx="5"/><text class="dg-b" x="14" y="50">Traffic slows a vehicle</text></g><path class="ar" d="M196,45 C216,45 212,120 230,120" marker-end="url(#ah)"/><g class="nd"><rect class="bx" x="0" y="72" width="196" height="34" rx="5"/><text class="dg-b" x="14" y="94">A rider does not show</text></g><path class="ar" d="M196,89 C216,89 212,120 230,120" marker-end="url(#ah)"/><g class="nd"><rect class="bx" x="0" y="116" width="196" height="34" rx="5"/><text class="dg-b" x="14" y="138">A trip is cancelled</text></g><path class="ar" d="M196,133 C216,133 212,120 230,120" marker-end="url(#ah)"/><g class="nd"><rect class="bx" x="0" y="160" width="196" height="34" rx="5"/><text class="dg-b" x="14" y="182">A new request arrives</text></g><path class="ar" d="M196,177 C216,177 212,120 230,120" marker-end="url(#ah)"/><g class="nd"><rect class="bx drv" x="0" y="204" width="196" height="34" rx="5"/><text class="dg-b" x="14" y="226">A driver takes another route</text></g><path class="ar" d="M196,221 C216,221 212,120 230,120" marker-end="url(#ah)"/><g class="nd"><rect class="bxa" x="232" y="80" width="180" height="80" rx="6"/><text class="dg-h2" x="322" y="106" text-anchor="middle">Watch everything</text><text class="dg-s" x="322" y="125" text-anchor="middle">every vehicle, trip and promise;</text><text class="dg-s" x="322" y="140" text-anchor="middle">flag the moment a plan slips</text></g><path class="ar" d="M412,120 L450,120" marker-end="url(#ah)"/><g class="nd"><rect class="bxa" x="452" y="80" width="196" height="80" rx="6"/><text class="dg-h2" x="550" y="125" text-anchor="middle">Re-optimize</text></g><path class="ar" d="M550,160 L550,186" marker-end="url(#ah)"/><g class="nd"><rect class="bx" x="452" y="188" width="196" height="84" rx="6"/><text class="dg-b" x="466" y="210">Apply the new plan</text><text class="dg-s" x="466" y="229" text-anchor="start">· re-sequence stops</text><text class="dg-s" x="466" y="244" text-anchor="start">· reassign a trip</text><text class="dg-s" x="466" y="259" text-anchor="start">· refresh the pickup time</text></g><path class="ar" d="M452,230 L322,230 L322,162" marker-end="url(#ah)"/><text class="dg-s" x="387" y="222" text-anchor="middle">back to watching</text><path class="ar dash" d="M550,272 L550,296" marker-end="url(#ah)"/><g class="nd"><rect class="bxh" x="452" y="298" width="196" height="48" rx="6"/><text class="dg-b" x="550" y="318" text-anchor="middle">Dispatcher</text><text class="dg-s" x="550" y="335" text-anchor="middle">handles exceptions; can override</text></g><path class="ara" d="M98,238 L98,366" marker-end="url(#aha)"/><g class="nd"><rect class="bxl" x="0" y="368" width="400" height="62" rx="6"/><text class="dg-b" x="16" y="390">Learn from the driver</text><text class="dg-s" x="16" y="408" text-anchor="start">Score the route against the plan; carry what the street</text><text class="dg-s" x="16" y="423" text-anchor="start">knew into the next plan.</text></g><path class="ara" d="M400,399 L666,399 L666,120 L650,120" marker-end="url(#aha)"/></svg>
38331  <figcaption><b>Figure 9 · The watchdog loop</b>Street events flow into continuous monitoring; when a plan slips, the whole schedule is re-optimized and applied. Dashed boxes mark the human roles: dispatchers handle exceptions, and drivers’ route choices are scored and carried into planning.</figcaption>
38332</figure>
38333
38334<p>Human-centered re-optimization went live in February 2026. Since then the system has moved a growing share of trips to a better-placed vehicle during the service day, reaching about 18% of trips by August (Figure 10). Each of those moves is a repair a dispatcher would otherwise have had to spot and make.</p>
38335
38336<figure class="chartfig">
38337  <svg class="chart" viewBox="0 0 680 214" role="img" aria-label="Monthly share of trips re-optimized onto another vehicle; it rises after human-centered re-optimization went live.">
38338<text class="pt" x="0" y="14">Share of trips re-optimized onto another vehicle during the service day</text>
38339<line class="zero" x1="40" y1="190.0" x2="676" y2="190.0"/><text class="ax" x="32" y="194.0" text-anchor="end">0%</text>
38340<line class="gl" x1="40" y1="152.5" x2="676" y2="152.5"/><text class="ax" x="32" y="156.5" text-anchor="end">5%</text>
38341<line class="gl" x1="40" y1="115.0" x2="676" y2="115.0"/><text class="ax" x="32" y="119.0" text-anchor="end">10%</text>
38342<line class="gl" x1="40" y1="77.5" x2="676" y2="77.5"/><text class="ax" x="32" y="81.5" text-anchor="end">15%</text>
38343<line class="gl" x1="40" y1="40.0" x2="676" y2="40.0"/><text class="ax" x="32" y="44.0" text-anchor="end">20%</text>
38344<rect class="bar bus" x="42.5" y="170.0" width="19.5" height="20.0" rx="1.5" tabindex="0" data-v="2.7%" data-k="July 2024 · trips re-optimized onto another vehicle"/>
38345<text class="ax2" x="52.2" y="206" text-anchor="middle">Jul 24</text>
38346<rect class="bar bus" x="67.0" y="142.2" width="19.5" height="47.8" rx="1.5" tabindex="0" data-v="6.4%" data-k="August 2024 · trips re-optimized onto another vehicle"/>
38347<rect class="bar bus" x="91.4" y="180.8" width="19.5" height="9.2" rx="1.5" tabindex="0" data-v="1.2%" data-k="September 2024 · trips re-optimized onto another vehicle"/>
38348<rect class="bar bus" x="115.9" y="189.3" width="19.5" height="0.8" rx="1.5" tabindex="0" data-v="0.1%" data-k="October 2024 · trips re-optimized onto another vehicle"/>
38349<rect class="bar bus" x="140.3" y="187.3" width="19.5" height="2.7" rx="1.5" tabindex="0" data-v="0.4%" data-k="November 2024 · trips re-optimized onto another vehicle"/>
38350<rect class="bar bus" x="164.8" y="183.8" width="19.5" height="6.2" rx="1.5" tabindex="0" data-v="0.8%" data-k="December 2024 · trips re-optimized onto another vehicle"/>
38351<rect class="bar bus" x="189.3" y="183.2" width="19.5" height="6.8" rx="1.5" tabindex="0" data-v="0.9%" data-k="January 2025 · trips re-optimized onto another vehicle"/>
38352<text class="ax2" x="199.0" y="206" text-anchor="middle">Jan 25</text>
38353<rect class="bar bus" x="213.7" y="184.3" width="19.5" height="5.7" rx="1.5" tabindex="0" data-v="0.8%" data-k="February 2025 · trips re-optimized onto another vehicle"/>
38354<rect class="bar bus" x="238.2" y="185.5" width="19.5" height="4.5" rx="1.5" tabindex="0" data-v="0.6%" data-k="March 2025 · trips re-optimized onto another vehicle"/>
38355<rect class="bar bus" x="262.7" y="180.2" width="19.5" height="9.8" rx="1.5" tabindex="0" data-v="1.3%" data-k="April 2025 · trips re-optimized onto another vehicle"/>
38356<rect class="bar bus" x="287.1" y="179.3" width="19.5" height="10.7" rx="1.5" tabindex="0" data-v="1.4%" data-k="May 2025 · trips re-optimized onto another vehicle"/>
38357<rect class="bar bus" x="311.6" y="185.7" width="19.5" height="4.3" rx="1.5" tabindex="0" data-v="0.6%" data-k="June 2025 · trips re-optimized onto another vehicle"/>
38358<rect class="bar bus" x="336.0" y="182.9" width="19.5" height="7.1" rx="1.5" tabindex="0" data-v="0.9%" data-k="July 2025 · trips re-optimized onto another vehicle"/>
38359<text class="ax2" x="345.8" y="206" text-anchor="middle">Jul 25</text>
38360<rect class="bar bus" x="360.5" y="185.3" width="19.5" height="4.7" rx="1.5" tabindex="0" data-v="0.6%" data-k="August 2025 · trips re-optimized onto another vehicle"/>
38361<rect class="bar bus" x="385.0" y="188.7" width="19.5" height="1.3" rx="1.5" tabindex="0" data-v="0.2%" data-k="September 2025 · trips re-optimized onto another vehicle"/>
38362<rect class="bar bus" x="409.4" y="188.8" width="19.5" height="1.2" rx="1.5" tabindex="0" data-v="0.2%" data-k="October 2025 · trips re-optimized onto another vehicle"/>
38363<rect class="bar bus" x="433.9" y="188.7" width="19.5" height="1.3" rx="1.5" tabindex="0" data-v="0.2%" data-k="November 2025 · trips re-optimized onto another vehicle"/>
38364<rect class="bar bus" x="458.3" y="188.9" width="19.5" height="1.1" rx="1.5" tabindex="0" data-v="0.1%" data-k="December 2025 · trips re-optimized onto another vehicle"/>
38365<rect class="bar bus" x="482.8" y="189.2" width="19.5" height="0.8" rx="1.5" tabindex="0" data-v="0.1%" data-k="January 2026 · trips re-optimized onto another vehicle"/>
38366<text class="ax2" x="492.5" y="206" text-anchor="middle">Jan 26</text>
38367<rect class="bar dem" x="507.3" y="140.1" width="19.5" height="49.9" rx="1.5" tabindex="0" data-v="6.7%" data-k="February 2026 · trips re-optimized onto another vehicle"/>
38368<line class="cut" x1="504.8" y1="36.0" x2="504.8" y2="190"/><text class="nt" x="498.8" y="51.2" text-anchor="end">human-centered re-optimization</text><text class="nt" x="498.8" y="65.2" text-anchor="end">enabled, Feb 2026</text>
38369<rect class="bar dem" x="531.7" y="136.2" width="19.5" height="53.8" rx="1.5" tabindex="0" data-v="7.2%" data-k="March 2026 · trips re-optimized onto another vehicle"/>
38370<rect class="bar dem" x="556.2" y="132.9" width="19.5" height="57.1" rx="1.5" tabindex="0" data-v="7.6%" data-k="April 2026 · trips re-optimized onto another vehicle"/>
38371<rect class="bar dem" x="580.7" y="88.8" width="19.5" height="101.2" rx="1.5" tabindex="0" data-v="13.5%" data-k="May 2026 · trips re-optimized onto another vehicle"/>
38372<rect class="bar dem" x="605.1" y="70.6" width="19.5" height="119.4" rx="1.5" tabindex="0" data-v="15.9%" data-k="June 2026 · trips re-optimized onto another vehicle"/>
38373<rect class="bar dem" x="629.6" y="53.5" width="19.5" height="136.5" rx="1.5" tabindex="0" data-v="18.2%" data-k="July 2026 · trips re-optimized onto another vehicle"/>
38374<text class="ax2" x="639.3" y="206" text-anchor="middle">Jul 26</text>
38375<rect class="bar dem" x="654.0" y="51.9" width="19.5" height="138.1" rx="1.5" tabindex="0" data-v="18.4%" data-k="August 2026 · trips re-optimized onto another vehicle"/>
38376</svg>
38377  <figcaption><b>Figure 10 · Plans adjusted during the day</b>Share of served trips each month that were re-optimized onto a different vehicle after first assignment. The vertical line marks the start of human-centered re-optimization.</figcaption>
38378</figure>
38379
38380<p>The same change shifted who does the work. <strong>Before human-centered automation, dispatchers made about 85% of route adju
38380stments by hand; since February 2026 they have made about 4%</strong> (Figure 11). The system makes the rest, and every change is logged and open to review.</p>
38381
38382<figure class="chartfig">
38383  <svg class="chart" viewBox="0 0 680 134" role="img" aria-label="Share of route adjustments made by hand: 85% before automation, 4% since.">
38384<text class="pt" x="0" y="14">Share of route adjustments a dispatcher made by hand</text>
38385<line class="zero" x1="150.0" y1="30" x2="150.0" y2="112"/><text class="ax" x="150.0" y="128" text-anchor="middle">0%</text>
38386<line class="gl" x1="272.5" y1="30" x2="272.5" y2="112"/><text class="ax" x="272.5" y="128" text-anchor="middle">25%</text>
38387<line class="gl" x1="395.0" y1="30" x2="395.0" y2="112"/><text class="ax" x="395.0" y="128" text-anchor="middle">50%</text>
38388<line class="gl" x1="517.5" y1="30" x2="517.5" y2="112"/><text class="ax" x="517.5" y="128" text-anchor="middle">75%</text>
38389<line class="gl" x1="640.0" y1="30" x2="640.0" y2="112"/><text class="ax" x="640.0" y="128" text-anchor="middle">100%</text>
38390<text class="rw" x="138" y="56" text-anchor="end">Before</text>
38391<rect class="bar bus" x="150" y="40" width="415.3" height="22" rx="3" tabindex="0" data-v="85%" data-k="Before · made by hand"/>
38392<text class="vlb" x="573.3" y="56">85%</text>
38393<text class="rw" x="138" y="92" text-anchor="end">Since Feb 2026</text>
38394<rect class="bar dem" x="150" y="76" width="19.7" height="22" rx="3" tabindex="0" data-v="4%" data-k="Since Feb 2026 · made by hand"/>
38395<text class="vlb" x="177.7" y="92">4%</text>
38396</svg>
38397  <figcaption><b>Figure 11 · Adjustments made by hand</b>Share of vehicle reassignments entered manually by a dispatcher, before and after human-centered re-optimization went live.</figcaption>
38398</figure>
38399
38400<p>Most adjustments now come from the routine re-optimization of the whole plan, not from a single disruption (Figure 12). Cancellations account for most of the remainder, because a freed seat often gives the planner a better way to serve someone else.</p>
38401
38402<figure class="chartfig">
38403  <svg class="chart" viewBox="0 0 680 158" role="img" aria-label="What triggered a re-optimization: routine 75%, cancellation 17%, no-show 5%, dispatcher 3%.">
38404<text class="rw" x="266" y="24" text-anchor="end">Periodic re-optimization</text>
38405<rect class="bar dem" x="278" y="8" width="322.0" height="22" rx="3" tabindex="0" data-v="75%" data-k="Routine re-optimization of the whole plan"/>
38406<text class="vlb" x="608.0" y="24">75%</text>
38407<text class="rw" x="266" y="62" text-anchor="end">A cancellation opened a better option</text>
38408<rect class="bar dem" x="278" y="46" width="71.9" height="22" rx="3" tabindex="0" data-v="17%" data-k="A cancellation opened a better option"/>
38409<text class="vlb" x="357.9" y="62">17%</text>
38410<text class="rw" x="266" y="100" text-anchor="end">A no-show changed the plan</text>
38411<rect class="bar dem" x="278" y="84" width="19.3" height="22" rx="3" tabindex="0" data-v="5%" data-k="A no-show changed the plan"/>
38412<text class="vlb" x="305.3" y="100">5%</text>
38413<text class="rw" x="266" y="138" text-anchor="end">Dispatcher-initiated</text>
38414<rect class="bar bus" x="278" y="122" width="14.3" height="22" rx="3" tabindex="0" data-v="3%" data-k="A dispatcher stepped in"/>
38415<text class="vlb" x="300.3" y="138">3%</text>
38416</svg>
38417  <figcaption><b>Figure 12 · What triggered an adjustment</b>Share of vehicle reassignments by logged trigger, February–August 2026. Shares are of reassignments with a recorded trigger; about one in five has none and is excluded.</figcaption>
38418</figure>
38419</section>
38420
38421<section class="sec">
38422<span class="tick"></span>
38423<h2>The effect riders feel: pickups on time</h2>
38424<p>Punctuality is structurally harder for on-demand service than for a timetable. Pickup times are promised before the vehicle’s day is known, and every pooled detour and late rider pushes the next stop back. The Transportation Research Board’s demand-response guidebook notes that on-time performance suffers when “actual service on the street may not meet the tight schedule,”<sup class="fn"><a href="#r13">13</a></sup> and the Washington region’s paratransit service reports scheduling more direct rides to limit “cascading delays.”<sup class="fn"><a href="#r14">14</a></sup></p>
38425<p>Industry benchmarks reflect that difficulty. The same guidebook describes a norm of about 90% of pickups on time, usually measured against a 30-minute window,<sup class="fn"><a href="#r13">13</a></sup> and federal guidance treats windows longer than 30 minutes as unacceptable.<sup class="fn"><a href="#r15">15</a></sup> Some agencies hold microtransit to a tighter standard: one sets a target of 90% of riders picked up no later than five minutes after the planned time.<sup class="fn"><a href="#r16">16</a></sup></p>
38426<p>Go! Time now clears the 30-minute-window norm at 95%. <strong>The share of riders picked up no more than ten minutes after the quoted time rose from 86% to 96%</strong>, and against the five-minute standard it rose from 68% to 88% (Figure 13). The service reached those numbers while its share of pooled rides was still climbing.</p>
38427
38428<figure class="chartfig">
38429  <svg class="chart" viewBox="0 0 680 176" role="img" aria-label="Share of pickups within 5, 10 and 15 minutes of the quoted time, before and after.">
38430<circle class="key-dot bus" cx="6" cy="10" r="5"/><text class="lg" x="16" y="14">before the new engine (to Sep 2025)</text><circle class="key-dot dem" cx="262" cy="10" r="5"/><text class="lg" x="272" y="14">after the re-tune (from late Nov 2025)</text>
38431<line class="gl" x1="214.0" y1="34" x2="214.0" y2="154"/><text class="ax" x="214.0" y="170" text-anchor="middle">60%</text>
38432<line class="gl" x1="323.0" y1="34" x2="323.0" y2="154"/><text class="ax" x="323.0" y="170" text-anchor="middle">70%</text>
38433<line class="gl" x1="432.0" y1="34" x2="432.0" y2="154"/><text class="ax" x="432.0" y="170" text-anchor="middle">80%</text>
38434<line class="gl" x1="541.0" y1="34" x2="541.0" y2="154"/><text class="ax" x="541.0" y="170" text-anchor="middle">90%</text>
38435<line class="gl" x1="650.0" y1="34" x2="650.0" y2="154"/><text class="ax" x="650.0" y="170" text-anchor="middle">100%</text>
38436<text class="rw" x="0" y="57">≤ 5 min after quoted time</text>
38437<line class="dumb" x1="300.6" y1="52" x2="523.4" y2="52"/>
38438<circle class="dot bus" cx="300.6" cy="52" r="6" tabindex="0" data-v="68%" data-k="before · ≤ 5 min after quoted time"/>
38439<circle class="dot dem" cx="523.4" cy="52" r="6" tabindex="0" data-v="88%" data-k="after · ≤ 5 min after quoted time"/>
38440<text class="ax2" x="290.6" y="56" text-anchor="end">68%</text>
38441<text class="vlb" x="534.4" y="57">88%</text>
38442<text class="rw" x="0" y="97">≤ 10 min after quoted time</text>
38443<line class="dumb" x1="495.7" y1="92" x2="607.8" y2="92"/>
38444<circle class="dot bus" cx="495.7" cy="92" r="6" tabindex="0" data-v="86%" data-k="before · ≤ 10 min after quoted time"/>
38445<circle class="dot dem" cx="607.8" cy="92" r="6" tabindex="0" data-v="96%" data-k="after · ≤ 10 min after quoted time"/>
38446<text class="ax2" x="485.7" y="96" text-anchor="end">86%</text>
38447<text class="vlb" x="618.8" y="97">96%</text>
38448<text class="rw" x="0" y="137">Inside a 30-min window (±15)</text>
38449<line class="dumb" x1="536.0" y1="132" x2="599.5" y2="132"/>
38450<circle class="dot bus" cx="536.0" cy="132" r="6" tabindex="0" data-v="90%" data-k="before · Inside a 30-min window (±15)"/>
38451<circle class="dot dem" cx="599.5" cy="132" r="6" tabindex="0" data-v="95%" data-k="after · Inside a 30-min window (±15)"/>
38452<text class="ax2" x="526.0" y="136" text-anchor="end">90%</text>
38453<text class="vlb" x="610.5" y="137">95%</text>
38454</svg>
38455  <figcaption><b>
38455Figure 13 · Pickups against the quoted time</b>Served trips before the new scheduling engine (June 2024 – September 2025) and after its re-tune (late November 2025 – August 2026). Lateness is measured against the most recent pickup time sent to the rider.</figcaption>
38456</figure>
38457</section>
38458
38459<section class="sec">
38460<span class="tick"></span>
38461<h2>Learning from the people behind the wheel</h2>
38462<p>Drivers know things a routing model does not: which gate closes early, which left turn backs up at school dismissal, where a regular rider actually waits. A Forbes essay on people-centric design makes the case that routing technology should “go beyond efficiency, factoring in the well-being of the driver,” and that drivers given control over their work “feel more involved and valued.”<sup class="fn"><a href="#r17">17</a></sup></p>
38463<p>So when a Go! Time driver departs from the planned stop order, we treat the departure as information. Each one is scored against the time the planned order would have taken (Figure 14). About half made no material difference. In 18% the driver’s route was faster, sometimes by more than five minutes, and those are the cases the planner learns from, because they point to travel times, access points or local conditions the model had wrong. Where the planned order was faster, the gap was usually small, under five minutes in most cases.</p>
38464
38465<figure class="chartfig">
38466  <svg class="chart" viewBox="0 0 680 112" role="img" aria-label="Driver departures from the planned stop order, scored against the plan.">
38467<text class="sl gain" x="34" y="16">driver's route was faster · 18%</text>
38468<text class="sl after" x="646" y="16" text-anchor="end">35% · planned order was faster</text>
38469<rect class="seg s1" x="34.0" y="30" width="28.3" height="54" tabindex="0" data-v="5%" data-k="the driver&#x27;s route saved more than 5 min"/>
38470<text class="segv dk" x="48.1" y="62" text-anchor="middle">5%</text>
38471<rect class="seg s2" x="64.3" y="30" width="76.8" height="54" tabindex="0" data-v="13%" data-k="the driver&#x27;s route saved 1–5 min"/>
38472<text class="segv dk" x="102.7" y="62" text-anchor="middle">13%</text>
38473<rect class="seg s3" x="143.1" y="30" width="288.9" height="54" tabindex="0" data-v="48%" data-k="no material difference"/>
38474<text class="segv lt" x="287.5" y="62" text-anchor="middle">48%</text>
38475<rect class="seg s4" x="433.9" y="30" width="131.3" height="54" tabindex="0" data-v="22%" data-k="the planned order was 1–5 min faster"/>
38476<text class="segv lt" x="499.6" y="62" text-anchor="middle">22%</text>
38477<rect class="seg s5" x="567.2" y="30" width="64.7" height="54" tabindex="0" data-v="11%" data-k="the planned order was 5–15 min faster"/>
38478<text class="segv lt" x="599.6" y="62" text-anchor="middle">11%</text>
38479<rect class="seg s6" x="633.9" y="30" width="10.1" height="54" tabindex="0" data-v="2%" data-k="the planned order was more than 15 min faster"/>
38480<text class="ax2" x="34" y="104">saved time</text><text class="ax2" x="340" y="104" text-anchor="middle">no material difference</text><text class="ax2" x="646" y="104" text-anchor="end">took longer than the plan</text>
38481</svg>
38482  <figcaption><b>Figure 14 · Driver route choices, scored against the plan</b>Departures from the planned stop order, June 2024 – August 2026, each compared with the time the planned order would have taken. Shares sum to 101% because of rounding.</figcaption>
38483</figure>
38484
38485<p>That is the principle behind human-centered re-optimization. The system learns from a driver’s judgement instead of overriding it, and a human dispatcher remains the final authority on every exception.</p>
38486</section>
38487
38488<section class="sec">
38489<span class="tick"></span>
38490<h2>What comes next</h2>
38491<p>The next step carries the same loop into the conversation with drivers. IT Curves’ Driver Copilot handles routine exchanges between the system and the driver under three rules. Every AI-to-driver exchange is logged, time-stamped and reviewable. An ambiguous reply is asked again, and any sign of distress goes straight to a human. And every detection threshold is set by the agency operating the service.</p>
38492<p>On the service side, the City and IT Curves are working from the same operating data to decide where additional hours would carry the most riders. For cities weighing a similar move, the Annapolis record points to a sequence: choose routes whose demand is thin or whose span is short, measure coverage by the same rule on both sides of the change, and plan for the daily operation as carefully as for the launch. In this pilot, much of the second year’s gain came from how the day was run, as much as from where the vehicles went.</p>
38493</section>
38494
38495<aside class="callout" id="transitlab-callout">
38496  <span class="tick"></span>
38497  <h3>Planning the next network</h3>
38498  <p>Every successful service starts long before launch day. In Annapolis, it started with the City's 2019 Transit Development Plan, five years before Go! Time took its first booking. Someone has to decide where service should go, how zones and routes fit together, and which mode suits each part of the city. Those decisions shape everything that follows, from ridership to cost to how riders feel about the system.</p>
38499  <p>That's why we built TransitLab, our new platform for planning transit networks. It works whether your city runs on-demand microtransit, fixed-route bus, metro, or a mix of all three. It's designed to help agencies and cities test ideas, c
38499ompare options, and design a network set up for success from day one.</p>
38500  <p>If you're planning new service or rethinking what you already run, we'd love to talk.</p>
38501</aside>
38502
38503<div class="refs">
38504  <p class="label">Sources</p>
38505  <ol>
38506    <li id="r1">City of Annapolis, “Our City.” <a href="https://www.annapolis.gov/31/Our-City">annapolis.gov</a></li>
38507    <li id="r2">City of Annapolis, “Demographics” (2020 Census). <a href="https://www.annapolis.gov/875/Demographics">annapolis.gov</a></li>
38508    <li id="r3">Montgomery County Department of Transportation, “Ride On Flex.” <a href="https://www.montgomerycountymd.gov/department-transportation/ride-montgomery-county/ride-flex">montgomerycountymd.gov</a></li>
38509    <li id="r4">Prince George’s County Government, county bulletin, 6 November 2020. <a href="https://content.govdelivery.com/accounts/MDPGC/bulletins/2aa46c4">govdelivery.com</a></li>
38510    <li id="r5">Maryland Transit Administration, “Microtransit Pilot.” <a href="https://www.mta.maryland.gov/microtransit-pilot">mta.maryland.gov</a></li>
38511    <li id="r6">Howard County Government, news release, 14 March 2025. <a href="https://www.howardcountymd.gov/News031425b">howardcountymd.gov</a></li>
38512    <li id="r7">D. Zawodny, <em>The Baltimore Banner</em>, 17 June 2025. <a href="https://www.thebanner.com/community/transportation/mta-baltimore-new-plan-35ANFZIRPFDEXASPL77AA46MJY/">thebanner.com</a></li>
38513    <li id="r8">“For public transit agencies losing riders, microtransit might be an answer,” <em>The Washington Post</em>, 3 February 2018. <a href="https://www.washingtonpost.com/local/trafficandcommuting/for-public-transit-agencies-loosing-riders-microtransit-might-be-an-answer/2018/02/03/37771f46-0070-11e8-9d31-d72cf78dbeee_story.html">washingtonpost.com</a></li>
38514    <li id="r9">“Transit Desperately Needs Innovation. Why Pick on Microtransit?” <em>Bloomberg CityLab</em>, 1 February 2024. <a href="https://www.bloomberg.com/news/articles/2024-02-01/despite-its-costs-microtransit-can-make-public-transportation-better">bloomberg.com</a></li>
38515    <li id="r10">C. Foreback, “Annapolis launches GoTime on-demand bus service,” CBS News Baltimore, 12 July 2024. <a href="https://www.cbsnews.com/baltimore/news/annapolis-launches-gotime-on-demand-bus-service-replacing-underutilized-routes/">cbsnews.com</a></li>
38516    <li id="r11">City of Annapolis, news notice, 15 August 2024. <a href="https://annapolis.gov/CivicAlerts.aspx?AID=1849">annapolis.gov</a></li>
38517    <li id="r12">TCRP Synthesis 57, <em>Computer-Aided Scheduling and Dispatch in Demand-Responsive Transit Services</em>. Transportation Research Board, 2004. <a href="https://www.nationalacademies.org/publications/23335">
38517nationalacademies.org</a></li>
38518    <li id="r13">TCRP Report 124, <em>Guidebook for Measuring, Assessing, and Improving Performance of Demand-Response Transportation</em>. Transportation Research Board, 2008. <a href="https://www.nationalacademies.org/publications/23112">nationalacademies.org</a></li>
38519    <li id="r14">Washington Metropolitan Area Transit Authority, <em>FY2025 Annual Service Excellence Report</em>. <a href="https://www.wmata.com/content/dam/wmata-com/migrated-assets/about/board/meetings/board-pdfs/upload/3b-fy2025-annual-service-excellence-report.pdf">wmata.com</a></li>
38520    <li id="r15">Federal Transit Administration, Circular C 4710.1, <em>Americans with Disabilities Act: Guidance</em>, 2015, ch. 8. <a href="https://www.transit.dot.gov/sites/fta.dot.gov/files/docs/Final_FTA_ADA_Circular_C_4710.1.pdf">transit.dot.gov</a></li>
38521    <li id="r16">Utah Transit Authority, <em>Peer Agency Benchmarking Memo</em>, June 2024. <a href="https://www.rideuta.com/-/media/Files/About-UTA/Innovative-Mobility/Innovation/FinalUTAPeerAgencyBenchmarkingMemo.pdf">rideuta.com</a></li>
38522    <li id="r17">N. Rastogi, “Embracing A People-Centric Design In Last-Mile Delivery And Elsewhere,” <em>Forbes</em>, Forbes Business Council, 3 August 2023. <a href="https://www.forbes.com/councils/forbesbusinesscouncil/2023/08/03/embracing-a-people-centric-design-in-last-mile-delivery-and-elsewhere/">forbes.com</a></li>
38523  </ol>
38524</div>
38525
38526</div>
38527</article>
38528
38529<footer>
38530  <p>Go! Time is operated by the City of Annapolis. IT Curves supplies the scheduling and dispatch platform.</p>
38531  <p style="font-size:13px;line-height:1.6;color:#ABABAB;margin-top:20px;max-width:680px;"><strong style="color:#ABABAB;">Dr. Hesam Rashidi</strong> is a Senior Scientist and System Architect at IT Curves, specializing in AI, optimization, and human-centered systems for public transit. His work applies machine learning and operations research to complex transit problems, including paratransit, demand-responsive transportation, and large-scale routing and scheduling.</p>
38532</footer>
38533</div>
38534
38535<div id="tip" role="tooltip"><div class="tv"></div><div class="tk"></div></div>
38536
38537<script>
38538(function () {
38539  // ── tooltip: value first, label second; text only, never markup ──
38540  var tip = document.getElementById("tip"), tv = tip.querySelector(".tv"), tk = tip.querySelector(".tk");
38541  function place(x, y) {
38542    var r = tip.getBoundingClientRect(), L = x + 14, T = y + 14;
38543    if (L + r.width > window.innerWidth - 8) L = x - r.width - 14;
38544    if (T + r.height > window.innerHeight - 8) T = y - r.height - 14;
38545    tip.style.left = L + "px"; tip.style.top = T + "px";
38546  }
38547  function show(el, x, y) {
38548    tv.textContent = el.getAttribute("data-v"); tk.textContent = el.getAttribute("data-k") || "";
38549    tip.classList.add("on"); place(x, y);
38550  }
38551  function hide() { tip.classList.remove("on"); }
38552  document.querySelectorAll("[data-v]").forEach(function (el) {
38553    el.addEventListener("pointerenter", function (e) { show(el, e.clientX, e.clientY); });
38554    el.addEventListener("pointermove", function (e) { place(e.clientX, e.clientY); });
38555    el.addEventListener("pointerleave", hide);
38556    el.addEventListener("focus", function () { var r = el.getBoundingClientRect(); show(el, r.right, r.top); });
38557    el.addEventListener("blur", hide);
38558  });
38559
38560  // ── city map: a legend key isolates its land use ──
38561  var cm = document.getElementById("citymap");
38562  document.querySelectorAll("[data-focus]").forEach(function (b) {
38563    var c = "focus-" + b.getAttribute("data-focus");
38564    var on = function () { cm.classList.add(c); b.setAttribute("aria-pressed", "true"); };
38565    var off = function () { if (!b.dataset.lock) { cm.classList.remove(c); b.setAttribute("aria-pressed", "false"); } };
38566    b.setAttribute("aria-pressed", "false");
38567    b.addEventListener("pointerenter", on); b.addEventListener("pointerleave", off);
38568    b.addEventListener("focus", on); b.addEventListener("blur", off);
38569    b.addEventListener("click", function () {
38570      var locked = !b.dataset.lock;
38571      document.querySelectorAll("[data-focus]").forEach(function (o) {
38572        delete o.dataset.lock; cm.classList.remove("focus-" + o.getAttribute("data-focus")); o.setAttribute("aria-pressed", "false");
38573      });
38574      if (locked) { b.dataset.lock = "1"; on(); }
38575    });
38576  });
38577
38578  // ── walkable-access map: presets, layers, routes ──
38579  var wm = document.getElementById("walkmap"), stat = document.getElementById("walkstat");
38580  var ROUTES = ["Red", "Green", "Brown", "Orange", "Purple"], LAYERS = ["before", "pilot", "gained", "lost"];
38581  var PRE = {
38582    before: { ly: ["before"], rt: ROUTES,
38583      s: ["Five fixed routes, before July 2024: ", "4.2 sq mi", " within a ten-minute walk of a stop."] },
38584    pilot: { ly: ["pilot"], rt: ["Red", "Green", "Brown"],
38585      s: ["Go! Time’s virtual stops plus three citywide routes: ", "5.0 sq mi", " within a ten-minute walk."] },
38586    diff: { ly: ["before", "gained", "lost"], rt: [],
38587      s: ["Blue was already covered; teal is newly within a ten-minute walk. ", "Close to a square mile gained, effectively none lost.", ""] }
38588  };
38589  function setLayer(n, on) {
38590    wm.querySelector('[data-ly="' + n + '"]').setAttribute("data-off", on ? "0" : "1");
38591    document.querySelector('[data-layer="' + n + '"]').setAttribute("aria-pressed", on ? "true" : "false");
38592  }
38593  function setRoute(n, on) {
38594    wm.querySelector('[data-rt="' + n + '"]').setAttribute("data-off", on ? "0" : "1");
38595    document.querySelector('[data-route="' + n + '"]').setAttribute("aria-pressed", on ? "true" : "false");
38596  }
38597  function setStat(parts) {
38598    stat.textContent = "";
38599    stat.appendChild(document.createTextNode(parts[0]));
38600    var b = document.createElement("b"); b.textContent = parts[1]; stat.appendChild(b);
38601    stat.appendChild(document.createTextNode(parts[2]));
38602  }
38603  function preset(k) {
38604    var p = PRE[k];
38605    LAYERS.forEach(function (n) { setLayer(n, p.ly.indexOf(n) > -1); });
38606    ROUTES.forEach(function (n) { setRoute(n, p.rt.indexOf(n) > -1); });
38607    document.querySelectorAll("[data-preset]").forEach(function (b) {
38608      b.setAttribute("aria-pressed", b.getAttribute("data-preset") === k ? "true" : "false");
38609    });
38610    setStat(p.s);
38611  }
38612  function clearPreset() {
38613    document.querySelectorAll("[data-preset]").forEach(function (b) { b.setAttribute("aria-pressed", "false"); });
38614    stat.textContent = "Custom view: toggle any layer or route.";
38615  }
38616  document.querySelectorAll("[data-preset]").forEach(function (b) {
38617    b.addEventListener("click", function () { preset(b.getAttribute("data-preset")); });
38618  });
38619  document.querySelectorAll("[data-layer]").forEach(function (b) {
38620    b.addEventListener("click", function () { setLayer(b.getAttribute("data-layer"), b.getAttribute("aria-pressed") !== "true"); clearPreset(); });
38621  });
38622  document.querySelectorAll("[data-route]").forEach(function (b) {
38623    b.addEventListener("click", function () { setRoute(b.getAttribute("data-route"), b.getAttribute("aria-pressed") !== "true"); clearPreset(); });
38624  });
38625  preset("diff");
38626})();
38627<\/script>
38628</body>
38629</html>
38630`, gy = "/_components/v2/6f7c1cc6f4e6b5f46153147a1b8d898db9975c9c/GOTIME_graphic.e34050e6.png", fy = r0.indexOf('<div class="shell">'), py = r0.indexOf('<div id="tip"'), My = r0.slice(fy, py).trimEnd().replace(
38631  /<figure class="hero-img">[\s\S]*?<\/figure>/,
38632  `<figure class="hero-img"><img src="${Vi}" width="1360" height="765" alt="A Go! Time vehicle on a street in downtown Annapolis at sunset, with the Maryland State House behind it."></figure>`
38633), uy = `
38634/* ── Google Fonts ── */
38635@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@500;600&display=swap');
38636
38637/* ── root / tokens ── */
38638.gta-root {
38639  color-scheme: light;
38640  --paper: #FFFFFF;
38641  --ink: #111111;
38642  --body: #2E2E2E;
38643  --soft: #6B6B6B;
38644  --faint: #8E8E8E;
38645  --rule: #E4E4E4;
38646  --hair: #F0F0F0;
38647  --amber: #E89A1C;
38648  --amber-ink: #8A5A05;
38649  --tint: #FDF6E9;
38650  background: var(--paper);
38651  color: var(--body);
38652  font-family: "Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
38653  font-size: 18.5px;
38654  line-height: 1.65;
38655  -webkit-font-smoothing: antialiased;
38656}
38657.gta-root * { box-sizing: border-box; }
38658
38659/* ── layout ── */
38660.gta-root .shell { max-width: 1040px; margin: 0 auto; padding: 0 28px; }
38661.gta-root .col { max-width: 680px; }
38662
38663/* ── label ── */
38664.gta-root .label {
38665  font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
38666  font-size: 11.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
38667  color: var(--amber-ink); margin: 0;
38668}
38669
38670/* ── hero ── */
38671.gta-root header.hero { padding: 64px 0 0; }
38672.gta-root h1 {
38673  font-family: "Outfit", sans-serif; font-weight: 700; color: var(--ink);
38674  font-size: clamp(34px, 5.4vw, 52px); line-height: 1.07; letter-spacing: -.025em;
38675  margin: 20px 0 0; max-width: 15ch; text-wrap: balance;
38676}
38677.gta-root .standfirst {
38678  font-size: 21px; line-height: 1.52; color: var(--soft); margin: 22px 0 0; max-width: 640px;
38679}
38680.gta-root .byline {
38681  margin: 30px 0 0; padding-top: 18px; border-top: 1px solid var(--rule);
38682  font-size: 15px; line-height: 1.7; color: var(--soft); max-width: 680px;
38683}
38684.gta-root .byline strong { color: var(--ink); font-weight: 600; }
38685
38686/* ── hero image / placeholder ── */
38687.gta-root figure.hero-img { margin: 28px 0 0; max-width: 680px; }
38688.gta-root figure.hero-img img { display: block; width: 100%; height: auto; border-radius: 4px; }
38689.gta-root .hero-placeholder {
38690  background: linear-gradient(135deg, #F8E6A0, #E89A1C);
38691  height: 360px; border-radius: 4px;
38692  display: flex; align-items: center; justify-content: center;
38693  font-family: "Outfit", sans-serif; font-size: 15px; color: #8A5A05;
38694  font-style: italic; opacity: .8; text-align: center; padding: 0 24px;
38695}
38696
38697/* ── figures strip ── */
38698.gta-root .figures-strip {
38699  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
38700  margin: 40px 0 0; border-top: 1px solid var(--ink);
38701}
38702.gta-root .figures-strip > div { padding: 18px 22px 20px; border-right: 1px solid var(--hair); }
38703.gta-root .figures-strip > div:last-child { border-right: 0; }
38704.gta-root .figures-strip .v {
38705  font-family: "Outfit", sans-serif; font-weight: 700; font-size: 30px; line-height: 1.05;
38706  color: var(--amber-ink); letter-spacing: -.02em; font-variant-numeric: tabular-nums;
38707}
38708.gta-root .figures-strip .k { font-size: 13.5px; line-height: 1.45; color: var(--soft); margin-top: 8px; }
38709@media (max-width: 760px) {
38710  .gta-root .figures-strip { grid-template-columns: repeat(2, 1fr); }
38711  .gta-root .figures-strip > div { border-bottom: 1px solid var(--hair); }
38712  .gta-root .figures-strip > div:nth-child(2n) { border-right: 0; }
38713}
38714
38715/* ── body text ── */
38716.gta-root article { padding: 52px 0 0; }
38717.gta-root h2 {
38718  font-family: "Outfit", sans-serif; font-weight: 600; color: var(--ink);
38719  font-size: 26px; line-height: 1.22; letter-spacing: -.018em;
38720  margin: 0 0 18px; text-wrap: balance;
38721}
38722.gta-root .sec { margin-top: 56px; }
38723.gta-root .sec:first-child { margin-top: 0; }
38724.gta-root .sec > .tick, .gta-root .callout > .tick { display: block; width: 34px; height: 3px; background: var(--amber); margin-bottom: 16px; }
38725.gta-root p { margin: 0 0 22px; }
38726.gta-root article .col > p:first-of-type { font-size: 20px; color: var(--ink); }
38727.gta-root strong { font-weight: 600; color: var(--ink); }
38728.gta-root em { font-style: italic; }
38729
38730/* ── figures ── */
38731.gta-root figure { margin: 40px 0; width: 100%; max-width: 680px; }
38732.gta-root figure img { display: block; width: 100%; height: auto; background: #fff; }
38733.gta-root figure.bordered img { border: 1px solid var(--rule); }
38734.gta-root figcaption { margin: 13px 0 0; max-width: 680px; font-size: 14.5px; line-height: 1.6; color: var(--soft); }
38735.gta-root figcaption b {
38736  font-family: "IBM Plex Mono", monospace; font-size: 11px; font-weight: 600;
38737  letter-spacing: .14em; text-transform: uppercase; color: var(--amber-ink);
38738  display: block; margin-bottom: 6px;
38739}
38740
38741/* ── note box ── */
38742.gta-root .note { margin: 52px 0 0; padding: 26px 28px; background: var(--tint); max-width: 680px; }
38743.gta-root .note p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--body); }
38744.gta-root .note p + p { margin-top: 12px; }
38745.gta-root .note .label { margin-bottom: 12px; }
38746
38747/* ── footer ── */
38748.gta-root footer { margin-top: 72px; border-top: 1px solid var(--rule); padding: 26px 0 90px; }
38749.gta-root footer p { font-size: 14.5px; line-height: 1.75; color: var(--faint); max-width: 680px; margin: 0 0 10px; }
38750
38751/* ── links ── */
38752.gta-root a { color: var(--amber-ink); text-decoration-thickness: 1px; text-underline-offset: 2px; }
38753.gta-root :focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
38754
38755/* ── responsive ── */
38756@media (max-width: 640px) {
38757  .gta-root { font-size: 17.5px; }
38758  .gta-root header.hero { padding-top: 40px; }
38759  .gta-root .shell { padding: 0 20px; }
38760  .gta-root figure { margin: 32px 0; }
38761}
38762
38763/* ── inline SVG diagram figure ── */
38764.gta-root figure.diagram { background: #FFFFFF; border: 1px solid var(--rule); padding: 26px 24px; }
38765.gta-root figure.diagram svg { display: block; width: 100%; height: auto; }
38766
38767/* ── bolded clauses ── */
38768.gta-root article strong {
38769  font-weight: 600; color: var(--ink);
38770  box-shadow: inset 0 -0.42em 0 rgba(232, 154, 28, .16);
38771}
38772
38773/* ── SVG charts ── */
38774.gta-root figure.chartfig { max-width: 680px; }
38775.gta-root svg.chart { display: block; width: 100%; height: auto; overflow: visible; }
38776.gta-root svg.chart text { font-family: "Source Sans 3", "Helvetica Neue", sans-serif; fill: var(--body); }
38777.gta-root svg.chart .ax { font-size: 11.5px; fill: var(--faint); }
38778.gta-root svg.chart .ax2 { font-size: 11.5px; fill: var(--soft); }
38779.gta-root svg.chart .rw { font-size: 13.5px; fill: var(--ink); font-weight: 600; }
38780.gta-root svg.chart .pt { font-size: 13px; fill: var(--ink); font-weight: 600; }
38781.gta-root svg.chart .lg { font-size: 12px; fill: var(--soft); }
38782.gta-root svg.chart .nt { font-size: 11.5px; fill: var(--soft); font-style: italic; }
38783.gta-root svg.chart .vl { font-size: 12.5px; fill: var(--amber-ink); font-weight: 600; }
38784.gta-root svg.chart .vlb { font-size: 13.5px; fill: var(--ink); font-weight: 700; }
38785.gta-root svg.chart .gl { stroke: #EFEFEF; stroke-width: 1; }
38786.gta-root svg.chart .zero { stroke: #D6D6D6; stroke-width: 1; }
38787.gta-root svg.chart .cut { stroke: var(--ink); stroke-width: 1.1; stroke-dasharray: 4 3; }
38788.gta-root svg.chart .bus, .gta-root svg.chart .key.bus, .gta-root svg.chart .man { fill: #CDD1D5; }
38789.gta-root svg.chart .dem, .gta-root svg.chart .key.dem, .gta-root svg.chart .auto { fill: var(--amber); }
38790.gta-root svg.chart .ln { fill: none; stroke: var(--amber); stroke-width: 2.6; stroke-linejoin: round; }
38791.gta-root svg.chart .dot { fill: var(--amber); stroke: #fff; stroke-width: 1.5; }
38792.gta-root svg.chart .cdf-before { fill: none; stroke: #CDD1D5; stroke-width: 2.6; }
38793.gta-root svg.chart .cdf-after { fill: none; stroke: var(--amber); stroke-width: 3; }
38794.gta-root svg.chart .sl { font-size: 13px; font-weight: 700; }
38795.gta-root svg.chart .sl.before { fill: #8B9096; }
38796.gta-root svg.chart .sl.after { fill: var(--amber-ink); }
38797.gta-root svg.chart .sl.gain { fill: #1E6F63; }
38798.gta-root svg.chart .sl.loss { fill: #C2570F; }
38799.gta-root svg.chart .s1 { fill: #1E6F63; }
38800.gta-root svg.chart .s2 { fill: #5FA396; }
38801.gta-root svg.chart .s3 { fill: #DFE2E5; }
38802.gta-root svg.chart .s4 { fill: #F3CE93; }
38803.gta-root svg.chart .s5 { fill: var(--amber); }
38804.gta-root svg.chart .s6 { fill: #C2570F; }
38805.gta-root svg.chart .segv { font-size: 14px; font-weight: 700; }
38806.gta-root svg.chart .segv.lt { fill: var(--ink); }
38807.gta-root svg.chart .segv.dk { fill: #FFFFFF; }
38808.gta-root svg.chart .segv.out { fill: var(--ink); font-size: 12px; }
38809
38810/* ── hover interactions ── */
38811.gta-root svg.chart .bar,
38812.gta-root svg.chart .seg,
38813.gta-root svg.chart .dot { transition: opacity .13s ease, fill .13s ease; cursor: default; }
38814.gta-root svg.chart:hover .bar,
38815.gta-root svg.chart:hover .seg { opacity: .3; }
38816.gta-root svg.chart .bar:hover,
38817.gta-root svg.chart .seg:hover { opacity: 1; fill: var(--amber-ink); }
38818.gta-root svg.chart .seg:hover { fill: #8A5A05; }
38819.gta-root svg.chart:hover .dot { opacity: .35; }
38820.gta-root svg.chart .dot:hover { opacity: 1; r: 7; fill: var(--amber-ink); }
38821@media (prefers-reduced-motion: reduce) {
38822  .gta-root svg.chart .bar,
38823  .gta-root svg.chart .seg,
38824  .gta-root svg.chart .dot { transition: none; }
38825}
38826
38827/* ── dispatch-loop diagram ── */
38828.gta-root figure.diagram svg .bx,
38829.gta-root figure.diagram svg .bxa { transition: fill .13s ease, stroke .13s ease; }
38830.gta-root figure.diagram svg .bx:hover { fill: #FDF6E9; stroke: var(--amber); }
38831.gta-root figure.diagram svg .bxa:hover { fill: #FBEBCF; }
38832
38833/* ── v5 additions ── */
38834.gta-root svg.chart .new, .gta-root svg.chart .key.new { fill: #EBD9B5; }
38835.gta-root svg.chart .key-dot.bus, .gta-root svg.chart .dot.bus { fill: #AEB4BA; }
38836.gta-root svg.chart .key-dot.dem, .gta-root svg.chart .dot.dem { fill: var(--amber); }
38837.gta-root svg.chart .dumb { stroke: #D9D9D9; stroke-width: 3; stroke-linecap: round; }
38838.gta-root svg.chart [tabindex] { outline: none; }
38839.gta-root svg.chart [tabindex]:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
38840.gta-root svg.chart:hover .stk { opacity: .3; }
38841.gta-root svg.chart .stk:hover { opacity: 1; }
38842.gta-root svg.chart .stk:hover .dem { fill: var(--amber-ink); }
38843.gta-root svg.chart .stk:hover .new { fill: #C9A869; }
38844.gta-root svg.chart .bar.bus:hover { fill: #6F767D; }
38845.gta-root svg.chart .dot.bus:hover { fill: #6F767D; }
38846.gta-root svg.chart .stk { transition: opacity .13s ease; }
38847
38848/* ── in-brief box ── */
38849.gta-root .brief { margin: 40px 0 0; border-top: 1px solid var(--ink); padding: 20px 0 0; max-width: 680px; }
38850.gta-root .brief .label { margin-bottom: 12px; }
38851.gta-root .brief ul { margin: 0; padding: 0; list-style: none; }
38852.gta-root .brief li { position: relative; padding: 0 0 14px 26px; font-size: 17.5px; line-height: 1.55; color: var(--ink); }
38853.gta-root .brief li::before { content: ""; position: absolute; left: 0; top: .62em; width: 12px; height: 3px; background: var(--amber); }
38854
38855/* ── pull quote ── */
38856.gta-root blockquote { margin: 30px 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--amber); max-width: 680px; }
38857.gta-root blockquote p { font-family: "Outfit", sans-serif; font-size: 21px; line-height: 1.42; color: var(--ink); margin: 0 0 8px; letter-spacing: -.01em; }
38858.gta-root blockquote cite { font-style: normal; font-size: 14.5px; color: var(--soft); }
38859
38860/* ── SVG diagrams ── */
38861.gta-root svg.diag { display: block; width: 100%; height: auto; }
38862.gta-root svg.diag text { font-family: "Source Sans 3", "Helvetica Neue", sans-serif; }
38863.gta-root svg.diag .dg-t { font-family: "Outfit", sans-serif; font-size: 17px; font-weight: 600; fill: var(--ink); }
38864.gta-root svg.diag .dg-h { font-family: "Outfit", sans-serif; font-size: 17px; font-weight: 600; fill: var(--ink); }
38865.gta-root svg.diag .dg-h2 { font-family: "Outfit", sans-serif; font-size: 15px; font-weight: 600; fill: var(--ink); }
38866.gta-root svg.diag .dg-b { font-size: 14px; font-weight: 600; fill: var(--ink); }
38867.gta-root svg.diag .dg-s { font-size: 12.5px; fill: var(--soft); }
38868.gta-root svg.diag .dg-k { font-family: "IBM Plex Mono", monospace; font-size: 10.5px; letter-spacing: .14em; fill: var(--amber-ink); }
38869.gta-root svg.diag .ped { fill: #FAFAFA; stroke: #CFCFCF; stroke-width: 1.2; }
38870.gta-root svg.diag .ent, .gta-root svg.diag .col-cap { fill: #EFEFEF; stroke: #CFCFCF; }
38871.gta-root svg.diag .col-sh { fill: #FAFAFA; stroke: #CFCFCF; }
38872.gta-root svg.diag .flute { stroke: #E6E6E6; }
38873.gta-root svg.diag .lbl-bg { fill: #FFFFFF; stroke: #E4E4E4; }
38874.gta-root svg.diag .pil * { transition: fill .13s ease, stroke .13s ease; }
38875.gta-root svg.diag .pil:hover .col-sh, .gta-root svg.diag .pil:focus-visible .col-sh { fill: var(--tint); stroke: var(--amber); }
38876.gta-root svg.diag .pil:hover .lbl-bg, .gta-root svg.diag .pil:focus-visible .lbl-bg { fill: var(--amber); stroke: var(--amber); }
38877.gta-root svg.diag .pil:hover .dg-h, .gta-root svg.diag .pil:focus-visible .dg-h { fill: #fff; }
38878.gta-root svg.diag .pil { cursor: pointer; outline: none; }
38879.gta-root svg.diag .bx { fill: #FFFFFF; stroke: #CFCFCF; stroke-width: 1.2; }
38880.gta-root svg.diag .bxa { fill: var(--tint); stroke: var(--amber); stroke-width: 1.4; }
38881.gta-root svg.diag .bxh { fill: #F6F6F6; stroke: #CFCFCF; stroke-width: 1.2; stroke-dasharray: 4 3; }
38882.gta-root svg.diag .bxl { fill: #FFFFFF; stroke: var(--amber); stroke-width: 1.4; stroke-dasharray: 5 3; }
38883.gta-root svg.diag .ar { fill: none; stroke: #9A9A9A; stroke-width: 1.3; }
38884.gta-root svg.diag .ar.dash { stroke-dasharray: 4 3; }
38885.gta-root svg.diag .ara { fill: none; stroke: var(--amber); stroke-width: 1.6; }
38886.gta-root svg.diag .ahd { fill: #9A9A9A; }
38887.gta-root svg.diag .aha { fill: var(--amber); }
38888.gta-root svg.diag .nd rect, .gta-root svg.diag .nd polygon { transition: fill .13s ease, stroke .13s ease; }
38889.gta-root svg.diag .nd:hover .bx { fill: var(--tint); stroke: var(--amber); }
38890.gta-root svg.diag .nd:hover .bxa { fill: #FBEBCF; }
38891.gta-root svg.diag .nd:hover .bxh, .gta-root svg.diag .nd:hover .bxl { fill: var(--tint); }
38892
38893/* ── SVG maps ── */
38894.gta-root figure.mapfig { border: 1px solid var(--rule); padding: 0; background: #fff; }
38895.gta-root figure.mapfig figcaption { padding: 0 16px 14px; }
38896.gta-root svg.map { display: block; width: 100%; height: auto; }
38897.gta-root svg.map .m-land { fill: #FFFFFF; }
38898.gta-root svg.map .m-water { fill: #EEF2F5; }
38899.gta-root svg.map .m-street { fill: none; stroke: #E3E3E3; stroke-width: .7; }
38900.gta-root svg.map .m-bound { fill: none; stroke: #555; stroke-width: 1.1; stroke-dasharray: 5 3; }
38901.gta-root svg.map .lu { transition: opacity .15s ease; }
38902.gta-root svg.map .lu-com { fill: #F4D29A; }
38903.gta-root svg.map .lu-ins { fill: #C9D3DE; }
38904.gta-root svg.map .lu-park { fill: #D6E6D3; }
38905.gta-root svg.map.focus-com .lu:not(.lu-com),
38906.gta-root svg.map.focus-ins .lu:not(.lu-ins),
38907.gta-root svg.map.focus-park .lu:not(.lu-park) { opacity: .18; }
38908.gta-root svg.map .pl { cursor: default; outline: none; }
38909.gta-root svg.map .pl-hit { fill: transparent; }
38910.gta-root svg.map .pl-dot { fill: var(--ink); stroke: #fff; stroke-width: 1.5; transition: r .12s ease, fill .12s ease; }
38911.gta-root svg.map .pl-t {
38912  font-family: "Source Sans 3", sans-serif; font-size: 12px; font-weight: 600; fill: var(--ink);
38913  paint-order: stroke; stroke: #fff; stroke-width: 3.5px; stroke-linejoin: round;
38914}
38915.gta-root svg.map .pl:hover .pl-dot, .gta-root svg.map .pl:focus-visible .pl-dot { fill: var(--amber-ink); r: 6.5; }
38916.gta-root svg.map .scale line { stroke: var(--ink); stroke-width: 1.4; }
38917.gta-root svg.map .scale text { font-family: "IBM Plex Mono", monospace; font-size: 10px; fill: var(--soft); }
38918.gta-root svg.map .sh { transition: opacity .2s ease; }
38919.gta-root svg.map .sh-before { fill: #9DB8CC; opacity: .55; }
38920.gta-root svg.map .sh-pilot { fill: #F2BE6A; opacity: .55; }
38921.gta-root svg.map .sh-gained { fill: #1E6F63; opacity: .9; }
38922.gta-root svg.map .sh-lost { fill: #C2570F; opacity: .9; }
38923.gta-root svg.map .rt { fill: none; stroke: var(--c); stroke-width: 2.2; stroke-linejoin: round; stroke-linecap: round; transition: opacity .2s ease, stroke-width .12s ease; }
38924.gta-root svg.map .rt:hover { stroke-width: 4; }
38925.gta-root svg.map [data-off="1"] { opacity: 0; pointer-events: none; }
38926
38927/* ── map toolbar ── */
38928.gta-root .mapbar { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--hair); }
38929.gta-root .mapbar .grp { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
38930.gta-root .mapbar .glab { font-family: "IBM Plex Mono", monospace; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin-right: 4px; }
38931.gta-root .chip { font: 600 13px/1 "Source Sans 3", sans-serif; padding: 7px 11px; border: 1px solid #D6D6D6; border-radius: 999px; background: #fff; color: var(--soft); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
38932.gta-root .chip:hover { border-color: var(--amber); color: var(--ink); }
38933.gta-root .chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
38934.gta-root .chip .sw { width: 14px; height: 3px; border-radius: 2px; background: var(--c); }
38935.gta-root .chip .sw.dash { background: repeating-linear-gradient(90deg, var(--c) 0 5px, transparent 5px 8px); }
38936.gta-root .chip .sq { width: 11px; height: 11px; border-radius: 2px; background: var(--c); }
38937.gta-root .mapstat { padding: 10px 16px 0; font-size: 14px; color: var(--soft); min-height: 32px; }
38938.gta-root .mapstat b { color: var(--ink); }
38939.gta-root .legend-row { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 16px; border-bottom: 1px solid var(--hair); }
38940
38941/* ── tooltip (position: fixed — not scoped to .gta-root) ── */
38942#tip {
38943  position: fixed; z-index: 9999; pointer-events: none;
38944  background: #fff; border: 1px solid #E4E4E4;
38945  box-shadow: 0 6px 20px rgba(0,0,0,.08); border-radius: 6px;
38946  padding: 8px 11px; max-width: 260px; opacity: 0; transition: opacity .1s ease;
38947}
38948#tip.on { opacity: 1; }
38949#tip .tv { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 16px; color: #111111; line-height: 1.2; }
38950#tip .tk { font-size: 13px; color: #6B6B6B; line-height: 1.4; margin-top: 2px; }
38951
38952/* ── TransitLab callout ── */
38953.gta-root .callout { box-sizing: border-box; max-width: 680px; margin: 40px 0 0; padding: 0; background: #fff; border: none; }
38954.gta-root .callout .label { font-family: "IBM Plex Mono", monospace; font-weight: 600; font-size: 11px; line-height: 1.6; letter-spacing: .14em; text-transform: uppercase; color: var(--amber-ink); margin: 0 0 10px; }
38955.gta-root .callout h3 { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 22px; line-height: 1.27; letter-spacing: -.015em; color: var(--ink); margin: 0 0 14px; }
38956.gta-root .callout p:last-child { margin-bottom: 0; }
38957
38958/* ── references ── */
38959.gta-root .refs { margin: 52px 0 0; max-width: 680px; }
38960.gta-root .refs ol { margin: 0; padding-left: 20px; }
38961.gta-root .refs li { font-size: 14.5px; line-height: 1.6; color: var(--soft); margin-bottom: 8px; }
38962.gta-root sup.fn a { text-decoration: none; font-size: .72em; font-weight: 600; padding: 0 1px; }
38963.gta-root .note p.label { font-size: 11.5px; line-height: 1.4; }
38964`;
38965function hy() {
38966  const t = H(null);
38967  return q(() => {
38968    const e = "Go! Time: two years of on-demand transit in Maryland's capital", s = "Two years in, Annapolis’s Go! Time on-demand transit carries 31% more riders than the routes it replaced, at 8% lower cost per passenger trip.", r = `${window.location.origin}${gy}`, n = document.title, o = document.documentElement.lang;
38969    document.title = e, document.documentElement.lang = "en";
38970    const L = [], d = [];
38971    function l(f, p, M, u) {
38972      let h = document.head.querySelector(f);
38973      h ? (d.push({ el: h, val: h.getAttribute("content") ?? "" }), h.setAttribute("content", u)) : (h = document.createElement("meta"), h.setAttribute(p, M), h.setAttribute("content", u), document.head.appendChild(h), L.push(h));
38974    }
38975    l('meta[name="description"]', "name", "description", s), l('meta[property="og:type"]', "property", "og:type", "article"), l('meta[property="og:title"]', "property", "og:title", e), l('meta[property="og:description"]', "property", "og:description", s), l('meta[property="og:image"]', "property", "og:image", r), l('meta[property="og:url"]', "property", "og:url", window.location.href), l('meta[name="twitter:card"]', "name", "twitter:card", "summary_large_image"), l('meta[name="twitter:title"]', "name", "twitter:title", e), l('meta[name="twitter:description"]', "name", "twitter:description", s), l('meta[name="twitter:image"]', "name", "twitter:image", r);
38976    const g = document.head.querySelector('meta[name="robots"]');
38977    if (g) {
38978      const f = g.getAttribute("content") ?? "", p = f.replace(/noindex,?\s*/gi, "").trim() || "index, follow";
38979      d.push({ el: g, val: f }), g.setAttribute("content", p);
38980    }
38981    return () => {
38982      document.title = n, document.documentElement.lang = o, L.forEach((f) => f.parentNode?.removeChild(f)), d.forEach(({ el: f, val: p }) => f.setAttribute("content", p));
38983    };
38984  }, []), q(() => {
38985    const e = t.current;
38986    if (!e) return;
38987    const s = document.getElementById("tip");
38988    if (!s) return;
38989    const r = s.querySelector(".tv"), n = s.querySelector(".tk");
38990    function o(w, P) {
38991      const z = s.getBoundingClientRect();
38992      let V = w + 14, Se = P + 14;
38993      V + z.width > window.innerWidth - 8 && (V = w - z.width - 14), Se + z.height > window.innerHeight - 8 && (Se = P - z.height - 14), s.style.left = V + "px", s.style.top = Se + "px";
38994    }
38995    function L(w, P, z) {
38996      r.textContent = w.getAttribute("data-v") || "", n.textContent = w.getAttribute("data-k") || "", s.classList.add("on"), o(P, z);
38997    }
38998    function d() {
38999      s.classList.remove("on");
39000    }
39001    const l = Array.from(e.querySelectorAll("[data-v]")), g = [];
39002    l.forEach((w) => {
39003      const P = (Ie) => {
39004        const le = Ie;
39005        L(w, le.clientX, le.clientY);
39006      }, z = (Ie) => {
39007        const le = Ie;
39008        o(le.clientX, le.clientY);
39009      }, V = () => d(), Se = () => {
39010        const Ie = w.getBoundingClientRect();
39011        L(w, Ie.right, Ie.top);
39012      };
39013      w.addEventListener("pointerenter", P), w.addEventListener("pointermove", z), w.addEventListener("pointerleave", V), w.addEventListener("focus", Se), w.addEventListener("blur", V), g.push(() => {
39014        w.removeEventListener("pointerenter", P), w.removeEventListener("pointermove", z), w.removeEventListener("pointerleave", V), w.removeEventListener("focus", Se), w.removeEventListener("blur", V);
39015      });
39016    });
39017    const f = e.querySelector("#citymap"), p = Array.from(e.querySelectorAll("[data-focus]")), M = [];
39018    p.forEach((w) => {
39019      const P = "focus-" + w.getAttribute("data-focus"), z = () => {
39020        f?.classList.add(P), w.setAttribute("aria-pressed", "true");
39021      }, V = () => {
39022        w.dataset.lock || (f?.classList.remove(P), w.setAttribute("aria-pressed", "false"));
39023      };
39024      w.setAttribute("aria-pressed", "false");
39025      const Se = () => {
39026        const Ie = !w.dataset.lock;
39027        e.querySelectorAll("[data-focus]").forEach((le) => {
39028          delete le.dataset.lock, f?.classList.remove("focus-" + le.getAttribute("data-focus")), le.setAttribute("aria-pressed", "false");
39029        }), Ie && (w.dataset.lock = "1", z());
39030      };
39031      w.addEventListener("pointerenter", z), w.addEventListener("pointerleave", V), w.addEventListener("focus", z), w.addEventListener("blur", V), w.addEventListener("click", Se), M.push(() => {
39032        w.removeEventListener("pointerenter", z), w.removeEventListener("pointerleave", V), w.removeEventListener("focus", z), w.removeEventListener("blur", V), w.removeEventListener("click", Se);
39033      });
39034    });
39035    const u = e.querySelector("#walkmap"), h = e.querySelector("#walkstat"), x = ["Red", "Green", "Brown", "Orange", "Purple"], _ = ["before", "pilot", "gained", "lost"], v = {
39036      before: { ly: ["before"], rt: x, s: ["Five fixed routes, before July 2024: ", "4.2 sq mi", " within a ten-minute walk of a stop."] },
39037      pilot: { ly: ["pilot"], rt: ["Red", "Green", "Brown"], s: ["Go! Time's virtual stops plus three citywide routes: ", "5.0 sq mi", " within a ten-minute walk."] },
39038      diff: { ly: ["before", "gained", "lost"], rt: [], s: ["Blue was already covered; teal is newly within a ten-minute walk. ", "Close to a square mile gained, effectively none lost.", ""] }
39039    };
39040    function y(w, P) {
39041      u?.querySelector(`[data-ly="${w}"]`)?.setAttribute("data-off", P ? "0" : "1"), e.querySelector(`[data-layer="${w}"]`)?.setAttribute("aria-pressed", P ? "true" : "false");
39042    }
39043    function b(w, P) {
39044      u?.querySelector(`[data-rt="${w}"]`)?.setAttribute("data-off", P ? "0" : "1"), e.querySelector(`[data-route="${w}"]`)?.setAttribute("aria-pressed", P ? "true" : "false");
39045    }
39046    function S(w) {
39047      if (!h) return;
39048      h.textContent = "", h.appendChild(document.createTextNode(w[0]));
39049      const P = document.createElement("b");
39050      P.textContent = w[1], h.appendChild(P), h.appendChild(document.createTextNode(w[2]));
39051    }
39052    function k(w) {
39053      const P = v[w];
39054      P && (_.forEach((z) => y(z, P.ly.indexOf(z) > -1)), x.forEach((z) => b(z, P.rt.indexOf(z) > -1)), e.querySelectorAll("[data-preset]").forEach((z) => {
39055        z.setAttribute("aria-pressed", z.getAttribute("data-preset") === w ? "true" : "false");
39056      }), S(P.s));
39057    }
39058    function A() {
39059      e.querySelectorAll("[data-preset]").forEach((w) => w.setAttribute("aria-pressed", "false")), h && (h.textContent = "Custom view: toggle any layer or route.");
39060    }
39061    const I = [];
39062    return e.querySelectorAll("[data-preset]").forEach((w) => {
39063      const P = () => k(w.getAttribute("data-preset"));
39064      w.addEventListener("click", P), I.push(() => w.removeEventListener("click", P));
39065    }), e.querySelectorAll("[data-layer]").forEach((w) => {
39066      const P = () => {
39067        y(w.getAttribute("data-layer"), w.getAttribute("aria-pressed") !== "true"), A();
39068      };
39069      w.addEventListener("click", P), I.push(() => w.removeEventListener("click", P));
39070    }), e.querySelectorAll("[data-route]").forEach((w) => {
39071      const P = () => {
39072        b(w.getAttribute("data-route"), w.getAttribute("aria-pressed") !== "true"), A();
39073      };
39074      w.addEventListener("click", P), I.push(() => w.removeEventListener("click", P));
39075    }), k("diff"), () => {
39076      g.forEach((w) => w()), M.forEach((w) => w()), I.forEach((w) => w()), d();
39077    };
39078  }
39078, []), /* @__PURE__ */ c(C, { children: [
39079    /* @__PURE__ */ i("style", { dangerouslySetInnerHTML: { __html: uy }, "data-fg-dr7y2": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:569:7:29742:58:e:style" }),
39080    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dr7y4", _fgB: 1790697589562, className: "bg-slate-50 border-b border-slate-200", "data-fg-dr7y4": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:572:7:29852:407:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dr7y5", _fgB: 1790697589562, className: "max-w-4xl mx-auto px-6 py-4", "data-fg-dr7y5": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:573:9:29916:330:e:div:e", children: /* @__PURE__ */ c(
39081      a,
39082      {
39083        _fgT: E,
39084        _fgS: "dr7y6",
39085        _fgB: 1790697589562,
39086        href: "/news-articles",
39087        className: "inline-flex items-center gap-2 text-slate-600 hover:text-[#0056B3] transition-colors font-medium",
39088        "data-fg-dr7y6": ":0:node_modules/wouter:574:11:29972:259:e:Link:et:::::C4yE",
39089        children: [
39090          /* @__P
39090URE__ */ i(a, { _fgT: O1, _fgS: "dr7y7", _fgB: 1790697589562, size: 18, "data-fg-dr7y7": ":0:node_modules/lucide-react:578:13:30157:23:e:ArrowLeft::::::EIC8" }),
39091          "Back to All Articles"
39092        ]
39093      }
39094    ) }) }),
39095    /* @__PURE__ */ i(
39096      a,
39097      {
39098        _fgT: "div",
39099        _fgS: "dr7y10",
39100        _fgB: 1790697589562,
39101        ref: t,
39102        className: "gta-root",
39103        dangerouslySetInnerHTML: { __html: My },
39104        "data-fg-dr7y10": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:585:7:30342:120:e:div"
39105      }
39106    ),
39107    /* @__PURE__ */ i(
39108      a,
39109      {
39110        _fgT: "div",
39111        _fgS: "dr7y12",
39112        _fgB: 1790697589562,
39113        id: "tip",
39114        role: "tooltip",
39115        dangerouslySetInnerHTML: { __html: '<div class="tv"></div><div class="tk"></div>' },
39116        "data-fg-dr7y12": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:592:7:30549:146:e:div"
39117      }
39118    ),
39119    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dr7y14", _fgB: 1790697589562, className: "bg-slate-50 py-16 px-6 mt-0", "data-fg-dr7y14": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:599:7:30734:725:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dr7y15", _fgB: 1790697589562, className: "max-w-4xl mx-auto text-center", "data-fg-dr7y15": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:600:9:30788:658:e:div:etete", children: [
39120      /* @__PURE__ */ i(a, { _fgT: "h3", _fgS: "dr7y16", _fgB: 1790697589562, className: "font-['DM_Serif_Display'] text-3xl text-slate-900 mb-4", "data-fg-dr7y16": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:601:11:30846:121:e:h3:t", children: "Explore More Articles" }),
39121      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dr7y18", _fgB: 1790697589562, className: "text-slate-600 mb-8", "data-fg-dr7y18": ":0:/src/app/pages/GoTimeAnnapolisArticlePage.tsx:604:11:30978:121:e:p:t", children: "Discover more insights and updates from the IT Curves team" }),
39122      /* @__PURE__ */ c(
39123        a,
39124        {
39125          _fgT: E,
39126          _fgS: "dr7y20",
39127          _fgB: 1790697589562,
39128          href: "/news-articles",
39129          className: "inline-flex items-center gap-2 bg-[#0056B3] text-white px-8 py-4 rounded-full font-semibold hover:bg-[#004494] transition-colors shadow-lg",
39130          "data-fg-dr7y20": ":0:node_modules/wouter:607:11:31110:321:e:Link:te:::::C4yE",
39131          children: [
39132            "View All Articles",
39133            /* @__P
39133URE__ */ i(a, { _fgT: O1, _fgS: "dr7y22", _fgB: 1790697589562, size: 18, className: "rotate-180", "data-fg-dr7y22": ":0:node_modules/lucide-react:612:13:31367:46:e:ArrowLeft::::::EIC8" })
39134          ]
39135        }
39136      )
39137    ] }) })
39138  ] });
39139}
39140const A1 = globalThis.__GLOBALS__.getAssetURL("37b7d8714c548c7f70ac4818a330f4a7a4c9544e.png"), my = globalThis.__GLOBALS__.getAssetURL("cdd238b91b6ad77952a7a75e86122f7e1101a04f.png"), xy = globalThis.__GLOBALS__.getAssetURL("775b1ce9283213913e5ac204e9429ec0dc0a1847.png"), _y = globalThis.__GLOBALS__.getAssetURL("5af2e776bc75976507df2edface9de64e170a5dd.png");
39141var by = Object.defineProperty, x3 = Object.getOwnPropertySymbols, Hi = Object.prototype.hasOwnProperty, Zi = Object.prototype.propertyIsEnumerable, j6 = (t, e, s) => e in t ? by(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s, o5 = (t, e) => {
39142  for (var s in e || (e = {}))
39143    Hi.call(e, s) && j6(t, s, e[s]);
39144  if (x3)
39145    for (var s of x3(e))
39146      Zi.call(e, s) && j6(t, s, e[s]);
39147  return t;
39148}, L5 = (t, e) => {
39149  var s = {};
39150  for (var r in t)
39151    Hi.call(t, r) && e.indexOf(r) < 0 && (s[r] = t[r]);
39152  if (t != null && x3)
39153    for (var r of x3(t))
39154      e.indexOf(r) < 0 && Zi.call(t, r) && (s[r] = t[r]);
39155  return s;
39156};
39157/**
39158 * @license QR Code generator library (TypeScript)
39159 * Copyright (c) Project Nayuki.
39160 * SPDX-License-Identifier: MIT
39161 */
39162var G1;
39163((t) => {
39164  const e = class O {
39165    /*-- Constructor (low level) and fields --*/
39166    // Creates a new QR Code with the given version number,
39167    // error correction level, data codeword bytes, and mask number.
39168    // This is a low-level API that most users should not use directly.
39169    // A mid-level API is the encodeSegments() function.
39170    constructor(l, g, f, p) {
39171      if (this.version = l, this.errorCorrectionLevel = g, this.modules = [], this.isFunction = [], l < O.MIN_VERSION || l > O.MAX_VERSION)
39172        throw new RangeError("Version value out of range");
39173      if (p < -1 || p > 7)
39174        throw new RangeError("Mask value out of range");
39175      this.size = l * 4 + 17;
39176      let M = [];
39177      for (let h = 0; h < this.size; h++)
39178        M.push(!1);
39179      for (let h = 0; h < this.size; h++)
39180        this.modules.push(M.slice()), this.isFunction.push(M.slice());
39181      this.drawFunctionPatterns();
39182      const u = this.addEccAndInterleave(f);
39183      if (this.drawCodewords(u), p == -1) {
39184        let h = 1e9;
39185        for (let x = 0; x < 8; x++) {
39186          this.applyMask(x), this.drawFormatBits(x);
39187          const _ = this.getPenaltyScore();
39188          _ < h && (p = x, h = _), this.applyMask(x);
39189        }
39190      }
39191      n(0 <= p && p <= 7), this.mask = p, this.applyMask(p), this.drawFormatBits(p), this.isFunction = [];
39192    }
39193    /*-- Static factory functions (high level) --*/
39194    // Returns a QR Code representing the given Unicode text string at the given error correction level.
39195    // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer
39196    // Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible
39197    // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the
39198    // ecl argument if it can be done without increasing the version.
39199    static encodeText(l, g) {
39200      const f = t.QrSegment.makeSegments(l);
39201      return O.encodeSegments(f, g);
39202    }
39203    // Returns a QR Code representing the given binary data at the given error correction level.
39204    // This function always encodes using the binary segment mode, not any text mode. The maximum number of
39205    // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.
39206    // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.
39207    static encodeBinary(l, g) {
39208      const f = t.QrSegment.makeBytes(l);
39209      return O.encodeSegments([f], g);
39210    }
39211    /*-- Static factory functions (mid level) --*/
39212    // Returns a QR Code representing the given segments with the given encoding parameters.
39213    // The smallest possible QR Code version within the given range is automatically
39214    // chosen for the output. Iff boostEcl is true, then the ECC level of the result
39215    // may be higher than the ecl argument if it can be done without increasing the
39216    // version. The mask number is either between 0 to 7 (inclusive) to force that
39217    // mask, or -1 to automatically choose an appropriate mask (which may be slow).
39218    // This function allows the user to create a custom sequence of segments that switches
39219    // between modes (such as alphanumeric and byte) to encode text in less space.
39220    // This is a mid-level API; the high-level API is encodeText() and encodeBinary().
39221    static encodeSegments(l, g, f = 1, p = 40, M = -1, u = !0) {
39222      if (!(O.MIN_VERSION <= f && f <= p && p <= O.MAX_VERSION) || M < -1 || M > 7)
39223        throw new RangeError("Invalid value");
39224      let h, x;
39225      for (h = f; ; h++) {
39226        const b = O.getNumDataCodewords(h, g) * 8, S = L.getTotalBits(l, h);
39227        if (S <= b) {
39228          x = S;
39229          break;
39230        }
39231        if (h >= p)
39232          throw new RangeError("Data too long");
39233      }
39234      for (const b of [O.Ecc.MEDIUM, O.Ecc.QUARTILE, O.Ecc.HIGH])
39235        u && x <= O.getNumDataCodewords(h, b) * 8 && (g = b);
39236      let _ = [];
39237      for (const b of l) {
39238        s(b.mode.modeBits, 4, _), s(b.numChars, b.mode.numCharCountBits(h), _);
39239        for (const S of b.getData())
39240          _.push(S);
39241      }
39242      n(_.length == x);
39243      const v = O.getNumDataCodewords(h, g) * 8;
39244      n(_.length <= v), s(0, Math.min(4, v - _.length), _), s(0, (8 - _.length % 8) % 8, _), n(_.length % 8 == 0);
39245      for (let b = 236; _.length < v; b ^= 253)
39246        s(b, 8, _);
39247      let y = [];
39248      for (; y.length * 8 < _.length; )
39249        y.push(0);
39250      return _.forEach((b, S) => y[S >>> 3] |= b << 7 - (S & 7)), new O(h, g, y, M);
39251    }
39252    /*-- Accessor methods --*/
39253    // Returns the color of the module (pixel) at the given coordinates, which is false
39254    // for light or true for dark. The top left corner has the coordinates (x=0, y=0).
39255    // If the given coordinates are out of bounds, then false (light) is returned.
39256    getModule(l, g) {
39257      return 0 <= l && l < this.size && 0 <= g && g < this.size && this.modules[g][l];
39258    }
39259    // Modified to expose modules for easy access
39260    getModules() {
39261      return this.modules;
39262    }
39263    /*-- Private helper methods for constructor: Drawing function modules --*/
39264    // Reads this object's version field, and draws and marks all function modules.
39265    drawFunctionPatterns() {
39266      for (let f = 0; f < this.size; f++)
39267        this.setFunctionModule(6, f, f % 2 == 0), this.setFunctionModule(f, 6, f % 2 == 0);
39268      this.drawFinderPattern(3, 3), this.drawFinderPattern(this.size - 4, 3), this.drawFinderPattern(3, this.size - 4);
39269      const l = this.getAlignmentPatternPositions(), g = l.length;
39270      for (let f = 0; f < g; f++)
39271        for (let p = 0; p < g; p++)
39272          f == 0 && p == 0 || f == 0 && p == g - 1 || f == g - 1 && p == 0 || this.drawAlignmentPattern(l[f], l[p]);
39273      this.drawFormatBits(0), this.drawVersion();
39274    }
39275    // Draws two copies of the format bits (with its own error correction code)
39276    // based on the given mask and this object's error correction level field.
39277    drawFormatBits(l) {
39278      const g = this.errorCorrectionLevel.formatBits << 3 | l;
39279      let f = g;
39280      for (let M = 0; M < 10; M++)
39281        f = f << 1 ^ (f >>> 9) * 1335;
39282      const p = (g << 10 | f) ^ 21522;
39283      n(p >>> 15 == 0);
39284      for (let M = 0; M <= 5; M++)
39285        this.setFunctionModule(8, M, r(p, M));
39286      this.setFunctionModule(8, 7, r(p, 6)), this.setFunctionModule(8, 8, r(p, 7)), this.setFunctionModule(7, 8, r(p, 8));
39287      for (let M = 9; M < 15; M++)
39288        this.setFunctionModule(14 - M, 8, r(p, M));
39289      for (let M = 0; M < 8; M++)
39290        this.setFunctionModule(this.size - 1 - M, 8, r(p, M));
39291      for (let M = 8; M < 15; M++)
39292        this.setFunctionModule(8, this.size - 15 + M, r(p, M));
39293      this.setFunctionModule(8, this.size - 8, !0);
39294    }
39295    // Draws two copies of the version bits (with its own error correction code),
vendor: 18,872 bytes, lines 39296-39689
39296    // based on this object's version field, iff 7 <= version <= 40.
39297    drawVersion() {
39298      if (this.version < 7)
39299        return;
39300      let l = this.version;
39301      for (let f = 0; f < 12; f++)
39302        l = l << 1 ^ (l >>> 11) * 7973;
39303      const g = this.version << 12 | l;
39304      n(g >>> 18 == 0);
39305      for (let f = 0; f < 18; f++) {
39306        const p = r(g, f), M = this.size - 11 + f % 3, u = Math.floor(f / 3);
39307        this.setFunctionModule(M, u, p), this.setFunctionModule(u, M, p);
39308      }
39309    }
39310    // Draws a 9*9 finder pattern including the border separator,
39311    // with the center module at (x, y). Modules can be out of bounds.
39312    drawFinderPattern(l, g) {
39313      for (let f = -4; f <= 4; f++)
39314        for (let p = -4; p <= 4; p++) {
39315          const M = Math.max(Math.abs(p), Math.abs(f)), u = l + p, h = g + f;
39316          0 <= u && u < this.size && 0 <= h && h < this.size && this.setFunctionModule(u, h, M != 2 && M != 4);
39317        }
39318    }
39319    // Draws a 5*5 alignment pattern, with the center module
39320    // at (x, y). All modules must be in bounds.
39321    drawAlignmentPattern(l, g) {
39322      for (let f = -2; f <= 2; f++)
39323        for (let p = -2; p <= 2; p++)
39324          this.setFunctionModule(l + p, g + f, Math.max(Math.abs(p), Math.abs(f)) != 1);
39325    }
39326    // Sets the color of a module and marks it as a function module.
39327    // Only used by the constructor. Coordinates must be in bounds.
39328    setFunctionModule(l, g, f) {
39329      this.modules[g][l] = f, this.isFunction[g][l] = !0;
39330    }
39331    /*-- Private helper methods for constructor: Codewords and masking --*/
39332    // Returns a new byte string representing the given data with the appropriate error correction
39333    // codewords appended to it, based on this object's version and error correction level.
39334    addEccAndInterleave(l) {
39335      const g = this.version, f = this.errorCorrectionLevel;
39336      if (l.length != O.getNumDataCodewords(g, f))
39337        throw new RangeError("Invalid argument");
39338      const p = O.NUM_ERROR_CORRECTION_BLOCKS[f.ordinal][g], M = O.ECC_CODEWORDS_PER_BLOCK[f.ordinal][g], u = Math.floor(O.getNumRawDataModules(g) / 8), h = p - u % p, x = Math.floor(u / p);
39339      let _ = [];
39340      const v = O.reedSolomonComputeDivisor(M);
39341      for (let b = 0, S = 0; b < p; b++) {
39342        let k = l.slice(S, S + x - M + (b < h ? 0 : 1));
39343        S += k.length;
39344        const A = O.reedSolomonComputeRemainder(k, v);
39345        b < h && k.push(0), _.push(k.concat(A));
39346      }
39347      let y = [];
39348      for (let b = 0; b < _[0].length; b++)
39349        _.forEach((S, k) => {
39350          (b != x - M || k >= h) && y.push(S[b]);
39351        });
39352      return n(y.length == u), y;
39353    }
39354    // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire
39355    // data area of this QR Code. Function modules need to be marked off before this is called.
39356    drawCodewords(l) {
39357      if (l.length != Math.floor(O.getNumRawDataModules(this.version) / 8))
39358        throw new RangeError("Invalid argument");
39359      let g = 0;
39360      for (let f = this.size - 1; f >= 1; f -= 2) {
39361        f == 6 && (f = 5);
39362        for (let p = 0; p < this.size; p++)
39363          for (let M = 0; M < 2; M++) {
39364            const u = f - M, x = (f + 1 & 2) == 0 ? this.size - 1 - p : p;
39365            !this.isFunction[x][u] && g < l.length * 8 && (this.modules[x][u] = r(l[g >>> 3], 7 - (g & 7)), g++);
39366          }
39367      }
39368      n(g == l.length * 8);
39369    }
39370    // XORs the codeword modules in this QR Code with the given mask pattern.
39371    // The function modules must be marked and the codeword bits must be drawn
39372    // before masking. Due to the arithmetic of XOR, calling applyMask() with
39373    // the same mask value a second time will undo the mask. A final well-formed
39374    // QR Code needs exactly one (not zero, two, etc.) mask applied.
39375    applyMask(l) {
39376      if (l < 0 || l > 7)
39377        throw new RangeError("Mask value out of range");
39378      for (let g = 0; g < this.size; g++)
39379        for (let f = 0; f < this.size; f++) {
39380          let p;
39381          switch (l) {
39382            case 0:
39383              p = (f + g) % 2 == 0;
39384              break;
39385            case 1:
39386              p = g % 2 == 0;
39387              break;
39388            case 2:
39389              p = f % 3 == 0;
39390              break;
39391            case 3:
39392              p = (f + g) % 3 == 0;
39393              break;
39394            case 4:
39395              p = (Math.floor(f / 3) + Math.floor(g / 2)) % 2 == 0;
39396              break;
39397            case 5:
39398              p = f * g % 2 + f * g % 3 == 0;
39399              break;
39400            case 6:
39401              p = (f * g % 2 + f * g % 3) % 2 == 0;
39402              break;
39403            case 7:
39404              p = ((f + g) % 2 + f * g % 3) % 2 == 0;
39405              break;
39406            default:
39407              throw new Error("Unreachable");
39408          }
39409          !this.isFunction[g][f] && p && (this.modules[g][f] = !this.modules[g][f]);
39410        }
39411    }
39412    // Calculates and returns the penalty score based on state of this QR Code's current modules.
39413    // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.
39414    getPenaltyScore() {
39415      let l = 0;
39416      for (let M = 0; M < this.size; M++) {
39417        let u = !1, h = 0, x = [0, 0, 0, 0, 0, 0, 0];
39418        for (let _ = 0; _ < this.size; _++)
39419          this.modules[M][_] == u ? (h++, h == 5 ? l += O.PENALTY_N1 : h > 5 && l++) : (this.finderPenaltyAddHistory(h, x), u || (l += this.finderPenaltyCountPatterns(x) * O.PENALTY_N3), u = this.modules[M][_], h = 1);
39420        l += this.finderPenaltyTerminateAndCount(u, h, x) * O.PENALTY_N3;
39421      }
39422      for (let M = 0; M < this.size; M++) {
39423        let u = !1, h = 0, x = [0, 0, 0, 0, 0, 0, 0];
39424        for (let _ = 0; _ < this.size; _++)
39425          this.modules[_][M] == u ? (h++, h == 5 ? l += O.PENALTY_N1 : h > 5 && l++) : (this.finderPenaltyAddHistory(h, x), u || (l += this.finderPenaltyCountPatterns(x) * O.PENALTY_N3), u = this.modules[_][M], h = 1);
39426        l += this.finderPenaltyTerminateAndCount(u, h, x) * O.PENALTY_N3;
39427      }
39428      for (let M = 0; M < this.size - 1; M++)
39429        for (let u = 0; u < this.size - 1; u++) {
39430          const h = this.modules[M][u];
39431          h == this.modules[M][u + 1] && h == this.modules[M + 1][u] && h == this.modules[M + 1][u + 1] && (l += O.PENALTY_N2);
39432        }
39433      let g = 0;
39434      for (const M of this.modules)
39435        g = M.reduce((u, h) => u + (h ? 1 : 0), g);
39436      const f = this.size * this.size, p = Math.ceil(Math.abs(g * 20 - f * 10) / f) - 1;
39437      return n(0 <= p && p <= 9), l += p * O.PENALTY_N4, n(0 <= l && l <= 2568888), l;
39438    }
39439    /*-- Private helper functions --*/
39440    // Returns an ascending list of positions of alignment patterns for this version number.
39441    // Each position is in the range [0,177), and are used on both the x and y axes.
39442    // This could be implemented as lookup table of 40 variable-length lists of integers.
39443    getAlignmentPatternPositions() {
39444      if (this.version == 1)
39445        return [];
39446      {
39447        const l = Math.floor(this.version / 7) + 2, g = this.version == 32 ? 26 : Math.ceil((this.version * 4 + 4) / (l * 2 - 2)) * 2;
39448        let f = [6];
39449        for (let p = this.size - 7; f.length < l; p -= g)
39450          f.splice(1, 0, p);
39451        return f;
39452      }
39453    }
39454    // Returns the number of data bits that can be stored in a QR Code of the given version number, after
39455    // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.
39456    // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.
39457    static getNumRawDataModules(l) {
39458      if (l < O.MIN_VERSION || l > O.MAX_VERSION)
39459        throw new RangeError("Version number out of range");
39460      let g = (16 * l + 128) * l + 64;
39461      if (l >= 2) {
39462        const f = Math.floor(l / 7) + 2;
39463        g -= (25 * f - 10) * f - 55, l >= 7 && (g -= 36);
39464      }
39465      return n(208 <= g && g <= 29648), g;
39466    }
39467    // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any
39468    // QR Code of the given version number and error correction level, with remainder bits discarded.
39469    // This stateless pure function could be implemented as a (40*4)-cell lookup table.
39470    static getNumDataCodewords(l, g) {
39471      return Math.floor(O.getNumRawDataModules(l) / 8) - O.ECC_CODEWORDS_PER_BLOCK[g.ordinal][l] * O.NUM_ERROR_CORRECTION_BLOCKS[g.ordinal][l];
39472    }
39473    // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be
39474    // implemented as a lookup table over all possible parameter values, instead of as an algorithm.
39475    static reedSolomonComputeDivisor(l) {
39476      if (l < 1 || l > 255)
39477        throw new RangeError("Degree out of range");
39478      let g = [];
39479      for (let p = 0; p < l - 1; p++)
39480        g.push(0);
39481      g.push(1);
39482      let f = 1;
39483      for (let p = 0; p < l; p++) {
39484        for (let M = 0; M < g.length; M++)
39485          g[M] = O.reedSolomonMultiply(g[M], f), M + 1 < g.length && (g[M] ^= g[M + 1]);
39486        f = O.reedSolomonMultiply(f, 2);
39487      }
39488      return g;
39489    }
39490    // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.
39491    static reedSolomonComputeRemainder(l, g) {
39492      let f = g.map((p) => 0);
39493      for (const p of l) {
39494        const M = p ^ f.shift();
39495        f.push(0), g.forEach((u, h) => f[h] ^= O.reedSolomonMultiply(u, M));
39496      }
39497      return f;
39498    }
39499    // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result
39500    // are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.
39501    static reedSolomonMultiply(l, g) {
39502      if (l >>> 8 || g >>> 8)
39503        throw new RangeError("Byte out of range");
39504      let f = 0;
39505      for (let p = 7; p >= 0; p--)
39506        f = f << 1 ^ (f >>> 7) * 285, f ^= (g >>> p & 1) * l;
39507      return n(f >>> 8 == 0), f;
39508    }
39509    // Can only be called immediately after a light run is added, and
39510    // returns either 0, 1, or 2. A helper function for getPenaltyScore().
39511    finderPenaltyCountPatterns(l) {
39512      const g = l[1];
39513      n(g <= this.size * 3);
39514      const f = g > 0 && l[2] == g && l[3] == g * 3 && l[4] == g && l[5] == g;
39515      return (f && l[0] >= g * 4 && l[6] >= g ? 1 : 0) + (f && l[6] >= g * 4 && l[0] >= g ? 1 : 0);
39516    }
39517    // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().
39518    finderPenaltyTerminateAndCount(l, g, f) {
39519      return l && (this.finderPenaltyAddHistory(g, f), g = 0), g += this.size, this.finderPenaltyAddHistory(g, f), this.finderPenaltyCountPatterns(f);
39520    }
39521    // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().
39522    finderPenaltyAddHistory(l, g) {
39523      g[0] == 0 && (l += this.size), g.pop(), g.unshift(l);
39524    }
39525  };
39526  e.MIN_VERSION = 1, e.MAX_VERSION = 40, e.PENALTY_N1 = 3, e.PENALTY_N2 = 3, e.PENALTY_N3 = 40, e.PENALTY_N4 = 10, e.ECC_CODEWORDS_PER_BLOCK = [
39527    // Version: (note that index 0 is for padding, and is set to an illegal value)
39528    //0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40    Error correction level
39529    [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
39530    // Low
39531    [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
39532    // Medium
39533    [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
39534    // Quartile
39535    [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]
39536    // High
39537  ], e.NUM_ERROR_CORRECTION_BLOCKS = [
39538    // Version: (note that index 0 is for padding, and is set to an illegal value)
39539    //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40    Error correction level
39540    [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],
39541    // Low
39542    [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],
39543    // Medium
39544    [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],
39545    // Quartile
39546    [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81]
39547    // High
39548  ], t.QrCode = e;
39549  function s(d, l, g) {
39550    if (l < 0 || l > 31 || d >>> l)
39551      throw new RangeError("Value out of range");
39552    for (let f = l - 1; f >= 0; f--)
39553      g.push(d >>> f & 1);
39554  }
39555  function r(d, l) {
39556    return (d >>> l & 1) != 0;
39557  }
39558  function n(d) {
39559    if (!d)
39560      throw new Error("Assertion error");
39561  }
39562  const o = class ie {
39563    /*-- Constructor (low level) and fields --*/
39564    // Creates a new QR Code segment with the given attributes and data.
39565    // The character count (numChars) must agree with the mode and the bit buffer length,
39566    // but the constraint isn't checked. The given bit buffer is cloned and stored.
39567    constructor(l, g, f) {
39568      if (this.mode = l, this.numChars = g, this.bitData = f, g < 0)
39569        throw new RangeError("Invalid argument");
39570      this.bitData = f.slice();
39571    }
39572    /*-- Static factory functions (mid level) --*/
39573    // Returns a segment representing the given binary data encoded in
39574    // byte mode. All input byte arrays are acceptable. Any text string
39575    // can be converted to UTF-8 bytes and encoded as a byte mode segment.
39576    static makeBytes(l) {
39577      let g = [];
39578      for (const f of l)
39579        s(f, 8, g);
39580      return new ie(ie.Mode.BYTE, l.length, g);
39581    }
39582    // Returns a segment representing the given string of decimal digits encoded in numeric mode.
39583    static makeNumeric(l) {
39584      if (!ie.isNumeric(l))
39585        throw new RangeError("String contains non-numeric characters");
39586      let g = [];
39587      for (let f = 0; f < l.length; ) {
39588        const p = Math.min(l.length - f, 3);
39589        s(parseInt(l.substring(f, f + p), 10), p * 3 + 1, g), f += p;
39590      }
39591      return new ie(ie.Mode.NUMERIC, l.length, g);
39592    }
39593    // Returns a segment representing the given text string encoded in alphanumeric mode.
39594    // The characters allowed are: 0 to 9, A to Z (uppercase only), space,
39595    // dollar, percent, asterisk, plus, hyphen, period, slash, colon.
39596    static makeAlphanumeric(l) {
39597      if (!ie.isAlphanumeric(l))
39598        throw new RangeError("String contains unencodable characters in alphanumeric mode");
39599      let g = [], f;
39600      for (f = 0; f + 2 <= l.length; f += 2) {
39601        let p = ie.ALPHANUMERIC_CHARSET.indexOf(l.charAt(f)) * 45;
39602        p += ie.ALPHANUMERIC_CHARSET.indexOf(l.charAt(f + 1)), s(p, 11, g);
39603      }
39604      return f < l.length && s(ie.ALPHANUMERIC_CHARSET.indexOf(l.charAt(f)), 6, g), new ie(ie.Mode.ALPHANUMERIC, l.length, g);
39605    }
39606    // Returns a new mutable list of zero or more segments to represent the given Unicode text string.
39607    // The result may use various segment modes and switch modes to optimize the length of the bit stream.
39608    static makeSegments(l) {
39609      return l == "" ? [] : ie.isNumeric(l) ? [ie.makeNumeric(l)] : ie.isAlphanumeric(l) ? [ie.makeAlphanumeric(l)] : [ie.makeBytes(ie.toUtf8ByteArray(l))];
39610    }
39611    // Returns a segment representing an Extended Channel Interpretation
39612    // (ECI) designator with the given assignment value.
39613    static makeEci(l) {
39614      let g = [];
39615      if (l < 0)
39616        throw new RangeError("ECI assignment value out of range");
39617      if (l < 128)
39618        s(l, 8, g);
39619      else if (l < 16384)
39620        s(2, 2, g), s(l, 14, g);
39621      else if (l < 1e6)
39622        s(6, 3, g), s(l, 21, g);
39623      else
39624        throw new RangeError("ECI assignment value out of range");
39625      return new ie(ie.Mode.ECI, 0, g);
39626    }
39627    // Tests whether the given string can be encoded as a segment in numeric mode.
39628    // A string is encodable iff each character is in the range 0 to 9.
39629    static isNumeric(l) {
39630      return ie.NUMERIC_REGEX.test(l);
39631    }
39632    // Tests whether the given string can be encoded as a segment in alphanumeric mode.
39633    // A string is encodable iff each character is in the following set: 0 to 9, A to Z
39634    // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
39635    static isAlphanumeric(l) {
39636      return ie.ALPHANUMERIC_REGEX.test(l);
39637    }
39638    /*-- Methods --*/
39639    // Returns a new copy of the data bits of this segment.
39640    getData() {
39641      return this.bitData.slice();
39642    }
39643    // (Package-private) Calculates and returns the number of bits needed to encode the given segments at
39644    // the given version. The result is infinity if a segment has too many characters to fit its length field.
39645    static getTotalBits(l, g) {
39646      let f = 0;
39647      for (const p of l) {
39648        const M = p.mode.numCharCountBits(g);
39649        if (p.numChars >= 1 << M)
39650          return 1 / 0;
39651        f += 4 + M + p.bitData.length;
39652      }
39653      return f;
39654    }
39655    // Returns a new array of bytes representing the given string encoded in UTF-8.
39656    static toUtf8ByteArray(l) {
39657      l = encodeURI(l);
39658      let g = [];
39659      for (let f = 0; f < l.length; f++)
39660        l.charAt(f) != "%" ? g.push(l.charCodeAt(f)) : (g.push(parseInt(l.substring(f + 1, f + 3), 16)), f += 2);
39661      return g;
39662    }
39663  };
39664  o.NUMERIC_REGEX = /^[0-9]*$/, o.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\/:-]*$/, o.ALPHANUMERIC_CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";
39665  let L = o;
39666  t.QrSegment = o;
39667})(G1 || (G1 = {}));
39668((t) => {
39669  ((e) => {
39670    const s = class {
39671      // The QR Code can tolerate about 30% erroneous codewords
39672      /*-- Constructor and fields --*/
39673      constructor(n, o) {
39674        this.ordinal = n, this.formatBits = o;
39675      }
39676    };
39677    s.LOW = new s(0, 1), s.MEDIUM = new s(1, 0), s.QUARTILE = new s(2, 3), s.HIGH = new s(3, 2), e.Ecc = s;
39678  })(t.QrCode || (t.QrCode = {}));
39679})(G1 || (G1 = {}));
39680((t) => {
39681  ((e) => {
39682    const s = class {
39683      /*-- Constructor and fields --*/
39684      constructor(n, o) {
39685        this.modeBits = n, this.numBitsCharCount = o;
39686      }
39687      /*-- Method --*/
39688      // (Package-private) Returns the bit width of the character count field for a segment in
39689      // this mode in a QR Code at the given version number. The result is 
39689in the range [0, 16].
39690      numCharCountBits(n) {
39691        return this.numBitsCharCount[Math.floor((n + 7) / 17)];
39692      }
39693    };
39694    s.NUMERIC = new s(1, [10, 12, 14]), s.ALPHANUMERIC = new s(2, [9, 11, 13]), s.BYTE = new s(4, [8, 16, 16]), s.KANJI = new s(8, [8, 10, 12]), s.ECI = new s(7, [0, 0, 0]), e.Mode = s;
39695  })(t.QrSegment || (t.QrSegment = {}));
39696})(G1 || (G1 = {}));
39697var gt = G1;
39698/**
39699 * @license qrcode.react
39700 * Copyright (c) Paul O'Shannessy
39701 * SPDX-License-Identifier: ISC
39702 */
39703var vy = {
39704  L: gt.QrCode.Ecc.LOW,
39705  M: gt.QrCode.Ecc.MEDIUM,
39706  Q: gt.QrCode.Ecc.QUARTILE,
39707  H: gt.QrCode.Ecc.HIGH
39708}, Wi = 128, $i = "L", qi = "#FFFFFF", Ui = "#000000", Gi = !1, Ji = 1, yy = 4, wy = 0, Ty = 0.1;
39709function Ki(t, e = 0) {
39710  const s = [];
39711  return t.forEach(function(r, n) {
39712    let o = null;
39713    r.forEach(function(L, d) {
39714      if (!L && o !== null) {
39715        s.push(
39716          `M${o + e} ${n + e}h${d - o}v1H${o + e}z`
39717        ), o = null;
39718        return;
39719      }
39720      if (d === r.length - 1) {
39721        if (!L)
39722          return;
39723        o === null ? s.push(`M${d + e},${n + e} h1v1H${d + e}z`) : s.push(
39724          `M${o + e},${n + e} h${d + 1 - o}v1H${o + e}z`
39725        );
39726        return;
39727      }
39728      L && o === null && (o = d);
39729    });
39730  }), s.join("");
39731}
39732function Yi(t, e) {
39733  return t.slice().map((s, r) => r < e.y || r >= e.y + e.h ? s : s.map((n, o) => o < e.x || o >= e.x + e.w ? n : !1));
39734}
39735function Sy(t, e, s, r) {
39736  if (r == null)
39737    return null;
39738  const n = t.length + s * 2, o = Math.floor(e * Ty), L = n / e, d = (r.
39738width || o) * L, l = (r.height || o) * L, g = r.x == null ? t.length / 2 - d / 2 : r.x * L, f = r.y == null ? t.length / 2 - l / 2 : r.y * L, p = r.opacity == null ? 1 : r.opacity;
39739  let M = null;
39740  if (r.excavate) {
39741    let h = Math.floor(g), x = Math.floor(f), _ = Math.ceil(d + g - h), v = Math.ceil(l + f - x);
39742    M = { x: h, y: x, w: _, h: v };
39743  }
39744  const u = r.crossOrigin;
39745  return { x: g, y: f, h: l, w: d, excavation: M, opacity: p, crossOrigin: u };
39746}
39747function By(t, e) {
39748  return e != null ? Math.max(Math.floor(e), 0) : t ? yy : wy;
39749}
39750function Xi({
39751  value: t,
39752  level: e,
39753  minVersion: s,
39754  includeMargin: r,
39755  marginSize: n,
39756  imageSettings: o,
39757  size: L,
39758  boostLevel: d
39759}) {
39760  let l = ae.useMemo(() => {
39761    const h = (Array.isArray(t) ? t : [t]).reduce((x, _) => (x.push(...gt.QrSegment.makeSegments(_)), x), []);
39762    return gt.QrCode.encodeSegments(
39763      h,
39764      vy[e],
39765      s,
39766      void 0,
39767      void 0,
39768      d
39769    );
39770  }, [t, e, s, d]);
39771  const { cells: g, margin: f, numCells: p, calculatedImageSettings: M } = ae.useMemo(() => {
39772    let u = l.getModules();
39773    const h = By(r, n), x = u.length + h * 2, _ = Sy(
39774      u,
39775      L,
39776      h,
39777      o
39778    );
39779    return {
39780      cells: u,
39781      margin: h,
39782      numCells: x,
39783      calculatedImageSettings: _
39784    };
39785  }, [l, L, o, r, n]);
39786  return {
39787    qrcode: l,
39788    margin: f,
39789    cells: g,
39790    numCells: p,
39791    calculatedImageSettings: M
39792  };
39793}
39794var ky = (function() {
39795  try {
39796    new Path2D().addPath(new Path2D());
39797  } catch {
39798    return !1;
39799  }
39800  return !0;
39801})(), Ay = ae.forwardRef(
39802  function(e, s) {
39803    const r = e, {
39804      value: n,
39805      size: o = Wi,
39806      level: L = $i,
39807      bgColor: d = qi,
39808      fgColor: l = Ui,
39809      includeMargin: g = Gi,
39810      minVersion: f = Ji,
39811      boostLevel: p,
39812      marginSize: M,
39813      imageSettings: u
39814    } = r, x = L5(r, [
39815      "value",
39816      "size",
39817      "level",
39818      "bgColor",
39819      "fgColor",
39820      "includeMargin",
39821      "minVersion",
39822      "boostLevel",
39823      "marginSize",
39824      "imageSettings"
39825    ]), { style: _ } = x, v = L5(x, ["style"]), y = u?.src, b = ae.useRef(null), S = ae.useRef(null), k = ae.useCallback(
39826      (le) => {
39827        b.current = le, typeof s == "function" ? s(le) : s && (s.current = le);
39828      },
39829      [s]
39830    ), [A, I] = ae.useState(!1), { margin: w, cells: P, numCells: z, calculatedImageSettings: V } = Xi({
39831      value: n,
39832      level: L,
39833      minVersion: f,
39834      boostLevel: p,
39835      includeMargin: g,
39836      marginSize: M,
39837      imageSettings: u,
39838      size: o
39839    });
39840    ae.useEffect(() => {
39841      if (b.current != null) {
39842        const le = b.current, Ee = le.getContext("2d");
39843        if (!Ee)
39844          return;
39845        let Z3 = P;
39846        const ee = S.current, ye = V != null && ee !== null && ee.complete && ee.naturalHeight !== 0 && ee.naturalWidth !== 0;
39847        ye && V.excavation != null && (Z3 = Yi(
39848          P,
39849          V.excavation
39850        ));
39851        const Ke = window.devicePixelRatio || 1;
39852        le.height = le.width = o * Ke;
39853        const o1 = o / z * Ke;
39854        Ee.scale(o1, o1), Ee.fillStyle = d, Ee.fillRect(0, 0, z, z), Ee.fillStyle = l, ky ? Ee.fill(new Path2D(Ki(Z3, w))) : P.forEach(function(W3, t9) {
39855          W3.forEach(function(a9, s9) {
39856            a9 && Ee.fillRect(s9 + w, t9 + w, 1, 1);
39857          });
39858        }), V && (Ee.globalAlpha = V.opacity), ye && Ee.drawImage(
39859          ee,
39860          V.x + w,
39861          V.y + w,
39862          V.w,
39863          V.h
39864        );
39865      }
39866    }), ae.useEffect(() => {
39867      I(!1);
39868    }, [y]);
39869    const Se = o5({ height: o, width: o }, _);
39870    let Ie = null;
39871    return y != null && (Ie = /* @__PURE__ */ ae.createElement(
39872      "img",
39873      {
39874        src: y,
39875        key: y,
39876        style: { display: "none" },
39877        onLoad: () => {
39878          I(!0);
39879        },
39880        ref: S,
39881        crossOrigin: V?.crossOrigin
39882      }
39883    )), /* @__PURE__ */ ae.createElement(ae.Fragment, null, /* @__PURE__ */ ae.createElement(
39884      "canvas",
39885      o5({
39886        style: Se,
39887        height: o,
39888        width: o,
39889        ref: k,
39890        role: "img"
39891      }, v)
39892    ), Ie);
39893  }
39894);
39895Ay.displayName = "QRCodeCanvas";
39896var Qi = ae.forwardRef(
39897  function(e, s) {
39898    const r = e, {
39899      value: n,
39900      size: o = Wi,
39901      level: L = $i,
39902      bgColor: d = qi,
39903      fgColor: l = Ui,
39904      includeMargin: g = Gi,
39905      minVersion: f = Ji,
39906      boostLevel: p,
39907      title: M,
39908      marginSize: u,
39909      imageSettings: h
39910    } = r, x = L5(r, [
39911      "value",
39912      "size",
39913      "level",
39914      "bgColor",
39915      "fgColor",
39916      "includeMargin",
39917      "minVersion",
39918      "boostLevel",
39919      "title",
39920      "marginSize",
39921      "imageSettings"
39922    ]), { margin: _, cells: v, numCells: y, calculatedImageSettings: b } = Xi({
39923      value: n,
39924      level: L,
39925      minVersion: f,
39926      boostLevel: p,
39927      includeMargin: g,
39928      marginSize: u,
39929      imageSettings: h,
39930      size: o
39931    });
39932    let S = v, k = null;
39933    h != null && b != null && (b.excavation != null && (S = Yi(
39934      v,
39935      b.excavation
39936    )), k = /* @__PURE__ */ ae.createElement(
39937      "image",
39938      {
39939        href: h.src,
39940        height: b.h,
39941        width: b.w,
39942        x: b.x + _,
39943        y: b.y + _,
39944        preserveAspectRatio: "none",
39945        opacity: b.opacity,
39946        crossOrigin: b.crossOrigin
39947      }
39948    ));
39949    const A = Ki(S, _);
39950    return /* @__PURE__ */ ae.createElement(
39951      "svg",
39952      o5({
39953        height: o,
39954        width: o,
39955        viewBox: `0 0 ${y} ${y}`,
39956        ref: s,
39957        role: "img"
39958      }, x),
39959      !!M && /* @__PURE__ */ ae.createElement("title", null, M),
39960      /* @__PURE__ */ ae.createElement(
39961        "path",
39962        {
39963          fill: d,
39964          d: `M0,0 h${y}v${y}H0z`,
39965          shapeRendering: "crispEdges"
39966        }
39967      ),
39968      /* @__PURE__ */ ae.createElement("path", { fill: l, d: A, shapeRendering: "crispEdges" }),
39969      k
39970    );
39971  }
39972);
39973Qi.displayName = "QRCodeSVG";
39974const e1 = "#EFBB0F", ft = "#0B1B2B", ve = "#0056B3";
39975function X({ children: t, color: e = e1 }) {
39976  return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "dwn90", _fgB: 1790697589623, _fgD: !0, className: "flex items-start gap-2", "data-fg-dwn90": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:36:5:1257:163:e:li:ete:1", children: [
39977    /* @__PURE__ */ i(a, { _fgT: G, _fgS: "dwn91", _fgB: 1790697589623, size: 14, className: "mt-0.5 flex-shrink-0", style: { color: e }, "data-fg-dwn91": ":0:node_modules/lucide-react:37:7:1303:77:e:CheckCircle2::::::CELI" }),
39978    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dwn92", _fgB: 1790697589623, "data-fg-dwn92": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:38:7:1387:23:e:span:c", children: t })
39979  ] });
39980}
39981function W1({ children: t, color: e = e1 }) {
39982  return /* @__PURE__ */ i(
39983    a,
39984    {
39985      _fgT: "span",
39986      _fgS: "dwn94",
39987      _fgB: 1790697589623,
39988      _fgD: !0,
39989      className: "tracking-[0.15em] uppercase block mb-1",
39990      style: { color: e, fontSize: "9px", fontWeight: 700 },
39991      "data-fg-dwn94": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:45:5:1537:155:e:span:c:1",
39992      children: t
39993    }
39994  );
39995}
39996function Ny() {
39997  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn96", _fgB: 1790697589623, _fgD: !0, className: "flyer-page-v2 bg-white relative overflow-hidden flex flex-col", "data-fg-dwn96": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:59:5:1886:8191:e:div:xtetxtetxte:1", children: [
39998    /* @__PURE__ */ c(
39999      a,
40000      {
40001        _fgT: "div",
40002        _fgS: "dwn98",
40003        _fgB: 1790697589623,
40004        className: "relative px-10 pt-8 pb-8 text-white flex flex-col",
40005        style: { background: `linear-gradient(135deg, ${ft} 0%, #132B44 100%)`, height: "320px" },
40006        "data-fg-dwn98": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:61:7:2010:3095:e:div:xtetxtetetxtetxtetxtete",
40007        children: [
40008          /* @__PURE__ */ c(
40009            a,
40010            {
40011              _fgT: "div",
40012              _fgS: "dwn910",
40013              _fgB: 1790697589623,
40014              className: "absolute top-0 right-0 h-full overflow-hidden",
40015              style: { width: "55%" },
40016              "data-fg-dwn910": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:66:9:2265:1009:e:div:etxtetxte",
40017              children: [
40018                /* @__PURE__ */ i(
40019                  a,
40020                  {
40021                    _fgT: "img",
40022                    _fgS: "dwn911",
40023                    _fgB: 1790697589623,
40024                    src: "https://images.unsplash.com/photo-1768130124210-04b0b620c92d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjaXR5JTIwYnVzJTIwdHJhbnNpdCUyMHJvdXRlJTIwc3RyZWV0fGVufDF8fHx8MTc3MzgwNzY1NXww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
40025                    alt: "",
40026                    className: "w-full h-full object-cover",
40027                    style: { opacity: 0.18 },
40028                    "data-fg-dwn911": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:70:11:2393:422:e:img"
40029                  }
40030                ),
40031                /* @__PURE__ */ i(
40032                  a,
40033                  {
40034                    _fgT: "div",
40035                    _fgS: "dwn913",
40036                    _fgB: 1790697589623,
40037                    className: "absolute inset-0",
40038                    style: {
40039                      background: `linear-gradient(to right, ${ft} 0%, transparent 55%)`
40040                    },
40041                    "data-fg-dwn913": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:77:11:2864:178:e:div"
40042                  }
40043                ),
40044                /* @__PURE__ */ i(
40045                  a,
40046                  {
40047                    _fgT: "div",
40048                    _fgS: "dwn915",
40049                    _fgB: 1790697589623,
40050                    className: "absolute inset-0",
40051                    style: {
40052                      background: `linear-gradient(to top, ${ft} 0%, transparent 40%)`
40053                    },
40054                    "data-fg-dwn915": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:84:11:3083:176:e:div"
40055                  }
40056                )
40057              ]
40058            }
40059          ),
40060          /* @__PURE__ */ i(
40061            a,
40062            {
40063              _fgT: "div",
40064              _fgS: "dwn917",
40065              _fgB: 1790697589623,
40066              className: "absolute -top-20 -right-20 w-72 h-72 rounded-full opacity-10",
40067              style: { background: `radial-gradient(circle, ${e1} 0%, transparent 70%)` },
40068              "data-fg-dwn917": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:93:9:3319:187:e:div"
40069            }
40070          ),
40071          /* @__PURE__ */ i(
40072            a,
40073            {
40074              _fgT: "div",
40075              _fgS: "dwn918",
40076              _fgB: 1790697589623,
40077              className: "absolute -bottom-16 -left-16 w-56 h-56 rounded-full opacity-8",
40078              style: { background: `radial-gradient(circle, ${ve} 0%, transparent 70%)` },
40079              "data-fg-dwn918": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:97:9:3515:188:e:div"
40080            }
40081          ),
40082          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn920", _fgB: 1790697589623, className: "flex items-center justify-between relative z-10 mb-4", "data-fg-dwn920": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:103:9:3782:373:e:div:ete", children: [
40083            /* @__PURE__ */ i(
40084              a,
40085              {
40086                _fgT: "span",
40087                _fgS: "dwn921",
40088                _fgB: 1790697589623,
40089                className: "tracking-[0.2em] uppercase",
40090                style: { color: e1, fontSize: "20px", fontWeight: 700, letterSpacing: "0.15em" },
40091                "data-fg-dwn921": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:104:11:3863:216:e:span:t",
40092                children: "Fixed Route Solutions"
40093              }
40094            ),
40095            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "dwn923", _fgB: 1790697589623, src: A1, alt: "IT Curves", className: "h-8", "data-fg-dwn923": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:110:11:4090:50:e:img" })
40096          ] }),
40097          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn925", _fgB: 1790697589623, className: "relative z-10 w-16 h-[3px] rounded-full mb-5", style: { backgroundColor: e1 }, "data-fg-dwn925": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:114:9:4205:98:e:div" }),
40098          /* @__PURE__ */ c(
40099            a,
40100            {
40101              _fgT: "h1",
40102              _fgS: "dwn927",
40103              _fgB: 1790697589623,
40104              className: "relative z-10 font-[Space_Grotesk] leading-[1.1] mb-5",
40105              style: { fontSize: "32px", fontWeight: 700 },
40106              "data-fg-dwn927": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:117:9:4343:341:e:h1:tete",
40107              children: [
40108                "Plan It. Run It.",
40109                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "dwn929", _fgB: 1790697589623, "data-fg-dwn929": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:122:11:4526:6:e:br" }),
40110                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dwn930", _fgB: 1790697589623, className: "italic font-[Playfair_Display]", style: { color: e1 }, "data-fg-dwn930": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:123:11:4543:127:e:span:t", children: "Track Every Mile of It." })
40111              ]
40112            }
40113          ),
40114          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn932", _fgB: 1790697589623, className: "relative z-10 text-white/80 max-w-lg leading-relaxed", style: { fontSize: "11.5px" }, "data-fg-dwn932": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:128:9:4694:398:e:p:t", children: "A complete toolset for scheduled transit service. Build routes graphically, generate blocks and timetables, assign drivers, monitor your fleet live, and publish GTFS feeds — all inside the same platform that runs your demand-response operations." })
40115        ]
40116      }
40117    ),
40118    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn935", _fgB: 1790697589623, className: "flex-1 px-10 py-6 flex flex-col gap-5", "data-fg-dwn935": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:137:7:5157:4570:e:div:xtetxtetxtetxtetxte", children: [
40119      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn937", _fgB: 1790697589623, className: "flex gap-5", "data-fg-dwn937": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:139:9:5258:1405:e:div:ete", children: [
40120        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn938", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn938": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:140:11:5297:1044:e:div:etetete", children: [
40121          /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn939", _fgB: 1790697589623, "data-fg-dwn939": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:141:13:5348:43:e:SectionLabel:t:::::322", children: "Route Planning" }),
40122          /* @__PURE__ */ i(
40123            a,
40124            {
40125              _fgT: "h2",
40126              _fgS: "dwn941",
40127              _fgB: 1790697589623,
40128              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40129              style: { fontSize: "17px", fontWeight: 700 },
40130              "data-fg-dwn941": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:142:13:5404:212:e:h2:t",
40131              children: "Build Routes Visually"
40132            }
40133          ),
40134          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn943", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-dwn943": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:148:13:5629:273:e:p:t", children: "Map stations and waypoints graphically, create reusable route segments, and merge them into full blocks with configurable headways and time windows." }),
40135          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn945", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-dwn945": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:152:13:5915:409:e:ul:etetete", children: [
40136            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn946", _fgB: 1790697589623, "data-fg-dwn946": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:153:15:6000:69:e:Bullet:t:::::63f", children: "Establish stations and waypoints directly on the map" }),
40137            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn948", _fgB: 1790697589623, "data-fg-dwn948": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:154:15:6084:72:e:Bullet:t:::::63f", children: "Reusable route segment templates across multiple routes" }),
40138            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn950", _fgB: 1790697589623, "data-fg-dwn950": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:155:15:6171:67:e:Bullet:t:::::63f", children: "Varied headways by time of day for peak / off-peak" }),
40139            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn952", _fgB: 1790697589623, "data-fg-dwn952": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:156:15:6253:53:e:Bullet:t:::::63f", children: "Holiday and weekend block generation" })
40140          ] })
40141        ] }),
40142        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn954", _fgB: 1790697589623, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-dwn954": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:159:11:6352:296:e:div:e", children: /* @__PURE__ */ i(
40143          a,
40144          {
40145            _fgT: "img",
40146            _fgS: "dwn955",
40147            _fgB: 1790697589623,
40148            src: my,
40149            alt: "RST Builder - Route Planning Screenshot",
40150            className: "w-full h-full object-cover",
40151            "data-fg-dwn955": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:160:13:6465:166:e:img"
40152          }
40153        ) })
40154      ] }),
40155      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn957", _fgB: 1790697589623, className: "border-t border-slate-200", "data-fg-dwn957": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:169:9:6697:45:e:div" }),
40156      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn959", _fgB: 1790697589623, className: "flex gap-5", "data-fg-dwn959": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:172:9:6783:1367:e:div:ete", children: [
40157        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn960", _fgB: 1790697589623, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-dwn960": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:173:11:6822:275:e:div:e", children: /* @__PURE__ */ i(
40158          a,
40159          {
40160            _fgT: "img",
40161            _fgS: "dwn961",
40162            _fgB: 1790697589623,
40163            src: xy,
40164            alt: "Blocking Screenshot",
40165            className: "w-full h-full object-cover",
40166            "data-fg-dwn961": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:174:13:6935:145:e:img"
40167          }
40168        ) }),
40169        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn962", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn962": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:180:11:7108:1027:e:div:etetete", children: [
40170          /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn963", _fgB: 1790697589623, color: ve, "data-fg-dwn963": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:181:13:7159:50:e:SectionLabel:t:::::322", children: "Blocking" }),
40171          /* @__PURE__ */ i(
40172            a,
40173            {
40174              _fgT: "h2",
40175              _fgS: "dwn965",
40176              _fgB: 1790697589623,
40177              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40178              style: { fontSize: "17px", fontWeight: 700 },
40179              "data-fg-dwn965": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:182:13:7222:210:e:h2:t",
40180              children: "Generate Timetables"
40181            }
40182          ),
40183          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn967", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-dwn967": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:188:13:7445:241:e:p:t", children: "Review blocks in a tabular view, see schedule time at each station, and generate or edit blocks with minimal effort." }),
40184          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn969", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-dwn969": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:192:13:7699:419:e:ul:etetete", children: [
40185            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn970", _fgB: 1790697589623, color: ve, "data-fg-dwn970": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:193:15:7784:78:e:Bullet:t:::::63f", children: "Tabular view with schedule time at every station" }),
40186            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn972", _fgB: 1790697589623, color: ve, "data-fg-dwn972": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:194:15:7877:68:e:Bullet:t:::::63f", children: "Block generation from headway settings" }),
40187            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn974", _fgB: 1790697589623, color: ve, "data-fg-dwn974": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:195:15:7960:69:e:Bullet:t:::::63f", children: "Mark stations as on-request or excluded" }),
40188            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn976", _fgB: 1790697589623, color: ve, "data-fg-dwn976": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:196:15:8044:56:e:Bullet:t:::::63f", children: "Editing without rebuilding" })
40189          ] })
40190        ] })
40191      ] }),
40192      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn979", _fgB: 1790697589623, className: "border-t border-slate-200", "data-fg-dwn979": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:202:9:8184:45:e:div" }),
40193      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn981", _fgB: 1790697589623, className: "flex gap-5", "data-fg-dwn981": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:205:9:8272:1442:e:div:ete", children: [
40194        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn982", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn982": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:206:11:8311:1015:e:div:etetete", children: [
40195          /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn983", _fgB: 1790697589623, "data-fg-dwn983": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:207:13:8362:39:e:SectionLabel:t:::::322", children: "Runcutting" }),
40196          /* @__PURE__ */ i(
40197            a,
40198            {
40199              _fgT: "h2",
40200              _fgS: "dwn985",
40201              _fgB: 1790697589623,
40202              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40203              style: { fontSize: "17px", fontWeight: 700 },
40204              "data-fg-dwn985": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:208:13:8414:222:e:h2:t",
40205              children: "Segment Routes Into Driver Runs"
40206            }
40207          ),
40208          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn987", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-dwn987": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:214:13:8649:263:e:p:t", children: "View all trips, split them into manageable runs, and see total hours per driver at a glance. Select route availability by day of the week." }),
40209          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn989", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-dwn989": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:218:13:8925:384:e:ul:etetete", children: [
40210            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn990", _fgB: 1790697589623, "data-fg-dwn990": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:219:15:9010:59:e:Bullet:t:::::63f", children: "All route trips in one comprehensive table" }),
40211            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn992", _fgB: 1790697589623, "data-fg-dwn992": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:220:15:9084:51:e:Bullet:t:::::63f", children: "User-friendly tools to create runs" }),
40212            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn994", _fgB: 1790697589623, "data-fg-dwn994": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:221:15:9150:67:e:Bullet:t:::::63f", children: "Instant visibility of assigned vs. unassigned runs" }),
40213            /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn996", _fgB: 1790697589623, "data-fg-dwn996": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:222:15:9232:59:e:Bullet:t:::::63f", children: "Run summaries with total hours per weekday" })
40214          ] })
40215        ] }),
40216        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn998", _fgB: 1790697589623, className: "flex-1 flex flex-col justify-center", "data-fg-dwn998": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:225:11:9337:362:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn999", _fgB: 1790697589623, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-dwn999": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:226:13:9403:279:e:div:e", children: /* @__PURE__ */ i(
40217          a,
40218          {
40219            _fgT: "img",
40220            _fgS: "dwn9100",
40221            _fgB: 1790697589623,
40222            src: _y,
40223            alt: "Shift Scheduling Screenshot",
40224            className: "w-full h-full object-cover",
40225            "data-fg-dwn9100": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:227:15:9496:167:e:img"
40226          }
40227        ) }) })
40228      ] })
40229    ] }),
40230    /* @__PURE__ */ i(
40231      a,
40232      {
40233        _fgT: "div",
40234        _fgS: "dwn9102",
40235        _fgB: 1790697589623,
40236        className: "px-10 py-2.5 flex items-center justify-center",
40237        style: { backgroundColor: ft },
40238        "data-fg-dwn9102": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:238:7:9778:288:e:div:e",
40239        children: /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dwn9103", _fgB: 1790697589623, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-dwn9103": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:242:9:9907:146:e:span:et", children: [
40240          /* @__PURE__ */ i(a, { _fgT: J1, _fgS: "dwn9104", _fgB: 1790697589623, size: 11, "data-fg-dwn9104": ":0:node_modules/lucide-react:243:11:10006:19:e:Globe::::::Cyd3" }),
40241          " ITCurves.AI"
40242        ] })
40243      }
40244    )
40245  ] });
40246}
40247const Iy = [
40248  {
40249    icon: S1,
40250    title: "Route Planning",
40251    desc: "Visual map-based route design with reusable segments",
40252    color: e1
40253  },
40254  {
40255    icon: P3,
40256    title: "Blocking & Scheduling",
40257    desc: "Timetable generation with tabular views",
40258    color: ve
40259  },
40260  {
40261    icon: Q5,
40262    title: "Runcutting",
40263    desc: "Split routes into driver runs with hour balancing",
40264    color: "#34D399"
40265  },
40266  {
40267    icon: N3,
40268    title: "Live Dashboard",
40269    desc: "Real-time fleet tracking, passenger counts & dwell times",
40270    color: ve
40271  },
40272  {
40273    icon: e0,
40274    title: "Driver MDT",
40275    desc: "Off-the-shelf tablets with stop-by-stop navigation",
40276    color: e1
40277  },
40278  {
40279    icon: X5,
40280    title: "GTFS Integration",
40281    desc: "Publish to Google Maps, Transit App",
40282    color: "#34D399"
40283  },
40284  {
40285    icon: ai,
40286    title: "Microtransit Flex",
40287    desc: "Add deviated fixed-route service with on-demand stops",
40288    color: "#A855F7"
40289  }
40290];
40291function Py() {
40292  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9106", _fgB: 1790697589623, _fgD: !0, className: "flyer-page-v2 bg-white relative overflow-hidden flex flex-col", "data-fg-dwn9106": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:301:5:11264:8963:e:div:xtetxtetxtetxtetxtetxtetxte:1", children: [
40293    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9108", _fgB: 1790697589623, className: "px-10 pt-6 flex gap-5", "data-fg-dwn9108": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:303:7:11415:2172:e:div:xtetxte", children: [
40294      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9110", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn9110": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:305:9:11494:1038:e:div:etetete", children: [
40295        /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn9111", _fgB: 1790697589623, color: ve, "data-fg-dwn9111": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:306:11:11543:56:e:SectionLabel:t:::::322", children: "Live Dashboard" }),
40296        /* @__PURE__ */ i(
40297          a,
40298          {
40299            _fgT: "h2",
40300            _fgS: "dwn9113",
40301            _fgB: 1790697589623,
40302            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40303            style: { fontSize: "17px", fontWeight: 700 },
40304            "data-fg-dwn9113": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:307:11:11610:217:e:h2:t",
40305            children: "See Your Entire Network in Real Time"
40306          }
40307        ),
40308        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn9115", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-dwn9115": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:313:11:11838:235:e:p:t", children: "Track every vehicle, monitor passenger loads, check dwell times, and communicate with drivers — all from one screen." }),
40309        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn9117", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-dwn9117": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:317:11:12084:433:e:ul:etetete", children: [
40310          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9118", _fgB: 1790697589623, color: ve, "data-fg-dwn9118": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:318:13:12167:84:e:Bullet:t:::::63f", children: "Real-time vehicle location, speed & schedule adherence" }),
40311          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9120", _fgB: 1790697589623, color: ve, "data-fg-dwn9120": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:319:13:12264:75:e:Bullet:t:::::63f", children: "Live passenger counts from automatic counters" }),
40312          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9122", _fgB: 1790697589623, color: ve, "data-fg-dwn9122": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:320:13:12352:65:e:Bullet:t:::::63f", children: "Dwell time monitoring at every stop" }),
40313          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9124", _fgB: 1790697589623, color: ve, "data-fg-dwn9124": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:321:13:12430:71:e:Bullet:t:::::63f", children: "Direct driver communication from dispatch" })
40314        ] })
40315      ] }),
40316      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9127", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn9127": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:326:9:12569:1005:e:div:etetete", children: [
40317        /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn9128", _fgB: 1790697589623, "data-fg-dwn9128": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:327:11:12618:39:e:SectionLabel:t:::::322", children: "Driver MDT" }),
40318        /* @__PURE__ */ i(
40319          a,
40320          {
40321            _fgT: "h2",
40322            _fgS: "dwn9130",
40323            _fgB: 1790697589623,
40324            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40325            style: { fontSize: "17px", fontWeight: 700 },
40326            "data-fg-dwn9130": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:328:11:12668:227:e:h2:t",
40327            children: "Off-the-Shelf Tablets. Purpose-Built Software."
40328          }
40329        ),
40330        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn9132", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-dwn9132": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:334:11:12906:245:e:p:t", children: "Drivers get stop-by-stop navigation, real-time route updates, and automatic rider identification on standard consumer tablets." }),
40331        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn9134", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-dwn9134": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:338:11:13162:397:e:ul:etetete", children: [
40332          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9135", _fgB: 1790697589623, "data-fg-dwn9135": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:339:13:13245:62:e:Bullet:t:::::63f", children: "Consumer tablets on LTE, 5G, or any data plan" }),
40333          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9137", _fgB: 1790697589623, "data-fg-dwn9137": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:340:13:13320:74:e:Bullet:t:::::63f", children: "Rider onboarding via facial recognition, QR, or Bluetooth" }),
40334          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9139", _fgB: 1790697589623, "data-fg-dwn9139": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:341:13:13407:64:e:Bullet:t:::::63f", children: "Restricted actions to reduce distracted driving" }),
40335          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9141", _fgB: 1790697589623, "data-fg-dwn9141": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:342:13:13484:59:e:Bullet:t:::::63f", children: "Verbal communication for hands-free safety" })
40336        ] })
40337      ] })
40338    ] }),
40339    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9144", _fgB: 1790697589623, className: "px-10 pt-3 pb-2", "data-fg-dwn9144": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:348:7:13636:295:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9145", _fgB: 1790697589623, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-dwn9145": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:349:9:13678:240:e:div:e", children: /* @__PURE__ */ i(
40340      a,
40341      {
40342        _fgT: "img",
40343        _fgS: "dwn9146",
40344        _fgB: 1790697589623,
40345        src: t0,
40346        alt: "Live Dashboard",
40347        className: "w-full h-auto object-cover",
40348        "data-fg-dwn9146": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:350:11:13767:136:e:img"
40349      }
40350    ) }) }),
40351    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9148", _fgB: 1790697589623, className: "px-10", "data-fg-dwn9148": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:359:7:13961:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9149", _fgB: 1790697589623, className: "border-t border-slate-200", "data-fg-dwn9149": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:360:9:13993:45:e:div" }) }),
40352    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9151", _fgB: 1790697589623, className: "px-10 py-3 flex gap-5", "data-fg-dwn9151": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:364:7:14112:1962:e:div:xtetxte", children: [
40353      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9153", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn9153": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:366:9:14181:866:e:div:etetete", children: [
40354        /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn9154", _fgB: 1790697589623, color: ve, "data-fg-dwn9154": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:367:11:14230:58:e:SectionLabel:t:::::322", children: "GTFS Integration" }),
40355        /* @__PURE__ */ i(
40356          a,
40357          {
40358            _fgT: "h2",
40359            _fgS: "dwn9156",
40360            _fgB: 1790697589623,
40361            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40362            style: { fontSize: "16px", fontWeight: 700 },
40363            "data-fg-dwn9156": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:368:11:14299:215:e:h2:t",
40364            children: "Publish to Google Maps & Rider App"
40365          }
40366        ),
40367        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn9158", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10px" }, "data-fg-dwn9158": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:374:11:14525:259:e:p:t", children: "Upload GTFS manually or connect for automatic publishing to automatically publish feeds. Enable GTFS-RT feeds for real-time vehicle locations." }),
40368        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn9160", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-dwn9160": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:378:11:14795:237:e:ul:ete", children: [
40369          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9161", _fgB: 1790697589623, color: ve, "data-fg-dwn9161": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:379:13:14879:62:e:Bullet:t:::::63f", children: "Manual or automatic GTFS uploads" }),
40370          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9163", _fgB: 1790697589623, color: ve, "data-fg-dwn9163": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:380:13:14954:62:e:Bullet:t:::::63f", children: "GTFS-RT live tracking for riders" })
40371        ] })
40372      ] }),
40373      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9166", _fgB: 1790697589623, className: "flex-1 flex flex-col", "data-fg-dwn9166": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:385:9:15086:975:e:div:etetete", children: [
40374        /* @__PURE__ */ i(a, { _fgT: W1, _fgS: "dwn9167", _fgB: 1790697589623, color: "#A855F7", "data-fg-dwn9167": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:386:11:15135:62:e:SectionLabel:t:::::322", children: "Microtransit Flex" }),
40375        /* @__PURE__ */ i(
40376          a,
40377          {
40378            _fgT: "h2",
40379            _fgS: "dwn9169",
40380            _fgB: 1790697589623,
40381            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40382            style: { fontSize: "16px", fontWeight: 700 },
40383            "data-fg-dwn9169": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:387:11:15208:216:e:h2:t",
40384            children: "Add Microtransit to Any Fixed Route"
40385          }
40386        ),
40387        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn9171", _fgB: 1790697589623, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10px" }, "data-fg-dwn9171": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:393:11:15435:225:e:p:t", children: "Define deviation zones around fixed routes and let the system auto-schedule on-demand pickups and drop-offs." }),
40388        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "dwn9173", _fgB: 1790697589623, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-dwn9173": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:397:11:15671:375:e:ul:etete", children: [
40389          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9174", _fgB: 1790697589623, color: "#A855F7", "data-fg-dwn9174": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:398:13:15755:83:e:Bullet:t:::::63f", children: "On-demand stations with rider-initiated deviations" }),
40390          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9176", _fgB: 1790697589623, color: "#A855F7", "data-fg-dwn9176": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:399:13:15851:84:e:Bullet:t:::::63f", children: "Geographic deviation zones with configurable limits" }),
40391          /* @__PURE__ */ i(a, { _fgT: X, _fgS: "dwn9178", _fgB: 1790697589623, color: "#A855F7", "data-fg-dwn9178": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:400:13:15948:82:e:Bullet:t:::::63f", children: "Virtual stop integration into fixed route network" })
40392        ] })
40393      ] })
40394    ] }),
40395    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9181", _fgB: 1790697589623, className: "px-10", "data-fg-dwn9181": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:406:7:16104:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9182", _fgB: 1790697589623, className: "border-t border-slate-200", "data-fg-dwn9182": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:407:9:16136:45:e:div" }) }),
40396    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9184", _fgB: 1790697589623, className: "px-10 py-3", "data-fg-dwn9184": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:411:7:16250:1252:e:div:ete", children: [
40397      /* @__PURE__ */ i(
40398        a,
40399        {
40400          _fgT: "h3",
40401          _fgS: "dwn9185",
40402          _fgB: 1790697589623,
40403          className: "font-[Space_Grotesk] text-slate-900 mb-3 text-center",
40404          style: { fontSize: "14px", fontWeight: 700 },
40405          "data-fg-dwn9185": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:412:9:16287:214:e:h3:t",
40406          children: "Complete Fixed Route Capabilities at a Glance"
40407        }
40408      ),
40409      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9187", _fgB: 1790697589623, className: "grid grid-cols-4 gap-2", "data-fg-dwn9187": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:418:9:16510:979:e:div:x", children: Iy.map((t, e) => /* @__PURE__ */ c(
40410        a,
40411        {
40412          _fgT: "div",
40413          _fgS: "dwn9189",
40414          _fgB: 1790697589623,
40415          className: "rounded-lg px-3 py-2.5 border flex items-start gap-2",
40416          style: { borderColor: `${t.color}30`, backgroundColor: `${t.color}08` },
40417          "data-fg-dwn9189": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:420:13:16605:855:e:div:ete",
40418          children: [
40419            /* @__PURE__ */ i(
40420              a,
40421              {
40422                _fgT: "div",
40423                _fgS: "dwn9190",
40424                _fgB: 1790697589623,
40425                className: "w-6 h-6 rounded-md flex items-center justify-center flex-shrink-0 mt-0.5",
40426                style: { backgroundColor: `${t.color}18`, color: t.color },
40427                "data-fg-dwn9190": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:425:15:16830:279:e:div:e",
40428                children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "dwn9191", _fgB: 1790697589623, size: 13, strokeWidth: 2.2, "data-fg-dwn9191": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:429:17:17048:40:e:cap.icon" })
40429              }
40430            ),
40431            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9192", _fgB: 1790697589623, "data-fg-dwn9192": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:431:15:17124:317:e:div:ete", children: [
40432              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9193", _fgB: 1790697589623, className: "text-slate-800", style: { fontSize: "9.5px", fontWeight: 700 }, "data-fg-dwn9193": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:432:17:17146:132:e:div:x", children: t.title }),
40433              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9195", _fgB: 1790697589623, className: "text-slate-500 leading-snug", style: { fontSize: "8px" }, "data-fg-dwn9195": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:435:17:17295:125:e:div:x", children: t.desc })
40434            ] })
40435          ]
40436        },
40437        e
40438      )) })
40439    ] }),
40440    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9198", _fgB: 1790697589623, className: "mt-auto", "data-fg-dwn9198": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:445:7:17555:2661:e:div:e", children: /* @__PURE__ */ c(
40441      a,
40442      {
40443        _fgT: "div",
40444        _fgS: "dwn9199",
40445        _fgB: 1790697589623,
40446        className: "px-10 py-5 text-white relative overflow-hidden",
40447        style: { background: `linear-gradient(135deg, ${ft} 0%, #132B44 100%)` },
40448        "data-fg-dwn9199": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:446:9:17589:2614:e:div:xtete",
40449        children: [
40450          /* @__PURE__ */ i(
40451            a,
40452            {
40453              _fgT: "div",
40454              _fgS: "dwn9201",
40455              _fgB: 1790697589623,
40456              className: "absolute -top-10 -right-10 w-48 h-48 rounded-full opacity-15",
40457              style: { background: `radial-gradient(circle, ${e1} 0%, transparent 70%)` },
40458              "data-fg-dwn9201": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:451:11:17803:193:e:div"
40459            }
40460          ),
40461          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9202", _fgB: 1790697589623, className: "flex items-start justify-between relative z-10", "data-fg-dwn9202": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:456:11:18008:2180:e:div:ete", children: [
40462            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9203", _fgB: 1790697589623, className: "flex-1", "data-fg-dwn9203": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:457:13:18085:1494:e:div:etetxte", children: [
40463              /* @__PURE__ */ c(
40464                a,
40465                {
40466                  _fgT: "h3",
40467                  _fgS: "dwn9204",
40468                  _fgB: 1790697589623,
40469                  className: "font-[Space_Grotesk] mb-1",
40470                  style: { fontSize: "18px", fontWeight: 700 },
40471                  "data-fg-dwn9204": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:458:15:18124:341:e:h3:tste",
40472                  children: [
40473                    "See Fixed Route Tools",
40474                    " ",
40475                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dwn9207", _fgB: 1790697589623, className: "italic font-[Playfair_Display]", style: { color: e1 }, "data-fg-dwn9207": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:463:17:18319:126:e:span:t", children: "In Action." })
40476                  ]
40477                }
40478              ),
40479              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "dwn9209", _fgB: 1790697589623, className: "text-white/70", style: { fontSize: "10.5px" }, "data-fg-dwn9209": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:467:15:18480:221:e:p:t", children: "We'll walk you through route planning, blocking, live tracking, and GTFS publishing using your actual routes." }),
40480              /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9212", _fgB: 1790697589623, className: "flex items-center gap-4 mt-3 pt-3 border-t border-white/10", "data-fg-dwn9212": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:473:15:18755:805:e:div:ete", children: [
40481                /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "dwn9213", _fgB: 1790697589623, src: A1, alt: "IT Curves", className: "h-6", "data-fg-dwn9213": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:474:17:18848:50:e:img" }),
40482                /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9214", _fgB: 1790697589623, className: "flex items-center gap-4", "data-fg-dwn9214": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:475:17:18915:624:e:div:etete", children: [
40483                  /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dwn9215", _fgB: 1790697589623, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-dwn9215": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:476:19:18975:166:e:span:et", children: [
40484                    /* @__PURE__ */ i(a, { _fgT: J1, _fgS: "dwn9216", _fgB: 1790697589623, size: 11, "data-fg-dwn9216": ":0:node_modules/lucide-react:477:21:19084:19:e:Globe::::::Cyd3" }),
40485                    " ITCurves.AI"
40486                  ] }),
40487                  /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dwn9218", _fgB: 1790697589623, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-dwn9218": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:479:19:19160:167:e:span:et", children: [
40488                    /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "dwn9219", _fgB: 1790697589623, size: 11, "data-fg-dwn9219": ":0:node_modules/lucide-react:480:21:19269:19:e:Phone::::::DmpI" }),
40489                    " 301-208-2222"
40490                  ] }),
40491                  /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "dwn9221", _fgB: 1790697589623, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-dwn9221": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:482:19:19346:170:e:span:et", children: [
40492                    /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "dwn9222", _fgB: 1790697589623, size: 11, "data-fg-dwn9222": ":0:node_modules/lucide-react:483:21:19455:18:e:Mail::::::D4VR" }),
40493                    " [email protected]"
40494                  ] })
40495                ] })
40496              ] })
40497            ] }),
40498            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "dwn9224", _fgB: 1790697589623, className: "flex flex-col items-center gap-1.5 flex-shrink-0 ml-6", "data-fg-dwn9224": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:489:13:19593:578:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9225", _fgB: 1790697589623, className: "bg-white rounded-lg p-2 flex flex-col items-center gap-1.5", "data-fg-dwn9225": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:490:15:19679:473:e:div:ete", children: [
40499              /* @__PURE__ */ i(
40500                a,
40501                {
40502                  _fgT: Qi,
40503                  _fgS: "dwn9226",
40504                  _fgB: 1790697589623,
40505                  value: "https://www.itcurves.ai/meet",
40506                  size: 56,
40507                  bgColor: "#FFFFFF",
40508                  fgColor: ft,
40509                  level: "M",
40510                  "data-fg-dwn9226": ":0:node_modules/qrcode.react:491:17:19772:209:e:QRCodeSVG::::::fH8"
40511                }
40512              ),
40513              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "dwn9227", _fgB: 1790697589623, className: "text-[9px] text-slate-700", style: { fontWeight: 600 }, "data-fg-dwn9227": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:498:17:19998:133:e:span:t", children: "Schedule a Meeting" })
40514            ] }) })
40515          ] })
40516        ]
40517      }
40518    ) })
40519  ] });
40520}
40521function Cy() {
40522  return /* @__PURE__ */ c(C, { children: [
40523    /* @__PURE__ */ i("style", { "data-fg-dwn9231": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:517:7:20526:1332:e:style:s", children: `
40524        /* Screen preview: center pages with a gap */
40525        .flyer-wrapper-v2 {
40526          display: flex;
40527          flex-direction: column;
40528          align-items: center;
40529          gap: 40px;
40530          padding: 100px 20px 40px;
40531          background: #e5e7eb;
40532          min-height: 100vh;
40533        }
40534
40535        .flyer-page-v2 {
40536          width: 8.5in;
40537          height: 11in;
40538          background: white;
40539          box-shadow: 0 4px 24px rgba(0,0,0,0.15);
40540          overflow: hidden;
40541          flex-shrink: 0;
40542        }
40543
40544        @media print {
40545          @page {
40546            size: 8.5in 11in;
40547            margin: 0;
40548          }
40549
40550          body, html {
40551            margin: 0 !important;
40552            padding: 0 !important;
40553            background: white !important;
40554          }
40555
40556          .flyer-wrapper-v2 {
40557            padding: 0;
40558            gap: 0;
40559            background: white;
40560          }
40561
40562          .flyer-page-v2 {
40563            box-shadow: none;
40564            page-break-after: always;
40565            break-after: page;
40566          }
40567
40568          .flyer-page-v2:last-child {
40569            page-break-after: avoid;
40570            break-after: avoid;
40571          }
40572
40573          /* Hide navbar, footer, chatbot for print */
40574          nav, .chatbot-wrapper, footer {
40575            display: none !important;
40576          }
40577        }
40578      ` }),
40579    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "dwn9233", _fgB: 1790697589623, className: "flyer-wrapper-v2", "data-fg-dwn9233": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:574:7:21866:87:e:div:ete", children: [
40580      /* @__PURE__ */ i(a, { _fgT: Ny, _fgS: "dwn9234", _fgB: 1790697589623, "data-fg-dwn9234": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:575:9:21909:11:e:PageOne::::::CqTu" }),
40581      /* @__PURE__ */ i(a, { _fgT: Py, _fgS: "dwn9235", _fgB: 1790697589623, "data-fg-dwn9235": ":0:/src/app/pages/FixedRouteFlyerPageV2.tsx:576:9:21929:11:e:PageTwo::::::Crn4" })
40582    ] })
40583  ] });
40584}
40585const Fy = globalThis.__GLOBALS__.getAssetURL("4f5c23170c6f93c8750f473ab87c7bd6a08bb78e.png"), Ey = globalThis.__GLOBALS__.getAssetURL("c57d670838ac4dac80699f33cf7d5bd9ca8a5d6c.png"), e9 = globalThis.__GLOBALS__.getAssetURL("02f555a394b4b7355f0ceae7f956da9d9ee0738b.png"), Ry = globalThis.__GLOBALS__.getAssetURL("1ee16db4ab066b796dfb4516e8b8961cd8827611.png"), Dy = globalThis.__GLOBALS__.getAssetURL("ab8a48a56e97f66d0ae68ce4139a51a09f2fcfa3.png"), b1 = "#EFBB0F", c5 = "#0B1B2B", je = "#0056B3";
40586function W({ children: t, color: e = b1 }) {
40587  return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "b9ta0", _fgB: 1790697589540, _fgD: !0, className: "flex items-start gap-2", "data-fg-b9ta0": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:39:5:1458:163:e:li:ete:1", children: [
40588    /* @__PURE__ */ i(a, { _fgT: G, _fgS: "b9ta1", _fgB: 1790697589540, size: 14, className: "mt-0.5 flex-shrink-0", style: { color: e }, "data-fg-b9ta1": ":0:node_modules/lucide-react:40:7:1504:77:e:CheckCircle2::::::CELI" }),
40589    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta2", _fgB: 1790697589540, "data-fg-b9ta2": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:41:7:1588:23:e:span:c", children: t })
40590  ] });
40591}
40592function $1({ children: t, color: e = b1 }) {
40593  return /* @__PURE__ */ i(
40594    a,
40595    {
40596      _fgT: "span",
40597      _fgS: "b9ta4",
40598      _fgB: 1790697589540,
40599      _fgD: !0,
40600      className: "tracking-[0.15em] uppercase block mb-1",
40601      style: { color: e, fontSize: "9px", fontWeight: 700 },
40602      "data-fg-b9ta4": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:48:5:1738:155:e:span:c:1",
40603      children: t
40604    }
40605  );
40606}
40607function zy() {
40608  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta6", _fgB: 1790697589540, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-b9ta6": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:62:5:2087:7866:e:div:xtetxtetxte:1", children: [
40609    /* @__PURE__ */ c(
40610      a,
40611      {
40612        _fgT: "div",
40613        _fgS: "b9ta8",
40614        _fgB: 1790697589540,
40615        className: "relative px-10 pt-8 pb-7 text-white flex flex-col",
40616        style: { background: `linear-gradient(135deg, ${c5} 0%, #132B44 100%)` },
40617        "data-fg-b9ta8": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:64:7:2208:1996:e:div:xtetetxtetxtetxtete",
40618        children: [
40619          /* @__PURE__ */ i(
40620            a,
40621            {
40622              _fgT: "div",
40623              _fgS: "b9ta10",
40624              _fgB: 1790697589540,
40625              className: "absolute -top-20 -right-20 w-72 h-72 rounded-full opacity-10",
40626              style: { background: `radial-gradient(circle, ${b1} 0%, transparent 70%)` },
40627              "data-fg-b9ta10": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:69:9:2418:187:e:div"
40628            }
40629          ),
40630          /* @__PURE__ */ i(
40631            a,
40632            {
40633              _fgT: "div",
40634              _fgS: "b9ta11",
40635              _fgB: 1790697589540,
40636              className: "absolute -bottom-16 -left-16 w-56 h-56 rounded-full opacity-8",
40637              style: { background: `radial-gradient(circle, ${je} 0%, transparent 70%)` },
40638              "data-fg-b9ta11": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:73:9:2614:188:e:div"
40639            }
40640          ),
40641          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta13", _fgB: 1790697589540, className: "flex items-center justify-between relative z-10 mb-4", "data-fg-b9ta13": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:79:9:2881:373:e:div:ete", children: [
40642            /* @__PURE__ */ i(
40643              a,
40644              {
40645                _fgT: "span",
40646                _fgS: "b9ta14",
40647                _fgB: 1790697589540,
40648                className: "tracking-[0.2em] uppercase",
40649                style: { color: b1, fontSize: "20px", fontWeight: 700, letterSpacing: "0.15em" },
40650                "data-fg-b9ta14": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:80:11:2962:216:e:span:t",
40651                children: "Paratransit Solutions"
40652              }
40653            ),
40654            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "b9ta16", _fgB: 1790697589540, src: A1, alt: "IT Curves", className: "h-8", "data-fg-b9ta16": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:86:11:3189:50:e:img" })
40655          ] }),
40656          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta18", _fgB: 1790697589540, className: "relative z-10 w-16 h-[3px] rounded-full mb-4", style: { backgroundColor: b1 }, "data-fg-b9ta18": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:90:9:3304:98:e:div" }),
40657          /* @__PURE__ */ c(
40658            a,
40659            {
40660              _fgT: "h1",
40661              _fgS: "b9ta20",
40662              _fgB: 1790697589540,
40663              className: "relative z-10 font-[Space_Grotesk] leading-[1.1] mb-3",
40664              style: { fontSize: "32px", fontWeight: 700 },
40665              "data-fg-b9ta20": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:93:9:3442:347:e:h1:tete",
40666              children: [
40667                "Smarter Dispatch. Better Data.",
40668                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "b9ta22", _fgB: 1790697589540, "data-fg-b9ta22": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:98:11:3639:6:e:br" }),
40669                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta23", _fgB: 1790697589540, className: "italic font-[Playfair_Display]", style: { color: b1 }, "data-fg-b9ta23": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:99:11:3656:119:e:span:t", children: "Happier Riders." })
40670              ]
40671            }
40672          ),
40673          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta25", _fgB: 1790697589540, className: "relative z-10 text-white/80 max-w-lg leading-snug", style: { fontSize: "11.5px" }, "data-fg-b9ta25": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:104:9:3799:392:e:p:t", children: "A complete demand-response platform for paratransit operators. Optimize shared rides with our patented ERSA algorithm, let riders self-serve through app, web, and IVR, stay ADA-compliant, and keep every trip audit-ready — all from one system." })
40674        ]
40675      }
40676    ),
40677    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta28", _fgB: 1790697589540, className: "flex-1 px-10 py-6 flex flex-col gap-5", "data-fg-b9ta28": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:113:7:4249:5290:e:div:xtetxtetxtetxtetxte", children: [
40678      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta30", _fgB: 1790697589540, className: "flex gap-5", "data-fg-b9ta30": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:115:9:4351:1681:e:div:etxte", children: [
40679        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta31", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta31": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:116:11:4390:1126:e:div:etetete", children: [
40680          /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta32", _fgB: 1790697589540, "data-fg-b9ta32": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:117:13:4441:55:e:SectionLabel:t:::::Kux", children: "Demand-Response Scheduling" }),
40681          /* @__PURE__ */ i(
40682            a,
40683            {
40684              _fgT: "h2",
40685              _fgS: "b9ta34",
40686              _fgB: 1790697589540,
40687              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40688              style: { fontSize: "17px", fontWeight: 700 },
40689              "data-fg-b9ta34": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:118:13:4509:227:e:h2:t",
40690              children: "Move More Riders With Fewer Vehicles"
40691            }
40692          ),
40693          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta36", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta36": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:124:13:4749:292:e:p:t", children: "Our patented ERSA algorithm processes thousands of daily trip requests into efficient shared-ride manifests, honoring every SLA constraint automatically." }),
40694          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta38", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta38": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:129:13:5054:445:e:ul:etetete", children: [
40695            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta39", _fgB: 1790697589540, "data-fg-b9ta39": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:130:15:5139:76:e:Bullet:t:::::CGOE", children: "Patented ERSA algorithm builds optimized shared-ride routes" }),
40696            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta41", _fgB: 1790697589540, "data-fg-b9ta41": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:131:15:5230:78:e:Bullet:t:::::CGOE", children: "Honors pickup windows, max ride times, and driver hour limits" }),
40697            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta43", _fgB: 1790697589540, "data-fg-b9ta43": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:132:15:5323:79:e:Bullet:t:::::CGOE", children: "Same-day will-call trips inserted without rebuilding manifests" }),
40698            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta45", _fgB: 1790697589540, "data-fg-b9ta45": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:133:15:5417:64:e:Bullet:t:::::CGOE", children: "Drag-and-drop route adjustments for dispatchers" })
40699          ] })
40700        ] }),
40701        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta48", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-b9ta48": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:137:11:5585:432:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta49", _fgB: 1790697589540, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta49": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:138:13:5666:334:e:div:e", children: /* @__PURE__ */ i(
40702          a,
40703          {
40704            _fgT: Le,
40705            _fgS: "b9ta50",
40706            _fgB: 1790697589540,
40707            src: ri,
40708            alt: "Fleet of paratransit vehicles",
40709            className: "w-full h-full object-cover",
40710            style: { maxHeight: "180px" },
40711            "data-fg-b9ta50": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:139:15:5759:222:e:ImageWithFallback::::::BDpS"
40712          }
40713        ) }) })
40714      ] }),
40715      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta52", _fgB: 1790697589540, className: "border-t border-slate-200", "data-fg-b9ta52": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:150:9:6066:45:e:div" }),
40716      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta54", _fgB: 1790697589540, className: "flex gap-5", "data-fg-b9ta54": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:153:9:6162:1454:e:div:ete", children: [
40717        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta55", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta55": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:154:11:6201:295:e:div:e", children: /* @__PURE__ */ i(
40718          a,
40719          {
40720            _fgT: Le,
40721            _fgS: "b9ta56",
40722            _fgB: 1790697589540,
40723            src: Fy,
40724            alt: "Rider using mobile app",
40725            className: "w-full h-full object-cover",
40726            "data-fg-b9ta56": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:155:13:6314:165:e:ImageWithFallback::::::BDpS"
40727          }
40728        ) }),
40729        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta57", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta57": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:161:11:6507:1094:e:div:etetete", children: [
40730          /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta58", _fgB: 1790697589540, color: je, "data-fg-b9ta58": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:162:13:6558:60:e:SectionLabel:t:::::Kux", children: "Rider Self-Service" }),
40731          /* @__PURE__ */ i(
40732            a,
40733            {
40734              _fgT: "h2",
40735              _fgS: "b9ta60",
40736              _fgB: 1790697589540,
40737              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40738              style: { fontSize: "17px", fontWeight: 700 },
40739              "data-fg-b9ta60": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:163:13:6631:217:e:h2:t",
40740              children: "Let Riders Help Themselves"
40741            }
40742          ),
40743          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta62", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta62": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:169:13:6861:261:e:p:t", children: "The Where's My Ride app, Transigo web portal, and IVR phone system let riders book, confirm, cancel, and track rides without calling in." }),
40744          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta64", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta64": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:173:13:7135:449:e:ul:etetete", children: [
40745            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta65", _fgB: 1790697589540, color: je, "data-fg-b9ta65": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:174:15:7220:82:e:Bullet:t:::::CGOE", children: "Book, confirm, or cancel via app, web portal, or IVR" }),
40746            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta67", _fgB: 1790697589540, color: je, "data-fg-b9ta67": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:175:15:7317:78:e:Bullet:t:::::CGOE", children: "Real-time vehicle tracking and ETA notifications" }),
40747            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta69", _fgB: 1790697589540, color: je, "data-fg-b9ta69": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:176:15:7410:72:e:Bullet:t:::::CGOE", children: "Accessible for all ages and ability levels" }),
40748            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta71", _fgB: 1790697589540, color: je, "data-fg-b9ta71": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:177:15:7497:69:e:Bullet:t:::::CGOE", children: "Reduces call center volume and no-shows" })
40749          ] })
40750        ] })
40751      ] }),
40752      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta74", _fgB: 1790697589540, className: "border-t border-slate-200", "data-fg-b9ta74": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:183:9:7650:45:e:div" }),
40753      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta76", _fgB: 1790697589540, className: "flex gap-5", "data-fg-b9ta76": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:186:9:7750:1776:e:div:ete", children: [
40754        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta77", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta77": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:187:11:7789:363:e:div:e", children: /* @__PURE__ */ i(
40755          a,
40756          {
40757            _fgT: Le,
40758            _fgS: "b9ta78",
40759            _fgB: 1790697589540,
40760            src: Ry,
40761            alt: "Eligibility management program dashboard",
40762            className: "w-full h-full object-cover",
40763            style: { maxHeight: "180px" },
40764            "data-fg-b9ta78": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:188:13:7902:233:e:ImageWithFallback::::::BDpS"
40765          }
40766        ) }),
40767        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta79", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta79": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:195:11:8163:1348:e:div:etetete", children: [
40768          /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta80", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta80": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:196:13:8214:67:e:SectionLabel:t:::::Kux", children: "Eligibility Management" }),
40769          /* @__PURE__ */ i(
40770            a,
40771            {
40772              _fgT: "h2",
40773              _fgS: "b9ta82",
40774              _fgB: 1790697589540,
40775              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40776              style: { fontSize: "17px", fontWeight: 700 },
40777              "data-fg-b9ta82": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:197:13:8294:229:e:h2:t",
40778              children: "Flexible Eligibility, Fully Integrated"
40779            }
40780          ),
40781          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta84", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta84": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:203:13:8536:313:e:p:t", children: "Can be deployed as a standalone module or fully integrated with scheduling — configured to your agency's specific rules for geography, rider needs, and service constraints." }),
40782          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta86", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta86": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:208:13:8862:632:e:ul:etetetete", children: [
40783            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta87", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta87": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:209:15:8947:98:e:Bullet:t:::::CGOE", children: "Easy online rider application process, integrated with scheduling" }),
40784            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta89", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta89": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:210:15:9060:102:e:Bullet:t:::::CGOE", children: "Configure eligibility constraints by rider needs, geography, and more" }),
40785            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta91", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta91": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:211:15:9177:110:e:Bullet:t:::::CGOE", children: "Alerts riders and administrators to renewals, expirations, and status changes" }),
40786            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta93", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta93": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:212:15:9302:88:e:Bullet:t:::::CGOE", children: "Customizable forms, reports, and application monitoring" }),
40787            /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta95", _fgB: 1790697589540, color: "#14B8A6", "data-fg-b9ta95": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:213:15:9405:71:e:Bullet:t:::::CGOE", children: "Can be deployed as a standalone system" })
40788          ] })
40789        ] })
40790      ] })
40791    ] }),
40792    /* @__PURE__ */ c(
40793      a,
40794      {
40795        _fgT: "div",
40796        _fgS: "b9ta98",
40797        _fgB: 1790697589540,
40798        className: "px-10 py-2.5 flex items-center justify-between",
40799        style: { backgroundColor: c5 },
40800        "data-fg-b9ta98": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:220:7:9590:352:e:div:ete",
40801        children: [
40802          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta99", _fgB: 1790697589540, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-b9ta99": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:224:9:9720:102:e:span:t", children: "www.ITCurves.AI" }),
40803          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta101", _fgB: 1790697589540, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-b9ta101": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:227:9:9831:98:e:span:t", children: "Page 1 of 2" })
40804        ]
40805      }
40806    )
40807  ] });
40808}
40809function jy() {
40810  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta103", _fgB: 1790697589540, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-b9ta103": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:286:5:11248:9547:e:div:xtetxtetxtetxtetxtetxtetxtetxte:1", children: [
40811    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta105", _fgB: 1790697589540, className: "px-10 pt-8 flex gap-5", "data-fg-b9ta105": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:288:7:11410:1518:e:div:ete", children: [
40812      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta106", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta106": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:289:9:11458:1089:e:div:etetete", children: [
40813        /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta107", _fgB: 1790697589540, color: je, "data-fg-b9ta107": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:290:11:11507:71:e:SectionLabel:t:::::Kux", children: "Real-Time Tracking & Dispatch" }),
40814        /* @__PURE__ */ i(
40815          a,
40816          {
40817            _fgT: "h2",
40818            _fgS: "b9ta109",
40819            _fgB: 1790697589540,
40820            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40821            style: { fontSize: "17px", fontWeight: 700 },
40822            "data-fg-b9ta109": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:291:11:11589:224:e:h2:t",
40823            children: "See Every Vehicle, Every Ride, in Real Time"
40824          }
40825        ),
40826        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta111", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta111": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:297:11:11824:263:e:p:t", children: "Dispatchers see every paratransit vehicle on a live map with real-time status. Late-pickup alerts and accurate ETAs are sent directly to riders." }),
40827        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta113", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta113": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:301:11:12098:434:e:ul:etetete", children: [
40828          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta114", _fgB: 1790697589540, color: je, "data-fg-b9ta114": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:302:13:12181:73:e:Bullet:t:::::CGOE", children: "Live map view with real-time vehicle status" }),
40829          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta116", _fgB: 1790697589540, color: je, "data-fg-b9ta116": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:303:13:12267:73:e:Bullet:t:::::CGOE", children: "Automatic late-pickup alerts to dispatchers" }),
40830          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta118", _fgB: 1790697589540, color: je, "data-fg-b9ta118": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:304:13:12353:71:e:Bullet:t:::::CGOE", children: "Accurate ETA notifications sent to riders" }),
40831          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta120", _fgB: 1790697589540, color: je, "data-fg-b9ta120": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:305:13:12437:79:e:Bullet:t:::::CGOE", children: "Historical trip playback for complaint resolution" })
40832        ] })
40833      ] }),
40834      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta122", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta122": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:308:9:12556:359:e:div:e", children: /* @__PURE__ */ i(
40835        a,
40836        {
40837          _fgT: Le,
40838          _fgS: "b9ta123",
40839          _fgB: 1790697589540,
40840          src: e9,
40841          alt: "Real-time fleet tracking map showing vehicle locations",
40842          className: "w-full h-full object-cover",
40843          style: { maxHeight: "180px" },
40844          "data-fg-b9ta123": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:309:11:12667:233:e:ImageWithFallback::::::BDpS"
40845        }
40846      ) })
40847    ] }),
40848    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta125", _fgB: 1790697589540, className: "px-10 pt-5", "data-fg-b9ta125": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:319:7:12958:95:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta126", _fgB: 1790697589540, className: "border-t border-slate-200", "data-fg-b9ta126": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:320:9:12995:45:e:div" }) }),
40849    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta128", _fgB: 1790697589540, className: "px-10 pt-5 flex gap-5", "data-fg-b9ta128": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:324:7:13132:1470:e:div:ete", children: [
40850      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta129", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta129": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:325:9:13180:340:e:div:e", children: /* @__PURE__ */ i(
40851        a,
40852        {
40853          _fgT: Le,
40854          _fgS: "b9ta130",
40855          _fgB: 1790697589540,
40856          src: li,
40857          alt: "Driver using tablet for navigation",
40858          className: "w-full h-full object-cover",
40859          style: { maxHeight: "180px" },
40860          "data-fg-b9ta130": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:326:11:13291:214:e:ImageWithFallback::::::BDpS"
40861        }
40862      ) }),
40863      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta131", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta131": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:333:9:13529:1060:e:div:etetete", children: [
40864        /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta132", _fgB: 1790697589540, "data-fg-b9ta132": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:334:11:13578:49:e:SectionLabel:t:::::Kux", children: "Driver App — Drivego" }),
40865        /* @__PURE__ */ i(
40866          a,
40867          {
40868            _fgT: "h2",
40869            _fgS: "b9ta134",
40870            _fgB: 1790697589540,
40871            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40872            style: { fontSize: "17px", fontWeight: 700 },
40873            "data-fg-b9ta134": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:335:11:13638:227:e:h2:t",
40874            children: "Digital Manifests on Any iOS or Android Device"
40875          }
40876        ),
40877        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta136", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta136": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:341:11:13876:261:e:p:t", children: "Drivers receive manifests, turn-by-turn navigation, and rider info on any iOS or Android tablet or smartphone. No proprietary hardware needed." }),
40878        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta138", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta138": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:345:11:14148:426:e:ul:etetete", children: [
40879          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta139", _fgB: 1790697589540, "data-fg-b9ta139": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:346:13:14231:83:e:Bullet:t:::::CGOE", children: "iOS or Android tablets or smartphones on LTE, 5G, or any data plan" }),
40880          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta141", _fgB: 1790697589540, "data-fg-b9ta141": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:347:13:14327:74:e:Bullet:t:::::CGOE", children: "Rider onboarding via facial recognition, QR, or Bluetooth" }),
40881          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta143", _fgB: 1790697589540, "data-fg-b9ta143": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:348:13:14414:67:e:Bullet:t:::::CGOE", children: "Manifest updates pushed in real time from dispatch" }),
40882          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta145", _fgB: 1790697589540, "data-fg-b9ta145": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:349:13:14494:64:e:Bullet:t:::::CGOE", children: "Restricted actions to reduce distracted driving" })
40883        ] })
40884      ] })
40885    ] }),
40886    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta148", _fgB: 1790697589540, className: "px-10 pt-5", "data-fg-b9ta148": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:355:7:14632:95:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta149", _fgB: 1790697589540, className: "border-t border-slate-200", "data-fg-b9ta149": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:356:9:14669:45:e:div" }) }),
40887    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta151", _fgB: 1790697589540, className: "px-10 pt-5 flex gap-5", "data-fg-b9ta151": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:360:7:14810:1724:e:div:ete", children: [
40888      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta152", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta152": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:361:9:14858:1304:e:div:etetete", children: [
40889        /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta153", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta153": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:362:11:14907:59:e:SectionLabel:t:::::Kux", children: "Fare & Payment" }),
40890        /* @__PURE__ */ i(
40891          a,
40892          {
40893            _fgT: "h2",
40894            _fgS: "b9ta155",
40895            _fgB: 1790697589540,
40896            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40897            style: { fontSize: "17px", fontWeight: 700 },
40898            "data-fg-b9ta155": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:363:11:14977:223:e:h2:t",
40899            children: "Seamless Fare Collection, No Cash Required"
40900          }
40901        ),
40902        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta157", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta157": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:369:11:15211:297:e:p:t", children: "Every rider gets a digital wallet to manage funds and payment methods — automatically charged at boarding after positive identification, with no driver involvement." }),
40903        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta159", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta159": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:374:11:15519:628:e:ul:etetetete", children: [
40904          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta160", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta160": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:375:13:15602:108:e:Bullet:t:::::CGOE", children: "Digital wallet linked to each rider profile for payment methods and balance" }),
40905          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta162", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta162": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:376:13:15723:100:e:Bullet:t:::::CGOE", children: "Deposit funds via app, phone, or in-person with credit card or cash" }),
40906          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta164", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta164": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:377:13:15836:84:e:Bullet:t:::::CGOE", children: "Balance and receipt history always visible to rider" }),
40907          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta166", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta166": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:378:13:15933:98:e:Bullet:t:::::CGOE", children: "Fare automatically charged at boarding after rider identification" }),
40908          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta168", _fgB: 1790697589540, color: "#F97316", "data-fg-b9ta168": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:379:13:16044:87:e:Bullet:t:::::CGOE", children: "Splits fare and copay between rider and funding source" })
40909        ] })
40910      ] }),
40911      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta170", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta170": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:382:9:16171:350:e:div:e", children: /* @__PURE__ */ i(
40912        a,
40913        {
40914          _fgT: Le,
40915          _fgS: "b9ta171",
40916          _fgB: 1790697589540,
40917          src: Dy,
40918          alt: "Digital wallet payment management interface",
40919          className: "w-full h-full object-cover",
40920          style: { maxHeight: "180px" },
40921          "data-fg-b9ta171": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:383:11:16282:224:e:ImageWithFallback::::::BDpS"
40922        }
40923      ) })
40924    ] }),
40925    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta173", _fgB: 1790697589540, className: "px-10 pt-5", "data-fg-b9ta173": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:393:7:16564:95:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta174", _fgB: 1790697589540, className: "border-t border-slate-200", "data-fg-b9ta174": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:394:9:16601:45:e:div" }) }),
40926    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta176", _fgB: 1790697589540, className: "px-10 pt-5 pb-4 flex gap-5", "data-fg-b9ta176": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:398:7:16754:1466:e:div:ete", children: [
40927      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta177", _fgB: 1790697589540, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-b9ta177": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:399:9:16807:349:e:div:e", children: /* @__PURE__ */ i(
40928        a,
40929        {
40930          _fgT: Le,
40931          _fgS: "b9ta178",
40932          _fgB: 1790697589540,
40933          src: Ey,
40934          alt: "ITCurves dispatch and scheduling interface",
40935          className: "w-full h-full object-cover",
40936          style: { maxHeight: "180px" },
40937          "data-fg-b9ta178": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:400:11:16918:223:e:ImageWithFallback::::::BDpS"
40938        }
40939      ) }),
40940      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta179", _fgB: 1790697589540, className: "flex-1 flex flex-col", "data-fg-b9ta179": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:407:9:17165:1042:e:div:etetete", children: [
40941        /* @__PURE__ */ i(a, { _fgT: $1, _fgS: "b9ta180", _fgB: 1790697589540, "data-fg-b9ta180": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:408:11:17214:55:e:SectionLabel:t:::::Kux", children: "ADA Compliance & Reporting" }),
40942        /* @__PURE__ */ i(
40943          a,
40944          {
40945            _fgT: "h2",
40946            _fgS: "b9ta182",
40947            _fgB: 1790697589540,
40948            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
40949            style: { fontSize: "17px", fontWeight: 700 },
40950            "data-fg-b9ta182": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:409:11:17280:218:e:h2:t",
40951            children: "Stay Audit-Ready Without the Busywork"
40952          }
40953        ),
40954        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta184", _fgB: 1790697589540, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-b9ta184": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:415:11:17509:248:e:p:t", children: "Every trip automatically enforces ADA rules. NTD and FTA reports generate with one click instead of weeks of manual data pulling." }),
40955        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "b9ta186", _fgB: 1790697589540, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-b9ta186": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:419:11:17768:424:e:ul:etetete", children: [
40956          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta187", _fgB: 1790697589540, "data-fg-b9ta187": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:420:13:17851:79:e:Bullet:t:::::CGOE", children: "Rider eligibility and mobility needs factored into every route" }),
40957          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta189", _fgB: 1790697589540, "data-fg-b9ta189": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:421:13:17943:78:e:Bullet:t:::::CGOE", children: "Pickup windows, max ride times, and vehicle capacity enforced" }),
40958          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta191", _fgB: 1790697589540, "data-fg-b9ta191": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:422:13:18034:56:e:Bullet:t:::::CGOE", children: "One-click NTD and FTA report generation" }),
40959          /* @__PURE__ */ i(a, { _fgT: W, _fgS: "b9ta193", _fgB: 1790697589540, "data-fg-b9ta193": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:423:13:18103:73:e:Bullet:t:::::CGOE", children: "Funding source billing and Medicaid ID tracking built in" })
40960        ] })
40961      ] })
40962    ] }),
40963    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta196", _fgB: 1790697589540, className: "mt-auto", "data-fg-b9ta196": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:429:7:18273:2511:e:div:e", children: /* @__PURE__ */ c(
40964      a,
40965      {
40966        _fgT: "div",
40967        _fgS: "b9ta197",
40968        _fgB: 1790697589540,
40969        className: "px-10 py-5 text-white relative overflow-hidden",
40970        style: { background: `linear-gradient(135deg, ${c5} 0%, #132B44 100%)` },
40971        "data-fg-b9ta197": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:430:9:18307:2464:e:div:xtetetxte",
40972        children: [
40973          /* @__PURE__ */ i(
40974            a,
40975            {
40976              _fgT: "div",
40977              _fgS: "b9ta199",
40978              _fgB: 1790697589540,
40979              className: "absolute -top-10 -right-10 w-48 h-48 rounded-full opacity-15",
40980              style: { background: `radial-gradient(circle, ${b1} 0%, transparent 70%)` },
40981              "data-fg-b9ta199": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:435:11:18521:193:e:div"
40982            }
40983          ),
40984          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta200", _fgB: 1790697589540, className: "flex items-center justify-between relative z-10", "data-fg-b9ta200": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:440:11:18726:1075:e:div:ete", children: [
40985            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta201", _fgB: 1790697589540, "data-fg-b9ta201": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:441:13:18804:641:e:div:ete", children: [
40986              /* @__PURE__ */ c(
40987                a,
40988                {
40989                  _fgT: "h3",
40990                  _fgS: "b9ta202",
40991                  _fgB: 1790697589540,
40992                  className: "font-[Space_Grotesk] mb-1",
40993                  style: { fontSize: "18px", fontWeight: 700 },
40994                  "data-fg-b9ta202": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:442:15:18824:341:e:h3:tste",
40995                  children: [
40996                    "See Paratransit Tools",
40997                    " ",
40998                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta205", _fgB: 1790697589540, className: "italic font-[Playfair_Display]", style: { color: b1 }, "data-fg-b9ta205": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:447:17:19019:126:e:span:t", children: "In Action." })
40999                  ]
41000                }
41001              ),
41002              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "b9ta207", _fgB: 1790697589540, className: "text-white/70", style: { fontSize: "10.5px" }, "data-fg-b9ta207": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:451:15:19180:246:e:p:t", children: "We'll walk you through ERSA scheduling, rider self-service, real-time tracking, and compliance reporting using your actual operations." })
41003            ] }),
41004            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "b9ta209", _fgB: 1790697589540, className: "flex flex-col items-end gap-1.5 flex-shrink-0 ml-6", "data-fg-b9ta209": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:457:13:19459:325:e:div:e", children: /* @__PURE__ */ i(
41005              a,
41006              {
41007                _fgT: "div",
41008                _fgS: "b9ta210",
41009                _fgB: 1790697589540,
41010                className: "px-5 py-2 rounded-full text-white",
41011                style: { backgroundColor: je, fontSize: "11px", fontWeight: 600 },
41012                "data-fg-b9ta210": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:458:15:19542:223:e:div:t",
41013                children: "Schedule a Meeting"
41014              }
41015            ) })
41016          ] }),
41017          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta213", _fgB: 1790697589540, className: "flex items-center gap-6 mt-4 pt-3 border-t border-white/10 relative z-10", "data-fg-b9ta213": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:468:11:19847:909:e:div:etete", children: [
41018            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "b9ta214", _fgB: 1790697589540, src: A1, alt: "IT Curves", className: "h-6 opacity-80", "data-fg-b9ta214": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:469:13:19950:61:e:img" }),
41019            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta215", _fgB: 1790697589540, className: "flex items-center gap-5", "data-fg-b9ta215": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:470:13:20024:588:e:div:etete", children: [
41020              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "b9ta216", _fgB: 1790697589540, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-b9ta216": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:471:15:20080:162:e:span:et", children: [
41021                /* @__P
41021URE__ */ i(a, { _fgT: J1, _fgS: "b9ta217", _fgB: 1790697589540, size: 11, "data-fg-b9ta217": ":0:node_modules/lucide-react:472:17:20185:19:e:Globe::::::Cyd3" }),
41022                " www.ITCurves.AI"
41023              ] }),
41024              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "b9ta219", _fgB: 1790697589540, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-b9ta219": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:474:15:20257:159:e:span:et", children: [
41025                /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "b9ta220", _fgB: 1790697589540, size: 11, "data-fg-b9ta220": ":0:node_modules/lucide-react:475:17:20362:19:e:Phone::::::DmpI" }),
41026                " 301-208-2222"
41027              ] }),
41028              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "b9ta222", _fgB: 1790697589540, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-b9ta222": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:477:15:20431:162:e:span:et", children: [
41029                /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "b9ta223", _fgB: 1790697589540, size: 11, "data-fg-b9ta223": ":0:node_modules/lucide-react:478:17:20536:18:e:Mail::::::D4VR" }),
41030                " [email protected]"
41031              ] })
41032            ] }),
41033            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "b9ta225", _fgB: 1790697589540, className: "ml-auto text-white/40", style: { fontSize: "8px" }, "data-fg-b9ta225": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:481:13:20625:114:e:span:t", children: "Page 2 of 2" })
41034          ] })
41035        ]
41036      }
41037    ) })
41038  ] });
41039}
41040function Oy() {
41041  return /* @__PURE__ */ c(C, { children: [
41042    /* @__PURE__ */ i("style", { "data-fg-b9ta229": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:498:7:21095:1230:e:style:s", children: `
41043        .flyer-wrapper-para {
41044          display: flex;
41045          flex-direction: column;
41046          align-items: center;
41047          gap: 40px;
41048          padding: 100px 20px 40px;
41049          background: #e5e7eb;
41050          min-height: 100vh;
41051        }
41052
41053        .flyer-page {
41054          width: 8.5in;
41055          height: 11in;
41056          background: white;
41057          box-shadow: 0 4px 24px rgba(0,0,0,0.15);
41058          overflow: hidden;
41059          flex-shrink: 0;
41060        }
41061
41062        @media print {
41063          @page {
41064            size: 8.5in 11in;
41065            margin: 0;
41066          }
41067
41068          body, html {
41069            margin: 0 !important;
41070            padding: 0 !important;
41071            background: white !important;
41072          }
41073
41074          .flyer-wrapper-para {
41075            padding: 0;
41076            gap: 0;
41077            background: white;
41078          }
41079
41080          .flyer-page {
41081            box-shadow: none;
41082            page-break-after: always;
41083            break-after: page;
41084          }
41085
41086          .flyer-page:last-child {
41087            page-break-after: avoid;
41088            break-after: avoid;
41089          }
41090
41091          nav, .chatbot-wrapper, footer, .no-print {
41092            display: none !important;
41093          }
41094        }
41095      ` }),
41096    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "b9ta231", _fgB: 1790697589540, className: "flyer-wrapper-para", "data-fg-b9ta231": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:552:7:22333:89:e:div:ete", children: [
41097      /* @__PURE__ */ i(a, { _fgT: zy, _fgS: "b9ta232", _fgB: 1790697589540, "data-fg-b9ta232": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:553:9:22378:11:e:PageOne::::::kR7" }),
41098      /* @__PURE__ */ i(a, { _fgT: jy, _fgS: "b9ta233", _fgB: 1790697589540, "data-fg-b9ta233": ":0:/src/app/pages/ParatransitFlyerPageV3.tsx:554:9:22398:11:e:PageTwo::::::lmH" })
41099    ] })
41100  ] });
41101}
41102const Vy = globalThis.__GLOBALS__.getAssetURL("1a74c6ad7cbedc89e26a7069c607a496d922deec.png"), Hy = globalThis.__GLOBALS__.getAssetURL("84aa94c2bb1aae1f5f88ed523af68cf3ca80730b.png"), Zy = globalThis.__GLOBALS__.getAssetURL("30709bfc8e6f6f728afec88410c144d664720d75.png"), Wy = globalThis.__GLOBALS__.getAssetURL("f574dd29ff31b1ec443a6372bf5d2f4ee20c69ae.png"), qe = "#EFBB0F", l5 = "#0B1B2B", Pe = "#0056B3", R1 = "#34D399", D1 = "#A855F7";
41103function Q({ children: t, color: e = qe }) {
41104  return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bj170", _fgB: 1790697589607, _fgD: !0, className: "flex items-start gap-2", "data-fg-bj170": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:41:5:1295:163:e:li:ete:1", children: [
41105    /* @__PURE__ */ i(a, { _fgT: G, _fgS: "bj171", _fgB: 1790697589607, size: 14, className: "mt-0.5 flex-shrink-0", style: { color: e }, "data-fg-bj171": ":0:node_modules/lucide-react:42:7:1341:77:e:CheckCircle2::::::CELI" }),
41106    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj172", _fgB: 1790697589607, "data-fg-bj172": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:43:7:1425:23:e:span:c", children: t })
41107  ] });
41108}
41109function bt({ children: t, color: e = qe }) {
41110  return /* @__PURE__ */ i(
41111    a,
41112    {
41113      _fgT: "span",
41114      _fgS: "bj174",
41115      _fgB: 1790697589607,
41116      _fgD: !0,
41117      className: "tracking-[0.15em] uppercase block mb-1",
41118      style: { color: e, fontSize: "9px", fontWeight: 700 },
41119      "data-fg-bj174": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:50:5:1575:155:e:span:c:1",
41120      children: t
41121    }
41122  );
41123}
41124function $y() {
41125  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj176", _fgB: 1790697589607, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-bj176": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:64:5:1924:8201:e:div:xtetxtetxte:1", children: [
41126    /* @__PURE__ */ c(
41127      a,
41128      {
41129        _fgT: "div",
41130        _fgS: "bj178",
41131        _fgB: 1790697589607,
41132        className: "relative px-10 pt-8 pb-7 text-white flex flex-col",
41133        style: { background: `linear-gradient(135deg, ${l5} 0%, #132B44 100%)` },
41134        "data-fg-bj178": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:66:7:2045:2608:e:div:xtetetxtetxtetxtetetxte",
41135        children: [
41136          /* @__PURE__ */ i(
41137            a,
41138            {
41139              _fgT: "div",
41140              _fgS: "bj1710",
41141              _fgB: 1790697589607,
41142              className: "absolute -top-20 -right-20 w-72 h-72 rounded-full opacity-10",
41143              style: { background: `radial-gradient(circle, ${qe} 0%, transparent 70%)` },
41144              "data-fg-bj1710": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:71:9:2255:187:e:div"
41145            }
41146          ),
41147          /* @__PURE__ */ i(
41148            a,
41149            {
41150              _fgT: "div",
41151              _fgS: "bj1711",
41152              _fgB: 1790697589607,
41153              className: "absolute -bottom-16 -left-16 w-56 h-56 rounded-full opacity-8",
41154              style: { background: `radial-gradient(circle, ${D1} 0%, transparent 70%)` },
41155              "data-fg-bj1711": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:75:9:2451:190:e:div"
41156            }
41157          ),
41158          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1713", _fgB: 1790697589607, className: "flex items-center justify-between relative z-10 mb-4", "data-fg-bj1713": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:81:9:2720:374:e:div:ete", children: [
41159            /* @__PURE__ */ i(
41160              a,
41161              {
41162                _fgT: "span",
41163                _fgS: "bj1714",
41164                _fgB: 1790697589607,
41165                className: "tracking-[0.2em] uppercase",
41166                style: { color: qe, fontSize: "20px", fontWeight: 700, letterSpacing: "0.15em" },
41167                "data-fg-bj1714": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:82:11:2801:217:e:span:t",
41168                children: "Microtransit Solutions"
41169              }
41170            ),
41171            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "bj1716", _fgB: 1790697589607, src: A1, alt: "IT Curves", className: "h-8", "data-fg-bj1716": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:88:11:3029:50:e:img" })
41172          ] }),
41173          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1718", _fgB: 1790697589607, className: "relative z-10 w-16 h-[3px] rounded-full mb-4", style: { backgroundColor: qe }, "data-fg-bj1718": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:92:9:3144:98:e:div" }),
41174          /* @__PURE__ */ c(
41175            a,
41176            {
41177              _fgT: "h1",
41178              _fgS: "bj1720",
41179              _fgB: 1790697589607,
41180              className: "relative z-10 font-[Space_Grotesk] leading-[1.1] mb-3",
41181              style: { fontSize: "30px", fontWeight: 700 },
41182              "data-fg-bj1720": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:95:9:3282:336:e:h1:tete",
41183              children: [
41184                "Run One Network.",
41185                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bj1722", _fgB: 1790697589607, "data-fg-bj1722": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:100:11:3465:6:e:br" }),
41186                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj1723", _fgB: 1790697589607, className: "italic font-[Playfair_Display]", style: { color: qe }, "data-fg-bj1723": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:101:11:3482:122:e:span:t", children: "Serve Every Rider." })
41187              ]
41188            }
41189          ),
41190          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj1725", _fgB: 1790697589607, className: "relative z-10 text-white/80 max-w-lg leading-snug", style: { fontSize: "11.5px" }, "data-fg-bj1725": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:106:9:3628:413:e:p:t", children: "Paratransit, fixed route, and on-demand — most agencies run them as separate operations with separate fleets and budgets. IT Curves ties them together into a single commingled network where every vehicle, every route, and every rider is managed from one platform." }),
41191          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1728", _fgB: 1790697589607, className: "relative z-10 flex gap-6 mt-4 pt-3 border-t border-white/15", "data-fg-bj1728": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:114:9:4086:554:e:div:x", children: [
41192            "Commingled Fleets",
41193            "First-Mile Last-Mile",
41194            "Full Simulation Before Launch"
41195          ].map((t) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1730", _fgB: 1790697589607, className: "flex items-center gap-1.5", "data-fg-bj1730": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:120:13:4332:279:e:div:ete", children: [
41196            /* @__PURE__ */ i(a, { _fgT: G, _fgS: "bj1731", _fgB: 1790697589607, size: 11, style: { color: qe }, "data-fg-bj1731": ":0:node_modules/lucide-react:121:15:4402:50:e:CheckCircle2::::::CELI" }),
41197            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj1732", _fgB: 1790697589607, className: "text-white/70", style: { fontSize: "9.5px", fontWeight: 600 }, "data-fg-bj1732": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:122:15:4467:125:e:span:x", children: t })
41198          ] }, t)) })
41199        ]
41200      }
41201    ),
41202    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1735", _fgB: 1790697589607, className: "flex-1 px-10 py-6 flex flex-col gap-5", "data-fg-bj1735": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:131:7:4698:5013:e:div:xtetxtetxtetxtetxte", children: [
41203      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1737", _fgB: 1790697589607, className: "flex gap-5", "data-fg-bj1737": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:133:9:4796:1538:e:div:etxte", children: [
41204        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1738", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj1738": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:134:11:4835:1062:e:div:etetete", children: [
41205          /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj1739", _fgB: 1790697589607, "data-fg-bj1739": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:135:13:4886:40:e:SectionLabel:t:::::k9G", children: "Commingling" }),
41206          /* @__PURE__ */ i(
41207            a,
41208            {
41209              _fgT: "h2",
41210              _fgS: "bj1741",
41211              _fgB: 1790697589607,
41212              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41213              style: { fontSize: "17px", fontWeight: 700 },
41214              "data-fg-bj1741": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:136:13:4939:221:e:h2:t",
41215              children: "One Fleet. Every Service Type."
41216            }
41217          ),
41218          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj1743", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj1743": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:142:13:5173:272:e:p:t", children: "Paratransit, fixed route, and on-demand trips dispatched through one system so vehicles are never sitting idle when another service needs capacity." }),
41219          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj1745", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj1745": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:146:13:5458:422:e:ul:etetete", children: [
41220            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1746", _fgB: 1790697589607, "data-fg-bj1746": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:147:15:5543:74:e:Bullet:t:::::D8B5", children: "Routing picks the best vehicle regardless of service type" }),
41221            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1748", _fgB: 1790697589607, "data-fg-bj1748": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:148:15:5632:80:e:Bullet:t:::::D8B5", children: "Rider eligibility enforced automatically across shared vehicles" }),
41222            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1750", _fgB: 1790697589607, "data-fg-bj1750": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:149:15:5727:51:e:Bullet:t:::::D8B5", children: "Single dispatch view for all modes" }),
41223            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1752", _fgB: 1790697589607, "data-fg-bj1752": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:150:15:5793:69:e:Bullet:t:::::D8B5", children: "Maximize fleet utilization and reduce deadhead miles" })
41224          ] })
41225        ] }),
41226        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1755", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-bj1755": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:154:11:5952:367:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1756", _fgB: 1790697589607, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-bj1756": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:155:13:6033:269:e:div:e", children: /* @__PURE__ */ i(
41227          a,
41228          {
41229            _fgT: "img",
41230            _fgS: "bj1757",
41231            _fgB: 1790697589607,
41232            src: e9,
41233            alt: "Vehicle Info Map View",
41234            className: "w-full h-full object-cover",
41235            "data-fg-bj1757": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:156:15:6126:157:e:img"
41236          }
41237        ) }) })
41238      ] }),
41239      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1759", _fgB: 1790697589607, className: "border-t border-slate-200", "data-fg-bj1759": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:166:9:6368:45:e:div" }),
41240      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1761", _fgB: 1790697589607, className: "flex gap-5", "data-fg-bj1761": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:169:9:6454:1551:e:div:ete", children: [
41241        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1762", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 rounded-lg overflow-hidden border border-slate-200 shadow-sm", style: { maxHeight: "160px" }, "data-fg-bj1762": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:170:11:6493:332:e:div:e", children: /* @__PURE__ */ i(
41242          a,
41243          {
41244            _fgT: "img",
41245            _fgS: "bj1763",
41246            _fgB: 1790697589607,
41247            src: Vy,
41248            alt: "Route Coverage Zones Management",
41249            className: "w-full h-full object-cover object-top",
41250            "data-fg-bj1763": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:171:13:6637:171:e:img"
41251          }
41252        ) }),
41253        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1764", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj1764": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:177:11:6836:1154:e:div:etetete", children: [
41254          /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj1765", _fgB: 1790697589607, color: Pe, "data-fg-bj1765": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:178:13:6887:50:e:SectionLabel:t:::::k9G", children: "Coverage" }),
41255          /* @__PURE__ */ i(
41256            a,
41257            {
41258              _fgT: "h2",
41259              _fgS: "bj1767",
41260              _fgB: 1790697589607,
41261              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41262              style: { fontSize: "17px", fontWeight: 700 },
41263              "data-fg-bj1767": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:179:13:6950:230:e:h2:t",
41264              children: "Reach Every Corner of Your Service Area"
41265            }
41266          ),
41267          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj1769", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj1769": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:185:13:7193:264:e:p:t", children: "On-demand microtransit fills the gaps between fixed route corridors, connecting riders in low-density neighborhoods to the broader network." }),
41268          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj1771", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj1771": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:189:13:7470:503:e:ul:etetete", children: [
41269            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1772", _fgB: 1790697589607, color: Pe, "data-fg-bj1772": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:190:15:7555:93:e:Bullet:t:::::D8B5", children: "Flexible stops at medical centers, grocery stores, transit hubs" }),
41270            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1774", _fgB: 1790697589607, color: Pe, "data-fg-bj1774": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:191:15:7663:84:e:Bullet:t:::::D8B5", children: "Book via Where's My Ride app, web portal, or IVR phone" }),
41271            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1776", _fgB: 1790697589607, color: Pe, "data-fg-bj1776": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:192:15:7762:91:e:Bullet:t:::::D8B5", children: "Platform finds the best connection across all available modes" }),
41272            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1778", _fgB: 1790697589607, color: Pe, "data-fg-bj1778": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:193:15:7868:87:e:Bullet:t:::::D8B5", children: "Convert underperforming fixed routes into on-demand zones" })
41273          ] })
41274        ] })
41275      ] }),
41276      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj1781", _fgB: 1790697589607, className: "border-t border-slate-200", "data-fg-bj1781": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:199:9:8039:45:e:div" }),
41277      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1783", _fgB: 1790697589607, className: "flex gap-5", "data-fg-bj1783": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:202:9:8127:1571:e:div:ete", children: [
41278        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj1784", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj1784": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:203:11:8166:1127:e:div:etetete", children: [
41279          /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj1785", _fgB: 1790697589607, color: R1, "data-fg-bj1785": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:204:13:8217:53:e:SectionLabel:t:::::k9G", children: "Simulation" }),
41280          /* @__PURE__ */ i(
41281            a,
41282            {
41283              _fgT: "h2",
41284              _fgS: "bj1787",
41285              _fgB: 1790697589607,
41286              className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41287              style: { fontSize: "17px", fontWeight: 700 },
41288              "data-fg-bj1787": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:205:13:8283:217:e:h2:t",
41289              children: "Test It Before You Fund It"
41290            }
41291          ),
41292          /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj1789", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj1789": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:211:13:8513:256:e:p:t", children: "Run a full day's operation as a simulation before committing vehicles or drivers to a new zone. Present real numbers to your board." }),
41293          /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj1791", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj1791": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:215:13:8782:494:e:ul:etetete", children: [
41294            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1792", _fgB: 1790697589607, color: R1, "data-fg-bj1792": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:216:15:8867:90:e:Bullet:t:::::D8B5", children: "Simulate vehicle counts, shift lengths, and zone boundaries" }),
41295            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1794", _fgB: 1790697589607, color: R1, "data-fg-bj1794": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:217:15:8972:81:e:Bullet:t:::::D8B5", children: "Compare results side by side across configurations" }),
41296            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1796", _fgB: 1790697589607, color: R1, "data-fg-bj1796": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:218:15:9068:93:e:Bullet:t:::::D8B5", children: "Load factor, idle time, cost per trip, service quality metrics" }),
41297            /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj1798", _fgB: 1790697589607, color: R1, "data-fg-bj1798": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:219:15:9176:82:e:Bullet:t:::::D8B5", children: "Data-backed proposals for funding bodies and boards" })
41298          ] })
41299        ] }),
41300        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17100", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-bj17100": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:222:11:9304:379:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17101", _fgB: 1790697589607, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-bj17101": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:223:13:9385:281:e:div:e", children: /* @__PURE__ */ i(
41301          a,
41302          {
41303            _fgT: Le,
41304            _fgS: "bj17102",
41305            _fgB: 1790697589607,
41306            src: Zy,
41307            alt: "Simulation Dashboard",
41308            className: "w-full h-full object-cover",
41309            "data-fg-bj17102": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:224:15:9478:169:e:ImageWithFallback::::::BkmQ"
41310          }
41311        ) }) })
41312      ] })
41313    ] }),
41314    /* @__PURE__ */ c(
41315      a,
41316      {
41317        _fgT: "div",
41318        _fgS: "bj17104",
41319        _fgB: 1790697589607,
41320        className: "px-10 py-2.5 flex items-center justify-between",
41321        style: { backgroundColor: l5 },
41322        "data-fg-bj17104": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:235:7:9762:352:e:div:ete",
41323        children: [
41324          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj17105", _fgB: 1790697589607, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-bj17105": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:239:9:9892:102:e:span:t", children: "www.ITCurves.AI" }),
41325          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj17107", _fgB: 1790697589607, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-bj17107": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:242:9:10003:98:e:span:t", children: "Page 1 of 2" })
41326        ]
41327      }
41328    )
41329  ] });
41330}
41331const qy = [
41332  {
41333    icon: I3,
41334    title: "Commingled Fleets",
41335    desc: "One dispatch system for paratransit, fixed route, and on-demand",
41336    color: qe
41337  },
41338  {
41339    icon: Pt,
41340    title: "Zone-Based Dispatch",
41341    desc: "Flexible service zones with real-time demand-response routing",
41342    color: Pe
41343  },
41344  {
41345    icon: F3,
41346    title: "Full Simulation",
41347    desc: "Test vehicle counts, zones, and costs before committing resources",
41348    color: R1
41349  },
41350  {
41351    icon: Fe,
41352    title: "Rider Self-Service",
41353    desc: "Where's My Ride app, web portal, and IVR booking",
41354    color: Pe
41355  },
41356  {
41357    icon: Ol,
41358    title: "Real-Time Tracking",
41359    desc: "Live vehicle map with ETAs and rider notifications",
41360    color: qe
41361  },
41362  {
41363    icon: Xl,
41364    title: "Contactless Boarding",
41365    desc: "Contactless onboarding via facial recognition, QR, or Bluetooth",
41366    color: R1
41367  },
41368  {
41369    icon: Te,
41370    title: "White-Label Deploy",
41371    desc: "Full brand customization — launch under your agency's name",
41372    color: D1
41373  }
41374];
41375function Uy() {
41376  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17109", _fgB: 1790697589607, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-bj17109": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:328:5:12052:9539:e:div:xtetxtetxtetxtetxtetxtetxtetxte:1", children: [
41377    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17111", _fgB: 1790697589607, className: "px-10 pt-6 pb-5 flex gap-5", "data-fg-bj17111": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:330:7:12197:1957:e:div:xtetxte", children: [
41378      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17113", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-bj17113": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:332:9:12283:669:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17114", _fgB: 1790697589607, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", style: { maxHeight: "160px" }, "data-fg-bj17114": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:333:11:12362:575:e:div:e", children: /* @__PURE__ */ i(
41379        a,
41380        {
41381          _fgT: Le,
41382          _fgS: "bj17115",
41383          _fgB: 1790697589607,
41384          src: "https://images.unsplash.com/photo-1759752393975-7ca7b302fcc6?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxzb2Z0d2FyZSUyMHdvcmtmbG93JTIwYXV0b21hdGlvbiUyMGludGVyZmFjZXxlbnwxfHx8fDE3NzM3OTg5NzJ8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral",
41385          alt: "Automation Dashboard",
41386          className: "w-full h-full object-cover",
41387          "data-fg-bj17115": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:334:13:12484:436:e:ImageWithFallback::::::BkmQ"
41388        }
41389      ) }) }),
41390      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17117", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj17117": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:342:9:12988:1153:e:div:etetete", children: [
41391        /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj17118", _fgB: 1790697589607, color: D1, "data-fg-bj17118": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:343:11:13037:54:e:SectionLabel:t:::::k9G", children: "Automation" }),
41392        /* @__PURE__ */ i(
41393          a,
41394          {
41395            _fgT: "h2",
41396            _fgS: "bj17120",
41397            _fgB: 1790697589607,
41398            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41399            style: { fontSize: "17px", fontWeight: 700 },
41400            "data-fg-bj17120": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:344:11:13102:223:e:h2:t",
41401            children: "From Request to Drop-Off. No Manual Steps."
41402          }
41403        ),
41404        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj17122", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj17122": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:350:11:13336:284:e:p:t", children: "Ride requests flow from the rider into routing and vehicle assignment with no dispatcher intervention. Contactless boarding logs trip data automatically." }),
41405        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj17124", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj17124": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:355:11:13631:495:e:ul:etetete", children: [
41406          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17125", _fgB: 1790697589607, color: D1, "data-fg-bj17125": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:356:13:13714:91:e:Bullet:t:::::D8B5", children: "Zero-touch routing from rider request to vehicle assignment" }),
41407          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17127", _fgB: 1790697589607, color: D1, "data-fg-bj17127": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:357:13:13818:95:e:Bullet:t:::::D8B5", children: "Contactless onboarding via facial recognition, QR, or Bluetooth" }),
41408          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17129", _fgB: 1790697589607, color: D1, "data-fg-bj17129": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:358:13:13926:85:e:Bullet:t:::::D8B5", children: "Dispatch and driver tablets stay in sync in real time" }),
41409          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17131", _fgB: 1790697589607, color: D1, "data-fg-bj17131": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:359:13:14024:86:e:Bullet:t:::::D8B5", children: "No paperwork, no radio calls, no billing discrepancies" })
41410        ] })
41411      ] })
41412    ] }),
41413    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17134", _fgB: 1790697589607, className: "px-10 pt-4", "data-fg-bj17134": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:365:7:14184:95:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17135", _fgB: 1790697589607, className: "border-t border-slate-200", "data-fg-bj17135": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:366:9:14221:45:e:div" }) }),
41414    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17137", _fgB: 1790697589607, className: "px-10 py-4 flex gap-5", "data-fg-bj17137": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:370:7:14324:1459:e:div:etxte", children: [
41415      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17138", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj17138": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:371:9:14372:1017:e:div:etetete", children: [
41416        /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj17139", _fgB: 1790697589607, "data-fg-bj17139": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:372:11:14421:51:e:SectionLabel:t:::::k9G", children: "White-Label Deployment" }),
41417        /* @__PURE__ */ i(
41418          a,
41419          {
41420            _fgT: "h2",
41421            _fgS: "bj17141",
41422            _fgB: 1790697589607,
41423            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41424            style: { fontSize: "17px", fontWeight: 700 },
41425            "data-fg-bj17141": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:373:11:14483:206:e:h2:t",
41426            children: "Your Brand. Our Platform."
41427          }
41428        ),
41429        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj17143", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj17143": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:379:11:14700:261:e:p:t", children: "Deploy microtransit under your agency's brand. Full customization of the rider app, web portal, and driver interface — like Annapolis Go Time." }),
41430        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj17145", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj17145": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:383:11:14972:402:e:ul:etetete", children: [
41431          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17146", _fgB: 1790697589607, "data-fg-bj17146": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:384:13:15055:56:e:Bullet:t:::::D8B5", children: "Custom-branded rider app and web portal" }),
41432          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17148", _fgB: 1790697589607, "data-fg-bj17148": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:385:13:15124:72:e:Bullet:t:::::D8B5", children: "Agency-controlled zones, schedules, and fare structures" }),
41433          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17150", _fgB: 1790697589607, "data-fg-bj17150": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:386:13:15209:79:e:Bullet:t:::::D8B5", children: "Riders book on-demand through Transigo with real-time tracking" }),
41434          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17152", _fgB: 1790697589607, "data-fg-bj17152": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:387:13:15301:57:e:Bullet:t:::::D8B5", children: "Fare payment built into the booking flow" })
41435        ] })
41436      ] }),
41437      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17155", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-bj17155": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:391:9:15428:342:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17156", _fgB: 1790697589607, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-bj17156": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:392:11:15507:248:e:div:e", children: /* @__PURE__ */ i(
41438        a,
41439        {
41440          _fgT: "img",
41441          _fgS: "bj17157",
41442          _fgB: 1790697589607,
41443          src: Hy,
41444          alt: "Annapolis Go Time",
41445          className: "w-full h-full object-cover",
41446          "data-fg-bj17157": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:393:13:15598:140:e:img"
41447        }
41448      ) }) })
41449    ] }),
41450    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17159", _fgB: 1790697589607, className: "px-10", "data-fg-bj17159": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:403:7:15813:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17160", _fgB: 1790697589607, className: "border-t border-slate-200", "data-fg-bj17160": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:404:9:15845:45:e:div" }) }),
41451    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17162", _fgB: 1790697589607, className: "px-10 py-4 flex gap-5", "data-fg-bj17162": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:408:7:15947:1652:e:div:xtete", children: [
41452      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17164", _fgB: 1790697589607, className: "w-[46%] flex-shrink-0 flex flex-col justify-center", "data-fg-bj17164": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:410:9:16021:358:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17165", _fgB: 1790697589607, className: "rounded-lg overflow-hidden border border-slate-200 shadow-sm", "data-fg-bj17165": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:411:11:16100:264:e:div:e", children: /* @__PURE__ */ i(
41453        a,
41454        {
41455          _fgT: "img",
41456          _fgS: "bj17166",
41457          _fgB: 1790697589607,
41458          src: Wy,
41459          alt: "Mobile Data Terminal - Driver Tablet",
41460          className: "w-full h-full object-cover",
41461          "data-fg-bj17166": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:412:13:16191:156:e:img"
41462        }
41463      ) }) }),
41464      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17167", _fgB: 1790697589607, className: "flex-1 flex flex-col", "data-fg-bj17167": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:419:9:16388:1198:e:div:etetete", children: [
41465        /* @__PURE__ */ i(a, { _fgT: bt, _fgS: "bj17168", _fgB: 1790697589607, color: Pe, "data-fg-bj17168": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:420:11:16437:69:e:SectionLabel:t:::::k9G", children: "Mobile Data Terminals (MDT)" }),
41466        /* @__PURE__ */ i(
41467          a,
41468          {
41469            _fgT: "h2",
41470            _fgS: "bj17170",
41471            _fgB: 1790697589607,
41472            className: "font-[Space_Grotesk] mb-1 text-slate-900 leading-tight",
41473            style: { fontSize: "17px", fontWeight: 700 },
41474            "data-fg-bj17170": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:421:11:16517:228:e:h2:t",
41475            children: "Your Tablet. Our Software. Every Route Covered."
41476          }
41477        ),
41478        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj17172", _fgB: 1790697589607, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "10.5px" }, "data-fg-bj17172": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:427:11:16756:274:e:p:t", children: "No proprietary hardware, no expensive replacements. Consumer tablets keep drivers connected, riders boarding, and routes running — on any cellular network." }),
41479        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bj17174", _fgB: 1790697589607, className: "space-y-1 text-slate-600", style: { fontSize: "10px" }, "data-fg-bj17174": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:431:11:17041:530:e:ul:etetete", children: [
41480          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17175", _fgB: 1790697589607, color: Pe, "data-fg-bj17175": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:432:13:17124:101:e:Bullet:t:::::D8B5", children: "Consumer off-the-shelf tablets — works on LTE, 5G, or any cellular plan" }),
41481          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17177", _fgB: 1790697589607, color: Pe, "data-fg-bj17177": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:433:13:17238:94:e:Bullet:t:::::D8B5", children: "Navigate stop-by-stop with real-time route updates from dispatch" }),
41482          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17179", _fgB: 1790697589607, color: Pe, "data-fg-bj17179": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:434:13:17345:117:e:Bullet:t:::::D8B5", children: "Automatically onboard riders via facial recognition, QR codes, or Bluetooth integration" }),
41483          /* @__PURE__ */ i(a, { _fgT: Q, _fgS: "bj17181", _fgB: 1790697589607, color: Pe, "data-fg-bj17181": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:435:13:17475:80:e:Bullet:t:::::D8B5", children: "Verbal communication options enhance driver safety" })
41484        ] })
41485      ] })
41486    ] }),
41487    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17184", _fgB: 1790697589607, className: "px-10", "data-fg-bj17184": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:441:7:17629:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17185", _fgB: 1790697589607, className: "border-t border-slate-200", "data-fg-bj17185": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:442:9:17661:45:e:div" }) }),
41488    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17187", _fgB: 1790697589607, className: "px-10 py-4", "data-fg-bj17187": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:446:7:17775:1253:e:div:ete", children: [
41489      /* @__PURE__ */ i(
41490        a,
41491        {
41492          _fgT: "h3",
41493          _fgS: "bj17188",
41494          _fgB: 1790697589607,
41495          className: "font-[Space_Grotesk] text-slate-900 mb-3 text-center",
41496          style: { fontSize: "14px", fontWeight: 700 },
41497          "data-fg-bj17188": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:447:9:17812:215:e:h3:t",
41498          children: "Complete Microtransit Capabilities at a Glance"
41499        }
41500      ),
41501      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17190", _fgB: 1790697589607, className: "grid grid-cols-4 gap-2", "data-fg-bj17190": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:453:9:18036:979:e:div:x", children: qy.map((t, e) => /* @__PURE__ */ c(
41502        a,
41503        {
41504          _fgT: "div",
41505          _fgS: "bj17192",
41506          _fgB: 1790697589607,
41507          className: "rounded-lg px-3 py-2.5 border flex items-start gap-2",
41508          style: { borderColor: `${t.color}30`, backgroundColor: `${t.color}08` },
41509          "data-fg-bj17192": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:455:13:18131:855:e:div:ete",
41510          children: [
41511            /* @__PURE__ */ i(
41512              a,
41513              {
41514                _fgT: "div",
41515                _fgS: "bj17193",
41516                _fgB: 1790697589607,
41517                className: "w-6 h-6 rounded-md flex items-center justify-center flex-shrink-0 mt-0.5",
41518                style: { backgroundColor: `${t.color}18`, color: t.color },
41519                "data-fg-bj17193": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:460:15:18356:279:e:div:e",
41520                children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bj17194", _fgB: 1790697589607, size: 13, strokeWidth: 2.2, "data-fg-bj17194": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:464:17:18574:40:e:cap.icon" })
41521              }
41522            ),
41523            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17195", _fgB: 1790697589607, "data-fg-bj17195": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:466:15:18650:317:e:div:ete", children: [
41524              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17196", _fgB: 1790697589607, className: "text-slate-800", style: { fontSize: "9.5px", fontWeight: 700 }, "data-fg-bj17196": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:467:17:18672:132:e:div:x", children: t.title }),
41525              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17198", _fgB: 1790697589607, className: "text-slate-500 leading-snug", style: { fontSize: "8px" }, "data-fg-bj17198": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:470:17:18821:125:e:div:x", children: t.desc })
41526            ] })
41527          ]
41528        },
41529        e
41530      )) })
41531    ] }),
41532    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17201", _fgB: 1790697589607, className: "mt-auto", "data-fg-bj17201": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:480:7:19081:2499:e:div:e", children: /* @__PURE__ */ c(
41533      a,
41534      {
41535        _fgT: "div",
41536        _fgS: "bj17202",
41537        _fgB: 1790697589607,
41538        className: "px-10 py-5 text-white relative overflow-hidden",
41539        style: { background: `linear-gradient(135deg, ${l5} 0%, #132B44 100%)` },
41540        "data-fg-bj17202": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:481:9:19115:2452:e:div:xtetetxte",
41541        children: [
41542          /* @__PURE__ */ i(
41543            a,
41544            {
41545              _fgT: "div",
41546              _fgS: "bj17204",
41547              _fgB: 1790697589607,
41548              className: "absolute -top-10 -right-10 w-48 h-48 rounded-full opacity-15",
41549              style: { background: `radial-gradient(circle, ${qe} 0%, transparent 70%)` },
41550              "data-fg-bj17204": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:486:11:19329:193:e:div"
41551            }
41552          ),
41553          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17205", _fgB: 1790697589607, className: "flex items-center justify-between relative z-10", "data-fg-bj17205": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:491:11:19534:1063:e:div:ete", children: [
41554            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17206", _fgB: 1790697589607, "data-fg-bj17206": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:492:13:19612:629:e:div:ete", children: [
41555              /* @__PURE__ */ c(
41556                a,
41557                {
41558                  _fgT: "h3",
41559                  _fgS: "bj17207",
41560                  _fgB: 1790697589607,
41561                  className: "font-[Space_Grotesk] mb-1",
41562                  style: { fontSize: "18px", fontWeight: 700 },
41563                  "data-fg-bj17207": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:493:15:19632:336:e:h3:tste",
41564                  children: [
41565                    "See Microtransit",
41566                    " ",
41567                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj17210", _fgB: 1790697589607, className: "italic font-[Playfair_Display]", style: { color: qe }, "data-fg-bj17210": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:498:17:19822:126:e:span:t", children: "In Action." })
41568                  ]
41569                }
41570              ),
41571              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bj17212", _fgB: 1790697589607, className: "text-white/70", style: { fontSize: "10.5px" }, "data-fg-bj17212": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:502:15:19983:239:e:p:t", children: "We'll simulate your service area, show commingled fleet dispatch, and walk you through zone setup using your actual operations." })
41572            ] }),
41573            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bj17214", _fgB: 1790697589607, className: "flex flex-col items-end gap-1.5 flex-shrink-0 ml-6", "data-fg-bj17214": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:508:13:20255:325:e:div:e", children: /* @__PURE__ */ i(
41574              a,
41575              {
41576                _fgT: "div",
41577                _fgS: "bj17215",
41578                _fgB: 1790697589607,
41579                className: "px-5 py-2 rounded-full text-white",
41580                style: { backgroundColor: Pe, fontSize: "11px", fontWeight: 600 },
41581                "data-fg-bj17215": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:509:15:20338:223:e:div:t",
41582                children: "Schedule a Meeting"
41583              }
41584            ) })
41585          ] }),
41586          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17218", _fgB: 1790697589607, className: "flex items-center gap-6 mt-4 pt-3 border-t border-white/10 relative z-10", "data-fg-bj17218": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:519:11:20643:909:e:div:etete", children: [
41587            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "bj17219", _fgB: 1790697589607, src: A1, alt: "IT Curves", className: "h-6 opacity-80", "data-fg-bj17219": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:520:13:20746:61:e:img" }),
41588            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17220", _fgB: 1790697589607, className: "flex items-center gap-5", "data-fg-bj17220": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:521:13:20820:588:e:div:etete", children: [
41589              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bj17221", _fgB: 1790697589607, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bj17221": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:522:15:20876:162:e:span:et", children: [
41590                /* @__P
41590URE__ */ i(a, { _fgT: J1, _fgS: "bj17222", _fgB: 1790697589607, size: 11, "data-fg-bj17222": ":0:node_modules/lucide-react:523:17:20981:19:e:Globe::::::Cyd3" }),
41591                " www.ITCurves.AI"
41592              ] }),
41593              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bj17224", _fgB: 1790697589607, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bj17224": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:525:15:21053:159:e:span:et", children: [
41594                /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "bj17225", _fgB: 1790697589607, size: 11, "data-fg-bj17225": ":0:node_modules/lucide-react:526:17:21158:19:e:Phone::::::DmpI" }),
41595                " 301-208-2222"
41596              ] }),
41597              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bj17227", _fgB: 1790697589607, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bj17227": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:528:15:21227:162:e:span:et", children: [
41598                /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "bj17228", _fgB: 1790697589607, size: 11, "data-fg-bj17228": ":0:node_modules/lucide-react:529:17:21332:18:e:Mail::::::D4VR" }),
41599                " [email protected]"
41600              ] })
41601            ] }),
41602            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bj17230", _fgB: 1790697589607, className: "ml-auto text-white/40", style: { fontSize: "8px" }, "data-fg-bj17230": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:532:13:21421:114:e:span:t", children: "Page 2 of 2" })
41603          ] })
41604        ]
41605      }
41606    ) })
41607  ] });
41608}
41609function Gy() {
41610  return /* @__PURE__ */ c(C, { children: [
41611    /* @__PURE__ */ i("style", { "data-fg-bj17234": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:549:7:21890:1231:e:style:s", children: `
41612        .flyer-wrapper-micro {
41613          display: flex;
41614          flex-direction: column;
41615          align-items: center;
41616          gap: 40px;
41617          padding: 100px 20px 40px;
41618          background: #e5e7eb;
41619          min-height: 100vh;
41620        }
41621
41622        .flyer-page {
41623          width: 8.5in;
41624          height: 11in;
41625          background: white;
41626          box-shadow: 0 4px 24px rgba(0,0,0,0.15);
41627          overflow: hidden;
41628          flex-shrink: 0;
41629        }
41630
41631        @media print {
41632          @page {
41633            size: 8.5in 11in;
41634            margin: 0;
41635          }
41636
41637          body, html {
41638            margin: 0 !important;
41639            padding: 0 !important;
41640            background: white !important;
41641          }
41642
41643          .flyer-wrapper-micro {
41644            padding: 0;
41645            gap: 0;
41646            background: white;
41647          }
41648
41649          .flyer-page {
41650            box-shadow: none;
41651            page-break-after: always;
41652            break-after: page;
41653          }
41654
41655          .flyer-page:last-child {
41656            page-break-after: avoid;
41657            break-after: avoid;
41658          }
41659
41660          nav, .chatbot-wrapper, footer, .no-print {
41661            display: none !important;
41662          }
41663        }
41664      ` }),
41665    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bj17236", _fgB: 1790697589607, className: "flyer-wrapper-micro", "data-fg-bj17236": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:604:7:23129:90:e:div:ete", children: [
41666      /* @__PURE__ */ i(a, { _fgT: $y, _fgS: "bj17237", _fgB: 1790697589607, "data-fg-bj17237": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:605:9:23175:11:e:PageOne::::::D6UC" }),
41667      /* @__PURE__ */ i(a, { _fgT: Uy, _fgS: "bj17238", _fgB: 1790697589607, "data-fg-bj17238": ":0:/src/app/pages/MicrotransitFlyerPage.tsx:606:9:23195:11:e:PageTwo::::::D7oM" })
41668    ] })
41669  ] });
41670}
41671const fe = "#EFBB0F", _3 = "#0B1B2B", te = "#0056B3", U2 = "#22C55E", U = "#E87722", Jy = "#8B5CF6";
41672function ue({ children: t, color: e = fe }) {
41673  return /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bz1a0", _fgB: 1790697589582, _fgD: !0, className: "flex items-start gap-2", "data-fg-bz1a0": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:37:5:850:163:e:li:ete:1", children: [
41674    /* @__PURE__ */ i(a, { _fgT: G, _fgS: "bz1a1", _fgB: 1790697589582, size: 14, className: "mt-0.5 flex-shrink-0", style: { color: e }, "data-fg-bz1a1": ":0:node_modules/lucide-react:38:7:896:77:e:CheckCircle2::::::CELI" }),
41675    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a2", _fgB: 1790697589582, "data-fg-bz1a2": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:39:7:980:23:e:span:c", children: t })
41676  ] });
41677}
41678function at({ children: t, color: e = fe }) {
41679  return /* @__PURE__ */ i(
41680    a,
41681    {
41682      _fgT: "span",
41683      _fgS: "bz1a4",
41684      _fgB: 1790697589582,
41685      _fgD: !0,
41686      className: "tracking-[0.15em] uppercase block mb-1",
41687      style: { color: e, fontSize: "9px", fontWeight: 700 },
41688      "data-fg-bz1a4": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:46:5:1130:155:e:span:c:1",
41689      children: t
41690    }
41691  );
41692}
41693function Ky() {
41694  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a6", _fgB: 1790697589582, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-bz1a6": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:60:5:1479:14239:e:div:xtetxtetxtetxtetxtetxtetxtetxtetxte:1", children: [
41695    /* @__PURE__ */ c(
41696      a,
41697      {
41698        _fgT: "div",
41699        _fgS: "bz1a8",
41700        _fgB: 1790697589582,
41701        className: "relative px-10 pt-8 pb-7 text-white flex flex-col",
41702        style: { background: `linear-gradient(135deg, ${_3} 0%, #132B44 100%)` },
41703        "data-fg-bz1a8": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:62:7:1600:3566:e:div:xtetetxtetxtetxtetxtetetxte",
41704        children: [
41705          /* @__PURE__ */ i(
41706            a,
41707            {
41708              _fgT: "div",
41709              _fgS: "bz1a10",
41710              _fgB: 1790697589582,
41711              className: "absolute -top-20 -right-20 w-72 h-72 rounded-full opacity-10",
41712              style: { background: `radial-gradient(circle, ${te} 0%, transparent 70%)` },
41713              "data-fg-bz1a10": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:67:9:1811:187:e:div"
41714            }
41715          ),
41716          /* @__PURE__ */ i(
41717            a,
41718            {
41719              _fgT: "div",
41720              _fgS: "bz1a11",
41721              _fgB: 1790697589582,
41722              className: "absolute -bottom-16 -left-16 w-56 h-56 rounded-full opacity-8",
41723              style: { background: `radial-gradient(circle, ${U} 0%, transparent 70%)` },
41724              "data-fg-bz1a11": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:71:9:2007:190:e:div"
41725            }
41726          ),
41727          /* @__PURE__ */ i(
41728            a,
41729            {
41730              _fgT: "div",
41731              _fgS: "bz1a13",
41732              _fgB: 1790697589582,
41733              className: "absolute inset-0 opacity-[0.04]",
41734              style: {
41735                backgroundImage: "linear-gradient(rgba(255,255,255,1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,1) 1px, transparent 1px)",
41736                backgroundSize: "48px 48px"
41737              },
41738              "data-fg-bz1a13": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:76:9:2243:312:e:div"
41739            }
41740          ),
41741          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a15", _fgB: 1790697589582, className: "flex items-center justify-between relative z-10 mb-4", "data-fg-bz1a15": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:86:9:2634:378:e:div:ete", children: [
41742            /* @__PURE__ */ i(
41743              a,
41744              {
41745                _fgT: "span",
41746                _fgS: "bz1a16",
41747                _fgB: 1790697589582,
41748                className: "tracking-[0.2em] uppercase",
41749                style: { color: U, fontSize: "20px", fontWeight: 700, letterSpacing: "0.15em" },
41750                "data-fg-bz1a16": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:87:11:2715:221:e:span:t",
41751                children: "Agentic Transit Platform"
41752              }
41753            ),
41754            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "bz1a18", _fgB: 1790697589582, src: A1, alt: "IT Curves", className: "h-8", "data-fg-bz1a18": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:93:11:2947:50:e:img" })
41755          ] }),
41756          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a20", _fgB: 1790697589582, className: "relative z-10 w-16 h-[3px] rounded-full mb-4", style: { backgroundColor: U }, "data-fg-bz1a20": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:97:9:3062:100:e:div" }),
41757          /* @__PURE__ */ c(
41758            a,
41759            {
41760              _fgT: "h1",
41761              _fgS: "bz1a22",
41762              _fgB: 1790697589582,
41763              className: "relative z-10 font-[DM_Serif_Display] leading-[1.1] mb-3",
41764              style: { fontSize: "30px", fontWeight: 400 },
41765              "data-fg-bz1a22": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:100:9:3202:376:e:h1:tetete",
41766              children: [
41767                "Your Operations Are Already",
41768                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bz1a24", _fgB: 1790697589582, "data-fg-bz1a24": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:105:11:3399:6:e:br" }),
41769                "Telling You Something.",
41770                /* @__PURE__ */ i(a, { _fgT: "br", _fgS: "bz1a26", _fgB: 1790697589582, "data-fg-bz1a26": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:107:11:3449:6:e:br" }),
41771                /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a27", _fgB: 1790697589582, className: "italic", style: { color: fe }, "data-fg-bz1a27": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:108:11:3466:98:e:span:t", children: "Are You Listening?" })
41772              ]
41773            }
41774          ),
41775          /* @__PURE__ */ c(a, { _fgT: "p", _fgS: "bz1a29", _fgB: 1790697589582, className: "relative z-10 text-white/80 max-w-lg leading-snug", style: { fontSize: "11.5px" }, "data-fg-bz1a29": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:113:9:3588:448:e:p:tste", children: [
41776            "Every booking, missed trip, complaint, and no-show is a signal. Our Agentic Transit Platform puts six specialized AI agents to work on those signals — automating workflows, guiding your team, and improving service in real time.",
41777            " ",
41778            /* @__PURE__ */ i(a, { _fgT: "strong", _fgS: "bz1a32", _fgB: 1790697589582, className: "text-white", "data-fg-bz1a32": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:117:11:3958:65:e:strong:t", children: "Six agents. One platform." })
41779          ] }),
41780          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a35", _fgB: 1790697589582, className: "relative z-10 flex gap-4 mt-4 pt-3 border-t border-white/15", "data-fg-bz1a35": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:121:9:4074:1079:e:div:x", children: [
41781            { icon: Fe, label: "Rider Assist", color: U },
41782            { icon: Y, label: "Call Assist", color: te },
41783            { icon: y1, label: "Analytics", color: te },
41784            { icon: w1, label: "Driver Assist", color: U },
41785            { icon: T1, label: "Survey", color: U },
41786            { icon: Te, label: "Smart Dispatch", color: fe }
41787          ].map((t) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a37", _fgB: 1790697589582, className: "flex items-center gap-1.5", "data-fg-bz1a37": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:130:13:4610:514:e:div:ete", children: [
41788            /* @__PURE__ */ i(
41789              a,
41790              {
41791                _fgT: "div",
41792                _fgS: "bz1a38",
41793                _fgB: 1790697589582,
41794                className: "w-5 h-5 rounded-full flex items-center justify-center",
41795                style: { backgroundColor: `${t.color}25`, border: `1px solid ${t.color}50` },
41796                "data-fg-bz1a38": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:131:15:4682:281:e:div:e",
41797                children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bz1a39", _fgB: 1790697589582, size: 10, style: { color: t.color }, "data-fg-bz1a39": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:135:17:4895:47:e:a.icon" })
41798              }
41799            ),
41800            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a40", _fgB: 1790697589582, className: "text-white/70", style: { fontSize: "8.5px", fontWeight: 600 }, "data-fg-bz1a40": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:137:15:4978:127:e:span:x", children: t.label })
41801          ] }, t.label)) })
41802        ]
41803      }
41804    ),
41805    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a43", _fgB: 1790697589582, className: "px-10 py-4", "data-fg-bz1a43": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:146:7:5216:1204:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a44", _fgB: 1790697589582, className: "flex gap-4", "data-fg-bz1a44": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:147:9:5253:1154:e:div:x", children: [
41806      {
41807        quote: '"Riders call to ask where their ride is."',
41808        desc: "Dispatchers field the same question hundreds of times a day while managing live operations."
41809      },
41810      {
41811        quote: '"Our drivers miss steps. Every shift."',
41812        desc: "Tools don't support them in the moment — timestamps, notes, and exceptions get skipped."
41813      },
41814      {
41815        quote: `"We have the data. We just can't act on it."`,
41816        desc: "By the time you see the pattern, it's already affected your riders."
41817      }
41818    ].map((t, e) => /* @__PURE__ */ c(
41819      a,
41820      {
41821        _fgT: "div",
41822        _fgS: "bz1a46",
41823        _fgB: 1790697589582,
41824        className: "flex-1 border-l-[3px] pl-3 py-2",
41825        style: { borderColor: fe },
41826        "data-fg-bz1a46": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:162:13:5938:440:e:div:ete",
41827        children: [
41828          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a47", _fgB: 1790697589582, className: "text-slate-900 mb-1", style: { fontSize: "10px", fontWeight: 700 }, "data-fg-bz1a47": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:167:15:6095:130:e:div:x", children: t.quote }),
41829          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a49", _fgB: 1790697589582, className: "text-slate-500 leading-snug", style: { fontSize: "9px" }, "data-fg-bz1a49": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:170:15:6240:119:e:div:x", children: t.desc })
41830        ]
41831      },
41832      e
41833    )) }) }),
41834    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a52", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a52": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:179:7:6450:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a53", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a53": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:180:9:6482:45:e:div" }) }),
41835    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a55", _fgB: 1790697589582, className: "px-10 py-4 flex gap-5", "data-fg-bz1a55": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:184:7:6610:2768:e:div:xtetxte", children: [
41836      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a57", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a57": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:186:9:6689:1323:e:div:etetete", children: [
41837        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a58", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a58": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:187:11:6738:399:e:div:ete", children: [
41838          /* @__PURE__ */ i(
41839            a,
41840            {
41841              _fgT: "div",
41842              _fgS: "bz1a59",
41843              _fgB: 1790697589582,
41844              className: "w-5 h-5 rounded-full flex items-center justify-center",
41845              style: { backgroundColor: `${U}18`, color: U },
41846              "data-fg-bz1a59": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:188:13:6797:246:e:div:e",
41847              children: /* @__PURE__ */ i(a, { _fgT: Fe, _fgS: "bz1a60", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a60": ":0:node_modules/lucide-react:192:15:6982:42:e:Smartphone::::::DHxb" })
41848            }
41849          ),
41850          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a61", _fgB: 1790697589582, color: U, "data-fg-bz1a61": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:194:13:7056:64:e:SectionLabel:t:::::BD7P", children: "01 — Rider Assist AI" })
41851        ] }),
41852        /* @__PURE__ */ i(
41853          a,
41854          {
41855            _fgT: "h2",
41856            _fgS: "bz1a63",
41857            _fgB: 1790697589582,
41858            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
41859            style: { fontSize: "16px" },
41860            "data-fg-bz1a63": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:196:11:7148:195:e:h2:t",
41861            children: "Rider Interaction Automation"
41862          }
41863        ),
41864        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a65", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a65": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:202:11:7354:255:e:p:t", children: "Lives in the rider-facing app as an always-on trip companion. Manages booking, trip updates, eligibility, and notifications in real time." }),
41865        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a67", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a67": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:206:11:7620:377:e:ul:etete", children: [
41866          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a68", _fgB: 1790697589582, color: U, "data-fg-bz1a68": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:207:13:7704:86:e:Bullet:t:::::ECgo", children: "In-app trip management — book, modify, cancel, confirm" }),
41867          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a70", _fgB: 1790697589582, color: U, "data-fg-bz1a70": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:208:13:7803:81:e:Bullet:t:::::ECgo", children: "Proactive ETA changes and pickup readiness alerts" }),
41868          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a72", _fgB: 1790697589582, color: U, "data-fg-bz1a72": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:209:13:7897:84:e:Bullet:t:::::ECgo", children: "Smart escalation with full context for staff handoff" })
41869        ] })
41870      ] }),
41871      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a75", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a75": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:214:9:8052:1313:e:div:etetete", children: [
41872        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a76", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a76": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:215:11:8101:387:e:div:ete", children: [
41873          /* @__PURE__ */ i(
41874            a,
41875            {
41876              _fgT: "div",
41877              _fgS: "bz1a77",
41878              _fgB: 1790697589582,
41879              className: "w-5 h-5 rounded-full flex items-center justify-center",
41880              style: { backgroundColor: `${te}18`, color: te },
41881              "data-fg-bz1a77": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:216:13:8160:237:e:div:e",
41882              children: /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "bz1a78", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a78": ":0:node_modules/lucide-react:220:15:8341:37:e:Phone::::::DmpI" })
41883            }
41884          ),
41885          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a79", _fgB: 1790697589582, color: te, "data-fg-bz1a79": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:222:13:8410:61:e:SectionLabel:t:::::BD7P", children: "02 — Call Assist AI" })
41886        ] }),
41887        /* @__PURE__ */ i(
41888          a,
41889          {
41890            _fgT: "h2",
41891            _fgS: "bz1a81",
41892            _fgB: 1790697589582,
41893            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
41894            style: { fontSize: "16px" },
41895            "data-fg-bz1a81": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:224:11:8499:207:e:h2:t",
41896            children: "Intelligent Front Door for Rider Support"
41897          }
41898        ),
41899        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a83", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a83": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:230:11:8717:262:e:p:t", children: "Automates call handling for booking, trip changes, verification, and general inquiries. Transfers to staff with full context and a warm handoff." }),
41900        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a85", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a85": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:234:11:8990:360:e:ul:etete", children: [
41901          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a86", _fgB: 1790697589582, color: te, "data-fg-bz1a86": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:235:13:9074:84:e:Bullet:t:::::ECgo", children: "Voice-first with natural conversation across languages" }),
41902          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a88", _fgB: 1790697589582, color: te, "data-fg-bz1a88": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:236:13:9171:73:e:Bullet:t:::::ECgo", children: "Book, modify, cancel, verify — no hold time" }),
41903          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a90", _fgB: 1790697589582, color: te, "data-fg-bz1a90": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:237:13:9257:77:e:Bullet:t:::::ECgo", children: "Warm handoff with interaction history on screen" })
41904        ] })
41905      ] })
41906    ] }),
41907    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a93", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a93": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:243:7:9408:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a94", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a94": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:244:9:9440:45:e:div" }) }),
41908    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a96", _fgB: 1790697589582, className: "px-10 py-4 flex gap-5", "data-fg-bz1a96": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:248:7:9570:2740:e:div:xtetxte", children: [
41909      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a98", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a98": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:250:9:9646:1299:e:div:etetete", children: [
41910        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a99", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a99": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:251:11:9695:389:e:div:ete", children: [
41911          /* @__PURE__ */ i(
41912            a,
41913            {
41914              _fgT: "div",
41915              _fgS: "bz1a100",
41916              _fgB: 1790697589582,
41917              className: "w-5 h-5 rounded-full flex items-center justify-center",
41918              style: { backgroundColor: `${te}18`, color: te },
41919              "data-fg-bz1a100": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:252:13:9754:241:e:div:e",
41920              children: /* @__PURE__ */ i(a, { _fgT: y1, _fgS: "bz1a101", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a101": ":0:node_modules/lucide-react:256:15:9935:41:e:BarChart3::::::C2Ja" })
41921            }
41922          ),
41923          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a102", _fgB: 1790697589582, color: te, "data-fg-bz1a102": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:258:13:10008:59:e:SectionLabel:t:::::BD7P", children: "03 — Analytics AI" })
41924        ] }),
41925        /* @__PURE__ */ i(
41926          a,
41927          {
41928            _fgT: "h2",
41929            _fgS: "bz1a104",
41930            _fgB: 1790697589582,
41931            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
41932            style: { fontSize: "16px" },
41933            "data-fg-bz1a104": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:260:11:10095:206:e:h2:t",
41934            children: "Decision-Grade Operational Intelligence"
41935          }
41936        ),
41937        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a106", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a106": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:266:11:10312:259:e:p:t", children: "Unifies data from vehicles, riders, and apps. Identifies patterns, explains performance drivers, and generates actionable reports in minutes." }),
41938        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a108", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a108": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:270:11:10582:348:e:ul:etete", children: [
41939          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a109", _fgB: 1790697589582, color: te, "data-fg-bz1a109": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:271:13:10666:78:e:Bullet:t:::::ECgo", children: "Unified intelligence across all operational data" }),
41940          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a111", _fgB: 1790697589582, color: te, "data-fg-bz1a111": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:272:13:10757:65:e:Bullet:t:::::ECgo", children: "Before/after and period comparisons" }),
41941          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a113", _fgB: 1790697589582, color: te, "data-fg-bz1a113": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:273:13:10835:79:e:Bullet:t:::::ECgo", children: "Guided reports for staffing, fleet sizing, shifts" })
41942        ] })
41943      ] }),
41944      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a116", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a116": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:278:9:10987:1310:e:div:etetete", children: [
41945        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a117", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a117": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:279:11:11036:399:e:div:ete", children: [
41946          /* @__PURE__ */ i(
41947            a,
41948            {
41949              _fgT: "div",
41950              _fgS: "bz1a118",
41951              _fgB: 1790697589582,
41952              className: "w-5 h-5 rounded-full flex items-center justify-center",
41953              style: { backgroundColor: `${U}18`, color: U },
41954              "data-fg-bz1a118": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:280:13:11095:245:e:div:e",
41955              children: /* @__PURE__ */ i(a, { _fgT: w1, _fgS: "bz1a119", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a119": ":0:node_modules/lucide-react:284:15:11280:41:e:CircleDot::::::CPqJ" })
41956            }
41957          ),
41958          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a120", _fgB: 1790697589582, color: U, "data-fg-bz1a120": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:286:13:11353:65:e:SectionLabel:t:::::BD7P", children: "04 — Driver Assist AI" })
41959        ] }),
41960        /* @__PURE__ */ i(
41961          a,
41962          {
41963            _fgT: "h2",
41964            _fgS: "bz1a122",
41965            _fgB: 1790697589582,
41966            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
41967            style: { fontSize: "16px" },
41968            "data-fg-bz1a122": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:288:11:11446:197:e:h2:t",
41969            children: "Hands-Free Driver Intelligence"
41970          }
41971        ),
41972        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a124", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a124": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:294:11:11654:252:e:p:t", children: "Operates on every driver device, reducing admin work and guiding real-time decisions. Voice-first so drivers stay focused on the road." }),
41973        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a126", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a126": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:298:11:11917:365:e:ul:etete", children: [
41974          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a127", _fgB: 1790697589582, color: U, "data-fg-bz1a127": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:299:13:12001:70:e:Bullet:t:::::ECgo", children: "Voice-first support — eyes on the road" }),
41975          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a129", _fgB: 1790697589582, color: U, "data-fg-bz1a129": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:300:13:12084:82:e:Bullet:t:::::ECgo", children: "Automatic timestamps, notes, and exception logging" }),
41976          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a131", _fgB: 1790697589582, color: U, "data-fg-bz1a131": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:301:13:12179:87:e:Bullet:t:::::ECgo", children: "Breakdowns and no-shows routed to dispatch with context" })
41977        ] })
41978      ] })
41979    ] }),
41980    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a134", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a134": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:307:7:12340:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a135", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a135": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:308:9:12372:45:e:div" }) }),
41981    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a137", _fgB: 1790697589582, className: "px-10 py-4 flex gap-5", "data-fg-bz1a137": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:312:7:12500:2737:e:div:xtetxte", children: [
41982      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a139", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a139": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:314:9:12573:1295:e:div:etetete", children: [
41983        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a140", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a140": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:315:11:12622:396:e:div:ete", children: [
41984          /* @__PURE__ */ i(
41985            a,
41986            {
41987              _fgT: "div",
41988              _fgS: "bz1a141",
41989              _fgB: 1790697589582,
41990              className: "w-5 h-5 rounded-full flex items-center justify-center",
41991              style: { backgroundColor: `${U}18`, color: U },
41992              "data-fg-bz1a141": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:316:13:12681:249:e:div:e",
41993              children: /* @__PURE__ */ i(a, { _fgT: T1, _fgS: "bz1a142", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a142": ":0:node_modules/lucide-react:320:15:12866:45:e:ClipboardList::::::CPfu" })
41994            }
41995          ),
41996          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a143", _fgB: 1790697589582, color: U, "data-fg-bz1a143": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:322:13:12943:58:e:SectionLabel:t:::::BD7P", children: "05 — Survey AI" })
41997        ] }),
41998        /* @__PURE__ */ i(
41999          a,
42000          {
42001            _fgT: "h2",
42002            _fgS: "bz1a145",
42003            _fgB: 1790697589582,
42004            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
42005            style: { fontSize: "16px" },
42006            "data-fg-bz1a145": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:324:11:13029:205:e:h2:t",
42007            children: "Automated Feedback Collection at Scale"
42008          }
42009        ),
42010        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a147", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a147": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:330:11:13245:259:e:p:t", children: "Event-triggered outreach after service recoveries, first rides, and exceptions. Adaptive questioning based on trip context and rider history." }),
42011        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a149", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a149": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:334:11:13515:338:e:ul:etete", children: [
42012          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a150", _fgB: 1790697589582, color: U, "data-fg-bz1a150": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:335:13:13599:81:e:Bullet:t:::::ECgo", children: "Automated theme extraction and sentiment analysis" }),
42013          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a152", _fgB: 1790697589582, color: U, "data-fg-bz1a152": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:336:13:13693:73:e:Bullet:t:::::ECgo", children: "Structured feedback without manual review" }),
42014          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a154", _fgB: 1790697589582, color: U, "data-fg-bz1a154": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:337:13:13779:58:e:Bullet:t:::::ECgo", children: "Nothing urgent gets missed" })
42015        ] })
42016      ] }),
42017      /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a157", _fgB: 1790697589582, className: "flex-1 flex flex-col", "data-fg-bz1a157": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:342:9:13911:1313:e:div:etetete", children: [
42018        /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a158", _fgB: 1790697589582, className: "flex items-center gap-2 mb-1", "data-fg-bz1a158": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:343:11:13960:388:e:div:ete", children: [
42019          /* @__PURE__ */ i(
42020            a,
42021            {
42022              _fgT: "div",
42023              _fgS: "bz1a159",
42024              _fgB: 1790697589582,
42025              className: "w-5 h-5 rounded-full flex items-center justify-center",
42026              style: { backgroundColor: `${fe}18`, color: fe },
42027              "data-fg-bz1a159": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:344:13:14019:235:e:div:e",
42028              children: /* @__PURE__ */ i(a, { _fgT: Te, _fgS: "bz1a160", _fgB: 1790697589582, size: 10, strokeWidth: 2.5, "data-fg-bz1a160": ":0:node_modules/lucide-react:348:15:14200:35:e:Zap::::::Cp7" })
42029            }
42030          ),
42031          /* @__PURE__ */ i(a, { _fgT: at, _fgS: "bz1a161", _fgB: 1790697589582, color: fe, "data-fg-bz1a161": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:350:13:14267:64:e:SectionLabel:t:::::BD7P", children: "06 — Smart Dispatch AI" })
42032        ] }),
42033        /* @__PURE__ */ i(
42034          a,
42035          {
42036            _fgT: "h2",
42037            _fgS: "bz1a163",
42038            _fgB: 1790697589582,
42039            className: "font-[DM_Serif_Display] mb-1 text-slate-900 leading-tight",
42040            style: { fontSize: "16px" },
42041            "data-fg-bz1a163": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:352:11:14359:207:e:h2:t",
42042            children: "Fleet Orchestration at Operational Scale"
42043          }
42044        ),
42045        /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a165", _fgB: 1790697589582, className: "text-slate-500 mb-2 leading-snug", style: { fontSize: "9.5px" }, "data-fg-bz1a165": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:358:11:14577:262:e:p:t", children: "Manages live operations in real time — continuously balancing service quality, capacity, and disruptions with policy-compliant recovery actions." }),
42046        /* @__PURE__ */ c(a, { _fgT: "ul", _fgS: "bz1a167", _fgB: 1790697589582, className: "space-y-1 text-slate-600", style: { fontSize: "9.5px" }, "data-fg-bz1a167": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:362:11:14850:359:e:ul:etete", children: [
42047          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a168", _fgB: 1790697589582, color: fe, "data-fg-bz1a168": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:363:13:14934:89:e:Bullet:t:::::ECgo", children: "Continuous assignment and reassignment as conditions change" }),
42048          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a170", _fgB: 1790697589582, color: fe, "data-fg-bz1a170": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:364:13:15036:69:e:Bullet:t:::::ECgo", children: "Service recovery with policy guardrails" }),
42049          /* @__PURE__ */ i(a, { _fgT: ue, _fgS: "bz1a172", _fgB: 1790697589582, color: fe, "data-fg-bz1a172": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:365:13:15118:75:e:Bullet:t:::::ECgo", children: "Explainable decisioning with audit-ready logs" })
42050        ] })
42051      ] })
42052    ] }),
42053    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a175", _fgB: 1790697589582, className: "mt-auto", "data-fg-bz1a175": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:371:7:15288:419:e:div:e", children: /* @__PURE__ */ c(
42054      a,
42055      {
42056        _fgT: "div",
42057        _fgS: "bz1a176",
42058        _fgB: 1790697589582,
42059        className: "px-10 py-2.5 flex items-center justify-between",
42060        style: { backgroundColor: _3 },
42061        "data-fg-bz1a176": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:372:9:15322:372:e:div:ete",
42062        children: [
42063          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a177", _fgB: 1790697589582, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-bz1a177": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:376:11:15460:106:e:span:t", children: "www.ITCurves.AI" }),
42064          /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a179", _fgB: 1790697589582, className: "text-white/50", style: { fontSize: "8px" }, "data-fg-bz1a179": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:379:11:15577:102:e:span:t", children: "Page 1 of 2" })
42065        ]
42066      }
42067    ) })
42068  ] });
42069}
42070function Yy() {
42071  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a181", _fgB: 1790697589582, _fgD: !0, className: "flyer-page bg-white relative overflow-hidden flex flex-col", "data-fg-bz1a181": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:394:5:15913:13102:e:div:xtetxtetxtetxtetxtetxtetxtetxte:1", children: [
42072    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a183", _fgB: 1790697589582, className: "px-10 pt-8 pb-4", "data-fg-bz1a183": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:396:7:16033:2470:e:div:etetetxte", children: [
42073      /* @__PURE__ */ c(
42074        a,
42075        {
42076          _fgT: "h3",
42077          _fgS: "bz1a184",
42078          _fgB: 1790697589582,
42079          className: "font-[DM_Serif_Display] text-slate-900 mb-1 text-center",
42080          style: { fontSize: "20px" },
42081          "data-fg-bz1a184": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:397:9:16075:246:e:h3:te",
42082          children: [
42083            "A Rider Calls. ",
42084            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a186", _fgB: 1790697589582, style: { color: fe }, className: "italic", "data-fg-bz1a186": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:401:26:16231:76:e:span:t", children: "Here's What Happens." })
42085          ]
42086        }
42087      ),
42088      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a188", _fgB: 1790697589582, className: "text-slate-500 text-center mb-4", style: { fontSize: "10.5px" }, "data-fg-bz1a188": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:403:9:16330:162:e:p:t", children: "From first ring to resolution, with or without a live agent." }),
42089      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a190", _fgB: 1790697589582, className: "flex gap-3", "data-fg-bz1a190": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:407:9:16502:1638:e:div:x", children: [
42090        {
42091          step: "1",
42092          title: "Rider Calls In",
42093          desc: "AI answers instantly. No hold time, no phone tree, no voicemail.",
42094          color: te
42095        },
42096        {
42097          step: "2",
42098          title: "Intent Detected",
42099          desc: "32+ trained categories identify why the rider is calling within seconds.",
42100          color: U
42101        },
42102        {
42103          step: "3",
42104          title: "Resolved or Routed",
42105          desc: "Routine questions answered on the spot. Complex issues transferred with full context.",
42106          color: U2
42107        },
42108        {
42109          step: "4",
42110          title: "Data Captured",
42111          desc: "Every interaction logged. Topics, sentiment, and outcomes feed your dashboards.",
42112          color: fe
42113        }
42114      ].map((t) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a192", _fgB: 1790697589582, className: "flex-1 flex flex-col items-center text-center", "data-fg-bz1a192": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:434:13:17464:647:e:div:etete", children: [
42115        /* @__PURE__ */ i(
42116          a,
42117          {
42118            _fgT: "div",
42119            _fgS: "bz1a193",
42120            _fgB: 1790697589582,
42121            className: "w-8 h-8 rounded-full flex items-center justify-center text-white mb-2",
42122            style: { backgroundColor: t.color, fontSize: "12px", fontWeight: 700 },
42123            "data-fg-bz1a193": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:435:15:17555:252:e:div:x",
42124            children: t.step
42125          }
42126        ),
42127        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a195", _fgB: 1790697589582, className: "text-slate-900 mb-0.5", style: { fontSize: "10.5px", fontWeight: 700 }, "data-fg-bz1a195": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:441:15:17822:134:e:div:x", children: t.title }),
42128        /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a197", _fgB: 1790697589582, className: "text-slate-500 leading-snug", style: { fontSize: "8.5px" }, "data-fg-bz1a197": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:444:15:17971:121:e:div:x", children: t.desc })
42129      ] }, t.step)) }),
42130      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a200", _fgB: 1790697589582, className: "flex items-center justify-center gap-0 -mt-[68px] mb-10 pointer-events-none", "data-fg-bz1a200": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:452:9:18184:306:e:div:x", children: [1, 2, 3].map((t) => /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a202", _fgB: 1790697589582, className: "flex-1 flex justify-center", "data-fg-bz1a202": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:454:13:18324:137:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: D, _fgS: "bz1a203", _fgB: 1790697589582, size: 14, className: "text-slate-300", "data-fg-bz1a203": ":0:node_modules/lucide-react:455:15:18391:51:e:ArrowRight::::::s5N" }) }, t)) })
42131    ] }),
42132    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a205", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a205": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:462:7:18533:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a206", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a206": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:463:9:18565:45:e:div" }) }),
42133    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a208", _fgB: 1790697589582, className: "px-10 py-4", "data-fg-bz1a208": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:467:7:18679:3817:e:div:ete", children: [
42134      /* @__PURE__ */ i(
42135        a,
42136        {
42137          _fgT: "h3",
42138          _fgS: "bz1a209",
42139          _fgB: 1790697589582,
42140          className: "font-[DM_Serif_Display] text-slate-900 mb-4 text-center",
42141          style: { fontSize: "16px" },
42142          "data-fg-bz1a209": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:468:9:18716:207:e:h3:t",
42143          children: "Integrated Intelligence — One Platform, Every Signal"
42144        }
42145      ),
42146      /* @__PURE__ */ c(
42147        a,
42148        {
42149          _fgT: "div",
42150          _fgS: "bz1a211",
42151          _fgB: 1790697589582,
42152          className: "rounded-xl p-5 relative overflow-hidden",
42153          style: { backgroundColor: _3 },
42154          "data-fg-bz1a211": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:475:9:18933:3550:e:div:xtetxte",
42155          children: [
42156            /* @__PURE__ */ i(
42157              a,
42158              {
42159                _fgT: "div",
42160                _fgS: "bz1a213",
42161                _fgB: 1790697589582,
42162                className: "absolute inset-0 opacity-[0.03]",
42163                style: {
42164                  backgroundImage: "linear-gradient(rgba(255,255,255,1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,1) 1px, transparent 1px)",
42165                  backgroundSize: "32px 32px"
42166                },
42167                "data-fg-bz1a213": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:480:11:19090:326:e:div"
42168              }
42169            ),
42170            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a215", _fgB: 1790697589582, className: "relative z-10 flex flex-col items-center", "data-fg-bz1a215": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:490:11:19457:3011:e:div:etxtetxte", children: [
42171              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a216", _fgB: 1790697589582, className: "flex items-center justify-center gap-2 mb-4", "data-fg-bz1a216": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:491:13:19528:543:e:div:e", children: /* @__PURE__ */ c(
42172                a,
42173                {
42174                  _fgT: "div",
42175                  _fgS: "bz1a217",
42176                  _fgB: 1790697589582,
42177                  className: "px-5 py-2 rounded-full text-white shadow-lg",
42178                  style: {
42179                    backgroundColor: te,
42180                    fontSize: "11px",
42181                    fontWeight: 700,
42182                    boxShadow: "0 0 30px rgba(43,122,232,0.4)"
42183                  },
42184                  "data-fg-bz1a217": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:492:15:19604:448:e:div:et",
42185                  children: [
42186                    /* @__PURE__ */ i(a, { _fgT: vc, _fgS: "bz1a218", _fgB: 1790697589582, size: 14, className: "inline mr-1.5 -mt-0.5", "data-fg-bz1a218": ":0:node_modules/lucide-react:501:17:19931:53:e:Brain::::::42K" }),
42187                    "Transit System — Central Brain"
42188                  ]
42189                }
42190              ) }),
42191              /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a221", _fgB: 1790697589582, className: "grid grid-cols-6 gap-2 w-full", "data-fg-bz1a221": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:507:13:20131:2003:e:div:x", children: [
42192                { icon: Fe, label: "Rider Assist AI", desc: "Rider interaction automation across app and web", color: U },
42193                { icon: Y, label: "Call Assist AI", desc: "Voice-first call handling with warm handoffs", color: te },
42194                { icon: y1, label: "Analytics AI", desc: "Unified intelligence layer for operational data", color: te },
42195                { icon: w1, label: "Driver Assist AI", desc: "Hands-free driver support on every device", color: U },
42196                { icon: T1, label: "Survey AI", desc: "Event-triggered feedback with sentiment analysis", color: U },
42197                { icon: Te, label: "Smart Dispatch AI", desc: "Real-time fleet orchestration with policy guardrails", color: fe }
42198              ].map((t, e) => /* @__PURE__ */ c(
42199                a,
42200                {
42201                  _fgT: "div",
42202                  _fgS: "bz1a223",
42203                  _fgB: 1790697589582,
42204                  className: "rounded-lg px-2.5 py-3 text-center flex flex-col items-center gap-1.5",
42205                  style: {
42206                    backgroundColor: "#0F2A3F",
42207                    border: `1px solid ${t.color}30`
42208                  },
42209                  "data-fg-bz1a223": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:516:17:21037:1060:e:div:etete",
42210                  children: [
42211                    /* @__PURE__ */ i(
42212                      a,
42213                      {
42214                        _fgT: "div",
42215                        _fgS: "bz1a224",
42216                        _fgB: 1790697589582,
42217                        className: "w-7 h-7 rounded-full flex items-center justify-center",
42218                        style: {
42219                          backgroundColor: `${t.color}20`,
42220                          border: `1px solid ${t.color}50`,
42221                          color: t.color
42222                        },
42223                        "data-fg-bz1a224": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:524:19:21358:411:e:div:e",
42224                        children: /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bz1a225", _fgB: 1790697589582, size: 13, strokeWidth: 2.2, "data-fg-bz1a225": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:532:21:21702:42:e:agent.icon" })
42225                      }
42226                    ),
42227                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a226", _fgB: 1790697589582, className: "text-white", style: { fontSize: "8.5px", fontWeight: 700 }, "data-fg-bz1a226": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:534:19:21788:134:e:div:x", children: t.label }),
42228                    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a228", _fgB: 1790697589582, className: "text-slate-400 leading-snug", style: { fontSize: "7.5px" }, "data-fg-bz1a228": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:537:19:21941:133:e:div:x", children: t.desc })
42229                  ]
42230                },
42231                e
42232              )) }),
42233              /* @__PURE__ */ i(
42234                a,
42235                {
42236                  _fgT: "div",
42237                  _fgS: "bz1a231",
42238                  _fgB: 1790697589582,
42239                  className: "mt-3 text-center text-slate-500",
42240                  style: { fontSize: "8px" },
42241                  "data-fg-bz1a231": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:545:13:22183:268:e:div:t",
42242                  children: "Every agent feeds into and learns from the central transit brain — dispatching, routing, and rider data in one loop."
42243                }
42244              )
42245            ] })
42246          ]
42247        }
42248      )
42249    ] }),
42250    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a234", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a234": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:556:7:22526:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a235", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a235": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:557:9:22558:45:e:div" }) }),
42251    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a237", _fgB: 1790697589582, className: "px-10 py-4", "data-fg-bz1a237": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:561:7:22666:2429:e:div:ete", children: [
42252      /* @__PURE__ */ c(
42253        a,
42254        {
42255          _fgT: "h3",
42256          _fgS: "bz1a238",
42257          _fgB: 1790697589582,
42258          className: "font-[DM_Serif_Display] text-slate-900 mb-3 text-center",
42259          style: { fontSize: "14px" },
42260          "data-fg-bz1a238": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:562:9:22703:259:e:h3:te",
42261          children: [
42262            "Built for Agencies That Need ",
42263            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a240", _fgB: 1790697589582, style: { color: fe }, className: "italic", "data-fg-bz1a240": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:566:40:22873:75:e:span:t", children: "Results, Not Demos." })
42264          ]
42265        }
42266      ),
42267      /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a242", _fgB: 1790697589582, className: "grid grid-cols-4 gap-2", "data-fg-bz1a242": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:568:9:22971:2111:e:div:x", children: [
42268        {
42269          mode: "Paratransit",
42270          color: te,
42271          items: ["Zero voicemail dead-ends", "Auto booking handling", "Accurate eligibility & policy"]
42272        },
42273        {
42274          mode: "Fixed Route",
42275          color: fe,
42276          items: ["24/7 voice AI coverage", "3-4x surge call capacity", "Route-level sentiment tracking"]
42277        },
42278        {
42279          mode: "NEMT",
42280          color: U2,
42281          items: ["Zero missed authorizations", "Auto trip confirmations", "Accurate broker compliance"]
42282        },
42283        {
42284          mode: "Microtransit",
42285          color: Jy,
42286          items: ["Real-time demand response", "Zero dead zones", "Auto zone optimization signals"]
42287        }
42288      ].map((t, e) => /* @__PURE__ */ c(
42289        a,
42290        {
42291          _fgT: "div",
42292          _fgS: "bz1a244",
42293          _fgB: 1790697589582,
42294          className: "rounded-lg px-3 py-3 border",
42295          style: { borderColor: `${t.color}30`, backgroundColor: `${t.color}06` },
42296          "data-fg-bz1a244": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:591:13:23862:1191:e:div:ete",
42297          children: [
42298            /* @__PURE__ */ i(
42299              a,
42300              {
42301                _fgT: "div",
42302                _fgS: "bz1a245",
42303                _fgB: 1790697589582,
42304                className: "mb-2 rounded-full px-2 py-0.5 inline-block",
42305                style: {
42306                  fontSize: "8px",
42307                  fontWeight: 700,
42308                  color: t.color,
42309                  backgroundColor: `${t.color}15`,
42310                  border: `1px solid ${t.color}30`
42311                },
42312                "data-fg-bz1a245": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:596:15:24060:406:e:div:x",
42313                children: t.mode.toUpperCase()
42314              }
42315            ),
42316            /* @__PURE__ */ i(a, { _fgT: "ul", _fgS: "bz1a247", _fgB: 1790697589582, className: "space-y-1.5", "data-fg-bz1a247": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:608:15:24481:553:e:ul:x", children: t.items.map((s, r) => /* @__PURE__ */ c(a, { _fgT: "li", _fgS: "bz1a249", _fgB: 1790697589582, className: "flex items-start gap-1.5", "data-fg-bz1a249": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:610:19:24573:421:e:li:ete", children: [
42317              /* @__PURE__ */ i(
42318                a,
42319                {
42320                  _fgT: G,
42321                  _fgS: "bz1a250",
42322                  _fgB: 1790697589582,
42323                  size: 10,
42324                  className: "mt-0.5 flex-shrink-0",
42325                  style: { color: t.color },
42326                  "data-fg-bz1a250": ":0:node_modules/lucide-react:611:21:24643:173:e:CheckCircle2::::::CELI"
42327                }
42328              ),
42329              /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a251", _fgB: 1790697589582, className: "text-slate-600 leading-snug", style: { fontSize: "8.5px" }, "data-fg-bz1a251": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:616:21:24837:133:e:span:x", children: s })
42330            ] }, r)) })
42331          ]
42332        },
42333        e
42334      )) })
42335    ] }),
42336    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a254", _fgB: 1790697589582, className: "px-10", "data-fg-bz1a254": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:628:7:25125:90:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a255", _fgB: 1790697589582, className: "border-t border-slate-200", "data-fg-bz1a255": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:629:9:25157:45:e:div" }) }),
42337    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a257", _fgB: 1790697589582, className: "px-10 py-3", "data-fg-bz1a257": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:633:7:25262:1219:e:div:e", children: /* @__PURE__ */ i(
42338      a,
42339      {
42340        _fgT: "div",
42341        _fgS: "bz1a258",
42342        _fgB: 1790697589582,
42343        className: "rounded-xl px-6 py-4 flex items-center justify-between",
42344        style: { backgroundColor: "#0F172A" },
42345        "data-fg-bz1a258": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:634:9:25299:1169:e:div:x",
42346        children: [
42347          { value: "92%", label: "Faster Processing", icon: It, color: fe },
42348          { value: "75%", label: "Reduced Costs", icon: E3, color: fe },
42349          { value: "83%", label: "AI-Resolved Calls", icon: Y7, color: U2 },
42350          { value: "24/7", label: "Rider Coverage", icon: h1, color: te },
42351          { value: "<1s", label: "Answer Time", icon: Te, color: U2 }
42352        ].map((t, e) => /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a260", _fgB: 1790697589582, className: "flex flex-col items-center text-center", "data-fg-bz1a260": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:645:13:25917:522:e:div:etete", children: [
42353          /* @__PURE__ */ i(a, { _fgT: t.icon, _fgS: "bz1a261", _fgB: 1790697589582, size: 14, style: { color: t.color }, className: "mb-1", "data-fg-bz1a261": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:646:15:25996:70:e:stat.icon" }),
42354          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a262", _fgB: 1790697589582, className: "text-white", style: { fontSize: "18px", fontWeight: 700 }, "data-fg-bz1a262": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:647:15:26081:124:e:div:x", children: t.value }),
42355          /* @__PURE__ */ i(
42356            a,
42357            {
42358              _fgT: "div",
42359              _fgS: "bz1a264",
42360              _fgB: 1790697589582,
42361              className: "text-slate-400 uppercase tracking-widest",
42362              style: { fontSize: "7px", fontWeight: 600 },
42363              "data-fg-bz1a264": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:650:15:26220:200:e:div:x",
42364              children: t.label
42365            }
42366          )
42367        ] }, e))
42368      }
42369    ) }),
42370    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a267", _fgB: 1790697589582, className: "mt-auto", "data-fg-bz1a267": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:662:7:26534:2470:e:div:e", children: /* @__PURE__ */ c(
42371      a,
42372      {
42373        _fgT: "div",
42374        _fgS: "bz1a268",
42375        _fgB: 1790697589582,
42376        className: "px-10 py-5 text-white relative overflow-hidden",
42377        style: { background: `linear-gradient(135deg, ${_3} 0%, #132B44 100%)` },
42378        "data-fg-bz1a268": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:663:9:26568:2423:e:div:xtetetxte",
42379        children: [
42380          /* @__PURE__ */ i(
42381            a,
42382            {
42383              _fgT: "div",
42384              _fgS: "bz1a270",
42385              _fgB: 1790697589582,
42386              className: "absolute -top-10 -right-10 w-48 h-48 rounded-full opacity-15",
42387              style: { background: `radial-gradient(circle, ${te} 0%, transparent 70%)` },
42388              "data-fg-bz1a270": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:668:11:26782:193:e:div"
42389            }
42390          ),
42391          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a271", _fgB: 1790697589582, className: "flex items-center justify-between relative z-10", "data-fg-bz1a271": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:673:11:26987:1034:e:div:ete", children: [
42392            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a272", _fgB: 1790697589582, "data-fg-bz1a272": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:674:13:27065:600:e:div:ete", children: [
42393              /* @__PURE__ */ c(
42394                a,
42395                {
42396                  _fgT: "h3",
42397                  _fgS: "bz1a273",
42398                  _fgB: 1790697589582,
42399                  className: "font-[DM_Serif_Display] mb-1",
42400                  style: { fontSize: "18px" },
42401                  "data-fg-bz1a273": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:675:15:27085:314:e:h3:tste",
42402                  children: [
42403                    "See the Agentic Transit Platform",
42404                    " ",
42405                    /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a276", _fgB: 1790697589582, className: "italic", style: { color: fe }, "data-fg-bz1a276": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:680:17:27277:102:e:span:t", children: "In Action." })
42406                  ]
42407                }
42408              ),
42409              /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "bz1a278", _fgB: 1790697589582, className: "text-white/70", style: { fontSize: "10.5px" }, "data-fg-bz1a278": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:684:15:27414:232:e:p:t", children: "We'll show you a live walkthrough of the six AI agents, explain how they'll support your team, and answer any questions." })
42410            ] }),
42411            /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "bz1a280", _fgB: 1790697589582, className: "flex flex-col items-end gap-1.5 flex-shrink-0 ml-6", "data-fg-bz1a280": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:690:13:27679:325:e:div:e", children: /* @__PURE__ */ i(
42412              a,
42413              {
42414                _fgT: "div",
42415                _fgS: "bz1a281",
42416                _fgB: 1790697589582,
42417                className: "px-5 py-2 rounded-full text-white",
42418                style: { backgroundColor: te, fontSize: "11px", fontWeight: 600 },
42419                "data-fg-bz1a281": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:691:15:27762:223:e:div:t",
42420                children: "Schedule a Meeting"
42421              }
42422            ) })
42423          ] }),
42424          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a284", _fgB: 1790697589582, className: "flex items-center gap-6 mt-4 pt-3 border-t border-white/10 relative z-10", "data-fg-bz1a284": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:701:11:28067:909:e:div:etete", children: [
42425            /* @__PURE__ */ i(a, { _fgT: "img", _fgS: "bz1a285", _fgB: 1790697589582, src: A1, alt: "IT Curves", className: "h-6 opacity-80", "data-fg-bz1a285": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:702:13:28170:61:e:img" }),
42426            /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a286", _fgB: 1790697589582, className: "flex items-center gap-5", "data-fg-bz1a286": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:703:13:28244:588:e:div:etete", children: [
42427              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bz1a287", _fgB: 1790697589582, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bz1a287": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:704:15:28300:162:e:span:et", children: [
42428                /* @__P
42428URE__ */ i(a, { _fgT: J1, _fgS: "bz1a288", _fgB: 1790697589582, size: 11, "data-fg-bz1a288": ":0:node_modules/lucide-react:705:17:28405:19:e:Globe::::::Cyd3" }),
42429                " www.ITCurves.AI"
42430              ] }),
42431              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bz1a290", _fgB: 1790697589582, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bz1a290": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:707:15:28477:159:e:span:et", children: [
42432                /* @__PURE__ */ i(a, { _fgT: Y, _fgS: "bz1a291", _fgB: 1790697589582, size: 11, "data-fg-bz1a291": ":0:node_modules/lucide-react:708:17:28582:19:e:Phone::::::DmpI" }),
42433                " 301-208-2222"
42434              ] }),
42435              /* @__PURE__ */ c(a, { _fgT: "span", _fgS: "bz1a293", _fgB: 1790697589582, className: "flex items-center gap-1.5 text-white/70", style: { fontSize: "9.5px" }, "data-fg-bz1a293": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:710:15:28651:162:e:span:et", children: [
42436                /* @__PURE__ */ i(a, { _fgT: K1, _fgS: "bz1a294", _fgB: 1790697589582, size: 11, "data-fg-bz1a294": ":0:node_modules/lucide-react:711:17:28756:18:e:Mail::::::D4VR" }),
42437                " [email protected]"
42438              ] })
42439            ] }),
42440            /* @__PURE__ */ i(a, { _fgT: "span", _fgS: "bz1a296", _fgB: 1790697589582, className: "ml-auto text-white/40", style: { fontSize: "8px" }, "data-fg-bz1a296": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:714:13:28845:114:e:span:t", children: "Page 2 of 2" })
42441          ] })
42442        ]
42443      }
42444    ) })
42445  ] });
42446}
42447function Xy() {
42448  return /* @__PURE__ */ c(C, { children: [
42449    /* @__PURE__ */ i("style", { "data-fg-bz1a300": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:731:7:29315:1231:e:style:s", children: `
42450        .flyer-wrapper-ai-v2 {
42451          display: flex;
42452          flex-direction: column;
42453          align-items: center;
42454          gap: 40px;
42455          padding: 100px 20px 40px;
42456          background: #e5e7eb;
42457          min-height: 100vh;
42458        }
42459
42460        .flyer-page {
42461          width: 8.5in;
42462          height: 11in;
42463          background: white;
42464          box-shadow: 0 4px 24px rgba(0,0,0,0.15);
42465          overflow: hidden;
42466          flex-shrink: 0;
42467        }
42468
42469        @media print {
42470          @page {
42471            size: 8.5in 11in;
42472            margin: 0;
42473          }
42474
42475          body, html {
42476            margin: 0 !important;
42477            padding: 0 !important;
42478            background: white !important;
42479          }
42480
42481          .flyer-wrapper-ai-v2 {
42482            padding: 0;
42483            gap: 0;
42484            background: white;
42485          }
42486
42487          .flyer-page {
42488            box-shadow: none;
42489            page-break-after: always;
42490            break-after: page;
42491          }
42492
42493          .flyer-page:last-child {
42494            page-break-after: avoid;
42495            break-after: avoid;
42496          }
42497
42498          nav, .chatbot-wrapper, footer, .no-print {
42499            display: none !important;
42500          }
42501        }
42502      ` }),
42503    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "bz1a302", _fgB: 1790697589582, className: "flyer-wrapper-ai-v2", "data-fg-bz1a302": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:786:7:30554:90:e:div:ete", children: [
42504      /* @__PURE__ */ i(a, { _fgT: Ky, _fgS: "bz1a303", _fgB: 1790697589582, "data-fg-bz1a303": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:787:9:30600:11:e:PageOne::::::B9hf" }),
42505      /* @__PURE__ */ i(a, { _fgT: Yy, _fgS: "bz1a304", _fgB: 1790697589582, "data-fg-bz1a304": ":0:/src/app/pages/AISolutionsFlyerPageV2.tsx:788:9:30620:11:e:PageTwo::::::CA1p" })
42506    ] })
42507  ] });
42508}
42509const Qy = [
42510  {
42511    title: "Fixed Route",
42512    description: "Updated two-page Fixed Route flyer — same content with refinements for layout and spacing.",
42513    href: "/flyers/fixed-route"
42514  },
42515  {
42516    title: "Paratransit V3",
42517    description: "Paratransit flyer version 3 — working copy for iterative design updates and content refinements.",
42518    href: "/flyers/paratransit-v3"
42519  },
42520  {
42521    title: "Microtransit",
42522    description: "Two-page sales flyer for Microtransit — commingled fleets, zone-based dispatch, full simulation, white-label deployment, and first-mile last-mile coverage.",
42523    href: "/flyers/microtransit"
42524  },
42525  {
42526    title: "AI Solutions",
42527    description: "AI Solutions flyer version 2 — working copy for iterative design updates and content refinements.",
42528    href: "/flyers/ai-solutions"
42529  }
42530];
42531function ew() {
42532  return /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cu9v0", _fgB: 1790697589549, _fgD: !0, className: "min-h-screen bg-[#0B1B2B] text-white flex flex-col", "data-fg-cu9v0": ":0:/src/app/pages/FlyersIndexPage.tsx:29:5:961:1665:e:div:xtetxte:1", children: [
42533    /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cu9v2", _fgB: 1790697589549, className: "pt-32 pb-12 px-6 text-center", "data-fg-cu9v2": ":0:/src/app/pages/FlyersIndexPage.tsx:31:7:1057:311:e:div:ete", children: [
42534      /* @__PURE__ */ i(a, { _fgT: "h1", _fgS: "cu9v3", _fgB: 1790697589549, className: "text-4xl md:text-5xl tracking-tight text-white mb-3", "data-fg-cu9v3": ":0:/src/app/pages/FlyersIndexPage.tsx:32:9:1112:105:e:h1:t", children: "Sales Flyers" }),
42535      /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cu9v5", _fgB: 1790697589549, className: "text-blue-200/70 max-w-md mx-auto", "data-fg-cu9v5": ":0:/src/app/pages/FlyersIndexPage.tsx:35:9:1226:129:e:p:t", children: "Print-ready product flyers. Select one to view or print." })
42536    ] }),
42537    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cu9v8", _fgB: 1790697589549, className: "flex-1 w-full max-w-3xl mx-auto px-6 pb-24", "data-fg-cu9v8": ":0:/src/app/pages/FlyersIndexPage.tsx:41:7:1401:1214:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cu9v9", _fgB: 1790697589549, className: "grid gap-4", "data-fg-cu9v9": ":0:/src/app/pages/FlyersIndexPage.tsx:42:9:1470:1132:e:div:x", children: Qy.map((t) => /* @__PURE__ */ c(
42538      a,
42539      {
42540        _fgT: E,
42541        _fgS: "cu9v11",
42542        _fgB: 1790697589549,
42543        href: t.href,
42544        className: "group flex items-center gap-5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-[#EFBB0F]/40 rounded-xl p-6 transition-all duration-300",
42545        "data-fg-cu9v11": ":0:node_modules/wouter:44:13:1546:1027:e:Link:etete:::::C4yE",
42546        children: [
42547          /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "cu9v12", _fgB: 1790697589549, className: "shrink-0 w-12 h-12 rounded-lg bg-[#EFBB0F]/10 flex items-center justify-center text-[#EFBB0F]", "data-fg-cu9v12": ":0:/src/app/pages/FlyersIndexPage.tsx:49:15:1820:171:e:div:e", children: /* @__PURE__ */ i(a, { _fgT: G7, _fgS: "cu9v13", _fgB: 1790697589549, size: 24, "data-fg-cu9v13": ":0:node_modules/lucide-react:50:17:1948:22:e:FileText::::::B1i5" }) }),
42548          /* @__PURE__ */ c(a, { _fgT: "div", _fgS: "cu9v14", _fgB: 1790697589549, className: "flex-1 min-w-0", "data-fg-cu9v14": ":0:/src/app/pages/FlyersIndexPage.tsx:52:15:2006:346:e:div:ete", children: [
42549            /* @__PURE__ */ i(a, { _fgT: "h2", _fgS: "cu9v15", _fgB: 1790697589549, className: "text-white group-hover:text-[#EFBB0F] transition-colors duration-300 mb-1", "data-fg-cu9v15": ":0:/src/app/pages/FlyersIndexPage.tsx:53:17:2055:144:e:h2:x", children: t.title }),
42550            /* @__PURE__ */ i(a, { _fgT: "p", _fgS: "cu9v17", _fgB: 1790697589549, className: "text-blue-200/50 text-sm leading-relaxed", "data-fg-cu9v17": ":0:/src/app/pages/FlyersIndexPage.tsx:56:17:2216:115:e:p:x", children: t.description })
42551          ] }),
42552          /* @__PURE__ */ i(
42553            a,
42554            {
42555              _fgT: D,
42556              _fgS: "cu9v19",
42557              _fgB: 1790697589549,
42558              size: 20,
42559              className: "shrink-0 text-white/20 group-hover:text-[#EFBB0F] group-hover:translate-x-1 transition-all duration-300",
42560              "data-fg-cu9v19": ":0:node_modules/lucide-react:60:15:2367:186:e:ArrowRight::::::s5N"
42561            }
42562          )
42563        ]
42564      },
42565      t.href
42566    )) }) })
42567  ] });
42568}
42569function tw() {
42570  return /* @__PURE__ */ c(a, { _fgT: Vd, _fgS: "d3bl0", _fgB: 1790697588964, _fgD: !0, "data-fg-d3bl0": ":0:/src/app/App.tsx:36:5:2043:2136:e:ContactModalProvider:etetetete:1::::XLk", children: [
42571    /* @__PURE__ */ i(a, { _fgT: Zd, _fgS: "d3bl1", _fgB: 1790697588964, "data-fg-d3bl1": ":0:/src/app/App.tsx:37:7:2072:10:e:Navbar::::::BXyW" }),
42572    /* @__PURE__ */ i(a, { _fgT: Wd, _fgS: "d3bl2", _fgB: 1790697588964, "data-fg-d3bl2": ":0:/src/app/App.tsx:38:7:2089:15:e:ScrollToTop::::::Domw" }),
42573    /* @__PURE__ */ i(a, { _fgT: "div", _fgS: "d3bl3", _fgB: 1790697588964, className: "relative z-10 bg-white shadow-2xl", "data-fg-d3bl3": ":0:/src/app/App.tsx:40:7:2118:1981:e:div:e", children: /* @__PURE__ */ c(a, { _fgT: Z9, _fgS: "d3bl4", _fgB: 1790697588964, "data-fg-d3bl4": ":0:node_modules/wouter:41:9:2178:1908:e:Switch:etetetetetetetetetetetetetetetetetetetetetetetetetetxte:::::dtQ", children: [
42574      /* @__PURE__ */ i(J, { path: "/", component: Va, "data-fg-d3bl5": ":0:node_modules/wouter:42:11:2197:39:e:Route::::::BI6v" }),
42575      /* @__PURE__ */ i(J, { path: "/markets/fixed-route", component: Tp, "data-fg-d3bl6": ":0:node_modules/wouter:43:11:2247:70:e:Route::::::BI6v" }),
42576      /* @__PURE__ */ i(J, { path: "/markets", component: Gg, "data-fg-d3bl7": ":0:node_modules/wouter:44:11:2328:49:e:Route::::::BI6v" }),
42577      /* @__PURE__ */ i(J, { path: "/all-in-one-platform", component: df, "data-fg-d3bl8": ":0:node_modules/wouter:45:11:2388:63:e:Route::::::BI6v" }),
42578      /* @__PURE__ */ i(J, { path: "/drivigo", component: Of, "data-fg-d3bl9": ":0:node_modules/wouter:46:11:2462:49:e:Route::::::BI6v" }),
42579      /* @__PURE__ */ i(J, { path: "/transigo", component: qf, "data-fg-d3bl10": ":0:node_modules/wouter:47:11:2522:51:e:Route::::::BI6v" }),
42580      /* @__PURE__ */ i(J, { path: "/fixed-route", component: cp, "data-fg-d3bl11": ":0:node_modules/wouter:48:11:2584:56:e:Route::::::BI6v" }),
42581      /* @__PURE__ */ i(J, { path: "/paratransit", component: Ep, "data-fg-d3bl12": ":0:node_modules/wouter:49:11:2651:57:e:Route::::::BI6v" }),
42582      /* @__PURE__ */ i(J, { path: "/microtransit", component: $p, "data-fg-d3bl13": ":0:node_modules/wouter:50:11:2719:59:e:Route::::::BI6v" }),
42583      /* @__PURE__ */ i(J, { path: "/nemt", component: Qp, "data-fg-d3bl14": ":0:node_modules/wouter:51:11:2789:43:e:Route::::::BI6v" }),
42584      /* @__PURE__ */ i(J, { path: "/taxi-dispatch", component: cM, "data-fg-d3bl15": ":0:node_modules/wouter:52:11:2843:58:e:Route::::::BI6v" }),
42585      /* @__PURE__ */ i(J, { path: "/ai-solutions", component: Ff, "data-fg-d3bl16": ":0:node_modules/wouter:53:11:2912:58:e:Route::::::BI6v" }),
42586      /* @__PURE__ */ i(J, { path: "/ai/voice", component: ax, "data-fg-d3bl17": ":0:node_modules/wouter:54:11:2981:50:e:Route::::::BI6v" }),
42587      /* @__PURE__ */ i(J, { path: "/ai/workshop", component: ox, "data-fg-d3bl18": ":0:node_modules/wouter:55:11:3042:56:e:Route::::::BI6v" }),
42588      /* @__PURE__ */ i(J, { path: "/about", component: yM, "data-fg-d3bl19": ":0:node_modules/wouter:56:11:3109:45:e:Route::::::BI6v" }),
42589      /* @__PURE__ */ i(J, { path: "/ivr", component: PM, "data-fg-d3bl20": ":0:node_modules/wouter:57:11:3165:41:e:Route::::::BI6v" }),
42590      /* @__PURE__ */ i(J, { path: "/news-articles", component: ly, "data-fg-d3bl21": ":0:node_modules/wouter:58:11:3217:62:e:Route::::::BI6v" }),
42591      /* @__PURE__ */ i(J, { path: "/news-articles/go-time-annapolis", component: hy, "data-fg-d3bl22": ":0:node_modules/wouter:59:11:3290:88:e:Route::::::BI6v" }),
42592      /* @__PURE__ */ i(J, { path: "/news-articles/:slug", component: dy, "data-fg-d3bl23": ":0:node_modules/wouter:60:11:3389:69:e:Route::::::BI6v" }),
42593      /* @__PURE__ */ i(J, { path: "/contact", component: Gm, "data-fg-d3bl24": ":0:node_modules/wouter:61:11:3469:49:e:Route::::::BI6v" }),
42594      /* @__PURE__ */ i(J, { path: "/meet", component: Jm, "data-fg-d3bl25": ":0:node_modules/wouter:62:11:3529:50:e:Route::::::BI6v" }),
42595      /* @__PURE__ */ i(J, { path: "/flyers", component: ew, "data-fg-d3bl26": ":0:node_modules/wouter:63:11:3590:52:e:Route::::::BI6v" }),
42596      /* @__PURE__ */ i(J, { path: "/flyers/fixed-route", component: Cy, "data-fg-d3bl27": ":0:node_modules/wouter:64:11:3653:70:e:Route::::::BI6v" }),
42597      /* @__PURE__ */ i(J, { path: "/flyers/paratransit-v3", component: Oy, "data-fg-d3bl28": ":0:node_modules/wouter:65:11:3734:74:e:Route::::::BI6v" }),
42598      /* @__PURE__ */ i(J, { path: "/flyers/microtransit", component: Gy, "data-fg-d3bl29": ":0:node_modules/wouter:66:11:3819:71:e:Route::::::BI6v" }),
42599      /* @__PURE__ */ i(J, { path: "/flyers/ai-solutions", component: Xy, "data-fg-d3bl30": ":0:node_modules/wouter:67:11:3901:72:e:Route::::::BI6v" }),
42600      /* @__PURE__ */ i(J, { component: Va, "data-fg-d3bl32": ":0:node_modules/wouter:69:11:4038:30:e:Route::::::BI6v" })
42601    ] }) }),
42602    /* @__PURE__ */ i(a, { _fgT: qd, _fgS: "d3bl33", _fgB: 1790697588964, "data-fg-d3bl33": ":0:/src/app/App.tsx:73:7:4107:16:e:ContactModal::::::B2Kq" }),
42603    /* @__PURE__ */ i(a, { _fgT: $d, _fgS: "d3bl34", _fgB: 1790697588964, "data-fg-d3bl34": ":0:/src/app/App.tsx:74:7:4130:21:e:FlexAgentsChatbot::::::kng" })
42604  ] });
42605}
42606const aw = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
42607  __proto__: null,
42608  default: tw
42609}, Symbol.toStringTag, { value: "Module" }));
42610export {
42611  sw as Code0_8
42612};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.