{"version":3,"file":"script_main.D7Da3yi3.mjs","names":["useState","CSS","c","_Fragment","CSS","c","useState","useRef","React.useId","React.createElement","SiteChrome","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/iriX0tEShLH04SiunCjD/gZqURHXqLx1eebXMRUy2/NavBar.js","https:/framerusercontent.com/modules/UNE1PiujepMGEowg5rPL/1pJsxkWlGRmobEJ2vWYP/SiteFooter.js","https:/framerusercontent.com/modules/Cfr5XX2UktBRJmdeIQVV/xo0mvXyzVHmdmoDJN1p9/SiteStyles.js","https:/framerusercontent.com/modules/ihOR68NE36rEdvvl181g/Yme5WDRirzRJeOgLpr4y/ThemeToggle.js","https:/framerusercontent.com/modules/FyNpoTjyS9Lz6DK7XIuv/jZV0IcpmypS16Uyh9e0H/eg9YMekPq.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect}from\"react\";/**\n * Menu text format. Object-array controls cannot be written through the\n * agent API when the instance lives inside a layout template, so the menu is\n * also expressible as plain text and that is what makes it maintainable:\n *\n *   [left]\n *   Products|/products\n *   - Waterless water coolers|/products/water-coolers\n *   [right]\n *   About|/about\n *   - Blog|/blog\n *\n * A line starting with \"-\" is a dropdown child of the line above it. When\n * menuText is empty the component falls back to the leftLinks/rightLinks\n * arrays, so existing instances are unaffected.\n */// Links that leave the site (a Google review page, say) open in a new tab so\n// the visitor keeps their place here.\nfunction ext(href){return href&&/^https?:\\/\\//.test(href)?{target:\"_blank\",rel:\"noopener noreferrer\"}:{};}function parseMenu(text){const out={left:[],right:[]};let side=\"left\";for(const raw of(text||\"\").split(\"\\n\")){const line=raw.trim();if(!line)continue;if(line.toLowerCase()===\"[left]\"){side=\"left\";continue;}if(line.toLowerCase()===\"[right]\"){side=\"right\";continue;}const child=line.startsWith(\"-\");const[label,href=\"\"]=line.replace(/^-\\s*/,\"\").split(\"|\").map(x=>x.trim());if(!label)continue;if(child){const parent=out[side][out[side].length-1];if(parent)(parent.submenu||=[]).push({label,href});}else{out[side].push({label,href,submenu:[]});}}return out;}const CSS=`\n.mpnav{position:fixed;top:0;left:0;right:0;z-index:90;box-sizing:border-box;\n  container-type:inline-size;container-name:mpnav;\n  padding:18px clamp(20px,3cqw,40px);transition:padding .35s}\n.mpnav.stuck{padding-top:12px}\n.mpnav-in{max-width:1160px;margin:0 auto;display:grid;\n  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;\n  padding:10px 12px 10px 28px;border-radius:100px;\n  border:1px solid transparent;background:transparent;\n  transition:background .35s,border-color .35s,box-shadow .35s}\n.mpnav.stuck .mpnav-in{background:var(--mp-veil,rgba(255,255,255,.94));border-color:var(--mp-border,#E2E8ED);\n  box-shadow:0 10px 30px -18px rgba(16,24,32,.35);\n  backdrop-filter:saturate(150%) blur(10px)}\n/* Both link groups sit against the logo rather than against the outer\n   edges, so the menu reads as one centred cluster. The CTA is pushed back\n   out to the right on its own. */\n.mpnav-grp{display:flex;gap:26px;align-items:center;justify-content:flex-end;\n  font-family:Inter,sans-serif;font-size:11px;font-weight:600;\n  letter-spacing:.13em;text-transform:uppercase;color:var(--mp-ink,#101820)}\n.mpnav-grp.right{justify-content:flex-start}\n.mpnav-grp.right .mpnav-cta{margin-left:auto}\n/* An optional second button mirrors the right one at the far left edge.\n   minmax(0,1fr) keeps the logo dead centre even though the left side now\n   carries more; the left group tightens slightly so it still fits. */\n.mpnav-grp:not(.right) .mpnav-cta{margin-right:auto;padding:12px 20px}\n.mpnav-grp:not(.right){gap:16px}\n.mpnav-grp a{color:inherit;text-decoration:none;opacity:.82;\n  white-space:nowrap;transition:color .2s,opacity .2s}\n.mpnav-grp a:hover{opacity:1;color:var(--mp-accent,#0090C7)}\n/* Try for free is a button that happens to sit in the link group. The rule\n   above dims every link to 82% and forces colour inheritance, which washed\n   the brand blue out and left the label near-black instead of white. A link\n   selector at 0,1,1 outranks .mpnav-cta at 0,1,0, so the button states have\n   to be named against the group to win them back. */\n.mpnav-grp a.mpnav-cta,\n.mpnav-grp a.mpnav-cta:hover,\n.mpnav-grp a.mpnav-cta:focus-visible{\n  opacity:1;color:var(--mp-on-accent,#fff)}\n/* Dropdown. Revealed on hover and on :focus-within rather than toggled with\n   display, because a display:none panel cannot receive the focus that would\n   open it. Opacity plus pointer-events keeps the links tabbable. */\n.mpnav-has{position:relative;display:flex;align-items:center;\n  padding:14px 0 18px;margin:-14px 0 -18px}\n.mpnav-has > a{display:inline-flex;align-items:center;gap:6px}\n.mpnav-has > a svg{transition:transform .25s}\n.mpnav-has:hover > a svg,.mpnav-has:focus-within > a svg{transform:rotate(180deg)}\n.mpnav-sub{position:absolute;top:100%;left:-14px;\n  min-width:228px;padding:10px;border-radius:16px;\n  background:var(--mp-veil-strong,rgba(255,255,255,.98));border:1px solid var(--mp-border,#E2E8ED);\n  box-shadow:0 24px 48px -24px rgba(16,24,32,.42);\n  display:flex;flex-direction:column;gap:2px;\n  opacity:0;pointer-events:none;transform:translateY(-6px);\n  transition:opacity .22s,transform .22s;z-index:20}\n.mpnav-grp.right .mpnav-sub{left:auto;right:-14px}\n.mpnav-has:hover .mpnav-sub,.mpnav-has:focus-within .mpnav-sub{\n  opacity:1;pointer-events:auto;transform:translateY(0)}\n.mpnav-sub a{display:block;padding:9px 14px;border-radius:10px;\n  font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;\n  opacity:1;color:var(--mp-ink,#101820);white-space:nowrap;\n  transition:background .18s,color .18s}\n.mpnav-sub a:hover{background:var(--mp-paper,#F1F5F8);color:var(--mp-accent,#0090C7)}\n.mpnav-brand{justify-self:center;display:flex;align-items:center}\n/* The wordmark is dark-on-transparent, so on a dark nav only the cyan mark\n   survived and the name vanished. The footer already ships a light variant;\n   the nav now uses it, swapped in CSS so there is no hydration flash. */\n.mpnav-logo-d{display:none}\n@media (prefers-color-scheme:dark){\n  :root:not([data-theme=\"light\"]) .mpnav-logo-l{display:none}\n  :root:not([data-theme=\"light\"]) .mpnav-logo-d{display:block}\n}\nhtml[data-theme=\"dark\"] .mpnav-logo-l{display:none}\nhtml[data-theme=\"dark\"] .mpnav-logo-d{display:block}\nhtml[data-theme=\"light\"] .mpnav-logo-l{display:block}\nhtml[data-theme=\"light\"] .mpnav-logo-d{display:none}\n.mpnav-cta{padding:12px 24px;border-radius:100px;background:var(--mp-accent-bright,#00AEEF);color:var(--mp-on-accent,#fff);\n  font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;\n  text-transform:uppercase;text-decoration:none;white-space:nowrap;\n  transition:background .2s}\n.mpnav-cta:hover{background:var(--mp-accent,#0090C7)}\n.mpnav-burger{display:none;justify-self:end;border:none;background:none;\n  cursor:pointer;color:var(--mp-ink,#101820);padding:6px}\n.mpnav-drawer{display:none}\n/* Collapses a little earlier than before: with a button on each side, the\n   full bar needs about 1100px of bar before the left group would crowd the logo. */\n@container mpnav (max-width:1100px){\n  .mpnav-grp{display:none}\n  .mpnav-sub{display:none}\n  .mpnav-in{grid-template-columns:auto 1fr auto;padding-left:20px}\n  .mpnav-brand{justify-self:start}\n  .mpnav-burger{display:block}\n  .mpnav.open .mpnav-in{background:var(--mp-veil-strong,rgba(255,255,255,.98));border-color:var(--mp-border,#E2E8ED)}\n  /* Opens to the menu's own height. The previous max-height:620px was a\n     guess, and the menu had grown to 968px, so Solutions, Service areas\n     and Try for free were being clipped off the bottom with no way to\n     reach them. 0fr to 1fr animates to natural height, so the menu can\n     never outgrow its own container again. */\n  .mpnav-drawer{display:grid;grid-template-rows:0fr;overflow:hidden;\n    transition:grid-template-rows .38s cubic-bezier(.2,.7,.3,1);\n    max-width:1160px;margin:0 auto}\n  .mpnav.open .mpnav-drawer{grid-template-rows:1fr}\n  .mpnav-drawer>*{min-height:0}\n  /* And if the menu is ever taller than the screen it scrolls rather than\n     disappearing. dvh is deliberate here: this is a fixed overlay, not\n     section layout, so it is the viewport that bounds it. */\n  .mpnav.open .mpnav-drawer-in{max-height:calc(100dvh - 130px);\n    overflow-y:auto;-webkit-overflow-scrolling:touch}\n  .mpnav-drawer-in{margin-top:10px;padding:20px 24px 24px;border-radius:22px;\n    background:var(--mp-veil-strong,rgba(255,255,255,.98));border:1px solid var(--mp-border,#E2E8ED);\n    box-shadow:0 20px 40px -24px rgba(16,24,32,.4);\n    display:flex;flex-direction:column;gap:2px;\n    transition:padding .38s cubic-bezier(.2,.7,.3,1),margin .38s cubic-bezier(.2,.7,.3,1),\n      box-shadow .38s,visibility 0s .38s}\n  /* A 0fr row collapses content but not padding, border or margin, so the\n     closed drawer still showed a ~60px pill with PRODUCTS peeking out under\n     the logo, and its links stayed reachable by keyboard. Closed, the panel\n     drops its box chrome and goes visibility:hidden once the slide ends. */\n  .mpnav:not(.open) .mpnav-drawer-in{padding-top:0;padding-bottom:0;margin-top:0;\n    border-width:0;box-shadow:none;visibility:hidden}\n  .mpnav.open .mpnav-drawer-in{visibility:visible;\n    transition:padding .38s cubic-bezier(.2,.7,.3,1),margin .38s cubic-bezier(.2,.7,.3,1),\n      box-shadow .38s,visibility 0s}\n  .mpnav-drawer-in a.mpnav-dlink{font-family:Inter,sans-serif;font-size:12px;\n    font-weight:600;letter-spacing:.17em;text-transform:uppercase;\n    color:var(--mp-ink,#101820);text-decoration:none;padding:13px 0;\n    border-bottom:1px solid var(--mp-border,#EEF3F7)}\n  .mpnav-drawer-in a.mpnav-dlink:last-of-type{border-bottom:none}\n  .mpnav-drawer-in a.mpnav-dsub{padding-left:16px;text-transform:none;\n    letter-spacing:0;font-size:13px;font-weight:500;color:var(--mp-muted,#5E7180)}\n  .mpnav-drawer-cta{margin-top:14px;display:flex;flex-direction:column;gap:10px}\n  .mpnav-drawer-cta .mpnav-cta{text-align:center}\n  .mpnav-dphone{text-align:center;font-family:'Inter Tight',sans-serif;\n    font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--mp-accent,#0090C7);\n    text-decoration:none}\n}\n`;export default function NavBar(props){const{logo,logoDark,logoWidth,leftLinks:leftLinksProp,rightLinks:rightLinksProp,menuText,ctaLabel,ctaHref,leftCtaLabel,leftCtaHref,phoneLabel,phoneHref,style}=props;const[stuck,setStuck]=useState(false);const[open,setOpen]=useState(false);useEffect(()=>{const onScroll=()=>setStuck(window.scrollY>60);window.addEventListener(\"scroll\",onScroll,{passive:true});onScroll();return()=>window.removeEventListener(\"scroll\",onScroll);},[]);const parsed=(menuText||\"\").trim()?parseMenu(menuText):null;const leftLinks=parsed?parsed.left:leftLinksProp;const rightLinks=parsed?parsed.right:rightLinksProp;const all=[...leftLinks,...rightLinks];return /*#__PURE__*/_jsxs(\"div\",{className:\"mpnav\"+(stuck?\" stuck\":\"\")+(open?\" open\":\"\"),style:style,children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-in\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-grp\",children:[leftCtaLabel&&leftCtaHref?/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-cta\",href:leftCtaHref,...ext(leftCtaHref),children:leftCtaLabel}):null,leftLinks.map((l,i)=>l.submenu&&l.submenu.length>0?/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-has\",children:[/*#__PURE__*/_jsxs(\"a\",{href:l.href,...ext(l.href),children:[l.label,/*#__PURE__*/_jsx(\"svg\",{width:\"9\",height:\"6\",viewBox:\"0 0 9 6\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 1.5 4.5 4.5 8 1.5\"})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"mpnav-sub\",children:l.submenu.map((c,j)=>/*#__PURE__*/_jsx(\"a\",{href:c.href,...ext(c.href),children:c.label},j))})]},i):/*#__PURE__*/_jsx(\"a\",{href:l.href,...ext(l.href),children:l.label},i))]}),/*#__PURE__*/_jsx(\"a\",{href:\"/\",className:\"mpnav-brand\",children:logo?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"img\",{className:\"mpnav-logo-l\",src:logo,alt:\"Metro Pure Water\",style:{width:logoWidth,height:\"auto\"}}),logoDark?/*#__PURE__*/_jsx(\"img\",{className:\"mpnav-logo-d\",src:logoDark,alt:\"\",\"aria-hidden\":\"true\",style:{width:logoWidth,height:\"auto\"}}):null]}):/*#__PURE__*/_jsx(\"span\",{style:{width:logoWidth,height:32,borderRadius:4,background:`var(--mp-paper, #F1F5F8)`,display:\"grid\",placeItems:\"center\",fontFamily:\"Inter, sans-serif\",fontSize:10,fontWeight:600,letterSpacing:\"0.2em\",textTransform:\"uppercase\",color:`var(--mp-muted, #5E7180)`},children:\"Logo\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-grp right\",children:[rightLinks.map((l,i)=>l.submenu&&l.submenu.length>0?/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-has\",children:[/*#__PURE__*/_jsxs(\"a\",{href:l.href,...ext(l.href),children:[l.label,/*#__PURE__*/_jsx(\"svg\",{width:\"9\",height:\"6\",viewBox:\"0 0 9 6\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 1.5 4.5 4.5 8 1.5\"})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"mpnav-sub\",children:l.submenu.map((c,j)=>/*#__PURE__*/_jsx(\"a\",{href:c.href,...ext(c.href),children:c.label},j))})]},i):/*#__PURE__*/_jsx(\"a\",{href:l.href,...ext(l.href),children:l.label},i)),/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-cta\",href:ctaHref,children:ctaLabel})]}),/*#__PURE__*/_jsx(\"button\",{className:\"mpnav-burger\",\"aria-label\":open?\"Close menu\":\"Open menu\",\"aria-expanded\":open,onClick:()=>setOpen(!open),children:/*#__PURE__*/_jsx(\"svg\",{width:\"22\",height:\"14\",viewBox:\"0 0 22 14\",stroke:\"currentColor\",strokeWidth:\"1.7\",strokeLinecap:\"round\",fill:\"none\",children:open?/*#__PURE__*/_jsx(\"path\",{d:\"M2 2l18 10M2 12L20 2\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M1 1h20M1 7h20M1 13h13\"})})})]}),/*#__PURE__*/_jsx(\"div\",{className:\"mpnav-drawer\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-drawer-in\",children:[all.map((l,i)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-dlink\",href:l.href,...ext(l.href),onClick:()=>setOpen(false),children:l.label}),(l.submenu??[]).map((c,j)=>/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-dlink mpnav-dsub\",href:c.href,...ext(c.href),onClick:()=>setOpen(false),children:c.label},j))]},i)),/*#__PURE__*/_jsxs(\"div\",{className:\"mpnav-drawer-cta\",children:[phoneLabel?/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-dphone\",href:phoneHref,children:phoneLabel}):null,/*#__PURE__*/_jsx(\"a\",{className:\"mpnav-cta\",href:ctaHref,onClick:()=>setOpen(false),children:ctaLabel})]})]})})]});}NavBar.defaultProps={logo:\"\",logoWidth:120,ctaLabel:\"Request a quote\",ctaHref:\"#contact\",phoneLabel:\"833-PURE-ICE\",phoneHref:\"tel:8337873423\",leftLinks:[{label:\"Ice Machines\",href:\"#products\"},{label:\"Water Coolers\",href:\"#products\"},{label:\"DropWater\",href:\"#dropwater\"}],rightLinks:[{label:\"Solutions\",href:\"#solutions\"},{label:\"Service\",href:\"#service\"}]};addPropertyControls(NavBar,{logo:{type:ControlType.Image,title:\"Logo\"},logoDark:{type:ControlType.Image,title:\"Logo dark\",description:\"Light wordmark shown when the site is in dark mode. The dark-on-transparent logo loses its name on a dark bar. Leave empty to keep one logo in both themes.\"},logoWidth:{type:ControlType.Number,title:\"Logo width\",min:60,max:320},menuText:{type:ControlType.String,title:\"Menu text\",displayTextArea:true,defaultValue:\"\",description:\"Overrides the link arrays. [left] / [right] sections, one link per line as Label|/path, and a leading - makes it a dropdown item.\"},leftLinks:{type:ControlType.Array,title:\"Left links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\"},href:{type:ControlType.Link,title:\"Link\"},submenu:{type:ControlType.Array,title:\"Submenu\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"\"},href:{type:ControlType.Link,title:\"Link\"}}},defaultValue:[]}}}},rightLinks:{type:ControlType.Array,title:\"Right links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\"},href:{type:ControlType.Link,title:\"Link\"},submenu:{type:ControlType.Array,title:\"Submenu\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"\"},href:{type:ControlType.Link,title:\"Link\"}}},defaultValue:[]}}}},ctaLabel:{type:ControlType.String,title:\"CTA text\"},ctaHref:{type:ControlType.Link,title:\"CTA link\"},leftCtaLabel:{type:ControlType.String,title:\"Left button text\",defaultValue:\"\"},leftCtaHref:{type:ControlType.Link,title:\"Left button link\"},phoneLabel:{type:ControlType.String,title:\"Phone text\"},phoneHref:{type:ControlType.String,title:\"Phone href\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NavBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NavBar.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Column text format, for the same reason as NavBar's menuText: a bare\n * heading line starts a column, and each following \"- Label|/path\" is a link\n * in it. Empty falls back to the columns array.\n */function parseColumns(text){const cols=[];for(const raw of(text||\"\").split(\"\\n\")){const line=raw.trim();if(!line)continue;if(line.startsWith(\"-\")){const[label,href=\"\"]=line.replace(/^-\\s*/,\"\").split(\"|\").map(x=>x.trim());if(label&&cols.length)cols[cols.length-1].links.push({label,href});}else{cols.push({heading:line,links:[]});}}return cols;}const CSS=`\n.mpfoot-outer{container-type:inline-size;container-name:mpfoot;width:100%}\n.mpfoot{width:100%;background:#070D13;box-sizing:border-box;\n  padding:clamp(56px,8cqw,86px) clamp(20px,5cqw,60px) 40px}\n.mpfoot-in{max-width:1120px;margin:0 auto}\n.mpfoot-rule{height:1px;background:rgba(255,255,255,.1)}\n/* Column count is driven by the data, not hardcoded. The brand block takes\n   the first track; each link column gets one after it. Fixing this at three\n   dropped a fourth column onto its own row. */\n.mpfoot-cols{display:grid;\n  grid-template-columns:1.4fr repeat(var(--mpfoot-n,3),1fr);gap:48px;\n  padding:48px 0}\n.mpfoot-col h4{font-family:Inter,sans-serif;font-size:11px;font-weight:600;\n  letter-spacing:.22em;text-transform:uppercase;color:#fff;margin:0 0 16px}\n.mpfoot-col a{display:block;font-family:Inter,sans-serif;font-size:13.5px;\n  line-height:1.6;color:#BFCEDA;text-decoration:none;padding:6px 0;\n  transition:color .2s}\n.mpfoot-col a:hover{color:#00AEEF}\n.mpfoot-brand p{font-family:Inter,sans-serif;font-size:13.5px;line-height:1.6;\n  color:#BFCEDA;margin:16px 0 0}\n.mpfoot-phone{display:inline-block;margin-top:14px;\n  font-family:'Inter Tight',sans-serif;font-size:22px;font-weight:600;\n  letter-spacing:-.02em;color:#fff;text-decoration:none}\n.mpfoot-phone:hover{color:#00AEEF}\n/* The marks stand on their own rather than sitting in tiles. The padding\n   keeps a 44px touch target on a phone without drawing a box around it. */\n.mpfoot-social{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px;\n  margin-left:-2px}\n.mpfoot-slink{display:grid;place-items:center;padding:10px;\n  color:rgba(255,255,255,.66);background:none;border:0;\n  transition:color .22s ease,transform .18s cubic-bezier(.2,.8,.3,1)}\n.mpfoot-slink:hover{color:#fff;transform:translateY(-2px)}\n.mpfoot-slink:active{transform:translateY(0) scale(.94);transition-duration:.09s}\n.mpfoot-slink svg{display:block}\n.mpfoot-bot{display:flex;justify-content:space-between;align-items:center;\n  gap:20px;flex-wrap:wrap;padding-top:28px;font-family:Inter,sans-serif;\n  font-size:13.5px;color:#BFCEDA}\n@container mpfoot (max-width:1000px){\n  .mpfoot-cols{grid-template-columns:1fr 1fr;gap:36px}\n}\n@container mpfoot (max-width:640px){\n  .mpfoot-cols{grid-template-columns:1fr}\n  .mpfoot-bot{flex-direction:column;align-items:flex-start;gap:10px}\n}\n`;/**\n * Social icons, given as \"Platform|URL\" per line.\n *\n * An entry with no URL renders nothing rather than a dead link, so the row\n * can be configured ahead of the profiles existing without shipping a link\n * that goes nowhere.\n */const SOCIAL_ICONS={linkedin:/*#__PURE__*/_jsx(\"svg\",{width:\"21\",height:\"21\",viewBox:\"0 0 16 16\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M4.1 13.5H1.6V5.9h2.5v7.6zM2.85 4.8a1.45 1.45 0 1 1 0-2.9 1.45 1.45 0 0 1 0 2.9zM14.4 13.5h-2.5V9.8c0-.88-.02-2.02-1.23-2.02-1.23 0-1.42.96-1.42 1.95v3.77H6.75V5.9h2.4v1.04h.03c.34-.63 1.15-1.3 2.37-1.3 2.53 0 3 1.67 3 3.84v4.02z\"})}),facebook:/*#__PURE__*/_jsx(\"svg\",{width:\"21\",height:\"21\",viewBox:\"0 0 16 16\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M15 8a7 7 0 1 0-8.09 6.92v-4.9H5.13V8h1.78V6.46c0-1.76 1.05-2.73 2.65-2.73.77 0 1.57.14 1.57.14v1.72h-.89c-.87 0-1.14.54-1.14 1.1V8h1.95l-.31 2.02H9.1v4.9A7 7 0 0 0 15 8z\"})}),instagram:/*#__PURE__*/_jsxs(\"svg\",{width:\"21\",height:\"21\",viewBox:\"0 0 16 16\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.4\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"2.2\",y:\"2.2\",width:\"11.6\",height:\"11.6\",rx:\"3.4\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"8\",cy:\"8\",r:\"2.9\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"11.6\",cy:\"4.4\",r:\".85\",fill:\"currentColor\",stroke:\"none\"})]}),youtube:/*#__PURE__*/_jsx(\"svg\",{width:\"21\",height:\"21\",viewBox:\"0 0 16 16\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M15.2 4.9a1.9 1.9 0 0 0-1.33-1.34C12.68 3.24 8 3.24 8 3.24s-4.68 0-5.87.32A1.9 1.9 0 0 0 .8 4.9C.48 6.1.48 8 .48 8s0 1.9.32 3.1a1.9 1.9 0 0 0 1.33 1.34c1.19.32 5.87.32 5.87.32s4.68 0 5.87-.32a1.9 1.9 0 0 0 1.33-1.34c.32-1.2.32-3.1.32-3.1s0-1.9-.32-3.1zM6.5 10.3V5.7L10.5 8l-4 2.3z\"})})};function parseSocials(text){const out=[];for(const raw of(text||\"\").split(\"\\n\")){const line=raw.trim();if(!line)continue;const[label,href=\"\"]=line.split(\"|\").map(x=>x.trim());if(!label||!href)continue;const key=label.toLowerCase().replace(/[^a-z]/g,\"\");if(!SOCIAL_ICONS[key])continue;out.push({key,label,href});}return out;}export default function SiteFooter(props){const{logo,logoWidth,tagline,subTagline,phoneLabel,phoneHref,socials,columns:columnsProp,columnsText,copyright,certifications,style}=props;const columns=(columnsText||\"\").trim()?parseColumns(columnsText):columnsProp;return /*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-outer\",style:style,children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(\"div\",{className:\"mpfoot\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-in\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-cols\",style:{[\"--mpfoot-n\"]:columns.length},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-col mpfoot-brand\",children:[logo?/*#__PURE__*/_jsx(\"img\",{src:logo,alt:\"\",style:{width:logoWidth,height:\"auto\"}}):/*#__PURE__*/_jsx(\"div\",{style:{width:logoWidth,height:40,borderRadius:4,background:\"rgba(255,255,255,.08)\",display:\"grid\",placeItems:\"center\",fontFamily:\"Inter, sans-serif\",fontSize:10,fontWeight:600,letterSpacing:\"0.2em\",textTransform:\"uppercase\",color:\"#BFCEDA\"},children:\"Logo\"}),/*#__PURE__*/_jsxs(\"p\",{children:[tagline,/*#__PURE__*/_jsx(\"br\",{}),subTagline]}),phoneLabel?/*#__PURE__*/_jsx(\"a\",{className:\"mpfoot-phone\",href:phoneHref,children:phoneLabel}):null,parseSocials(socials).length>0&&/*#__PURE__*/_jsx(\"div\",{className:\"mpfoot-social\",children:parseSocials(socials).map(sm=>/*#__PURE__*/_jsx(\"a\",{className:\"mpfoot-slink\",href:sm.href,target:\"_blank\",rel:\"noopener noreferrer\",\"aria-label\":sm.label,children:SOCIAL_ICONS[sm.key]},sm.key))})]}),columns.map((c,i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-col\",children:[/*#__PURE__*/_jsx(\"h4\",{children:c.heading}),c.links.map((l,j)=>/*#__PURE__*/_jsx(\"a\",{href:l.href,children:l.label},j))]},i))]}),/*#__PURE__*/_jsx(\"div\",{className:\"mpfoot-rule\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"mpfoot-bot\",children:[/*#__PURE__*/_jsx(\"span\",{children:copyright}),/*#__PURE__*/_jsx(\"span\",{children:certifications})]})]})})]});}SiteFooter.defaultProps={logo:\"\",logoWidth:150,tagline:\"Go green. Go bottleless.\",subTagline:\"Locally owned and operated in Kansas City since 2018.\",phoneLabel:\"833-PURE-ICE\",phoneHref:\"tel:8337873423\",copyright:\"\\xa9 2026 Metro Pure Water. All rights reserved.\",certifications:\"Over 3,000 units in the field across Kansas City\",columns:[{heading:\"Equipment\",links:[{label:\"Commercial Ice Machines\",href:\"#\"},{label:\"Bottleless Water Coolers\",href:\"#\"},{label:\"DropWater Wellness\",href:\"#\"},{label:\"Undercounter & Office Ice\",href:\"#\"},{label:\"Five-Stage Filtration\",href:\"#\"}]},{heading:\"Solutions\",links:[{label:\"Manufacturing & Warehouse\",href:\"#\"},{label:\"Trucking & Fleet\",href:\"#\"},{label:\"Corporate Office\",href:\"#\"},{label:\"Corporate Wellness\",href:\"#\"},{label:\"Case Stories\",href:\"#\"}]},{heading:\"Company\",links:[{label:\"About Us\",href:\"#about\"},{label:\"Service Areas\",href:\"#areas\"},{label:\"Service & Maintenance\",href:\"#\"},{label:\"Request a Quote\",href:\"#contact\"},{label:\"Supply Order Form\",href:\"#\"}]}]};addPropertyControls(SiteFooter,{logo:{type:ControlType.Image,title:\"Logo\"},logoWidth:{type:ControlType.Number,title:\"Logo width\",min:60,max:320},tagline:{type:ControlType.String,title:\"Tagline\"},subTagline:{type:ControlType.String,title:\"Sub-tagline\"},phoneLabel:{type:ControlType.String,title:\"Phone text\"},phoneHref:{type:ControlType.String,title:\"Phone href\"},socials:{type:ControlType.String,title:\"Social links\",displayTextArea:true,defaultValue:\"\",description:\"One per line as Platform|URL. Supports LinkedIn, Facebook, Instagram, YouTube. A line with no URL is skipped.\"},columnsText:{type:ControlType.String,title:\"Columns text\",displayTextArea:true,defaultValue:\"\",description:\"Overrides the columns array. A bare line starts a column; each following - Label|/path is a link in it.\"},columns:{type:ControlType.Array,title:\"Columns\",control:{type:ControlType.Object,controls:{heading:{type:ControlType.String,title:\"Heading\"},links:{type:ControlType.Array,title:\"Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\"},href:{type:ControlType.Link,title:\"Link\"}}}}}}},copyright:{type:ControlType.String,title:\"Copyright\"},certifications:{type:ControlType.String,title:\"Legal right\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteFooter.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";// The dark palette, declared once. Emitted against html[data-theme=\"dark\"]\n// for the real toggle, and against :root when previewing, since the Framer\n// canvas and screenshot renderer never run the toggle's JavaScript.\nconst DARK_VARS=`\n      --mp-bg:#0B1116;\n      --mp-surface:#141D25;\n      --mp-offwhite:#0E161C;\n      --mp-paper:#121B22;\n      --mp-mist:#0F2733;\n      --mp-ink:#EEF4F8;\n      --mp-muted:#9DB2C0;\n      --mp-faint:#78909F;\n      --mp-border:#243440;\n      --mp-border-strong:#33566B;\n      --mp-accent:#38BEEC;\n      --mp-accent-bright:#5CCDF5;\n      --mp-accent-deep:#7FD8FA;\n      --mp-on-accent:#06121A;\n      --mp-shadow:0,0,0;\n      --mp-placeholder:#18242D;\n      --mp-veil:rgba(20,29,37,.94);\n      --mp-veil-soft:rgba(20,29,37,.6);\n      --mp-hero-base:#0E1A22;\n      --mp-hero-media:#0B141B;\n      --mp-scrim:linear-gradient(97deg,rgba(11,17,22,.94) 0%,rgba(11,17,22,.78) 34%,rgba(11,17,22,.12) 66%,rgba(11,17,22,.30) 100%),linear-gradient(180deg,rgba(11,17,22,.72) 0%,transparent 26%,rgba(11,17,22,.55) 100%);\n      --mp-veil-strong:rgba(20,29,37,.98);\n    `;// Framer publishes each colour style as a CSS custom property named after the\n// style's id. These four are the surfaces every canvas-built section sits on.\nconst TOKEN={white:\"f261c24e-d555-4b3a-8da4-4a588a04d889\",offwhite:\"6cac8758-146b-4ab0-8ba6-3d276f83ae19\",paper:\"ce67ae07-175d-486b-a21e-a2f1c2aa0bb7\",mist:\"a3344285-4cd7-4341-bd64-986a15929519\",ink:\"1a93bb95-a039-4c3b-b73b-f52e95f4f3e1\",slate:\"13fa20d7-d7ed-42e9-b06f-a7d0589787d3\",cyanInk:\"0df4c5ef-cb01-4c5c-a3e3-ce65f805052c\"};const LIGHT_SURFACE={white:\"#FFFFFF\",offwhite:\"#FAFBFC\",paper:\"#F1F5F8\",mist:\"#E8F5FC\",ink:\"#101820\",slate:\"#5E7180\",cyanInk:\"#00769F\"};const DARK_SURFACE={white:\"#141D25\",offwhite:\"#0E161C\",paper:\"#121B22\",mist:\"#0F2733\",ink:\"#EEF4F8\",slate:\"#9DB2C0\",cyanInk:\"#7FD8FA\"};export default function SiteStyles(props){const{accent,navOffset,smoothScroll,previewDark,siteLanguage=\"en\",style}=props;const CSS=`\n    /* ---- anchor targets clear the fixed nav ---- */\n    [id]{scroll-margin-top:${navOffset}px}\n    ${smoothScroll?\"html{scroll-behavior:smooth}\":\"\"}\n\n    /* ---- focus visibility ----\n       Keyboard users get a ring on every interactive element. Mouse\n       users see nothing, because :focus-visible only matches keyboard\n       and assistive-tech focus. */\n    .mpnav a,.mpnav button,\n    .mphero a,.mpsplit a,.mpsplit button,\n    .mpg a,.mpg button,\n    .mpshow a,.mpshow button,\n    .mpdw a,.mpdw button,.mpdw-lb button,\n    .mpcalc-band a,.mpcalc-band button,.mpcalc-band input,\n    .mpq a,.mpq button,\n    .mpc a,.mpc button,.mpc input,.mpc select,\n    .mpv a,.mpv button,\n    .mpfoot a,.mpfoot button,.mpfoot input,\n    .mpfilt a,.mpfilt button,\n    .mpmap a,.mpmap button,.mpmap input,\n    .mpcl a,\n    a.mpbtn,button.mpbtn{outline:none}\n\n    .mpnav a:focus-visible,.mpnav button:focus-visible,\n    .mphero a:focus-visible,\n    .mpsplit a:focus-visible,.mpsplit button:focus-visible,\n    .mpg a:focus-visible,.mpg button:focus-visible,\n    .mpshow a:focus-visible,.mpshow button:focus-visible,\n    .mpdw a:focus-visible,.mpdw button:focus-visible,\n    .mpdw-lb button:focus-visible,\n    .mpcalc-band a:focus-visible,.mpcalc-band button:focus-visible,\n    .mpcalc-band input:focus-visible,\n    .mpq a:focus-visible,.mpq button:focus-visible,\n    .mpc a:focus-visible,.mpc button:focus-visible,\n    .mpc input:focus-visible,.mpc select:focus-visible,\n    .mpv a:focus-visible,.mpv button:focus-visible,\n    .mpfoot a:focus-visible,.mpfoot button:focus-visible,\n    .mpfoot input:focus-visible,\n    .mpfilt a:focus-visible,.mpfilt button:focus-visible,\n    .mpmap a:focus-visible,.mpmap button:focus-visible,\n    .mpmap input:focus-visible,\n    .mpcl a:focus-visible,\n    a.mpbtn:focus-visible,button.mpbtn:focus-visible{\n      outline:2px solid ${accent};\n      outline-offset:3px;\n      border-radius:4px}\n\n    /* dark surfaces need a light ring to stay visible */\n    .mpfoot a:focus-visible,.mpfoot button:focus-visible,\n    .mpfoot input:focus-visible,\n    .mpv a:focus-visible,.mpv button:focus-visible,\n    .mpdw-lb button:focus-visible,\n    .mpbtn.dark:focus-visible{outline-color:#7FD8FA}\n\n    /* ---- touch targets ----\n       Coarse pointers only, so desktop density is untouched. */\n    @media (pointer: coarse){\n      .mpbtn.sm{min-height:44px}\n      .mpdw-pill,.mpg-chip,.mpsplit-chip,.mpmap-chip{min-height:44px;\n        padding-top:12px;padding-bottom:12px}\n      .mpshow-thumb{width:64px;height:64px;flex:0 0 64px}\n      .mpnav-drawer-in a.mpnav-dlink{padding:15px 0}\n\n      /* The way into the whole navigation was the smallest control on the\n         page at 34x29. Size it from the box, not the icon inside it. */\n      .mpnav-burger{width:44px;height:44px;display:grid;place-items:center;\n        margin-right:-10px}\n\n      /* Every nav link sat at 41-43px: close enough to look right and still\n         miss on a moving thumb. */\n      .mpnav-dlink{min-height:44px;display:inline-flex;align-items:center}\n\n      /* Social icons were 21x33. The icon stays its size; the target grows\n         around it, so the footer rhythm is unchanged. */\n      .mpfoot-slink{min-width:44px;min-height:44px;padding:10px 12px}\n\n      /* The theme toggle and the phone number are both one-tap actions.\n         The phone number in particular is a conversion path on mobile. */\n      .mptt{min-height:44px}\n      .mpc-phone{min-height:44px}\n\n      /* Map zoom controls at 36px, used while the other hand holds the\n         phone. Component <style> tags mount after this one, so an equal\n         specificity rule here loses the cascade. SiteStyles is the declared\n         owner of touch targets site-wide, so it wins explicitly. */\n      .mpmap-zoom button{width:44px !important;height:44px !important}\n\n      /* Wide but short: every one of these is a single tap that matters,\n         and several are the primary action on the screen they sit on. */\n      .mpnav-cta,.mpnav-dphone,.mpfoot-phone,.mpshow-more,\n      .mpmap-submit,.mpmap-leg{min-height:44px !important}\n      .mpnav-cta,.mpnav-dphone,.mpfoot-phone,.mpshow-more{\n        display:inline-flex !important;align-items:center}\n\n      /* In a vertical drawer the whole row should be tappable, not just the\n         width of the word. \"FAQ\" was a 41px target. */\n      .mpnav-drawer-in a.mpnav-dlink{width:100%}\n\n      /* Footer navigation: fifteen links per page at 34px, stacked close\n         together, which is the shape that produces mis-taps. */\n      .mpfoot-col a{min-height:44px;display:inline-flex;align-items:center}\n\n      /* iOS Safari force-zooms the page when a focused input is under 16px,\n         which shoves the form off-screen mid-entry. The fields were 15px.\n         16px is the floor, not a preference. */\n      .framer-form-input,\n      input[type=\"text\"],input[type=\"email\"],input[type=\"tel\"],\n      input[type=\"number\"],select,textarea{font-size:16px}\n      .framer-form-input{min-height:44px}\n\n      /* A 3px range track cannot be grabbed. Give the rail and its thumb a\n         real target while leaving the drawn track alone. */\n      input[type=\"range\"]{height:44px;background:transparent}\n      input[type=\"range\"]::-webkit-slider-thumb{width:26px;height:26px}\n    }\n\n    /* Hover is not available on touch, so anything that only appears on\n       hover is invisible there. Lift effects stay opt-in to real pointers\n       rather than firing on tap and sticking. */\n    @media (hover: none){\n      .mpg-card:hover,.mpshow-card:hover,.mpsplit-card:hover,\n      .mpq-card:hover,.mpcp-row:hover{transform:none}\n    }\n\n    /* ---- placeholder legibility ----\n       #7E97AE on the media tint was 2.6:1. This clears 4.5:1. */\n    .mpsplit-ph,.mpshow-ph,.mpg-ph{color:#5A7286}\n\n    /* ---- buttons ----\n       Duplicated in Button.tsx. Framer code files cannot import from\n       one another, so if you change a rule, change it in both. */\n    .mpbtn{display:inline-flex;align-items:center;justify-content:center;\n      gap:11px;box-sizing:border-box;border-radius:100px;\n      border:1px solid transparent;font-family:Inter,sans-serif;\n      font-weight:600;letter-spacing:0;text-decoration:none;\n      white-space:nowrap;cursor:pointer;\n      transition:background .22s,border-color .22s,color .22s,\n        transform .22s,box-shadow .22s}\n    .mpbtn svg{flex:0 0 auto;transition:transform .22s}\n    .mpbtn:hover svg{transform:translateX(3px)}\n    .mpbtn.full{width:100%}\n    .mpbtn.sm{padding:11px 22px;font-size:13px}\n    .mpbtn.md{padding:15px 30px;font-size:14px}\n    .mpbtn.lg{padding:18px 36px;font-size:15px}\n    .mpbtn.light.solid{background:var(--mp-accent,#0090C7);color:var(--mp-on-accent,#fff);\n      box-shadow:0 12px 28px -14px rgba(0,144,199,.8)}\n    .mpbtn.light.solid:hover{background:var(--mp-accent-deep,#00769F);transform:translateY(-2px);\n      box-shadow:0 16px 32px -14px rgba(0,144,199,.85)}\n    .mpbtn.light.outline{background:transparent;border-color:var(--mp-border,#E2E8ED);\n      color:var(--mp-ink,#101820)}\n    .mpbtn.light.outline:hover{border-color:var(--mp-ink,#101820);transform:translateY(-2px)}\n    .mpbtn.light.outline.frosted{background:rgba(255,255,255,.6);\n      border-color:#C2D2DD}\n    .mpbtn.light.outline.frosted:hover{background:rgba(255,255,255,.92)}\n    .mpbtn.dark.solid{background:#fff;color:#101820;\n      box-shadow:0 12px 28px -16px rgba(0,0,0,.6)}\n    .mpbtn.dark.solid:hover{background:#E8F5FC;transform:translateY(-2px)}\n    .mpbtn.dark.outline{background:transparent;\n      border-color:rgba(255,255,255,.32);color:#fff}\n    .mpbtn.dark.outline:hover{border-color:#fff;\n      background:rgba(255,255,255,.08);transform:translateY(-2px)}\n\n    /* ---- button motion ----\n       Components own how a button looks. This owns how every button\n       moves, so a press feels the same in the nav as it does in the\n       footer. Lift values match what the sections already used, so\n       this adds the press and the arrow rather than fighting them.\n       The reduced-motion block at the bottom switches it all off. */\n    .mphero-btn,.mphero-btn2,.mpmh-btn,.mpmh-btn2,.mpv-btn,.mpv-btn2,\n    .mpnav-cta,.mpsplit-btn,.mpc-cta,.mpdw-cta,.mpfoot-btn,.mpmap-btn{\n      transition:background .22s ease,border-color .22s ease,color .22s ease,\n        transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .22s ease}\n    .mphero-btn:hover,.mphero-btn2:hover,.mpmh-btn:hover,.mpmh-btn2:hover,\n    .mpv-btn:hover,.mpv-btn2:hover,.mpnav-cta:hover,.mpsplit-btn:hover,\n    .mpc-cta:hover,.mpdw-cta:hover,.mpfoot-btn:hover,.mpmap-btn:hover{\n      transform:translateY(-2px)}\n    /* the press: brief and slightly under the resting position, which is\n       what makes a button feel like it took the click */\n    .mphero-btn:active,.mphero-btn2:active,.mpmh-btn:active,\n    .mpmh-btn2:active,.mpv-btn:active,.mpv-btn2:active,.mpnav-cta:active,\n    .mpsplit-btn:active,.mpc-cta:active,.mpdw-cta:active,\n    .mpfoot-btn:active,.mpmap-btn:active,.mpbtn:active{\n      transform:translateY(0) scale(.97);transition-duration:.09s}\n    /* arrows lead the eye out of the button, so only nudge the buttons\n       that carry one. A phone or play glyph sliding sideways reads as a\n       glitch. */\n    .mphero-btn svg,.mpmh-btn svg,.mpv-btn svg,.mpdw-cta svg,\n    .mpsplit-btn svg,.mpc-cta svg{\n      transition:transform .22s cubic-bezier(.2,.8,.3,1)}\n    .mphero-btn:hover svg,.mpmh-btn:hover svg,.mpv-btn:hover svg,\n    .mpdw-cta:hover svg,.mpsplit-btn:hover svg,.mpc-cta:hover svg{\n      transform:translateX(3px)}\n\n    /* ---- colour tokens ----\n       Every component reads its colours from these. Light is the default;\n       the toggle sets data-theme=\"dark\" on <html> to swap the values.\n       Adding a colour anywhere on the site means adding it here first. */\n    :root{\n      --mp-bg:#FFFFFF;\n      --mp-surface:#FFFFFF;\n      --mp-offwhite:#FAFBFC;\n      --mp-paper:#F1F5F8;\n      --mp-mist:#E8F5FC;\n      --mp-ink:#101820;\n      --mp-muted:#5E7180;\n      --mp-faint:#5D7181;\n      --mp-border:var(--mp-border,#E2E8ED);\n      --mp-border-strong:#C9DEEA;\n      --mp-accent:#0090C7;\n      --mp-accent-bright:#00AEEF;\n      --mp-accent-deep:#00769F;\n      --mp-on-accent:#FFFFFF;\n      --mp-shadow:16,24,32;\n      --mp-placeholder:#E4EDF3;\n      --mp-veil:rgba(255,255,255,.94);\n      --mp-veil-soft:rgba(255,255,255,.6);\n      --mp-hero-base:#EDF3F7;\n      --mp-hero-media:#D7E6EF;\n      --mp-scrim:linear-gradient(97deg,rgba(250,251,252,.94) 0%,rgba(250,251,252,.78) 34%,rgba(250,251,252,.12) 66%,rgba(250,251,252,.30) 100%),linear-gradient(180deg,rgba(250,251,252,.72) 0%,transparent 26%,rgba(250,251,252,.55) 100%);\n      --mp-veil-strong:rgba(255,255,255,.98);\n    }\n    html[data-theme=\"dark\"]{${DARK_VARS}}\n    html[data-theme=\"dark\"] body{background:var(--mp-bg)}\n\n    /* ---- canvas surfaces ----\n       Sections built on the canvas rather than in a component take their\n       background from a Framer colour style, which ships as --token-<id>\n       on <body>. Framer swaps those under prefers-color-scheme only, so\n       the toggle has to drive them itself, in both directions: without the\n       light block an explicit \"light\" would lose to a dark OS.\n\n       Values match DARK_VARS above, so a canvas section and a component\n       section resolve to the same surface. The ids are the project's\n       White / Off White / Paper / Mist styles. */\n    html[data-theme=\"dark\"] body{\n      --token-${TOKEN.white}:${DARK_SURFACE.white};\n      --token-${TOKEN.offwhite}:${DARK_SURFACE.offwhite};\n      --token-${TOKEN.paper}:${DARK_SURFACE.paper};\n      --token-${TOKEN.mist}:${DARK_SURFACE.mist};\n      --token-${TOKEN.ink}:${DARK_SURFACE.ink};\n      --token-${TOKEN.slate}:${DARK_SURFACE.slate};\n      --token-${TOKEN.cyanInk}:${DARK_SURFACE.cyanInk};\n    }\n    html[data-theme=\"light\"] body{\n      --token-${TOKEN.white}:${LIGHT_SURFACE.white};\n      --token-${TOKEN.offwhite}:${LIGHT_SURFACE.offwhite};\n      --token-${TOKEN.paper}:${LIGHT_SURFACE.paper};\n      --token-${TOKEN.mist}:${LIGHT_SURFACE.mist};\n      --token-${TOKEN.ink}:${LIGHT_SURFACE.ink};\n      --token-${TOKEN.slate}:${LIGHT_SURFACE.slate};\n      --token-${TOKEN.cyanInk}:${LIGHT_SURFACE.cyanInk};\n    }\n    /* images and video are authored for a light page, so take the glare off */\n    html[data-theme=\"dark\"] img,\n    html[data-theme=\"dark\"] video{filter:brightness(.86) contrast(1.02)}\n    /* theme changes should feel deliberate, not jarring */\n    html.mp-theming *,\n    html.mp-theming *::before,\n    html.mp-theming *::after{\n      transition:background-color .28s ease,border-color .28s ease,\n        color .28s ease !important}\n\n    /* ---- selection ---- */\n    ::selection{background:rgba(0,174,239,.22);color:#101820}\n\n    /* ---- reduced motion ----\n       Was in the original stylesheet. Honours the OS setting across\n       every component: float, bubbles, contact shadow, transitions. */\n    @media (prefers-reduced-motion: reduce){\n      /* Every ambient loop stops. None of them carry information: they are\n         float, drift, rise, pulse and the logo marquee. Named explicitly\n         rather than collapsed to a 0.001ms duration, because a loop with a\n         near-zero duration is still a running animation. */\n      .mpshow-unit,.mpdw-bub,.mpshow-gcore,.mpmh-photo,.mpmh-ph,\n      .mpmh-shadow,.mpph-photo,.mpph-ph,.mpph-shadow,.mpcl-track,\n      .mpmap-pulse,.mpdw-rise,.mpc-float{\n        animation:none !important;transform:none !important}\n\n      /* Everything else keeps its state change and loses only the travel.\n         Colour, opacity, shadow and the focus ring still transition, so a\n         hover, a focus, a press and an open accordion all still read as\n         events. The previous rule collapsed these to 0.001ms, which meant\n         a reader who asked for less movement got no feedback at all. */\n      *,*::before,*::after{\n        transition-property:opacity,color,background-color,border-color,\n          fill,stroke,box-shadow,outline-color,filter !important;\n        transition-duration:.12s !important;\n        animation-iteration-count:1 !important;\n        scroll-behavior:auto !important}\n\n      /* The lift and press are movement, so they go. The colour change on\n         the same buttons stays, which is what tells you the press landed. */\n      .mphero-btn:hover,.mphero-btn2:hover,.mpmh-btn:hover,.mpmh-btn2:hover,\n      .mpv-btn:hover,.mpv-btn2:hover,.mpnav-cta:hover,.mpsplit-btn:hover,\n      .mpc-cta:hover,.mpdw-cta:hover,.mpfoot-btn:hover,.mpmap-btn:hover,\n      .mphero-btn:active,.mphero-btn2:active,.mpmh-btn:active,\n      .mpmh-btn2:active,.mpv-btn:active,.mpv-btn2:active,.mpnav-cta:active,\n      .mpsplit-btn:active,.mpc-cta:active,.mpdw-cta:active,\n      .mpfoot-btn:active,.mpmap-btn:active,.mpbtn:active,\n      .mpbtn:hover,.mpfoot-slink:hover,.mpcp-row:hover,\n      .mphero-btn:hover svg,.mpmh-btn:hover svg,.mpv-btn:hover svg,\n      .mpdw-cta:hover svg,.mpsplit-btn:hover svg,.mpc-cta:hover svg{\n        transform:none !important}\n\n      /* The drawer still opens, just without the sweep. */\n      .mpnav-drawer{transition-duration:.01ms !important}\n    }\n    ${previewDark?`:root{${DARK_VARS}}`:``}\n    `;return /*#__PURE__*/_jsxs(\"div\",{style:{width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\",...style},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:`(function(){var d=document.documentElement;if(!d.lang)d.lang=${JSON.stringify(siteLanguage||\"en\")}})()`}})]});}SiteStyles.defaultProps={accent:\"#00AEEF\",navOffset:110,smoothScroll:true,previewDark:false};addPropertyControls(SiteStyles,{siteLanguage:{type:ControlType.String,title:\"Language\",description:\"BCP 47 tag written to the document language, e.g. en or en-US. Screen readers pick their pronunciation from it.\",defaultValue:\"en\"},accent:{type:ControlType.Color,title:\"Focus ring\"},navOffset:{type:ControlType.Number,title:\"Anchor offset\",min:0,max:240},smoothScroll:{type:ControlType.Boolean,title:\"Smooth scroll\"},previewDark:{type:ControlType.Boolean,title:\"Preview dark\",description:\"Renders the dark palette without the toggle, so dark can be checked on the canvas and in screenshots.\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteStyles\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteStyles.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useState}from\"react\";const KEY=\"mp-theme\";const CSS=`\n.mptt{display:inline-flex;align-items:center;gap:9px;cursor:pointer;\n  box-sizing:border-box;padding:9px 16px;border-radius:100px;\n  background:var(--mp-surface);border:1px solid var(--mp-border);\n  color:var(--mp-ink);font-family:Inter,sans-serif;font-size:12px;\n  font-weight:600;letter-spacing:.06em;line-height:1;\n  box-shadow:0 10px 26px -16px rgba(var(--mp-shadow),.5);\n  transition:background .25s,border-color .25s,color .25s,transform .2s}\n.mptt:hover{border-color:var(--mp-border-strong);transform:translateY(-1px)}\n.mptt svg{flex:0 0 auto}\n.mptt-fixed{position:fixed;right:22px;bottom:22px;z-index:80}\n@media (max-width:640px){.mptt-fixed{right:14px;bottom:14px}}\n`;const SUN=/*#__PURE__*/_jsxs(\"svg\",{width:\"15\",height:\"15\",viewBox:\"0 0 15 15\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"7.5\",cy:\"7.5\",r:\"3.1\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M7.5 1v1.4M7.5 12.6V14M14 7.5h-1.4M2.4 7.5H1M12.1 2.9l-1 1M3.9 11.1l-1 1M12.1 12.1l-1-1M3.9 3.9l-1-1\"})]});const MOON=/*#__PURE__*/_jsx(\"svg\",{width:\"15\",height:\"15\",viewBox:\"0 0 15 15\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M13 9.3A5.9 5.9 0 0 1 5.7 2a5.9 5.9 0 1 0 7.3 7.3z\"})});export default function ThemeToggle(props){const{lightLabel=\"Light\",darkLabel=\"Dark\",showLabel=true,force=\"off\",placement=\"fixed\",style}=props;const isStatic=useIsStaticRenderer();const[theme,setTheme]=useState(\"light\");// restore the remembered choice once mounted\nuseEffect(()=>{if(isStatic||typeof window===\"undefined\")return;let saved=null;try{saved=window.localStorage.getItem(KEY);}catch{saved=null;}const next=force!==\"off\"?force:saved===\"dark\"?\"dark\":\"light\";setTheme(next);document.documentElement.setAttribute(\"data-theme\",next);},[isStatic,force]);function toggle(){if(typeof document===\"undefined\")return;const next=theme===\"dark\"?\"light\":\"dark\";const root=document.documentElement;// transition class only while switching, so it never fights page load\nroot.classList.add(\"mp-theming\");root.setAttribute(\"data-theme\",next);setTheme(next);try{window.localStorage.setItem(KEY,next);}catch{/* private browsing: the toggle still works for this session */}window.setTimeout(()=>root.classList.remove(\"mp-theming\"),400);}const isDark=theme===\"dark\";return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",minWidth:\"max-content\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"mptt\"+(placement===\"fixed\"?\" mptt-fixed\":\"\"),onClick:toggle,\"aria-pressed\":isDark,\"aria-label\":isDark?\"Switch to light theme\":\"Switch to dark theme\",children:[isDark?SUN:MOON,showLabel?isDark?lightLabel:darkLabel:null]})]});}addPropertyControls(ThemeToggle,{darkLabel:{type:ControlType.String,title:\"To dark\",defaultValue:\"Dark\"},lightLabel:{type:ControlType.String,title:\"To light\",defaultValue:\"Light\"},showLabel:{type:ControlType.Boolean,title:\"Show label\",defaultValue:true},placement:{type:ControlType.Enum,title:\"Placement\",options:[\"fixed\",\"inline\"],optionTitles:[\"Floating\",\"Inline\"],defaultValue:\"fixed\",displaySegmentedControl:true},force:{type:ControlType.Enum,title:\"Force theme\",description:\"Preview only. The canvas always renders light, so use this to check dark.\",options:[\"off\",\"light\",\"dark\"],optionTitles:[\"Off\",\"Light\",\"Dark\"],defaultValue:\"off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ThemeToggle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ThemeToggle.map","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,RenderTarget,ResolveLinks,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useRouter,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import NavBar from\"#framer/local/codeFile/OvgJz08/NavBar.js\";import SiteFooter from\"#framer/local/codeFile/m7oLRJw/SiteFooter.js\";import SiteStyles from\"#framer/local/codeFile/gPoLuQG/SiteStyles.js\";import ThemeToggle from\"#framer/local/codeFile/wGqYbUj/ThemeToggle.js\";const SiteStylesFonts=getFonts(SiteStyles);const ThemeToggleFonts=getFonts(ThemeToggle);const NavBarFonts=getFonts(NavBar);const SiteFooterFonts=getFonts(SiteFooter);const breakpoints={};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-lNqOI\";const variantClassNames={ki2AzXl0l:\"framer-v-1rw5xzp\"};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\".framer-lNqOI.framer-1vxbb4o, .framer-lNqOI .framer-1vxbb4o { display: block; }\",\".framer-lNqOI.framer-1rw5xzp { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-lNqOI .framer-1ws01qq-container { flex: none; height: 0px; order: -1000; position: relative; width: 0px; }\",\".framer-lNqOI .framer-1g82dfo-container { flex: none; height: 0px; order: -999; position: relative; width: 0px; }\",\".framer-lNqOI .framer-3udv7g-container { flex: none; height: auto; order: -998; position: relative; width: 100%; }\",\".framer-lNqOI .framer-ug7y27 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-lNqOI .framer-qvh8bb-container { flex: none; height: auto; order: 1004; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,isLayoutTemplate:true,primaryVariantId:\"ki2AzXl0l\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1rw5xzp\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1ws01qq-container\",\"data-code-component-plugin-id\":\"mcp001\",\"data-framer-name\":\"SiteStyles\",isAuthoredByUser:true,name:\"SiteStyles\",nodeId:\"r24o5IYE9\",scopeId:\"eg9YMekPq\",children:/*#__PURE__*/_jsx(SiteStyles,{accent:\"rgb(0, 174, 239)\",height:\"100%\",id:\"r24o5IYE9\",layoutId:\"r24o5IYE9\",name:\"SiteStyles\",navOffset:110,previewDark:false,siteLanguage:\"en\",smoothScroll:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1g82dfo-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"ThemeToggle\",isAuthoredByUser:true,name:\"ThemeToggle\",nodeId:\"ynrJiYES5\",scopeId:\"eg9YMekPq\",children:/*#__PURE__*/_jsx(ThemeToggle,{darkLabel:\"Dark\",force:\"off\",height:\"100%\",id:\"ynrJiYES5\",layoutId:\"ynrJiYES5\",lightLabel:\"Light\",name:\"ThemeToggle\",placement:\"fixed\",showLabel:true,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"YgzMItfWH\"},implicitPathVariables:undefined},{href:{webPageId:\"YgzMItfWH\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"bottleless-water-coolers\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"gZeyhwSMM\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"high-volume-water\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"bKbJayYQU\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"sparkling-water-coolers\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"rzVdozzok\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"central-reverse-osmosis\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"RY_XIvuEx\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"office-ice\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"TRXbkk0qL\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"high-volume-ice\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"HAMxPGICr\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{webPageId:\"RzGaGnbe5\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"coffee-tea-pods\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"Lh778ud5N\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"deionized-water\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"MZeD70jqX\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{webPageId:\"Fma7lAcoj\"},implicitPathVariables:undefined},{href:{webPageId:\"i8LfErM0f\"},implicitPathVariables:undefined},{href:{webPageId:\"lkfn_vexw\"},implicitPathVariables:undefined},{href:{webPageId:\"lkfn_vexw\"},implicitPathVariables:undefined},{href:{pathVariables:{nKxFi7ywU:\"kansas-city-missouri\"},unresolvedPathSlugs:{nKxFi7ywU:{collectionId:\"rZWdCiGWW\",collectionItemId:\"sIZyuIPb7\"}},webPageId:\"grQy3AYMm\"},implicitPathVariables:undefined},{href:{pathVariables:{nKxFi7ywU:\"overland-park-kansas\"},unresolvedPathSlugs:{nKxFi7ywU:{collectionId:\"rZWdCiGWW\",collectionItemId:\"dMHqjUCOb\"}},webPageId:\"grQy3AYMm\"},implicitPathVariables:undefined},{href:{pathVariables:{nKxFi7ywU:\"topeka-kansas\"},unresolvedPathSlugs:{nKxFi7ywU:{collectionId:\"rZWdCiGWW\",collectionItemId:\"k77Ohj_q7\"}},webPageId:\"grQy3AYMm\"},implicitPathVariables:undefined},{href:{pathVariables:{nKxFi7ywU:\"st-joseph-missouri\"},unresolvedPathSlugs:{nKxFi7ywU:{collectionId:\"rZWdCiGWW\",collectionItemId:\"UUchqicfR\"}},webPageId:\"grQy3AYMm\"},implicitPathVariables:undefined},{href:{webPageId:\"HWYynmggO\"},implicitPathVariables:undefined},{href:{webPageId:\"HWYynmggO\"},implicitPathVariables:undefined},{href:{webPageId:\"O2smxeJXs\"},implicitPathVariables:undefined},{href:{webPageId:\"THhjBfo0A\"},implicitPathVariables:undefined},{href:{webPageId:\"ulbQjk_5m\"},implicitPathVariables:undefined},{href:{webPageId:\"ulbQjk_5m\"},implicitPathVariables:undefined},{href:{webPageId:\"C8GyYyRCM\"},implicitPathVariables:undefined},{href:{webPageId:\"D5LDKCwWd\"},implicitPathVariables:undefined},{href:{webPageId:\"C8GyYyRCM\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-3udv7g-container\",\"data-code-component-plugin-id\":\"mcp001\",\"data-framer-name\":\"NavBar\",isAuthoredByUser:true,name:\"NavBar\",nodeId:\"gBgd0wnTK\",scopeId:\"eg9YMekPq\",children:/*#__PURE__*/_jsx(NavBar,{ctaHref:resolvedLinks[27],ctaLabel:\"Try for free\",height:\"100%\",id:\"gBgd0wnTK\",layoutId:\"gBgd0wnTK\",leftCtaHref:\"https://g.page/r/CVLd1jNxX9VfEB0/review\",leftCtaLabel:\"Leave Review\",leftLinks:[{href:resolvedLinks[0],id:\"jowQQWdrY\",label:\"Products\",submenu:[{href:resolvedLinks[1],id:\"VBTfUDNb8\",label:\"All products\"},{href:resolvedLinks[2],id:\"ebxLTt0e8\",label:\"Bottle-less water coolers\"},{href:resolvedLinks[3],id:\"NUkYkCAxH\",label:\"High volume water\"},{href:resolvedLinks[4],id:\"RZgj3zmao\",label:\"Sparkling water\"},{href:resolvedLinks[5],id:\"yJ71WEYfh\",label:\"Central reverse osmosis\"},{href:resolvedLinks[6],id:\"av7V0WBa2\",label:\"Office ice\"},{href:resolvedLinks[7],id:\"y7M7Lt7eN\",label:\"High volume ice\"},{href:resolvedLinks[8],id:\"SwA8mkEMe\",label:\"Flavored water and boosts\"},{href:resolvedLinks[9],id:\"uojXXL_RM\",label:\"Coffee and tea\"},{href:resolvedLinks[10],id:\"umzylrbJS\",label:\"Deionized (DI) water\"}]},{href:resolvedLinks[11],id:\"zG9hn9s58\",label:\"Technology\",submenu:[]},{href:resolvedLinks[12],id:\"XVEbYAmBU\",label:\"Wellness\",submenu:[]}],logo:\"https://framerusercontent.com/images/6ltjANrMzmE1iFMgwgXaYCUrv8.png?width=1024&height=342\",logoDark:\"https://framerusercontent.com/images/UgdhH9e3YlaWzfharmHJmytlo.png?width=220&height=100\",logoWidth:189,menuText:\"[left]\\nProducts|/products\\n- All products|/products\\n- Bottleless water coolers|/products/water-coolers\\n- Sparkling and flavor|/products/sparkling\\n- Ice machines and combo|/products/ice-machines\\n- Specialty systems|/products/specialty\\nAbout|/about\\n- About us|/about\\n- Blog|/blog\\n- FAQ|/faq\\nContact|/contact\\n- Contact us|/contact\\n- Tech support|/tech-support\\n- Order Drop Water Flavors|/order-drop-water-flavors\\n- Leave a Google review|https://g.page/r/CVLd1jNxX9VfEB0/review\\n[right]\\nSolutions|/technology\\n- Technology|/technology\\n- Hydration and wellness|/hydration-wellness\\n- DropWater|/dropwater\\nService areas|/service-areas\",name:\"NavBar\",phoneHref:\"tel:8337873423\",phoneLabel:\"833-PURE-ICE\",rightLinks:[{href:resolvedLinks[13],id:\"YCvwh061v\",label:\"Service areas\",submenu:[{href:resolvedLinks[14],id:\"ndTZPO02e\",label:\"All service areas\"},{href:resolvedLinks[15],id:\"ia8q4B2c_\",label:\"Kansas City, MO\"},{href:resolvedLinks[16],id:\"JQVvG2ITL\",label:\"Overland Park, KS\"},{href:resolvedLinks[17],id:\"Qinx65bUS\",label:\"Topeka, KS\"},{href:resolvedLinks[18],id:\"MrLZS59LD\",label:\"St. Joseph, MO\"}]},{href:resolvedLinks[19],id:\"NdsRnvoD9\",label:\"About\",submenu:[{href:resolvedLinks[20],id:\"klqPIthZm\",label:\"About us\"},{href:resolvedLinks[21],id:\"IJAJZ_JAh\",label:\"Blog\"},{href:resolvedLinks[22],id:\"x_TmCsV6X\",label:\"FAQ\"}]},{href:resolvedLinks[23],id:\"vtWx2JfjR\",label:\"Contact\",submenu:[{href:resolvedLinks[24],id:\"idEo2gZ8o\",label:\"Contact us\"},{href:resolvedLinks[25],id:\"MHFINC2EL\",label:\"Try for free\"},{href:resolvedLinks[26],id:\"GcWl_lwcc\",label:\"Tech support\"}]}],style:{width:\"100%\"},width:\"100%\"})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-ug7y27\"}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{pathVariables:{TTdBBjIQZ:\"bottleless-water-coolers\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"gZeyhwSMM\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"high-volume-water\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"bKbJayYQU\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"sparkling-water-coolers\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"rzVdozzok\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{webPageId:\"YgzMItfWH\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"office-ice\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"TRXbkk0qL\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"high-volume-ice\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"HAMxPGICr\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{webPageId:\"RzGaGnbe5\"},implicitPathVariables:undefined},{href:{pathVariables:{TTdBBjIQZ:\"deionized-water\"},unresolvedPathSlugs:{TTdBBjIQZ:{collectionId:\"AK1xDJS6u\",collectionItemId:\"MZeD70jqX\"}},webPageId:\"iOs7zKGIo\"},implicitPathVariables:undefined},{href:{webPageId:\"Fma7lAcoj\"},implicitPathVariables:undefined},{href:{webPageId:\"i8LfErM0f\"},implicitPathVariables:undefined},{href:{webPageId:\"HWYynmggO\"},implicitPathVariables:undefined},{href:{webPageId:\"lkfn_vexw\"},implicitPathVariables:undefined},{href:{webPageId:\"O2smxeJXs\"},implicitPathVariables:undefined},{href:{webPageId:\"THhjBfo0A\"},implicitPathVariables:undefined},{href:{webPageId:\"C8GyYyRCM\"},implicitPathVariables:undefined},{href:{webPageId:\"ulbQjk_5m\"},implicitPathVariables:undefined},{href:{webPageId:\"D5LDKCwWd\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-qvh8bb-container\",\"data-code-component-plugin-id\":\"mcp001\",\"data-framer-name\":\"SiteFooter\",isAuthoredByUser:true,name:\"SiteFooter\",nodeId:\"j6kvmLfx9\",scopeId:\"eg9YMekPq\",children:/*#__PURE__*/_jsx(SiteFooter,{certifications:\"Over 3,000 units in the field across Kansas City\",columns:[{heading:\"Water\",id:\"lnsUJ269q\",links:[{href:resolvedLinks1[0],id:\"irpqfPnuJ\",label:\"Bottle-less water coolers\"},{href:resolvedLinks1[1],id:\"uqxZxxhN6\",label:\"High volume water\"},{href:resolvedLinks1[2],id:\"J7bZ52j2B\",label:\"Sparkling water\"},{href:resolvedLinks1[3],id:\"uXhbj1Y_L\",label:\"All products\"}]},{heading:\"Ice and specialty\",id:\"i52o7dsA4\",links:[{href:resolvedLinks1[4],id:\"LXPijbf9u\",label:\"Office ice\"},{href:resolvedLinks1[5],id:\"rHleQI7Dl\",label:\"High volume ice\"},{href:resolvedLinks1[6],id:\"VW0tSWJPQ\",label:\"Flavored water and boosts\"},{href:resolvedLinks1[7],id:\"sgHCJhy_r\",label:\"Deionized (DI) water\"}]},{heading:\"Company\",id:\"VLiCTZFNE\",links:[{href:resolvedLinks1[8],id:\"wPtJISm61\",label:\"Technology\"},{href:resolvedLinks1[9],id:\"t4QQ7MUbJ\",label:\"Hydration and wellness\"},{href:resolvedLinks1[10],id:\"ofKzXu9Gv\",label:\"About\"},{href:resolvedLinks1[11],id:\"L3rHbqCQV\",label:\"Service areas\"},{href:resolvedLinks1[12],id:\"N52Trq2ci\",label:\"Blog\"},{href:resolvedLinks1[13],id:\"u4lHUfor1\",label:\"FAQ\"}]},{heading:\"Get in touch\",id:\"QHKz1SXax\",links:[{href:resolvedLinks1[14],id:\"z6Y2Nqgwz\",label:\"Try for free\"},{href:resolvedLinks1[15],id:\"qN2xpctVk\",label:\"Contact us\"},{href:resolvedLinks1[16],id:\"PqzT3SjcP\",label:\"Tech support\"}]}],columnsText:\"Products\\n- Bottleless water coolers|/products/water-coolers\\n- Sparkling and flavor|/products/sparkling\\n- Ice machines and combo|/products/ice-machines\\n- Specialty systems|/products/specialty\\n- All products|/products\\nSolutions\\n- Technology|/technology\\n- Hydration and wellness|/hydration-wellness\\n- DropWater|/dropwater\\n- Service areas|/service-areas\\nCompany\\n- About|/about\\n- Blog|/blog\\n- FAQ|/faq\\nGet in touch\\n- Try for free|/free-trial\\n- Contact us|/contact\\n- Tech support|/tech-support\",copyright:\"\\xa9 2026 Metro Pure Water. All rights reserved.\",height:\"100%\",id:\"j6kvmLfx9\",layoutId:\"j6kvmLfx9\",logo:\"https://framerusercontent.com/images/UgdhH9e3YlaWzfharmHJmytlo.png?width=220&height=100\",logoWidth:150,name:\"SiteFooter\",phoneHref:\"tel:8337873423\",phoneLabel:\"833-PURE-ICE\",socials:\"Facebook|https://www.facebook.com/KansasCityWater\\nLinkedIn|\\nInstagram|\\nYouTube|https://www.youtube.com/@MetroPureWater\",style:{width:\"100%\"},subTagline:\"Locally owned and operated in Kansas City since 2017.\",tagline:\"Go green. Go bottleless.\",width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=breakpointRules[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1080\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"ki2AzXl0l\":[\".framer-1ws01qq-container\",\".framer-1g82dfo-container\",\".framer-3udv7g-container\",\".framer-qvh8bb-container\"]}\n * @framerBreakpoints {\"ki2AzXl0l\":{\"canvasClassName\":\"framer-1rw5xzp-override\",\"minHeight\":1080,\"viewportHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16}}\n * @framerDefaultVariant ki2AzXl0l\n * @framerLayoutTemplate true\n */const Framereg9YMekPq=withCSS(Component,css,\"framer-lNqOI\");export default Framereg9YMekPq;Framereg9YMekPq.displayName=\"Site Chrome\";Framereg9YMekPq.defaultProps={height:1080,width:1200};addFonts(Framereg9YMekPq,[{explicitInter:true,fonts:[]},...SiteStylesFonts,...ThemeToggleFonts,...NavBarFonts,...SiteFooterFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framereg9YMekPq\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerBreakpoints\":\"{\\\"ki2AzXl0l\\\":{\\\"canvasClassName\\\":\\\"framer-1rw5xzp-override\\\",\\\"minHeight\\\":1080,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16}}\",\"framerHitTargets\":\"{\\\"ki2AzXl0l\\\":[\\\".framer-1ws01qq-container\\\",\\\".framer-1g82dfo-container\\\",\\\".framer-3udv7g-container\\\",\\\".framer-qvh8bb-container\\\"]}\",\"framerIntrinsicHeight\":\"1080\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerLayoutTemplate\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDefaultVariant\":\"ki2AzXl0l\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport SiteChrome from \"https://framerusercontent.com/modules/FyNpoTjyS9Lz6DK7XIuv/jZV0IcpmypS16Uyh9e0H/eg9YMekPq.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {BOpiO2jzj: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pTlQH1h28vTrHYTB8zV6/2JoeTjoBWZj9Mjq2bsZz/augiA20Il.js\")), path: \"/\"}, RzGaGnbe5: {elements: {kxlGT6dAm: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ivq0q42geD3nlzFOG9al/9jyjM1YJOfzG6uDJ2OKr/RzGaGnbe5.js\")), path: \"/dropwater\"}, ulbQjk_5m: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8yMCEInwT3GKysQGnUaY/YpxPGtVOLK4CteUZCa7b/ulbQjk_5m.js\")), path: \"/contact\"}, C8GyYyRCM: {elements: {cmjIhcqs7: \"trial\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Oeg5l33mzGvFY61oC0mk/iBP2MGfzeWzMZFCrCQqq/C8GyYyRCM.js\")), path: \"/free-trial\"}, D5LDKCwWd: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/LrdZ0OMuETLxpMd8mxIF/bDSfr7lQXVnaC6MxJWUi/D5LDKCwWd.js\")), path: \"/tech-support\"}, sEdUutTCG: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AaPx9XOFCp6CR2l5B1nu/2Qk9wW4KnNkEkXZ6q6Zu/sEdUutTCG.js\")), path: \"/order-drop-water-flavors\"}, YgzMItfWH: {elements: {zxxhKnf49: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/p5AHW8JeuxYAYxWNaK2f/BBQHcavlIXA8SocNMM5N/YgzMItfWH.js\")), path: \"/products\"}, O2smxeJXs: {elements: {IdMq4Pufn: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/PrSYbjH29CUEfku0YpOw/1g0Uu7Vxds3m5EYNGn7C/O2smxeJXs.js\")), path: \"/blog\"}, HWYynmggO: {elements: {jO7GHJahE: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ovbN8Za4SOrgYC01gus9/bSc2jNzGD0DKJ2iPfz1t/HWYynmggO.js\")), path: \"/about\"}, THhjBfo0A: {elements: {SsgOXlZTN: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/WXmz3Lqql0BZmzw8J2GU/7ULm0CUmQTGUXkfmxdlb/THhjBfo0A.js\")), path: \"/faq\"}, lkfn_vexw: {elements: {guWkFyX42: \"coverage\", m41gIF6GA: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/qGfILREuYXvB8KKCxYRp/3KHNwjB3JUfi1U8e3qDL/lkfn_vexw.js\")), path: \"/service-areas\"}, i8LfErM0f: {elements: {q1OpREfkz: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/jlcbCb8QxTkYFYr1Ry8P/3s6bJpcDafc3aBMlyu8E/i8LfErM0f.js\")), path: \"/hydration-wellness\"}, Fma7lAcoj: {elements: {CIxdm2w6X: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/H1tUnNTIXI558o9ncF0r/jk6WkdpBlOVybCEP5qir/Fma7lAcoj.js\")), path: \"/technology\"}, WFtSSUU4x: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AGMKBfOAD4jdZZJ9T1FT/tY2dKClZ9m5oGt4Xl8aj/WFtSSUU4x.js\")), path: \"/products/water-coolers\"}, u1OSEqe9e: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AkzGtLkJoR7OBvuoB7HA/yYQx7ZMy5UwjsWkeh15G/u1OSEqe9e.js\")), path: \"/products/sparkling\"}, kVZg6C8xQ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/9t6cTjeVUJMrIuQmMunW/i0IGSy4COYika2EM12pI/kVZg6C8xQ.js\")), path: \"/products/ice-machines\"}, GbndTGJsx: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/0vpZFzM3xYDngakpQKuq/EDAS4zbnHKB8qqeqHvR9/GbndTGJsx.js\")), path: \"/products/specialty\"}, iOs7zKGIo: {collectionId: \"AK1xDJS6u\", elements: {zuLFDEJMZ: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Zi3MJcp1ZpUe3lzX9CtE/WkFjmEn6uK6iTJ1CYAo9/iOs7zKGIo.js\")), path: \"/products/:TTdBBjIQZ\"}, S_VViEOQY: {collectionId: \"VRgb4YmAa\", elements: {wQpY8z8ZR: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/aQaPMDCVvVodFesvD5r6/osEOoKa3iQiBKqLKHwOx/S_VViEOQY.js\")), path: \"/blog/:oH5pJYgJK\"}, grQy3AYMm: {collectionId: \"rZWdCiGWW\", elements: {agu8EUgkZ: \"contact\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cjRqE0mPNZe85F9XSUny/2HUhCUtZm2U6TJP0zRfg/grQy3AYMm.js\")), path: \"/service-areas/:nKxFi7ywU\"}}\r\n\r\n\t\tconst locales = [{code: \"en-US\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {AK1xDJS6u: async () => (await import(\"https://framerusercontent.com/modules/nGu5fKrENkSNyEqr4Vb8/8Qn4o8pyjgI9mO3Jl6P8/AK1xDJS6u.js\"))?.[\"utils\"], rZWdCiGWW: async () => (await import(\"https://framerusercontent.com/modules/usGgxHh0ZHkl5vbVmMwC/BxYYXeNFVCYfYIVtrDjS/rZWdCiGWW.js\"))?.[\"utils\"], VRgb4YmAa: async () => (await import(\"https://framerusercontent.com/modules/q5JzgNCqY4lfIpXiM7kT/GdfjjmUNwQ4NQDMNQIU3/VRgb4YmAa.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"f595d79d55807e8ac1fc19e1f69ca7de0483af1833a7d0ce49624a4e6caa11fe\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"RzGaGnbe5\":\r\ncase \"ulbQjk_5m\":\r\ncase \"C8GyYyRCM\":\r\ncase \"D5LDKCwWd\":\r\ncase \"sEdUutTCG\":\r\ncase \"YgzMItfWH\":\r\ncase \"O2smxeJXs\":\r\ncase \"HWYynmggO\":\r\ncase \"THhjBfo0A\":\r\ncase \"lkfn_vexw\":\r\ncase \"i8LfErM0f\":\r\ncase \"Fma7lAcoj\":\r\ncase \"WFtSSUU4x\":\r\ncase \"u1OSEqe9e\":\r\ncase \"kVZg6C8xQ\":\r\ncase \"GbndTGJsx\":\r\ncase \"iOs7zKGIo\":\r\ncase \"S_VViEOQY\":\r\ncase \"grQy3AYMm\":\r\nreturn React.createElement(SiteChrome, {...props, key: \"SiteChrome\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"RzGaGnbe5\":\r\ncase \"ulbQjk_5m\":\r\ncase \"C8GyYyRCM\":\r\ncase \"D5LDKCwWd\":\r\ncase \"sEdUutTCG\":\r\ncase \"YgzMItfWH\":\r\ncase \"O2smxeJXs\":\r\ncase \"HWYynmggO\":\r\ncase \"THhjBfo0A\":\r\ncase \"lkfn_vexw\":\r\ncase \"i8LfErM0f\":\r\ncase \"Fma7lAcoj\":\r\ncase \"WFtSSUU4x\":\r\ncase \"u1OSEqe9e\":\r\ncase \"kVZg6C8xQ\":\r\ncase \"GbndTGJsx\":\r\ncase \"iOs7zKGIo\":\r\ncase \"S_VViEOQY\":\r\ncase \"grQy3AYMm\":\r\nreturn [{hash: \"1rw5xzp\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://metropurewater.com\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/xhq4auSQEIZIJwh6q9Vv/X0JtYXmfmPYbtLS9sfse/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"mnBAiBA,SAAS,EAAI,EAAK,CAAC,OAAO,GAAM,eAAe,KAAK,CAAI,EAAE,CAAC,OAAO,SAAS,IAAI,qBAAqB,EAAE,CAAC,CAAE,CAAC,SAAS,GAAU,EAAK,CAAC,IAAM,EAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,EAAM,EAAK,OAAO,IAAI,IAAM,KAAO,GAAM,GAAA,CAAI,MAAM;CAAI,EAAE,CAAC,IAAM,EAAK,EAAI,KAAK,EAAE,GAAG,CAAC,EAAK,SAAS,GAAG,EAAK,YAAY,IAAI,SAAS,CAAC,EAAK,OAAO,QAAS,CAAC,GAAG,EAAK,YAAY,IAAI,UAAU,CAAC,EAAK,QAAQ,QAAS,CAAC,IAAM,EAAM,EAAK,WAAW,GAAG,EAAO,CAAC,EAAM,EAAK,IAAI,EAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAM,KAAe,GAAG,EAAM,CAAC,IAAM,EAAO,EAAI,EAAK,CAAC,EAAI,EAAK,CAAC,OAAO,GAAM,IAAQ,EAAO,UAAU,CAAC,EAAA,CAAG,KAAK,CAAC,QAAM,MAAI,CAAC,CAAE,MAAM,EAAI,EAAK,CAAC,KAAK,CAAC,QAAM,OAAK,QAAQ,CAAC,CAAC,CAAC,CAAG,CAAC,OAAO,CAAI,CAsIjpB,SAAwB,EAAO,EAAM,CAAC,GAAK,CAAC,OAAK,WAAS,YAAU,UAAU,EAAc,WAAW,EAAe,WAAS,WAAS,UAAQ,eAAa,cAAY,aAAW,aAAU,SAAO,EAAW,CAAC,GAAM,GAAUA,EAAS,EAAK,EAAO,CAAC,EAAK,GAASA,EAAS,EAAK,EAAE,MAAc,CAAC,IAAM,MAAa,EAAS,EAAO,QAAQ,EAAE,EAAuE,OAArE,EAAO,iBAAiB,SAAS,EAAS,CAAC,QAAQ,EAAI,CAAC,EAAE,EAAS,MAAY,EAAO,oBAAoB,SAAS,CAAQ,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,GAAQ,GAAU,GAAA,CAAI,KAAK,EAAE,GAAU,CAAQ,EAAE,KAAW,EAAU,EAAO,EAAO,KAAK,EAAoB,EAAW,EAAO,EAAO,MAAM,EAAqB,GAAI,CAAC,GAAG,EAAU,GAAG,CAAU,EAAE,OAAoB,EAAM,MAAM,CAAC,UAAU,SAAS,GAAM,SAAS,KAAK,EAAK,QAAQ,IAAU,QAAM,SAAS,CAAc,EAAK,QAAQ,CAAC,SAASC,EAAG,CAAC,EAAe,EAAM,MAAM,CAAC,UAAU,WAAW,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,YAAY,SAAS,CAAC,GAAc,EAAyB,EAAK,IAAI,CAAC,UAAU,YAAY,KAAK,EAAY,GAAG,EAAI,CAAW,EAAE,SAAS,CAAY,CAAC,EAAE,KAAK,EAAU,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,OAAO,EAAe,EAAM,MAAM,CAAC,UAAU,YAAY,SAAS,CAAc,EAAM,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,EAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAmB,EAAK,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,QAAQ,UAAU,KAAK,OAAO,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,YAAY,SAAS,EAAE,QAAQ,KAAK,EAAE,IAAiB,EAAK,IAAI,CAAC,KAAKC,EAAE,KAAK,GAAG,EAAIA,EAAE,IAAI,EAAE,SAASA,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAe,EAAK,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,EAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,IAAI,CAAC,KAAK,IAAI,UAAU,cAAc,SAAS,EAAkB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,MAAM,CAAC,UAAU,eAAe,IAAI,EAAK,IAAI,mBAAmB,MAAM,CAAC,MAAM,EAAU,OAAO,MAAM,CAAC,CAAC,EAAE,EAAsB,EAAK,MAAM,CAAC,UAAU,eAAe,IAAI,EAAS,IAAI,GAAG,cAAc,OAAO,MAAM,CAAC,MAAM,EAAU,OAAO,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAe,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAU,OAAO,GAAG,aAAa,EAAE,WAAW,2BAA2B,QAAQ,OAAO,WAAW,SAAS,WAAW,oBAAoB,SAAS,GAAG,WAAW,IAAI,cAAc,QAAQ,cAAc,YAAY,MAAM,0BAA0B,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,UAAU,kBAAkB,SAAS,CAAC,EAAW,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,OAAO,EAAe,EAAM,MAAM,CAAC,UAAU,YAAY,SAAS,CAAc,EAAM,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,EAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAmB,EAAK,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,QAAQ,UAAU,KAAK,OAAO,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,YAAY,SAAS,EAAE,QAAQ,KAAK,EAAE,IAAiB,EAAK,IAAI,CAAC,KAAKD,EAAE,KAAK,GAAG,EAAIA,EAAE,IAAI,EAAE,SAASA,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAe,EAAK,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,EAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAe,EAAK,IAAI,CAAC,UAAU,YAAY,KAAK,EAAQ,SAAS,CAAQ,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,SAAS,CAAC,UAAU,eAAe,aAAa,EAAK,aAAa,YAAY,gBAAgB,EAAK,YAAY,EAAQ,CAAC,CAAI,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,KAAK,OAAO,SAAS,EAAkB,EAAK,OAAO,CAAC,EAAE,sBAAsB,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,eAAe,SAAsB,EAAM,MAAM,CAAC,UAAU,kBAAkB,SAAS,CAAC,GAAI,KAAK,EAAE,IAAiB,EAAM,MAAM,CAAC,SAAS,CAAc,EAAK,IAAI,CAAC,UAAU,cAAc,KAAK,EAAE,KAAK,GAAG,EAAI,EAAE,IAAI,EAAE,YAAY,EAAQ,EAAK,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAA,CAAG,KAAK,EAAE,IAAiB,EAAK,IAAI,CAAC,UAAU,yBAAyB,KAAKA,EAAE,KAAK,GAAG,EAAIA,EAAE,IAAI,EAAE,YAAY,EAAQ,EAAK,EAAE,SAASA,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,UAAU,mBAAmB,SAAS,CAAC,EAAwB,EAAK,IAAI,CAAC,UAAU,eAAe,KAAK,GAAU,SAAS,CAAU,CAAC,EAAE,KAAkB,EAAK,IAAI,CAAC,UAAU,YAAY,KAAK,EAAQ,YAAY,EAAQ,EAAK,EAAE,SAAS,CAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,yBAvJxtI,IAAoD,IAAsC,EAiBkfD,GAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIyoH,EAAO,aAAa,CAAC,KAAK,GAAG,UAAU,IAAI,SAAS,kBAAkB,QAAQ,WAAW,WAAW,eAAe,UAAU,iBAAiB,UAAU,CAAC,CAAC,MAAM,eAAe,KAAK,WAAW,EAAE,CAAC,MAAM,gBAAgB,KAAK,WAAW,EAAE,CAAC,MAAM,YAAY,KAAK,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,YAAY,KAAK,YAAY,EAAE,CAAC,MAAM,UAAU,KAAK,UAAU,CAAC,CAAC,EAAE,EAAoB,EAAO,CAAC,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,MAAM,EAAE,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,YAAY,6JAA6J,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,IAAI,GAAG,IAAI,GAAG,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,gBAAgB,GAAK,aAAa,GAAG,YAAY,mIAAmI,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,EAAE,EAAE,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,kBAAkB,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,CAAC,CAAC,KCnJr2M,SAAS,GAAa,EAAK,CAAC,IAAM,EAAK,CAAC,EAAE,IAAI,IAAM,KAAO,GAAM,GAAA,CAAI,MAAM;CAAI,EAAE,CAAC,IAAM,EAAK,EAAI,KAAK,EAAM,KAAc,GAAG,EAAK,WAAW,GAAG,EAAE,CAAC,GAAK,CAAC,EAAM,EAAK,IAAI,EAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAK,GAAO,EAAK,QAAO,EAAK,EAAK,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,QAAM,MAAI,CAAC,CAAE,MAAM,EAAK,KAAK,CAAC,QAAQ,EAAK,MAAM,CAAC,CAAC,CAAC,CAAG,CAAC,OAAO,CAAK,CAkD8sC,SAAS,GAAa,EAAK,CAAC,IAAM,EAAI,CAAC,EAAE,IAAI,IAAM,KAAO,GAAM,GAAA,CAAI,MAAM;CAAI,EAAE,CAAC,IAAM,EAAK,EAAI,KAAK,EAAE,GAAG,CAAC,EAAK,SAAS,GAAK,CAAC,EAAM,EAAK,IAAI,EAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,GAAO,CAAC,EAAK,SAAS,IAAM,EAAI,EAAM,YAAY,CAAC,CAAC,QAAQ,UAAU,EAAE,EAAM,EAAa,IAAc,EAAI,KAAK,CAAC,MAAI,QAAM,MAAI,CAAC,CAAE,CAAC,OAAO,CAAI,CAAC,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,OAAK,YAAU,UAAQ,aAAW,aAAW,YAAU,UAAQ,QAAQ,EAAY,cAAY,YAAU,iBAAe,SAAO,EAAY,GAAS,GAAa,GAAA,CAAI,KAAK,EAAE,GAAa,CAAW,EAAE,EAAY,OAAoB,EAAM,MAAM,CAAC,UAAU,eAAqB,QAAM,SAAS,CAAc,EAAK,QAAQ,CAAC,SAASG,EAAG,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,SAAS,SAAsB,EAAM,MAAM,CAAC,UAAU,YAAY,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,cAAc,MAAM,CAAE,aAAc,EAAQ,MAAM,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,UAAU,0BAA0B,SAAS,CAAC,EAAkB,EAAK,MAAM,CAAC,IAAI,EAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAU,OAAO,MAAM,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAU,OAAO,GAAG,aAAa,EAAE,WAAW,wBAAwB,QAAQ,OAAO,WAAW,SAAS,WAAW,oBAAoB,SAAS,GAAG,WAAW,IAAI,cAAc,QAAQ,cAAc,YAAY,MAAM,SAAS,EAAE,SAAS,MAAM,CAAC,EAAe,EAAM,IAAI,CAAC,SAAS,CAAC,EAAqB,EAAK,KAAK,CAAC,CAAC,EAAE,CAAU,CAAC,CAAC,EAAE,EAAwB,EAAK,IAAI,CAAC,UAAU,eAAe,KAAK,EAAU,SAAS,CAAU,CAAC,EAAE,KAAK,GAAa,CAAO,CAAC,CAAC,OAAO,GAAgB,EAAK,MAAM,CAAC,UAAU,gBAAgB,SAAS,GAAa,CAAO,CAAC,CAAC,IAAI,GAAiB,EAAK,IAAI,CAAC,UAAU,eAAe,KAAK,EAAG,KAAK,OAAO,SAAS,IAAI,sBAAsB,aAAa,EAAG,MAAM,SAAS,EAAa,EAAG,IAAI,EAAE,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAQ,KAAK,EAAE,IAAiB,EAAM,MAAM,CAAC,UAAU,aAAa,SAAS,CAAc,EAAK,KAAK,CAAC,SAASC,EAAE,OAAO,CAAC,EAAEA,EAAE,MAAM,KAAK,EAAE,IAAiB,EAAK,IAAI,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,UAAU,aAAa,CAAC,EAAe,EAAM,MAAM,CAAC,UAAU,aAAa,SAAS,CAAc,EAAK,OAAO,CAAC,SAAS,CAAS,CAAC,EAAe,EAAK,OAAO,CAAC,SAAS,CAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,uBAtDnsH,IAAoD,EAIqPD,GAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkD5V,EAAa,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,eAAe,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,uOAAuO,CAAC,CAAC,CAAC,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,eAAe,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,4KAA4K,CAAC,CAAC,CAAC,EAAE,UAAuB,EAAM,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,MAAM,cAAc,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,OAAO,GAAG,KAAK,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE,MAAM,KAAK,eAAe,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAqB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,eAAe,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,0RAA0R,CAAC,CAAC,CAAC,CAAC,EAAstE,EAAW,aAAa,CAAC,KAAK,GAAG,UAAU,IAAI,QAAQ,2BAA2B,WAAW,wDAAwD,WAAW,eAAe,UAAU,iBAAiB,UAAU,gDAAmD,eAAe,mDAAmD,QAAQ,CAAC,CAAC,QAAQ,YAAY,MAAM,CAAC,CAAC,MAAM,0BAA0B,KAAK,GAAG,EAAE,CAAC,MAAM,2BAA2B,KAAK,GAAG,EAAE,CAAC,MAAM,qBAAqB,KAAK,GAAG,EAAE,CAAC,MAAM,4BAA4B,KAAK,GAAG,EAAE,CAAC,MAAM,wBAAwB,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,YAAY,MAAM,CAAC,CAAC,MAAM,4BAA4B,KAAK,GAAG,EAAE,CAAC,MAAM,mBAAmB,KAAK,GAAG,EAAE,CAAC,MAAM,mBAAmB,KAAK,GAAG,EAAE,CAAC,MAAM,qBAAqB,KAAK,GAAG,EAAE,CAAC,MAAM,eAAe,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAC,MAAM,WAAW,KAAK,QAAQ,EAAE,CAAC,MAAM,gBAAgB,KAAK,QAAQ,EAAE,CAAC,MAAM,wBAAwB,KAAK,GAAG,EAAE,CAAC,MAAM,kBAAkB,KAAK,UAAU,EAAE,CAAC,MAAM,oBAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAoB,EAAW,CAAC,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,MAAM,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,IAAI,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,gBAAgB,GAAK,aAAa,GAAG,YAAY,+GAA+G,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,gBAAgB,GAAK,aAAa,GAAG,YAAY,yGAAyG,EAAE,QAAQ,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,CAAC,CAAC,KC1Bz2K,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,SAAO,YAAU,eAAa,cAAY,eAAa,KAAK,SAAO,EAAY,EAAI;;6BAEhsB,EAAU;MACjC,EAAa,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAyC3B,EAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAkLH,EAAU;;;;;;;;;;;;;;gBAcxB,EAAM,MAAM,GAAG,EAAa,MAAM;gBAClC,EAAM,SAAS,GAAG,EAAa,SAAS;gBACxC,EAAM,MAAM,GAAG,EAAa,MAAM;gBAClC,EAAM,KAAK,GAAG,EAAa,KAAK;gBAChC,EAAM,IAAI,GAAG,EAAa,IAAI;gBAC9B,EAAM,MAAM,GAAG,EAAa,MAAM;gBAClC,EAAM,QAAQ,GAAG,EAAa,QAAQ;;;gBAGtC,EAAM,MAAM,GAAG,EAAc,MAAM;gBACnC,EAAM,SAAS,GAAG,EAAc,SAAS;gBACzC,EAAM,MAAM,GAAG,EAAc,MAAM;gBACnC,EAAM,KAAK,GAAG,EAAc,KAAK;gBACjC,EAAM,IAAI,GAAG,EAAc,IAAI;gBAC/B,EAAM,MAAM,GAAG,EAAc,MAAM;gBACnC,EAAM,QAAQ,GAAG,EAAc,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyDjD,EAAY,SAAS,EAAU,GAAG,GAAG;MACrC,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,SAAS,cAAc,OAAO,GAAG,CAAK,EAAE,cAAc,OAAO,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,CAAG,CAAC,EAAe,EAAK,SAAS,CAAC,wBAAwB,CAAC,OAAO,gEAAgE,KAAK,UAAU,GAAc,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,0BAjV5S,IAAoD,EAGtG,EAAU;;;;;;;;;;;;;;;;;;;;;;;MAyBV,EAAM,CAAC,MAAM,uCAAuC,SAAS,uCAAuC,MAAM,uCAAuC,KAAK,uCAAuC,IAAI,uCAAuC,MAAM,uCAAuC,QAAQ,sCAAsC,EAAQ,EAAc,CAAC,MAAM,UAAU,SAAS,UAAU,MAAM,UAAU,KAAK,UAAU,IAAI,UAAU,MAAM,UAAU,QAAQ,SAAS,EAAQ,EAAa,CAAC,MAAM,UAAU,SAAS,UAAU,MAAM,UAAU,KAAK,UAAU,IAAI,UAAU,MAAM,UAAU,QAAQ,SAAS,EAqTnP,EAAW,aAAa,CAAC,OAAO,UAAU,UAAU,IAAI,aAAa,GAAK,YAAY,EAAK,EAAE,EAAoB,EAAW,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,YAAY,kHAAkH,aAAa,IAAI,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,IAAI,EAAE,IAAI,GAAG,EAAE,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,EAAE,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,YAAY,wGAAwG,aAAa,EAAK,CAAC,CAAC,KCrUzY,SAAwB,EAAY,EAAM,CAAC,GAAK,CAAC,aAAW,QAAQ,YAAU,OAAO,YAAU,GAAK,QAAM,MAAM,YAAU,QAAQ,SAAO,EAAY,EAAS,GAAoB,EAAO,CAAC,EAAM,GAAUE,EAAS,OAAO,EACv3B,MAAc,CAAC,GAAG,GAAiB,IAAS,OAAY,OAAO,IAAI,EAAM,KAAK,GAAG,CAAC,EAAM,EAAO,aAAa,QAAQ,CAAG,CAAE,MAAM,CAAC,EAAM,IAAK,CAAC,IAAM,EAAK,IAAQ,MAAY,IAAQ,OAAO,OAAO,QAA5B,EAAoC,EAAS,CAAI,EAAE,SAAS,gBAAgB,aAAa,aAAa,CAAI,CAAE,EAAE,CAAC,EAAS,CAAK,CAAC,EAAE,SAAS,GAAQ,CAAC,GAAG,OAAO,SAAW,IAAY,OAAO,IAAM,EAAK,IAAQ,OAAO,QAAQ,OAAa,EAAK,SAAS,gBAC5Z,EAAK,UAAU,IAAI,YAAY,EAAE,EAAK,aAAa,aAAa,CAAI,EAAE,EAAS,CAAI,EAAE,GAAG,CAAC,EAAO,aAAa,QAAQ,EAAI,CAAI,CAAE,MAAM,CAAgE,CAAC,EAAO,eAAe,EAAK,UAAU,OAAO,YAAY,EAAE,GAAG,CAAE,CAAC,IAAM,EAAO,IAAQ,OAAO,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,cAAc,GAAG,CAAK,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,EAAG,CAAC,EAAe,EAAM,SAAS,CAAC,KAAK,SAAS,UAAU,QAAQ,IAAY,QAAQ,cAAc,IAAI,QAAQ,EAAO,eAAe,EAAO,aAAa,EAAO,wBAAwB,uBAAuB,SAAS,CAAC,EAAO,EAAI,GAAK,EAAU,EAAO,EAAW,EAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,gCAd5oB,IAAwE,IAAsC,EAAO,EAAI,WAAiB,GAAI;;;;;;;;;;;;EAY9L,EAAiB,EAAM,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,cAAc,OAAO,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,sGAAsG,CAAC,CAAC,CAAC,CAAC,EAAQ,GAAkB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,oDAAoD,CAAC,CAAC,CAAC,EAE0C,EAAoB,EAAY,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,MAAM,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,OAAO,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,EAAI,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,QAAQ,QAAQ,EAAE,aAAa,CAAC,WAAW,QAAQ,EAAE,aAAa,QAAQ,wBAAwB,EAAI,EAAE,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,YAAY,4EAA4E,QAAQ,CAAC,MAAM,QAAQ,MAAM,EAAE,aAAa,CAAC,MAAM,QAAQ,MAAM,EAAE,aAAa,KAAK,CAAC,CAAC,2DCb/wC,IAAoO,KAA8C,IAA4B,KAAuF,KAAqE,KAAqE,KAAuE,EAAO,GAAgB,EAAS,CAAU,EAAQ,GAAiB,EAAS,CAAW,EAAQ,GAAY,EAAS,CAAM,EAAQ,GAAgB,EAAS,CAAU,EAAQ,GAAY,CAAC,EAA0D,GAAkB,eAAqB,GAAkB,CAAC,UAAU,kBAAkB,EAAQ,EAAgB,CAAC,EAAQ,EAAe,OAAO,KAAK,CAAe,EAAQ,EAAM,CAAC,kFAAkF,8TAA8T,qHAAqH,oHAAoH,qHAAqH,yJAAyJ,qHAAqH,mEAAmE,EAAQ,IAAW,CAAC,WAAyB,GAAgC,EAAS,KAAyB,EAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAK,EAAE,yBAAyB,EAAE,CAAC,EAAU,IAAU,CAAC,SAAO,KAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,CAAK,GAAU,GAAuB,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,IAAI,EAAQ,EAAW,GAAK,EAAkB,EAAgBC,EAAY,EAAO,CAAC,eAAa,aAAW,GAAc,EAAO,CAAC,QAAM,YAAU,WAAS,UAAQ,WAAS,GAAG,GAAW,GAAS,CAAK,EAAO,CAAC,EAAY,IAAqB,GAA8B,EAAQ,GAAY,EAAK,EAAsE,EAAkB,GAAG,EAA0C,EAAgD,OAAjC,GAAU,EAAE,GAAiB,CAAC,CAAC,EAAsB,EAAK,GAA0B,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAY,iBAAiB,GAAK,iBAAiB,YAAY,oBAAiB,EAAE,SAAsB,EAAM,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAS,CAAc,EAAK,GAAU,CAAC,MAAM,gDAAgD,CAAC,EAAe,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,UAAU,GAAG,EAAkB,iBAAiB,CAAS,EAAE,uBAAuB,GAAK,IAAI,EAAW,MAAM,CAAC,GAAG,CAAK,EAAE,SAAS,CAAc,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,gCAAgC,SAAS,mBAAmB,aAAa,iBAAiB,GAAK,KAAK,aAAa,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,EAAW,CAAC,OAAO,mBAAmB,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,aAAa,UAAU,IAAI,YAAY,GAAM,aAAa,KAAK,aAAa,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,2BAA2B,gCAAgC,MAAM,mBAAmB,cAAc,iBAAiB,GAAK,KAAK,cAAc,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,EAAY,CAAC,UAAU,OAAO,MAAM,MAAM,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,WAAW,QAAQ,KAAK,cAAc,UAAU,QAAQ,UAAU,GAAK,MAAM,CAAC,OAAO,OAAO,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,0BAA0B,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,mBAAmB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,yBAAyB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,yBAAyB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,YAAY,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,sBAAsB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,sBAAsB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,eAAe,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,oBAAoB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,CAAC,EAAE,SAAS,GAA4B,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gCAAgC,SAAS,mBAAmB,SAAS,iBAAiB,GAAK,KAAK,SAAS,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,EAAO,CAAC,QAAQ,EAAc,IAAI,SAAS,eAAe,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,YAAY,0CAA0C,aAAa,eAAe,UAAU,CAAC,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,WAAW,QAAQ,CAAC,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,cAAc,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,yBAAyB,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAc,GAAG,GAAG,YAAY,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,aAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,4FAA4F,SAAS,0FAA0F,UAAU,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;8BAAwoB,KAAK,SAAS,UAAU,iBAAiB,WAAW,eAAe,WAAW,CAAC,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,gBAAgB,QAAQ,CAAC,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,UAAU,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,MAAM,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,UAAU,QAAQ,CAAC,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,cAAc,EAAE,CAAC,KAAK,EAAc,IAAI,GAAG,YAAY,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAsB,EAAK,MAAM,CAAC,UAAU,eAAe,CAAC,EAAe,EAAK,GAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,0BAA0B,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,mBAAmB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,yBAAyB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,YAAY,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,aAAa,YAAY,iBAAiB,WAAW,CAAC,EAAE,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,EAAE,CAAC,KAAK,CAAC,UAAU,WAAW,EAAE,sBAAsB,IAAA,EAAS,CAAC,EAAE,SAAS,GAA6B,EAAK,EAA0B,CAAC,SAAsB,EAAK,EAAU,CAAC,UAAU,0BAA0B,gCAAgC,SAAS,mBAAmB,aAAa,iBAAiB,GAAK,KAAK,aAAa,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAK,EAAW,CAAC,eAAe,mDAAmD,QAAQ,CAAC,CAAC,QAAQ,QAAQ,GAAG,YAAY,MAAM,CAAC,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,QAAQ,oBAAoB,GAAG,YAAY,MAAM,CAAC,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,sBAAsB,CAAC,CAAC,EAAE,CAAC,QAAQ,UAAU,GAAG,YAAY,MAAM,CAAC,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAe,GAAG,GAAG,YAAY,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,OAAO,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,eAAe,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,MAAM,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,eAAe,GAAG,YAAY,MAAM,CAAC,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,cAAc,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,YAAY,EAAE,CAAC,KAAK,EAAe,IAAI,GAAG,YAAY,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY;;;;;;;;;;;;;;;;;;8BAA4f,UAAU,gDAAmD,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,0FAA0F,UAAU,IAAI,KAAK,aAAa,UAAU,iBAAiB,WAAW,eAAe,QAAQ;;;iDAA4H,MAAM,CAAC,MAAM,MAAM,EAAE,WAAW,wDAAwD,QAAQ,2BAA2B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAQ,GAAI,GAAgC,IAAS,GAAa,QAAQ,IAAS,GAAa,OAAmL,CAAC,GAAG,EAAM,GAAG,EAAe,QAAQ,GAAK,CAAC,IAAM,EAAS,EAAgB,GAAK,OAAO,EAAgB,EAAI,CAAC,IAAI,GAAM,GAAG,EAAS,IAAI,EAAK,EAAE,CAAE,CAAC,CAAC,EAA/R,CAAC,GAAG,EAAM,GAAG,EAAe,IAAI,GAA6C,UAA3B,EAAgB,GAA2B,KAAK,EAAgB,EAAI,CAAC,KAAK,GAAG,EAAE,GAAK,CAAC,EAcx2f,EAAgB,GAAQ,GAAU,GAAI,cAAc,EAAiC,EAAgB,YAAY,cAAc,EAAgB,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,GAAS,EAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,EAAE,GAAG,GAAgB,GAAG,GAAiB,GAAG,GAAY,GAAG,EAAe,EAAE,CAAC,6BAA6B,EAAI,CAAC,KCFjW,SAAS,GAAS,CAAC,YAAW,WAAU,QAAO,GAAG,GAAO,CAC3D,IAAM,EAAQ,CAAY,EAAE,IAAc,CAAC,EAC3C,OAAQ,EAAR,CAAoB,IAAK,YACzB,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,OAAOC,EAAoBC,EAAY,CAAC,GAAG,EAAO,IAAK,aAAc,OAAK,EAAG,EAAS,EAAI,CAAC,EAC3F,QAAW,OAAO,EAAS,EAAK,CAAG,CAAC,CACpC,SAAgB,GAA6B,EAAS,CAAC,OAAQ,EAAR,CAAkB,IAAK,YAC9E,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,MAAO,CAAC,CAAC,KAAM,SAAS,CAAC,EACzB,QAAW,MAAkB,CAAC,CAQ5B,eAAsB,GAAY,CACjC,UACA,gBACA,yBACA,WACA,mBACA,kBACA,wCAAwC,IACtC,CACF,IAAM,EAAc,EAAO,EAAQ,CAAC,KAAK,QAAQ,EAIjD,GAA0B,CAAC,sBAAuB,GAAM,kBAAmB,GAAO,qBAAsB,GAAO,uCAAwC,GAAO,eAAgB,GAAO,0BAA2B,GAAM,eAAgB,GAAM,6BAA8B,GAAM,kBAAmB,GAAM,+BAAgC,GAAO,WAAY,EAAK,CAAC,EAClW,GAAwB,CAAY,EAsEpC,IAAM,EAAOD,EAAoBgB,GAA4B,CAC5D,SANmDhB,EAAoBe,GAAyC,CAChH,SAhEef,EACfE,GACA,CACC,UAAW,GACX,YAAa,OACb,UACA,gBACA,yBACA,SACA,kBACA,wBACA,eACA,aAAcC,MAAkB,OAAO,0CAA0B,EACjE,gBAAiB,IAAA,GACjB,WACA,UACA,oBAAqB,IAAA,GACrB,iBAAkB,6BAClB,UACK,IAAW,OAkCX,IAAA,QAlCgC,CACtC,GAAI,EAAO,CACV,QAAQ,IAAI,+DAA+D,EAC3E,MACD,CAEA,OAAOA,EAAY,SAAY,CAqB9B,EAAO,+BAAiC,CAnBvC,UAAW,EACX,OAAQ,CACUC,mBACFC,iBACJC,YACZ,EACA,MAAO,CACN,cAAeN,EACf,SAAUO,EACV,KAAMC,EACN,YAAaC,EACb,UAAWC,EACX,OAAQC,EACR,SAAUC,EACV,gBAAiBC,CAClB,EACA,YAAa,CAAE,aAAA,CAAa,CAGsB,EAEnD,GAAM,CAAE,mBAAoB,MAAM,OAAO,oCACzC,MAAO,CACN,QAAS,EAAgB,CAC1B,CACD,CAAC,CACF,EAAA,CAAG,EAED,2BAA4B,GAC5B,eAAgB,GAChB,mBAAoB,IAAIC,OAAuB,OAAO,6DAA8F,EACpJ,wBAAyB,EACzB,+BAAgC,CACjC,CAIU,CACX,CAIW,EACV,MAAO,CAAC,OAAQ,CAAC,CAAC,CACnB,CAAC,EAID,OADA,MAAM,EACC,CACR,CAoBA,SAAS,IAAQ,CACX,GACL,EAAO,gBAAgB,KAAK,SAAS,CACtC,CAEA,eAAe,GAAK,EAAe,EAAW,CAC7C,SAAS,EAAY,EAAO,EAAW,EAAc,GAAM,CAC1D,GAAI,EAAM,QAAU,EAAO,uBAAwB,OAEnD,IAAM,EAAiB,GAAW,eAClC,GAAI,EAGH,IAFA,QAAQ,KAAK;EAA4S,EAAO,CAAc,EAE1U,KAAK,OAAO,EAAI,IAAM,MAAA,MAE1B,QAAQ,MAAM;EAA+G,EAAO,CAAc,EAEnJ,GAAM,EAAc,wCAA0C,4BAA6B,CAC1F,QAAS,OAAO,CAAK,EACrB,iBACA,MAAO,EAAiB,IAAA,GAAY,aAAiB,OAAS,OAAO,EAAM,OAAU,SAAW,EAAM,MAAQ,IAC/G,CAAC,CACF,CAEA,GAAI,CACH,IAAI,EAAS,EAAU,EAAiB,EAAe,EAAwB,EAAa,EAC5F,GAAI,EACH,EAAY,KAAK,MAAM,EAAU,QAAQ,eAAkB,EAC3D,EAAU,EAAU,QACpB,EAAW,EAAU,SACrB,EAAkB,EAAU,gBAC5B,EAAgB,EAAU,cAC1B,EAAyB,EAAU,uBACnC,EAAc,EAAU,YAExB,EAAUG,GAA+B,EAAQ,CAAO,MAClD,CACN,GAA+B,EAAQ,IAAA,EAAS,EAGhD,IAAM,EAAc,YAAY,iBAAiB,YAAY,CAAC,CAAC,EAAE,EAAE,cAAc,KAAK,GAAK,EAAE,OAAS,OAAO,CAAC,EAAE,YAChH,GAAI,EAAa,CAChB,IAAM,EAAY,IAAI,gBAAgB,CAAW,EACjD,EAAU,EAAU,IAAI,IAAI,EAC5B,EAAW,EAAU,IAAI,QAAQ,EACjC,IAAK,GAAM,CAAC,EAAK,KAAU,EAAU,QAAQ,EACvC,EAAI,WAAW,MAAM,IAC1B,IAAkB,CAAC,EACnB,EAAc,EAAI,MAAM,CAAC,GAAK,EAEhC,CACA,GAAI,CAAC,GAAW,CAAC,EAAU,CAC1B,IAAM,EAAYC,GAAiC,EAAQ,mBAAmB,SAAS,QAAQ,EAAG,GAAM,CAAO,EAC/G,EAAU,EAAU,QACpB,EAAW,EAAU,SACrB,EAAgB,EAAU,aAC3B,CAED,CAEA,IAAM,EAAc,GAAY,CAC/B,UACA,WACA,kBACA,gBACA,yBACA,iBAAkB,EAAgB,GAAW,iBAAmB,IAAA,GAChE,sCAAuC,CAAC,CACzC,CAAC,EAGM,IAAW,SACf,SAAY,CACjB,IAAM,EAAQ,EAAO,GAGf,EAAe,EAAQ,MAAM,CAAE,QAAU,EAAoC,IAAO,EAAhC,IAAO,SAAiC,CAAC,CAAC,KAGhG,EAAmB,GAAW,kBAAoB,KACtD,GAAI,IAAqB,MAAQ,GAAO,cAAgB,EAAiB,CACxE,IAAM,EAAQ,MAAM,EAAgB,EAAM,aAAa,GAAG,EACpD,CAAC,GAAQ,OAAO,OAAO,CAAa,EACtC,GAAS,OAAO,GAAS,WAC5B,EAAoB,MAAM,EAAM,kBAAkB,EAAM,GAAgB,IAAA,EAAS,GAAM,KAEzF,CAGA,IAAM,EAA0B,KAAK,eAAe,CAAC,CAAC,gBAAgB,EAChE,EAAW,EAAwB,SACnC,EAAS,EAAwB,OAIvC,MAAM,IAAI,QAAS,GAAY,CAC1B,SAAS,aACZ,SAAS,iBAAiB,qBAAsB,EAAS,CAAE,KAAM,EAAK,CAAC,EAEvE,EAAQ,CAEV,CAAC,EAED,EAAO,gBAAgB,KAAK,CAC3B,0BACA,CACC,eACA,QAAS,EACT,UAAW,GAAO,MAAQ,IAC1B,mBACA,aAAc,GAAgB,KAC9B,UAAW,GAAO,oBAAsB,EACxC,SAAU,GAAO,SACjB,SAAU,SAAS,UAAY,KAC/B,IAAK,EAAO,SAAS,KACrB,SAAU,EAAO,SAAS,UAAY,KACtC,SAAU,EAAO,SAAS,UAAY,KACtC,KAAM,EAAO,SAAS,MAAQ,KAC9B,OAAQ,EAAO,SAAS,QAAU,KAClC,WACA,QACD,EACA,OACD,CAAC,EAGD,MAAMC,GAAmB,CAAE,SAAU,aAAc,2BAA4B,GAAM,cAAe,OAAQ,CAAC,EAE7G,SAAS,cAAc,IAAI,YAAY,kBAAmB,CACzD,OAAQ,CAAE,aAAc,GAAgB,IAAK,CAC9C,CAAC,CAAC,CACH,EAAA,CAAG,EAIA,IAAM,EAAO,MAAM,EACf,GAGH,GAA4B,iCAAoC,CAC/D,GAAsC,CAAW,EACjD,EAAO,gCAAgC,CAAW,CACnD,CAAC,GAIuB,EAAQ,GAAM,EAAG,EAAIC,EAAAA,KACvB,CACrB,GAA0B,EAC1B,GAAiC,EACjC,EAAqB,EAAW,EAAM,CAAE,mBAAoB,CAAY,CAAC,CAC1E,CAAC,GAGD,GAAoB,EAAW,CAAE,mBAAoB,CAAY,CAAC,CAAC,CAAC,OAAO,CAAI,CAEjF,OAAS,EAAO,CAEf,MADA,EAAY,EAAO,IAAA,GAAW,EAAK,EAC7B,CACP,CACD,4BAjLA,SAhKgC,IACJ,IACU,KACI,KACyE,EAE7G,EAAS,CAAC,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMjB,MAAkB,OAAO,6DAA+F,EAAG,KAAM,GAAG,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,YAAY,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,UAAU,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,OAAO,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,aAAa,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,eAAe,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,2BAA2B,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,WAAW,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,OAAO,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,QAAQ,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,MAAM,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,WAAY,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,gBAAgB,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,qBAAqB,EAAG,UAAW,CAAC,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,aAAa,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,yBAAyB,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,qBAAqB,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,wBAAwB,EAAG,UAAW,CAAC,SAAU,CAAC,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,qBAAqB,EAAG,UAAW,CAAC,aAAc,YAAa,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,sBAAsB,EAAG,UAAW,CAAC,aAAc,YAAa,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,kBAAkB,EAAG,UAAW,CAAC,aAAc,YAAa,SAAU,CAAC,UAAW,SAAS,EAAG,KAAMA,MAAkB,OAAO,6DAA+F,EAAG,KAAM,2BAA2B,CAAC,EAEl4H,EAAU,CAAC,CAAC,KAAM,QAAS,GAAI,UAAW,KAAM,UAAW,KAAM,GAAI,cAAe,KAAK,CAAC,EAC1F,EAAkB,CAAC,UAAW,UAAa,MAAM,OAAO,8DAAA,EAAmG,MAAU,UAAW,UAAa,MAAM,OAAO,8DAAA,EAAmG,MAAU,UAAW,UAAa,MAAM,OAAO,8DAAA,EAAmG,KAAQ,EACvc,GAAuB,IAAA,GACvB,EAAe,mEAgDf,EAAY,OAAO,SAAa,IAChC,EAAQ,GAAa,wDAAwD,KAAK,EAAU,SAAS,EAoGvG,EAAW,CAEd,EAAO,4BAA8B,EAAoB,QACjDH,EAAoBqB,GAAyB,CAAE,MAAO,qCAAuC,EAAmB,SAAW,EAAqB,GAAI,CAAC,EAG7J,EAAO,gBAAkB,EAAO,iBAAmB,CAAC,EAGpD,GAA4B,EAE5B,IAAM,EAAY,SAAS,eAAe,MAAM,EAE5C,oBAAqB,EAAU,QAAS,GAAK,GAAM,CAAS,EAC3D,GAAK,GAAO,CAAS,CAC3B"}