1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/About-CWIK2Y4t.js","assets/card-C90GQvN9.js","assets/JsonLd-DLnrkqFB.js","assets/FAQSection-DFdmun5x.js","assets/accordion-D6O5jYWC.js","assets/Breadcrumbs-BqnXx4aW.js","assets/RelatedLinks-qGkGOrKu.js","assets/house-DW_Y0fcF.js","assets/graduation-cap-BwxzlS1-.js","assets/building-2-CS0DjWaU.js","assets/quote-CHv0mcNu.js","assets/star-CwpkHs-L.js","assets/sparkles-DAC_rGCI.js","assets/map-pin-CWT5b9__.js","assets/YouTube-DFeRzGWQ.js","assets/youtube-DsrPk4L2.js","assets/Services-BeXyGnDe.js","assets/BuildingGuideLinks-BlCd5DDS.js","assets/ContentHub-CxHj2Zo5.js","assets/AnswerBlock-CTL1QgK4.js","assets/trending-up-BwHNL8d_.js","assets/clock-xPHdCG-0.js","assets/linkedin-BGpD99l9.js","assets/BlogArticle-DqiWpU77.js","assets/arrow-left-U-uMlcZP.js","assets/calendar-C0O0KpV9.js","assets/Contact-C69_sjQV.js","assets/LeadCaptureForm-CgNq0iva.js","assets/select-09HikHlp.js","assets/label-DLlYqj-5.js","assets/checkbox-D3i9Q3bH.js","assets/textarea-7txI4xi1.js","assets/client-B5zWjMFl.js","assets/circle-check-B5UwcPa2.js","assets/loader-circle-DypQj_WU.js","assets/mail-BMJiyPLX.js","assets/AreaPage-D4uHhzsi.js","assets/townLinks-BvIuX_Td.js","assets/townProfiles-KDpydBaP.js","assets/townTopics-ByIMGiCG.js","assets/verifiedFacts-DqWQVMj_.js","assets/external-link-DyNVoADL.js","assets/Auth-BuyaPSuC.js","assets/AdminReviews-DOaS_xV0.js","assets/AdminSEO-DaJLQ2cl.js","assets/badge-CgY-hdsm.js","assets/tabs-C6bU022Z.js","assets/CountyHub-DuUvOjyS.js","assets/Press-B_Hv3dHm.js","assets/book-open-D3YvIjLA.js","assets/HomeValue-DbHvqj5t.js","assets/ClientsSay-pk035ymk.js","assets/BuyerResources-C7xUo2QV.js","assets/FeaturedEducation-TGeGJHVH.js","assets/educationLibrary-iWwxY2wj.js","assets/SellerResources-BxSRZvY5.js","assets/MarketReports-CZDhcDbg.js","assets/marketReports-B3SRtfds.js","assets/townComparisons-B8iWPA0f.js","assets/bestLists-BoelXjMU.js","assets/howToGuides-GBDuB4QJ.js","assets/SectionHead-3iOHI2lV.js","assets/SitemapPage-DHzrZIzO.js","assets/answerPages-klC9gPQ9.js","assets/localFAQs-CDg91Ige.js","assets/LlmIndex-CuFftSVA.js","assets/CiteThisPage-DAnb0oES.js","assets/AiDiscovery-B1dpmS3e.js","assets/InvisibleWall-6ejcdhRo.js","assets/EducationLibrary-DY1UOqeA.js","assets/EducationArticle-CjZVAUEX.js","assets/FAQHub-DAb8Z1r7.js","assets/LocalFAQ-CyBKHyGo.js","assets/LocalGuidesHub-s9RHrjb0.js","assets/circle-help-Mo4YHg3q.js","assets/AIHumanAdvantage-5Py1Nrcm.js","assets/AiInRealEstate-Dh0oj6Xg.js","assets/TownMarketReport-BPMbOduH.js","assets/TownComparison-B4UU_Sia.js","assets/BestList-DSEbd29W.js","assets/HowToGuide-ieN3gYyM.js","assets/triangle-alert-qjLsq_Y8.js","assets/HousingReportCard2026-CUbbbd6m.js","assets/download-BdJQFAyF.js","assets/AnswerPage-ChBglop4.js","assets/TownTopicPage-Vl12b-z_.js","assets/ResourcesHub-Bip-oTqQ.js","assets/PhillySuburbsHomebuyingAnswers-BFilqRKc.js","assets/UsingRetirementSavingsFirstHome-CEtBDa3c.js","assets/RetirementClusterLinks-C-pHsSY7.js","assets/RetirementDownPaymentCalculator-DaZv2xak.js","assets/LocalPagesLinks-7MX79OZz.js","assets/faqHowToSchema-BSkfbsQi.js","assets/FirstTimeHomebuyerPhillySuburbs-DoROigDA.js","assets/IraFirstTimeHomebuyerRules-1ExiF-sy.js","assets/RetirementVsDownPayment-BIux02jg.js","assets/PaDownPaymentOptions-DmjEaiXW.js","assets/FirstTimeHomebuyerRetirementFaq-CDPGrFQj.js","assets/RetirementDownPaymentCalculatorPage-BCvrn3-w.js","assets/Privacy-DpIE4sWD.js","assets/Terms-BN9BZavN.js"])))=>i.map(i=>d[i]); 2var rb=Object.defineProperty;var Lh=e=>{throw TypeError(e)};var ob=(e,t,n)=>t in e?rb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Xt=(e,t,n)=>ob(e,typeof t!="symbol"?t+"":t,n),Dl=(e,t,n)=>t.has(e)||Lh("Cannot "+n);var M=(e,t,n)=>(Dl(e,t,"read from private field"),n?n.call(e):t.get(e)),ne=(e,t,n)=>t.has(e)?Lh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),G=(e,t,n,r)=>(Dl(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),_e=(e,t,n)=>(Dl(e,t,"access private method"),n);var ha=(e,t,n,r)=>({set _(o){G(e,t,o,n)},get _(){return M(e,t,r)}});function ib(e,t){for(var n=0;n<t.length;n++){const r=t[n];
vendor: 5,608 bytes, lines 2-10
2if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in e)){const i=Object.getOwnPropertyDescriptor(r,o);i&&Object.defineProperty(e,o,i.get?i:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();function Zi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var hm={exports:{}},qs={},fm={exports:{}},ee={};/** 3 * @license React 4 * react.production.min.js 5 * 6 * Copyright (c) Facebook, Inc. and its affiliates. 7 * 8 * This source code is licensed under the MIT license found in the 9 * LICENSE file in the root directory of this source tree. 10 */var Yi=Symbol.for("react.element"),ab=Symbol.for("react.portal"),sb=Symbol.for("react.fragment"),lb=Symbol.for("react.strict_mode"),cb=Symbol.for("react.profiler"),ub=Symbol.for("react.provider"),db=Symbol.for("react.context"),hb=Symbol.for("react.forward_ref"),fb=Symbol.for("react.suspense"),pb=Symbol.for("react.memo"),mb=Symbol.for("react.lazy"),Nh=Symbol.iterator;function yb(e){return e===null||typeof e!="object"?null:(e=Nh&&e[Nh]||e["@@iterator"],typeof e=="function"?e:null)}var pm={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},mm=Object.assign,ym={};function _o(e,t,n){this.props=e,this.context=t,this.refs=ym,this.updater=n||pm}_o.prototype.isReactComponent={};_o.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};_o.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function gm(){}gm.prototype=_o.prototype;function Uu(e,t,n){this.props=e,this.context=t,this.refs=ym,this.updater=n||pm}var Gu=Uu.prototype=new gm;Gu.constructor=Uu;mm(Gu,_o.prototype);Gu.isPureReactComponent=!0;var Ih=Array.isArray,wm=Object.prototype.hasOwnProperty,Zu={current:null},vm={key:!0,ref:!0,__self:!0,__source:!0};function bm(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)wm.call(t,r)&&!vm.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1<s){for(var l=Array(s),c=0;c<s;c++)l[c]=arguments[c+2];o.children=l}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)o[r]===void 0&&(o[r]=s[r]);return{$$typeof:Yi,type:e,key:i,ref:a,props:o,_owner:Zu.current}}function gb(e,t){return{$$typeof:Yi,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Yu(e){return typeof e=="object"&&e!==null&&e.$$typeof===Yi}function wb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var _h=/\/+/g;function Rl(e,t){return typeof e=="object"&&e!==null&&e.key!=null?wb(""+e.key):t.toString(36)}function Ha(e,t,n,r,o){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(i){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case Yi:case ab:a=!0}}if(a)return a=e,o=o(a),e=r===""?"."+Rl(a,0):r,Ih(o)?(n="",e!=null&&(n=e.replace(_h,"$&/")+"/"),Ha(o,t,n,"",function(c){return c})):o!=null&&(Yu(o)&&(o=gb(o,n+(!o.key||a&&a.key===o.key?"":(""+o.key).replace(_h,"$&/")+"/")+e)),t.push(o)),1;if(a=0,r=r===""?".":r+":",Ih(e))for(var s=0;s<e.length;s++){i=e[s];var l=r+Rl(i,s);a+=Ha(i,t,n,l,o)}else if(l=yb(e),typeof l=="function")for(e=l.call(e),s=0;!(i=e.next()).done;)i=i.value,l=r+Rl(i,s++),a+=Ha(i,t,n,l,o);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function fa(e,t,n){if(e==null)return e;var r=[],o=0;return Ha(e,r,"","",function(i){return t.call(n,i,o++)}),r}function vb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Ve={current:null},Fa={transition:null},bb={ReactCurrentDispatcher:Ve,ReactCurrentBatchConfig:Fa,ReactCurrentOwner:Zu};function xm(){throw Error("act(...) is not supported in production builds of React.")}ee.Children={map:fa,forEach:function(e,t,n){fa(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return fa(e,function(){t++}),t},toArray:function(e){return fa(e,function(t){return t})||[]},only:function(e){if(!Yu(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ee.Component=_o;ee.Fragment=sb;ee.Profiler=cb;ee.PureComponent=Uu;ee.StrictMode=lb;ee.Suspense=fb;
vendor: 4,916 bytes, lines 10-26
10ee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=bb;ee.act=xm;ee.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=mm({},e.props),o=e.key,i=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,a=Zu.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(l in t)wm.call(t,l)&&!vm.hasOwnProperty(l)&&(r[l]=t[l]===void 0&&s!==void 0?s[l]:t[l])}var l=arguments.length-2;if(l===1)r.children=n;else if(1<l){s=Array(l);for(var c=0;c<l;c++)s[c]=arguments[c+2];r.children=s}return{$$typeof:Yi,type:e.type,key:o,ref:i,props:r,_owner:a}};ee.createContext=function(e){return e={$$typeof:db,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:ub,_context:e},e.Consumer=e};ee.createElement=bm;ee.createFactory=function(e){var t=bm.bind(null,e);return t.type=e,t};ee.createRef=function(){return{current:null}};ee.forwardRef=function(e){return{$$typeof:hb,render:e}};ee.isValidElement=Yu;ee.lazy=function(e){return{$$typeof:mb,_payload:{_status:-1,_result:e},_init:vb}};ee.memo=function(e,t){return{$$typeof:pb,type:e,compare:t===void 0?null:t}};ee.startTransition=function(e){var t=Fa.transition;Fa.transition={};try{e()}finally{Fa.transition=t}};ee.unstable_act=xm;ee.useCallback=function(e,t){return Ve.current.useCallback(e,t)};ee.useContext=function(e){return Ve.current.useContext(e)};ee.useDebugValue=function(){};ee.useDeferredValue=function(e){return Ve.current.useDeferredValue(e)};ee.useEffect=function(e,t){return Ve.current.useEffect(e,t)};ee.useId=function(){return Ve.current.useId()};ee.useImperativeHandle=function(e,t,n){return Ve.current.useImperativeHandle(e,t,n)};ee.useInsertionEffect=function(e,t){return Ve.current.useInsertionEffect(e,t)};ee.useLayoutEffect=function(e,t){return Ve.current.useLayoutEffect(e,t)};ee.useMemo=function(e,t){return Ve.current.useMemo(e,t)};ee.useReducer=function(e,t,n){return Ve.current.useReducer(e,t,n)};ee.useRef=function(e){return Ve.current.useRef(e)};ee.useState=function(e){return Ve.current.useState(e)};ee.useSyncExternalStore=function(e,t,n){return Ve.current.useSyncExternalStore(e,t,n)};ee.useTransition=function(){return Ve.current.useTransition()};ee.version="18.3.1";fm.exports=ee;var f=fm.exports;const D=Zi(f),Qu=ib({__proto__:null,default:D},[f]);/** 11 * @license React 12 * react-jsx-runtime.production.min.js 13 * 14 * Copyright (c) Facebook, Inc. and its affiliates. 15 * 16 * This source code is licensed under the MIT license found in the 17 * LICENSE file in the root directory of this source tree. 18 */var xb=f,Sb=Symbol.for("react.element"),Pb=Symbol.for("react.fragment"),Cb=Object.prototype.hasOwnProperty,kb=xb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ab={key:!0,ref:!0,__self:!0,__source:!0};function Sm(e,t,n){var r,o={},i=null,a=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(a=t.ref);for(r in t)Cb.call(t,r)&&!Ab.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:Sb,type:e,key:i,ref:a,props:o,_owner:kb.current}}qs.Fragment=Pb;qs.jsx=Sm;qs.jsxs=Sm;hm.exports=qs;var u=hm.exports,Pm={exports:{}},st={},Cm={exports:{}},km={};/** 19 * @license React 20 * scheduler.production.min.js 21 * 22 * Copyright (c) Facebook, Inc. and its affiliates. 23 * 24 * This source code is licensed under the MIT license found in the 25 * LICENSE file in the root directory of this source tree. 26 */(function(e){function t(E,C){var I=E.length;E.push(C);e:for(;0<I;){var F=I-1>>>1,W=E[F];if(0<o(W,C))E[F]=C,E[I]=W,I=F;else break e}}function n(E){return E.length===0?null:E[0]}function r(E){if(E.length===0)return null;var C=E[0],I=E.pop();if(I!==C){E[0]=I;e:for(var F=0,W=E.length,Z=W>>>1;F<Z;){var X=2*(F+1)-1,fe=E[X],we=X+1,J=E[we];if(0>o(fe,I))we<W&&0>o(J,fe)?(E[F]=J,E[we]=I,F=we):(E[F]=fe,E[X]=I,F=X);else if(we<W&&0>o(J,I))E[F]=J,E[we]=I,F=we;else break e}}return C}function o(E,C){var I=E.sortIndex-C.sortIndex;return I!==0?I:E.id-C.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,h=null,m=3,p=!1,x=!1,y=!1,b=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(E){for(var C=n(c);C!==null;){if(C.callback===null)r(c);else if(C.startTime<=E)r(c),C.sortIndex=C.expirationTime,t(l,C);else break;C=n(c)}}function S(E){if(y=!1,v(E),!x)if(n(l)!==null)x=!0,B(P);else{var C=n(c);C!==null&&V(S,C.startTime-E)}}
vendor: 9,288 bytes, lines 26-35
26function P(E,C){x=!1,y&&(y=!1,w(T),T=-1),p=!0;var I=m;try{for(v(C),h=n(l);h!==null&&(!(h.expirationTime>C)||E&&!q());){var F=h.callback;if(typeof F=="function"){h.callback=null,m=h.priorityLevel;var W=F(h.expirationTime<=C);C=e.unstable_now(),typeof W=="function"?h.callback=W:h===n(l)&&r(l),v(C)}else r(l);h=n(l)}if(h!==null)var Z=!0;else{var X=n(c);X!==null&&V(S,X.startTime-C),Z=!1}return Z}finally{h=null,m=I,p=!1}}var k=!1,A=null,T=-1,N=5,L=-1;function q(){return!(e.unstable_now()-L<N)}function j(){if(A!==null){var E=e.unstable_now();L=E;var C=!0;try{C=A(!0,E)}finally{C?K():(k=!1,A=null)}}else k=!1}var K;if(typeof g=="function")K=function(){g(j)};else if(typeof MessageChannel<"u"){var _=new MessageChannel,Q=_.port2;_.port1.onmessage=j,K=function(){Q.postMessage(null)}}else K=function(){b(j,0)};function B(E){A=E,k||(k=!0,K())}function V(E,C){T=b(function(){E(e.unstable_now())},C)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(E){E.callback=null},e.unstable_continueExecution=function(){x||p||(x=!0,B(P))},e.unstable_forceFrameRate=function(E){0>E||125<E?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<E?Math.floor(1e3/E):5},e.unstable_getCurrentPriorityLevel=function(){return m},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function(E){switch(m){case 1:case 2:case 3:var C=3;break;default:C=m}var I=m;m=C;try{return E()}finally{m=I}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(E,C){switch(E){case 1:case 2:case 3:case 4:case 5:break;default:E=3}var I=m;m=E;try{return C()}finally{m=I}},e.unstable_scheduleCallback=function(E,C,I){var F=e.unstable_now();switch(typeof I=="object"&&I!==null?(I=I.delay,I=typeof I=="number"&&0<I?F+I:F):I=F,E){case 1:var W=-1;break;case 2:W=250;break;case 5:W=1073741823;break;case 4:W=1e4;break;default:W=5e3}return W=I+W,E={id:d++,callback:C,priorityLevel:E,startTime:I,expirationTime:W,sortIndex:-1},I>F?(E.sortIndex=I,t(c,E),n(l)===null&&E===n(c)&&(y?(w(T),T=-1):y=!0,V(S,I-F))):(E.sortIndex=W,t(l,E),x||p||(x=!0,B(P))),E},e.unstable_shouldYield=q,e.unstable_wrapCallback=function(E){var C=m;return function(){var I=m;m=C;try{return E.apply(this,arguments)}finally{m=I}}}})(km);Cm.exports=km;var Eb=Cm.exports;/** 27 * @license React 28 * react-dom.production.min.js 29 * 30 * Copyright (c) Facebook, Inc. and its affiliates. 31 * 32 * This source code is licensed under the MIT license found in the 33 * LICENSE file in the root directory of this source tree. 34 */var Tb=f,it=Eb;function R(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Am=new Set,Si={};function Rr(e,t){Co(e,t),Co(e+"Capture",t)}function Co(e,t){for(Si[e]=t,e=0;e<t.length;e++)Am.add(t[e])}var ln=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tc=Object.prototype.hasOwnProperty,Mb=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,jh={},Oh={};function Db(e){return Tc.call(Oh,e)?!0:Tc.call(jh,e)?!1:Mb.test(e)?Oh[e]=!0:(jh[e]=!0,!1)}function Rb(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Lb(e,t,n,r){if(t===null||typeof t>"u"||Rb(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ke(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var Ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ne[e]=new Ke(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ne[t]=new Ke(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ne[e]=new Ke(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ne[e]=new Ke(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ne[e]=new Ke(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ne[e]=new Ke(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ne[e]=new Ke(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ne[e]=new Ke(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ne[e]=new Ke(e,5,!1,e.toLowerCase(),null,!1,!1)});var Xu=/[\-:]([a-z])/g;function Ju(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Xu,Ju);Ne[t]=new Ke(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Xu,Ju);Ne[t]=new Ke(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Xu,Ju);Ne[t]=new Ke(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ne[e]=new Ke(e,1,!1,e.toLowerCase(),null,!1,!1)});Ne.xlinkHref=new Ke("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ne[e]=new Ke(e,1,!1,e.toLowerCase(),null,!0,!0)});function ed(e,t,n,r){var o=Ne.hasOwnProperty(t)?Ne[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(Lb(t,n,o,r)&&(n=null),r||o===null?Db(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=n===null?o.type===3?!1:"":n:(t=o.attributeName,r=o.attributeNamespace,n===null?e.removeAttribute(t):(o=o.type,n=o===3||o===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var mn=Tb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,pa=Symbol.for("react.element"),Kr=Symbol.for("react.portal"),Ur=Symbol.for("react.fragment"),td=Symbol.for("react.strict_mode"),Mc=Symbol.for("react.profiler"),Em=Symbol.for("react.provider"),Tm=Symbol.for("react.context"),nd=Symbol.for("react.forward_ref"),Dc=Symbol.for("react.suspense"),Rc=Symbol.for("react.suspense_list"),rd=Symbol.for("react.memo"),Tn=Symbol.for("react.lazy"),Mm=Symbol.for("react.offscreen"),Wh=Symbol.iterator;function Uo(e){return e===null||typeof e!="object"?null:(e=Wh&&e[Wh]||e["@@iterator"],typeof e=="function"?e:null)}var ge=Object.assign,Ll;function si(e){if(Ll===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ll=t&&t[1]||""}return` 35`+Ll+e}var Nl=!1;function Il(e,t){if(!e||Nl)return"";Nl=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}
vendor: 16,583 bytes, lines 35-38
35catch(c){if(c&&r&&typeof c.stack=="string"){for(var o=c.stack.split(` 36`),i=r.stack.split(` 37`),a=o.length-1,s=i.length-1;1<=a&&0<=s&&o[a]!==i[s];)s--;for(;1<=a&&0<=s;a--,s--)if(o[a]!==i[s]){if(a!==1||s!==1)do if(a--,s--,0>s||o[a]!==i[s]){var l=` 38`+o[a].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}while(1<=a&&0<=s);break}}}finally{Nl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?si(e):""}function Nb(e){switch(e.tag){case 5:return si(e.type);case 16:return si("Lazy");case 13:return si("Suspense");case 19:return si("SuspenseList");case 0:case 2:case 15:return e=Il(e.type,!1),e;case 11:return e=Il(e.type.render,!1),e;case 1:return e=Il(e.type,!0),e;default:return""}}function Lc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ur:return"Fragment";case Kr:return"Portal";case Mc:return"Profiler";case td:return"StrictMode";case Dc:return"Suspense";case Rc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Tm:return(e.displayName||"Context")+".Consumer";case Em:return(e._context.displayName||"Context")+".Provider";case nd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case rd:return t=e.displayName||null,t!==null?t:Lc(e.type)||"Memo";case Tn:t=e._payload,e=e._init;try{return Lc(e(t))}catch{}}return null}function Ib(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Lc(t);case 8:return t===td?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Yn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dm(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _b(e){var t=Dm(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ma(e){e._valueTracker||(e._valueTracker=_b(e))}function Rm(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Dm(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ss(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Nc(e,t){var n=t.checked;return ge({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function $h(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Yn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lm(e,t){t=t.checked,t!=null&&ed(e,"checked",t,!1)}function Ic(e,t){Lm(e,t);var n=Yn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?_c(e,t.type,n):t.hasOwnProperty("defaultValue")&&_c(e,t.type,Yn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Bh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function _c(e,t,n){(t!=="number"||ss(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var li=Array.isArray;function oo(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Yn(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function jc(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(R(91));return ge({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Hh(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(R(92));if(li(n)){if(1<n.length)throw Error(R(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Yn(n)}}function Nm(e,t){var n=Yn(t.value),r=Yn(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Fh(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Im(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Oc(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Im(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ya,_m=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(ya=ya||document.createElement("div"),ya.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ya.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Pi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var hi={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},jb=["Webkit","ms","Moz","O"];Object.keys(hi).forEach(function(e){jb.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),hi[t]=hi[e]})});function jm(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||hi.hasOwnProperty(e)&&hi[e]?(""+t).trim():t+"px"}function Om(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=jm(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Ob=ge({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wc(e,t){if(t){if(Ob[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(R(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(R(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(R(61))}if(t.style!=null&&typeof t.style!="object")throw Error(R(62))}}function $c(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Bc=null;function od(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Hc=null,io=null,ao=null;function qh(e){if(e=Ji(e)){if(typeof Hc!="function")throw Error(R(280));var t=e.stateNode;t&&(t=Gs(t),Hc(e.stateNode,e.type,t))}}function Wm(e){io?ao?ao.push(e):ao=[e]:io=e}function $m(){if(io){var e=io,t=ao;if(ao=io=null,qh(e),t)for(e=0;e<t.length;e++)qh(t[e])}}function Bm(e,t){return e(t)}function Hm(){}var _l=!1;function Fm(e,t,n){if(_l)return e(t,n);_l=!0;try{return Bm(e,t,n)}finally{_l=!1,(io!==null||ao!==null)&&(Hm(),$m())}}function Ci(e,t){var n=e.stateNode;if(n===null)return null;var r=Gs(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(R(231,t,typeof n));return n}var Fc=!1;if(ln)try{var Go={};Object.defineProperty(Go,"passive",{get:function(){Fc=!0}}),window.addEventListener("test",Go,Go),window.removeEventListener("test",Go,Go)}catch{Fc=!1}function Wb(e,t,n,r,o,i,a,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(d){this.onError(d)}}var fi=!1,ls=null,cs=!1,qc=null,$b={onError:function(e){fi=!0,ls=e}};function Bb(e,t,n,r,o,i,a,s,l){fi=!1,ls=null,Wb.apply($b,arguments)}function Hb(e,t,n,r,o,i,a,s,l){if(Bb.apply(this,arguments),fi){if(fi){var c=ls;fi=!1,ls=null}else throw Error(R(198));cs||(cs=!0,qc=c)}}function Lr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function qm(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function zh(e){if(Lr(e)!==e)throw Error(R(188))}function Fb(e){var t=e.alternate;if(!t){if(t=Lr(e),t===null)throw Error(R(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(o===null)break;var i=o.alternate;if(i===null){if(r=o.return,r!==null){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return zh(o),e;if(i===r)return zh(o),t;i=i.sibling}throw Error(R(188))}if(n.return!==r.return)n=o,r=i;else{for(var a=!1,s=o.child;s;){if(s===n){a=!0,n=o,r=i;break}if(s===r){a=!0,r=o,n=i;break}s=s.sibling}if(!a){for(s=i.child;s;){if(s===n){a=!0,n=i,r=o;break}if(s===r){a=!0,r=i,n=o;break}s=s.sibling}if(!a)throw Error(R(189))}}if(n.alternate!==r)throw Error(R(190))}if(n.tag!==3)throw Error(R(188));return n.stateNode.current===n?e:t}function zm(e){return e=Fb(e),e!==null?Vm(e):null}function Vm(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Vm(e);if(t!==null)return t;e=e.sibling}return null}var Km=it.unstable_scheduleCallback,Vh=it.unstable_cancelCallback,qb=it.unstable_shouldYield,zb=it.unstable_requestPaint,xe=it.unstable_now,Vb=it.unstable_getCurrentPriorityLevel,id=it.unstable_ImmediatePriority,Um=it.unstable_UserBlockingPriority,us=it.unstable_NormalPriority,Kb=it.unstable_LowPriority,Gm=it.unstable_IdlePriority,zs=null,Kt=null;function Ub(e){if(Kt&&typeof Kt.onCommitFiberRoot=="function")try{Kt.onCommitFiberRoot(zs,e,void 0,(e.current.flags&128)===128)}catch{}}var Nt=Math.clz32?Math.clz32:Yb,Gb=Math.log,Zb=Math.LN2;function Yb(e){return e>>>=0,e===0?32:31-(Gb(e)/Zb|0)|0}var ga=64,wa=4194304;function ci(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ds(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var s=a&~o;s!==0?r=ci(s):(i&=a,i!==0&&(r=ci(i)))}else a=n&~o,a!==0?r=ci(a):i!==0&&(r=ci(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-Nt(t),o=1<<n,r|=e[n],t&=~o;return r}function Qb(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Xb(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,i=e.pendingLanes;0<i;){var a=31-Nt(i),s=1<<a,l=o[a];l===-1?(!(s&n)||s&r)&&(o[a]=Qb(s,t)):l<=t&&(e.expiredLanes|=s),i&=~s}}function zc(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Zm(){var e=ga;return ga<<=1,!(ga&4194240)&&(ga=64),e}function jl(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Qi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Nt(t),e[t]=n}function Jb(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-Nt(n),i=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~i}}function ad(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Nt(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var re=0;function Ym(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Qm,sd,Xm,Jm,ey,Vc=!1,va=[],Hn=null,Fn=null,qn=null,ki=new Map,Ai=new Map,Dn=[],ex="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Kh(e,t){switch(e){case"focusin":case"focusout":Hn=null;break;case"dragenter":case"dragleave":Fn=null;break;case"mouseover":case"mouseout":qn=null;break;case"pointerover":case"pointerout":ki.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ai.delete(t.pointerId)}}function Zo(e,t,n,r,o,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[o]},t!==null&&(t=Ji(t),t!==null&&sd(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function tx(e,t,n,r,o){switch(t){case"focusin":return Hn=Zo(Hn,e,t,n,r,o),!0;case"dragenter":return Fn=Zo(Fn,e,t,n,r,o),!0;case"mouseover":return qn=Zo(qn,e,t,n,r,o),!0;case"pointerover":var i=o.pointerId;return ki.set(i,Zo(ki.get(i)||null,e,t,n,r,o)),!0;case"gotpointercapture":return i=o.pointerId,Ai.set(i,Zo(Ai.get(i)||null,e,t,n,r,o)),!0}return!1}function ty(e){var t=dr(e.target);if(t!==null){var n=Lr(t);if(n!==null){if(t=n.tag,t===13){if(t=qm(n),t!==null){e.blockedOn=t,ey(e.priority,function(){Xm(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function qa(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kc(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Bc=r,n.target.dispatchEvent(r),Bc=null}else return t=Ji(n),t!==null&&sd(t),e.blockedOn=n,!1;t.shift()}return!0}
vendor: 11,995 bytes, line 38
38function Uh(e,t,n){qa(e)&&n.delete(t)}function nx(){Vc=!1,Hn!==null&&qa(Hn)&&(Hn=null),Fn!==null&&qa(Fn)&&(Fn=null),qn!==null&&qa(qn)&&(qn=null),ki.forEach(Uh),Ai.forEach(Uh)}function Yo(e,t){e.blockedOn===t&&(e.blockedOn=null,Vc||(Vc=!0,it.unstable_scheduleCallback(it.unstable_NormalPriority,nx)))}function Ei(e){function t(o){return Yo(o,e)}if(0<va.length){Yo(va[0],e);for(var n=1;n<va.length;n++){var r=va[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Hn!==null&&Yo(Hn,e),Fn!==null&&Yo(Fn,e),qn!==null&&Yo(qn,e),ki.forEach(t),Ai.forEach(t),n=0;n<Dn.length;n++)r=Dn[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<Dn.length&&(n=Dn[0],n.blockedOn===null);)ty(n),n.blockedOn===null&&Dn.shift()}var so=mn.ReactCurrentBatchConfig,hs=!0;function rx(e,t,n,r){var o=re,i=so.transition;so.transition=null;try{re=1,ld(e,t,n,r)}finally{re=o,so.transition=i}}function ox(e,t,n,r){var o=re,i=so.transition;so.transition=null;try{re=4,ld(e,t,n,r)}finally{re=o,so.transition=i}}function ld(e,t,n,r){if(hs){var o=Kc(e,t,n,r);if(o===null)Kl(e,t,r,fs,n),Kh(e,r);else if(tx(o,e,t,n,r))r.stopPropagation();else if(Kh(e,r),t&4&&-1<ex.indexOf(e)){for(;o!==null;){var i=Ji(o);if(i!==null&&Qm(i),i=Kc(e,t,n,r),i===null&&Kl(e,t,r,fs,n),i===o)break;o=i}o!==null&&r.stopPropagation()}else Kl(e,t,r,null,n)}}var fs=null;function Kc(e,t,n,r){if(fs=null,e=od(r),e=dr(e),e!==null)if(t=Lr(e),t===null)e=null;else if(n=t.tag,n===13){if(e=qm(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return fs=e,null}function ny(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Vb()){case id:return 1;case Um:return 4;case us:case Kb:return 16;case Gm:return 536870912;default:return 16}default:return 16}}var Wn=null,cd=null,za=null;function ry(){if(za)return za;var e,t=cd,n=t.length,r,o="value"in Wn?Wn.value:Wn.textContent,i=o.length;for(e=0;e<n&&t[e]===o[e];e++);var a=n-e;for(r=1;r<=a&&t[n-r]===o[i-r];r++);return za=o.slice(e,1<r?1-r:void 0)}function Va(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function ba(){return!0}function Gh(){return!1}function lt(e){function t(n,r,o,i,a){this._reactName=n,this._targetInst=o,this.type=r,this.nativeEvent=i,this.target=a,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(n=e[s],this[s]=n?n(i):i[s]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?ba:Gh,this.isPropagationStopped=Gh,this}return ge(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=ba)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=ba)},persist:function(){},isPersistent:ba}),t}var jo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ud=lt(jo),Xi=ge({},jo,{view:0,detail:0}),ix=lt(Xi),Ol,Wl,Qo,Vs=ge({},Xi,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:dd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Qo&&(Qo&&e.type==="mousemove"?(Ol=e.screenX-Qo.screenX,Wl=e.screenY-Qo.screenY):Wl=Ol=0,Qo=e),Ol)},movementY:function(e){return"movementY"in e?e.movementY:Wl}}),Zh=lt(Vs),ax=ge({},Vs,{dataTransfer:0}),sx=lt(ax),lx=ge({},Xi,{relatedTarget:0}),$l=lt(lx),cx=ge({},jo,{animationName:0,elapsedTime:0,pseudoElement:0}),ux=lt(cx),dx=ge({},jo,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),hx=lt(dx),fx=ge({},jo,{data:0}),Yh=lt(fx),px={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},mx={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},yx={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function gx(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=yx[e])?!!t[e]:!1}function dd(){return gx}var wx=ge({},Xi,{key:function(e){if(e.key){var t=px[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Va(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?mx[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:dd,charCode:function(e){return e.type==="keypress"?Va(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Va(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),vx=lt(wx),bx=ge({},Vs,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Qh=lt(bx),xx=ge({},Xi,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:dd}),Sx=lt(xx),Px=ge({},jo,{propertyName:0,elapsedTime:0,pseudoElement:0}),Cx=lt(Px),kx=ge({},Vs,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ax=lt(kx),Ex=[9,13,27,32],hd=ln&&"CompositionEvent"in window,pi=null;ln&&"documentMode"in document&&(pi=document.documentMode);var Tx=ln&&"TextEvent"in window&&!pi,oy=ln&&(!hd||pi&&8<pi&&11>=pi),Xh=" ",Jh=!1;function iy(e,t){switch(e){case"keyup":return Ex.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ay(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Gr=!1;function Mx(e,t){switch(e){case"compositionend":return ay(t);case"keypress":return t.which!==32?null:(Jh=!0,Xh);case"textInput":return e=t.data,e===Xh&&Jh?null:e;default:return null}}function Dx(e,t){if(Gr)return e==="compositionend"||!hd&&iy(e,t)?(e=ry(),za=cd=Wn=null,Gr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return oy&&t.locale!=="ko"?null:t.data;default:return null}}var Rx={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ef(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Rx[e.type]:t==="textarea"}function sy(e,t,n,r){Wm(r),t=ps(t,"onChange"),0<t.length&&(n=new ud("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var mi=null,Ti=null;function Lx(e){wy(e,0)}function Ks(e){var t=Qr(e);if(Rm(t))return e}function Nx(e,t){if(e==="change")return t}var ly=!1;if(ln){var Bl;if(ln){var Hl="oninput"in document;if(!Hl){var tf=document.createElement("div");tf.setAttribute("oninput","return;"),Hl=typeof tf.oninput=="function"}Bl=Hl}else Bl=!1;ly=Bl&&(!document.documentMode||9<document.documentMode)}function nf(){mi&&(mi.detachEvent("onpropertychange",cy),Ti=mi=null)}function cy(e){if(e.propertyName==="value"&&Ks(Ti)){var t=[];sy(t,Ti,e,od(e)),Fm(Lx,t)}}function Ix(e,t,n){e==="focusin"?(nf(),mi=t,Ti=n,mi.attachEvent("onpropertychange",cy)):e==="focusout"&&nf()}function _x(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ks(Ti)}function jx(e,t){if(e==="click")return Ks(t)}function Ox(e,t){if(e==="input"||e==="change")return Ks(t)}function Wx(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var _t=typeof Object.is=="function"?Object.is:Wx;function Mi(e,t){if(_t(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!Tc.call(t,o)||!_t(e[o],t[o]))return!1}return!0}function rf(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function of(e,t){var n=rf(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=rf(n)}}function uy(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uy(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function dy(){for(var e=window,t=ss();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ss(e.document)}return t}function fd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function $x(e){var t=dy(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&uy(n.ownerDocument.documentElement,n)){if(r!==null&&fd(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=of(n,i);var a=of(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Bx=ln&&"documentMode"in document&&11>=document.documentMode,Zr=null,Uc=null,yi=null,Gc=!1;function af(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gc||Zr==null||Zr!==ss(r)||(r=Zr,"selectionStart"in r&&fd(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focu
vendor: 4,501 bytes, line 38
38sNode:r.focusNode,focusOffset:r.focusOffset}),yi&&Mi(yi,r)||(yi=r,r=ps(Uc,"onSelect"),0<r.length&&(t=new ud("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Zr)))}function xa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Yr={animationend:xa("Animation","AnimationEnd"),animationiteration:xa("Animation","AnimationIteration"),animationstart:xa("Animation","AnimationStart"),transitionend:xa("Transition","TransitionEnd")},Fl={},hy={};ln&&(hy=document.createElement("div").style,"AnimationEvent"in window||(delete Yr.animationend.animation,delete Yr.animationiteration.animation,delete Yr.animationstart.animation),"TransitionEvent"in window||delete Yr.transitionend.transition);function Us(e){if(Fl[e])return Fl[e];if(!Yr[e])return e;var t=Yr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in hy)return Fl[e]=t[n];return e}var fy=Us("animationend"),py=Us("animationiteration"),my=Us("animationstart"),yy=Us("transitionend"),gy=new Map,sf="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function er(e,t){gy.set(e,t),Rr(t,[e])}for(var ql=0;ql<sf.length;ql++){var zl=sf[ql],Hx=zl.toLowerCase(),Fx=zl[0].toUpperCase()+zl.slice(1);er(Hx,"on"+Fx)}er(fy,"onAnimationEnd");er(py,"onAnimationIteration");er(my,"onAnimationStart");er("dblclick","onDoubleClick");er("focusin","onFocus");er("focusout","onBlur");er(yy,"onTransitionEnd");Co("onMouseEnter",["mouseout","mouseover"]);Co("onMouseLeave",["mouseout","mouseover"]);Co("onPointerEnter",["pointerout","pointerover"]);Co("onPointerLeave",["pointerout","pointerover"]);Rr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Rr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Rr("onBeforeInput",["compositionend","keypress","textInput","paste"]);Rr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Rr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Rr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ui="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),qx=new Set("cancel close invalid load scroll toggle".split(" ").concat(ui));function lf(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,Hb(r,t,void 0,e),e.currentTarget=null}function wy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var a=r.length-1;0<=a;a--){var s=r[a],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==i&&o.isPropagationStopped())break e;lf(o,s,c),i=l}else for(a=0;a<r.length;a++){if(s=r[a],l=s.instance,c=s.currentTarget,s=s.listener,l!==i&&o.isPropagationStopped())break e;lf(o,s,c),i=l}}}if(cs)throw e=qc,cs=!1,qc=null,e}function se(e,t){var n=t[Jc];n===void 0&&(n=t[Jc]=new Set);var r=e+"__bubble";n.has(r)||(vy(t,e,2,!1),n.add(r))}function Vl(e,t,n){var r=0;t&&(r|=4),vy(n,e,r,t)}var Sa="_reactListening"+Math.random().toString(36).slice(2);function Di(e){if(!e[Sa]){e[Sa]=!0,Am.forEach(function(n){n!=="selectionchange"&&(qx.has(n)||Vl(n,!1,e),Vl(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Sa]||(t[Sa]=!0,Vl("selectionchange",!1,t))}}function vy(e,t,n,r){switch(ny(t)){case 1:var o=rx;break;case 4:o=ox;break;default:o=ld}n=o.bind(null,t,n,e),o=void 0,!Fc||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Kl(e,t,n,r,o){var i=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var a=r.tag;if(a===3||a===4){var s=r.stateNode.containerInfo;
vendor: 32,937 bytes, lines 38-41
38if(s===o||s.nodeType===8&&s.parentNode===o)break;if(a===4)for(a=r.return;a!==null;){var l=a.tag;if((l===3||l===4)&&(l=a.stateNode.containerInfo,l===o||l.nodeType===8&&l.parentNode===o))return;a=a.return}for(;s!==null;){if(a=dr(s),a===null)return;if(l=a.tag,l===5||l===6){r=i=a;continue e}s=s.parentNode}}r=r.return}Fm(function(){var c=i,d=od(n),h=[];e:{var m=gy.get(e);if(m!==void 0){var p=ud,x=e;switch(e){case"keypress":if(Va(n)===0)break e;case"keydown":case"keyup":p=vx;break;case"focusin":x="focus",p=$l;break;case"focusout":x="blur",p=$l;break;case"beforeblur":case"afterblur":p=$l;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":p=Zh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":p=sx;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":p=Sx;break;case fy:case py:case my:p=ux;break;case yy:p=Cx;break;case"scroll":p=ix;break;case"wheel":p=Ax;break;case"copy":case"cut":case"paste":p=hx;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":p=Qh}var y=(t&4)!==0,b=!y&&e==="scroll",w=y?m!==null?m+"Capture":null:m;y=[];for(var g=c,v;g!==null;){v=g;var S=v.stateNode;if(v.tag===5&&S!==null&&(v=S,w!==null&&(S=Ci(g,w),S!=null&&y.push(Ri(g,S,v)))),b)break;g=g.return}0<y.length&&(m=new p(m,x,null,n,d),h.push({event:m,listeners:y}))}}if(!(t&7)){e:{if(m=e==="mouseover"||e==="pointerover",p=e==="mouseout"||e==="pointerout",m&&n!==Bc&&(x=n.relatedTarget||n.fromElement)&&(dr(x)||x[cn]))break e;if((p||m)&&(m=d.window===d?d:(m=d.ownerDocument)?m.defaultView||m.parentWindow:window,p?(x=n.relatedTarget||n.toElement,p=c,x=x?dr(x):null,x!==null&&(b=Lr(x),x!==b||x.tag!==5&&x.tag!==6)&&(x=null)):(p=null,x=c),p!==x)){if(y=Zh,S="onMouseLeave",w="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(y=Qh,S="onPointerLeave",w="onPointerEnter",g="pointer"),b=p==null?m:Qr(p),v=x==null?m:Qr(x),m=new y(S,g+"leave",p,n,d),m.target=b,m.relatedTarget=v,S=null,dr(d)===c&&(y=new y(w,g+"enter",x,n,d),y.target=v,y.relatedTarget=b,S=y),b=S,p&&x)t:{for(y=p,w=x,g=0,v=y;v;v=Hr(v))g++;for(v=0,S=w;S;S=Hr(S))v++;for(;0<g-v;)y=Hr(y),g--;for(;0<v-g;)w=Hr(w),v--;for(;g--;){if(y===w||w!==null&&y===w.alternate)break t;y=Hr(y),w=Hr(w)}y=null}else y=null;p!==null&&cf(h,m,p,y,!1),x!==null&&b!==null&&cf(h,b,x,y,!0)}}e:{if(m=c?Qr(c):window,p=m.nodeName&&m.nodeName.toLowerCase(),p==="select"||p==="input"&&m.type==="file")var P=Nx;else if(ef(m))if(ly)P=Ox;else{P=_x;var k=Ix}else(p=m.nodeName)&&p.toLowerCase()==="input"&&(m.type==="checkbox"||m.type==="radio")&&(P=jx);if(P&&(P=P(e,c))){sy(h,P,n,d);break e}k&&k(e,m,c),e==="focusout"&&(k=m._wrapperState)&&k.controlled&&m.type==="number"&&_c(m,"number",m.value)}switch(k=c?Qr(c):window,e){case"focusin":(ef(k)||k.contentEditable==="true")&&(Zr=k,Uc=c,yi=null);break;case"focusout":yi=Uc=Zr=null;break;case"mousedown":Gc=!0;break;case"contextmenu":case"mouseup":case"dragend":Gc=!1,af(h,n,d);break;case"selectionchange":if(Bx)break;case"keydown":case"keyup":af(h,n,d)}var A;if(hd)e:{switch(e){case"compositionstart":var T="onCompositionStart";break e;case"compositionend":T="onCompositionEnd";break e;case"compositionupdate":T="onCompositionUpdate";break e}T=void 0}else Gr?iy(e,n)&&(T="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(T="onCompositionStart");T&&(oy&&n.locale!=="ko"&&(Gr||T!=="onCompositionStart"?T==="onCompositionEnd"&&Gr&&(A=ry()):(Wn=d,cd="value"in Wn?Wn.value:Wn.textContent,Gr=!0)),k=ps(c,T),0<k.length&&(T=new Yh(T,e,null,n,d),h.push({event:T,listeners:k}),A?T.data=A:(A=ay(n),A!==null&&(T.data=A)))),(A=Tx?Mx(e,n):Dx(e,n))&&(c=ps(c,"onBeforeInput"),0<c.length&&(d=new Yh("onBeforeInput","beforeinput",null,n,d),h.push({event:d,listeners:c}),d.data=A))}wy(h,t)})}function Ri(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ps(e,t){for(var n=t+"Capture",r=[];e!==null;){var o=e,i=o.stateNode;o.tag===5&&i!==null&&(o=i,i=Ci(e,n),i!=null&&r.unshift(Ri(e,i,o)),i=Ci(e,t),i!=null&&r.push(Ri(e,i,o))),e=e.return}return r}function Hr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function cf(e,t,n,r,o){for(var i=t._reactName,a=[];n!==null&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(l!==null&&l===r)break;s.tag===5&&c!==null&&(s=c,o?(l=Ci(n,i),l!=null&&a.unshift(Ri(n,l,s))):o||(l=Ci(n,i),l!=null&&a.push(Ri(n,l,s)))),n=n.return}a.length!==0&&e.push({event:t,listeners:a})}var zx=/\r\n?/g,Vx=/\u0000|\uFFFD/g;function uf(e){return(typeof e=="string"?e:""+e).replace(zx,` 39`).replace(Vx,"")}function Pa(e,t,n){if(t=uf(t),uf(e)!==t&&n)throw Error(R(425))}function ms(){}var Zc=null,Yc=null;function Qc(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Xc=typeof setTimeout=="function"?setTimeout:void 0,Kx=typeof clearTimeout=="function"?clearTimeout:void 0,df=typeof Promise=="function"?Promise:void 0,Ux=typeof queueMicrotask=="function"?queueMicrotask:typeof df<"u"?function(e){return df.resolve(null).then(e).catch(Gx)}:Xc;function Gx(e){setTimeout(function(){throw e})}function Ul(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"){if(r===0){e.removeChild(o),Ei(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=o}while(n);Ei(t)}function zn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function hf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Oo=Math.random().toString(36).slice(2),zt="__reactFiber$"+Oo,Li="__reactProps$"+Oo,cn="__reactContainer$"+Oo,Jc="__reactEvents$"+Oo,Zx="__reactListeners$"+Oo,Yx="__reactHandles$"+Oo;function dr(e){var t=e[zt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[cn]||n[zt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=hf(e);e!==null;){if(n=e[zt])return n;e=hf(e)}return t}e=n,n=e.parentNode}return null}function Ji(e){return e=e[zt]||e[cn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Qr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(R(33))}function Gs(e){return e[Li]||null}var eu=[],Xr=-1;function tr(e){return{current:e}}function le(e){0>Xr||(e.current=eu[Xr],eu[Xr]=null,Xr--)}function ie(e,t){Xr++,eu[Xr]=e.current,e.current=t}var Qn={},Be=tr(Qn),Qe=tr(!1),kr=Qn;function ko(e,t){var n=e.type.contextTypes;if(!n)return Qn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Xe(e){return e=e.childContextTypes,e!=null}function ys(){le(Qe),le(Be)}function ff(e,t,n){if(Be.current!==Qn)throw Error(R(168));ie(Be,t),ie(Qe,n)}function by(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(R(108,Ib(e)||"Unknown",o));return ge({},n,r)}function gs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qn,kr=Be.current,ie(Be,e),ie(Qe,Qe.current),!0}function pf(e,t,n){var r=e.stateNode;if(!r)throw Error(R(169));n?(e=by(e,t,kr),r.__reactInternalMemoizedMergedChildContext=e,le(Qe),le(Be),ie(Be,e)):le(Qe),ie(Qe,n)}var nn=null,Zs=!1,Gl=!1;function xy(e){nn===null?nn=[e]:nn.push(e)}function Qx(e){Zs=!0,xy(e)}function nr(){if(!Gl&&nn!==null){Gl=!0;var e=0,t=re;try{var n=nn;for(re=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}nn=null,Zs=!1}catch(o){throw nn!==null&&(nn=nn.slice(e+1)),Km(id,nr),o}finally{re=t,Gl=!1}}return null}var Jr=[],eo=0,ws=null,vs=0,pt=[],mt=0,Ar=null,on=1,an="";function cr(e,t){Jr[eo++]=vs,Jr[eo++]=ws,ws=e,vs=t}function Sy(e,t,n){pt[mt++]=on,pt[mt++]=an,pt[mt++]=Ar,Ar=e;var r=on;e=an;var o=32-Nt(r)-1;r&=~(1<<o),n+=1;var i=32-Nt(t)+o;if(30<i){var a=o-o%5;i=(r&(1<<a)-1).toString(32),r>>=a,o-=a,on=1<<32-Nt(t)+o|n<<o|r,an=i+e}else on=1<<i|n<<o|r,an=e}function pd(e){e.return!==null&&(cr(e,1),Sy(e,1,0))}function md(e){for(;e===ws;)ws=Jr[--eo],Jr[eo]=null,vs=Jr[--eo],Jr[eo]=null;for(;e===Ar;)Ar=pt[--mt],pt[mt]=null,an=pt[--mt],pt[mt]=null,on=pt[--mt],pt[mt]=null}var rt=null,nt=null,he=!1,Rt=null;function Py(e,t){var n=yt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function mf(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,rt=e,nt=zn(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,rt=e,nt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Ar!==null?{id:on,overflow:an}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=yt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,rt=e,nt=null,!0):!1;default:return!1}}function tu(e){return(e.mode&1)!==0&&(e.flags&128)===0}function nu(e){if(he){var t=nt;if(t){var n=t;if(!mf(e,t)){if(tu(e))throw Error(R(418));t=zn(n.nextSibling);var r=rt;t&&mf(e,t)?Py(r,n):(e.flags=e.flags&-4097|2,he=!1,rt=e)}}else{if(tu(e))throw Error(R(418));e.flags=e.flags&-4097|2,he=!1,rt=e}}}function yf(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;rt=e}function Ca(e){if(e!==rt)return!1;if(!he)return yf(e),he=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Qc(e.type,e.memoizedProps)),t&&(t=nt)){if(tu(e))throw Cy(),Error(R(418));for(;t;)Py(e,t),t=zn(t.nextSibling)}if(yf(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(R(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){nt=zn(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}nt=null}}else nt=rt?zn(e.stateNode.nextSibling):null;return!0}function Cy(){for(var e=nt;e;)e=zn(e.nextSibling)}function Ao(){nt=rt=null,he=!1}function yd(e){Rt===null?Rt=[e]:Rt.push(e)}var Xx=mn.ReactCurrentBatchConfig;function Xo(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(R(309));var r=n.stateNode}if(!r)throw Error(R(147,e));var o=r,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(a){var s=o.refs;a===null?delete s[i]:s[i]=a},t._stringRef=i,t)}if(typeof e!="string")throw Error(R(284));if(!n._owner)throw Error(R(290,e))}return e}function ka(e,t){throw e=Object.prototype.toString.call(t),Error(R(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function gf(e){var t=e._init;return t(e._payload)}function ky(e){function t(w,g){if(e){var v=w.deletions;v===null?(w.deletions=[g],w.flags|=16):v.push(g)}}function n(w,g){if(!e)return null;for(;g!==null;)t(w,g),g=g.sibling;return null}function r(w,g){for(w=new Map;g!==null;)g.key!==null?w.set(g.key,g):w.set(g.index,g),g=g.sibling;return w}function o(w,g){return w=Gn(w,g),w.index=0,w.sibling=null,w}function i(w,g,v){return w.index=v,e?(v=w.alternate,v!==null?(v=v.index,v<g?(w.flags|=2,g):v):(w.flags|=2,g)):(w.flags|=1048576,g)}function a(w){return e&&w.alternate===null&&(w.flags|=2),w}function s(w,g,v,S){return g===null||g.tag!==6?(g=tc(v,w.mode,S),g.return=w,g):(g=o(g,v),g.return=w,g)}function l(w,g,v,S){var P=v.type;return P===Ur?d(w,g,v.props.children,S,v.key):g!==null&&(g.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===Tn&&gf(P)===g.type)?(S=o(g,v.props),S.ref=Xo(w,g,v),S.return=w,S):(S=Xa(v.type,v.key,v.props,null,w.mode,S),S.ref=Xo(w,g,v),S.return=w,S)}function c(w,g,v,S){return g===null||g.tag!==4||g.stateNode.containerInfo!==v.containerInfo||g.stateNode.implementation!==v.implementation?(g=nc(v,w.mode,S),g.return=w,g):(g=o(g,v.children||[]),g.return=w,g)}function d(w,g,v,S,P){return g===null||g.tag!==7?(g=Sr(v,w.mode,S,P),g.return=w,g):(g=o(g,v),g.return=w,g)}function h(w,g,v){if(typeof g=="string"&&g!==""||typeof g=="number")return g=tc(""+g,w.mode,v),g.return=w,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case pa:return v=Xa(g.type,g.key,g.props,null,w.mode,v),v.ref=Xo(w,null,g),v.return=w,v;case Kr:return g=nc(g,w.mode,v),g.return=w,g;case Tn:var S=g._init;return h(w,S(g._payload),v)}if(li(g)||Uo(g))return g=Sr(g,w.mode,v,null),g.return=w,g;ka(w,g)}return null}function m(w,g,v,S){var P=g!==null?g.key:null;if(typeof v=="string"&&v!==""||typeof v=="number")return P!==null?null:s(w,g,""+v,S);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case pa:return v.key===P?l(w,g,v,S):null;case Kr:return v.key===P?c(w,g,v,S):null;case Tn:return P=v._init,m(w,g,P(v._payload),S)}if(li(v)||Uo(v))return P!==null?null:d(w,g,v,S,null);ka(w,v)}return null}function p(w,g,v,S,P){if(typeof S=="string"&&S!==""||typeof S=="number")return w=w.get(v)||null,s(g,w,""+S,P);if(typeof S=="object"&&S!==null){switch(S.$$typeof){case pa:return w=w.get(S.key===null?v:S.key)||null,l(g,w,S,P);case Kr:return w=w.get(S.key===null?v:S.key)||null,c(g,w,S,P);case Tn:var k=S._init;return p(w,g,v,k(S._payload),P)}if(li(S)||Uo(S))return w=w.get(v)||null,d(g,w,S,P,null);ka(g,S)}return null}function x(w,g,v,S){for(var P=null,k=null,A=g,T=g=0,N=null;A!==null&&T<v.length;T++){A.index>T?(N=A,A=null):N=A.sibling;var L=m(w,A,v[T],S);if(L===null){A===null&&(A=N);break}e&&A&&L.alternate===null&&t(w,A),g=i(L,g,T),k===null?P=L:k.sibling=L,k=L,A=N}if(T===v.length)return n(w,A),he&&cr(w,T),P;if(A===null){for(;T<v.length;T++)A=h(w,v[T],S),A!==null&&(g=i(A,g,T),k===null?P=A:k.sibling=A,k=A);return he&&cr(w,T),P}for(A=r(w,A);T<v.length;T++)N=p(A,w,T,v[T],S),N!==null&&(e&&N.alternate!==null&&A.delete(N.key===null?T:N.key),g=i(N,g,T),k===null?P=N:k.sibling=N,k=N);return e&&A.forEach(function(q){return t(w,q)}),he&&cr(w,T),P}function y(w,g,v,S){var P=Uo(v);if(typeof P!="function")throw Error(R(150));if(v=P.call(v),v==null)throw Error(R(151));for(var k=P=null,A=g,T=g=0,N=null,L=v.next();A!==null&&!L.done;T++,L=v.next()){A.index>T?(N=A,A=null):N=A.sibling;var q=m(w,A,L.value,S);if(q===null){A===null&&(A=N);break}e&&A&&q.alternate===null&&t(w,A),g=i(q,g,T),k===null?P=q:k.sibling=q,k=q,A=N}if(L.done)return n(w,A),he&&cr(w,T),P;if(A===null){for(;!L.done;T++,L=v.next())L=h(w,L.value,S),L!==null&&(g=i(L,g,T),k===null?P=L:k.sibling=L,k=L);return he&&cr(w,T),P}for(A=r(w,A);!L.done;T++,L=v.next())L=p(A,w,T,L.value,S),L!==null&&(e&&L.alternate!==null&&A.delete(L.key===null?T:L.key),g=i(L,g,T),k===null?P=L:k.sibling=L,k=L);return e&&A.forEach(function(j){return t(w,j)}),he&&cr(w,T),P}function b(w,g,v,S){if(typeof v=="object"&&v!==null&&v.type===Ur&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case pa:e:{for(var P=v.key,k=g;k!==null;){if(k.key===P){if(P=v.type,P===Ur){if(k.tag===7){n(w,k.sibling),g=o(k,v.props.children),g.return=w,w=g;break e}}else if(k.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===Tn&&gf(P)===k.type){n(w,k.sibling),g=o(k,v.props),g.ref=Xo(w,k,v),g.return=w,w=g;break e}n(w,k);break}else t(w,k);k=k.sibling}v.type===Ur?(g=Sr(v.props.children,w.mode,S,v.key),g.return=w,w=g):(S=Xa(v.type,v.key,v.props,null,w.mode,S),S.ref=Xo(w,g,v),S.return=w,w=S)}return a(w);case Kr:e:{for(k=v.key;g!==null;){if(g.key===k)if(g.tag===4&&g.stateNode.containerInfo===v.containerInfo&&g.stateNode.implementation===v.implementation){n(w,g.sibling),g=o(g,v.children||[]),g.return=w,w=g;break e}else{n(w,g);break}else t(w,g);g=g.sibling}g=nc(v,w.mode,S),g.return=w,w=g}return a(w);case Tn:return k=v._init,b(w,g,k(v._payload),S)}if(li(v))return x(w,g,v,S);if(Uo(v))return y(w,g,v,S);ka(w,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,g!==null&&g.tag===6?(n(w,g.sibling),g=o(g,v),g.return=w,w=g):(n(w,g),g=tc(v,w.mode,S),g.return=w,w=g),a(w)):n(w,g)}return b}var Eo=ky(!0),Ay=ky(!1),bs=tr(null),xs=null,to=null,gd=null;function wd(){gd=to=xs=null}function vd(e){var t=bs.current;le(bs),e._currentValue=t}function ru(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function lo(e,t){xs=e,gd=to=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ye=!0),e.firstContext=null)}function vt(e){var t=e._currentValue;if(gd!==e)if(e={context:e,memoizedValue:t,next:null},to===null){if(xs===null)throw Error(R(308));to=e,xs.dependencies={lanes:0,firstContext:e}}else to=to.next=e;return t}var hr=null;function bd(e){hr===null?hr=[e]:hr.push(e)}function Ey(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,bd(t)):(n.next=o.next,o.next=n),t.interleaved=n,un(e,r)}function un(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Mn=!1;function xd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ty(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function sn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,te&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,un(e,n)}return o=r.interleaved,o===null?(t.next=t,bd(r)):(t.next=o.next,o.next=t),r.interleaved=t,un(e,n)}function Ka(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ad(e,n)}}function wf(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ss(e,t,n,r){var o=e.updateQueue;Mn=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var l=s,c=l.next;l.next=null,a===null?i=c:a.next=c,a=l;var d=e.alternate;d!==null&&(d=d.updateQueue,s=d.lastBaseUpdate,s!==a&&(s===null?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l))}if(i!==null){var h=o.baseState;a=0,d=c=l=null,s=i;do{var m=s.lane,p=s.eventTime;if((r&m)===m){d!==null&&(d=d.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var x=e,y=s;switch(m=t,p=n,y.tag){case 1:if(x=y.payload,typeof x=="function"){h=x.call(p,h,m);break e}h=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=y.payload,m=typeof x=="function"?x.call(p,h,m):x,m==null)break e;h=ge({},h,m);break e;case 2:Mn=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[s]:m.push(s))}else p={eventTime:p,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},d===null?(c=d=p,l=h):d=d.next=p,a|=m;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;m=s,s=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(d===null&&(l=h),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Tr|=a,e.lanes=a,e.memoizedState=h}}function vf(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=n,typeof o!="function")throw Error(R(191,o));o.call(r)}}}var ea={},Ut=tr(ea),Ni=tr(ea),Ii=tr(ea);function fr(e){if(e===ea)throw Error(R(174));return e}function Sd(e,t){switch(ie(Ii,t),ie(Ni,e),ie(Ut,ea),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Oc(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Oc(t,e)}le(Ut),ie(Ut,t)}function To(){le(Ut),le(Ni),le(Ii)}function My(e){fr(Ii.current);var t=fr(Ut.current),n=Oc(t,e.type);t!==n&&(ie(Ni,e),ie(Ut,n))}function Pd(e){Ni.current===e&&(le(Ut),le(Ni))}var pe=tr(0);function Ps(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Zl=[];function Cd(){for(var e=0;e<Zl.length;e++)Zl[e]._workInProgressVersionPrimary=null;Zl.length=0}var Ua=mn.ReactCurrentDispatcher,Yl=mn.ReactCurrentBatchConfig,Er=0,ye=null,ke=null,Te=null,Cs=!1,gi=!1,_i=0,Jx=0;function je(){throw Error(R(321))}function kd(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!_t(e[n],t[n]))return!1;return!0}function Ad(e,t,n,r,o,i){if(Er=i,ye=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ua.current=e===null||e.memoizedState===null?rS:oS,e=n(r,o),gi){i=0;do{if(gi=!1,_i=0,25<=i)throw Error(R(301));i+=1,Te=ke=null,t.updateQueue=null,Ua.current=iS,e=n(r,o)}while(gi)}if(Ua.current=ks,t=ke!==null&&ke.next!==null,Er=0,Te=ke=ye=null,Cs=!1,t)throw Error(R(300));return e}function Ed(){var e=_i!==0;return _i=0,e}function Bt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Te===null?ye.memoizedState=Te=e:Te=Te.next=e,Te}function bt(){if(ke===null){var e=ye.alternate;e=e!==null?e.memoizedState:null}else e=ke.next;var t=Te===null?ye.memoizedState:Te.next;if(t!==null)Te=t,ke=e;else{if(e===null)throw Error(R(310));ke=e,e={memoizedState:ke.memoizedState,baseState:ke.baseState,baseQueue:ke.baseQueue,queue:ke.queue,next:null},Te===null?ye.memoizedState=Te=e:Te=Te.next=e}return Te}function ji(e,t){return typeof t=="function"?t(e):t}function Ql(e){var t=bt(),n=t.queue;if(n===null)throw Error(R(311));n.lastRenderedReducer=e;var r=ke,o=r.baseQueue,i=n.pending;if(i!==null){if(o!==null){var a=o.next;o.next=i.next,i.next=a}r.baseQueue=o=i,n.pending=null}if(o!==null){i=o.next,r=r.baseState;var s=a=null,l=null,c=i;do{var d=c.lane;if((Er&d)===d)l!==null&&(l=l.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var h={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};l===null?(s=l=h,a=r):l=l.next=h,ye.lanes|=d,Tr|=d}c=c.next}while(c!==null&&c!==i);l===null?a=r:l.next=s,_t(r,t.memoizedState)||(Ye=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=l,n.lastRenderedState=r}if(e=n.interleaved,e!==null){o=e;do i=o.lane,ye.lanes|=i,Tr|=i,o=o.next;while(o!==e)}else o===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Xl(e){var t=bt(),n=t.queue;if(n===null)throw Error(R(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(o!==null){n.pending=null;var a=o=o.next;do i=e(i,a.action),a=a.next;while(a!==o);_t(i,t.memoizedState)||(Ye=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Dy(){}function Ry(e,t){var n=ye,r=bt(),o=t(),i=!_t(r.memoizedState,o);if(i&&(r.memoizedState=o,Ye=!0),r=r.queue,Td(Iy.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||Te!==null&&Te.memoizedState.tag&1){if(n.flags|=2048,Oi(9,Ny.bind(null,n,r,o,t),void 0,null),De===null)throw Error(R(349));Er&30||Ly(n,t,o)}return o}function Ly(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ye.updateQueue,t===null?(t={lastEffect:null,stores:null},ye.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ny(e,t,n,r){t.value=n,t.getSnapshot=r,_y(t)&&jy(e)}function Iy(e,t,n){return n(function(){_y(t)&&jy(e)})}function _y(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!_t(e,n)}catch{return!0}}function jy(e){var t=un(e,1);t!==null&&It(t,e,1,-1)}function bf(e){var t=Bt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ji,lastRenderedState:e},t.queue=e,e=e.dispatch=nS.bind(null,ye,e),[t.memoizedState,e]}function Oi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=ye.updateQueue,t===null?(t={lastEffect:null,stores:null},ye.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Oy(){return bt().memoizedState}function Ga(e,t,n,r){var o=Bt();ye.flags|=e,o.memoizedState=Oi(1|t,n,void 0,r===void 0?null:r)}function Ys(e,t,n,r){var o=bt();r=r===void 0?null:r;var i=void 0;if(ke!==null){var a=ke.memoizedState;if(i=a.destroy,r!==null&&kd(r,a.deps)){o.memoizedState=Oi(t,n,i,r);return}}ye.flags|=e,o.memoizedState=Oi(1|t,n,i,r)}function xf(e,t){return Ga(8390656,8,e,t)}function Td(e,t){return Ys(2048,8,e,t)}function Wy(e,t){return Ys(4,2,e,t)}function $y(e,t){return Ys(4,4,e,t)}function By(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Hy(e,t,n){return n=n!=null?n.concat([e]):null,Ys(4,4,By.bind(null,t,e),n)}function Md(){}function Fy(e,t){var n=bt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&kd(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qy(e,t){var n=bt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&kd(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function zy(e,t,n){return Er&21?(_t(n,t)||(n=Zm(),ye.lanes|=n,Tr|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ye=!0),e.memoizedState=n)}function eS(e,t){var n=re;re=n!==0&&4>n?n:4,e(!0);var r=Yl.transition;Yl.transition={};try{e(!1),t()}finally{re=n,Yl.transition=r}}function Vy(){return bt().memoizedState}function tS(e,t,n){var r=Un(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ky(e))Uy(t,n);else if(n=Ey(e,t,n,r),n!==null){var o=ze();It(n,e,r,o),Gy(n,t,r)}}function nS(e,t,n){var r=Un(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ky(e))Uy(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,s=i(a,n);if(o.hasEagerState=!0,o.eagerState=s,_t(s,a)){var l=t.interleaved;l===null?(o.next=o,bd(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=Ey(e,t,o,r),n!==null&&(o=ze(),It(n,e,r,o),Gy(n,t,r))}}function Ky(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function Uy(e,t){gi=Cs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Gy(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ad(e,n)}}var ks={readContext:vt,useCallback:je,useContext:je,useEffect:je,useImperativeHandle:je,useInsertionEffect:je,useLayoutEffect:je,useMemo:je,useReducer:je,useRef:je,useState:je,useDebugValue:je,useDeferredValue:je,useTransition:je,useMutableSource:je,useSyncExternalStore:je,useId:je,unstable_isNewReconciler:!1},rS={readContext:vt,useCallback:function(e,t){return Bt().memoizedState=[e,t===void 0?null:t],e},useContext:vt,useEffect:xf,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ga(4194308,4,By.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ga(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ga(4,2,e,t)},useMemo:function(e,t){var n=Bt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Bt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tS.bind(null,ye,e),[r.memoizedState,e]},useRef:function(e){var t=Bt();return e={current:e},t.memoizedState=e},useState:bf,useDebugValue:Md,useDeferredValue:function(e){return Bt().memoizedState=e},useTransition:function(){var e=bf(!1),t=e[0];return e=eS.bind(null,e[1]),Bt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ye,o=Bt();if(he){if(n===void 0)throw Error(R(407));n=n()}else{if(n=t(),De===null)throw Error(R(349));Er&30||Ly(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,xf(Iy.bind(null,r,i,e),[e]),r.flags|=2048,Oi(9,Ny.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Bt(),t=De.identifierPrefix;if(he){var n=an,r=on;n=(r&~(1<<32-Nt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=_i++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=Jx++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},oS={readContext:vt,useCallback:Fy,useContext:vt,useEffect:Td,useImperativeHandle:Hy,useInsertionEffect:Wy,useLayoutEffect:$y,useMemo:qy,useReducer:Ql,useRef:Oy,useState:function(){return Ql(ji)},useDebugValue:Md,useDeferredValue:function(e){var t=bt();return zy(t,ke.memoizedState,e)},useTransition:function(){var e=Ql(ji)[0],t=bt().memoizedState;return[e,t]},useMutableSource:Dy,useSyncExternalStore:Ry,useId:Vy,unstable_isNewReconciler:!1},iS={readContext:vt,useCallback:Fy,useContext:vt,useEffect:Td,useImperativeHandle:Hy,useInsertionEffect:Wy,useLayoutEffect:$y,useMemo:qy,useReducer:Xl,useRef:Oy,useState:function(){return Xl(ji)},useDebugValue:Md,useDeferredValue:function(e){var t=bt();return ke===null?t.memoizedState=e:zy(t,ke.memoizedState,e)},useTransition:function(){var e=Xl(ji)[0],t=bt().memoizedState;return[e,t]},useMutableSource:Dy,useSyncExternalStore:Ry,useId:Vy,unstable_isNewReconciler:!1};function At(e,t){if(e&&e.defaultProps){t=ge({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function ou(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:ge({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Qs={isMounted:function(e){return(e=e._reactInternals)?Lr(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ze(),o=Un(e),i=sn(r,o);i.payload=t,n!=null&&(i.callback=n),t=Vn(e,i,o),t!==null&&(It(t,e,o,r),Ka(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ze(),o=Un(e),i=sn(r,o);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Vn(e,i,o),t!==null&&(It(t,e,o,r),Ka(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ze(),r=Un(e),o=sn(n,r);o.tag=2,t!=null&&(o.callback=t),t=Vn(e,o,r),t!==null&&(It(t,e,r,n),Ka(t,e,r))}};function Sf(e,t,n,r,o,i,a){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,i,a):t.prototype&&t.prototype.isPureReactComponent?!Mi(n,r)||!Mi(o,i):!0}function Zy(e,t,n){var r=!1,o=Qn,i=t.contextType;return typeof i=="object"&&i!==null?i=vt(i):(o=Xe(t)?kr:Be.current,r=t.contextTypes,i=(r=r!=null)?ko(e,o):Qn),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Qs,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function Pf(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Qs.enqueueReplaceState(t,t.state,null)}function iu(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},xd(e);var i=t.contextType;typeof i=="object"&&i!==null?o.context=vt(i):(i=Xe(t)?kr:Be.current,o.context=ko(e,i)),o.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(ou(e,t,i,n),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&Qs.enqueueReplaceState(o,o.state,null),Ss(e,n,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Mo(e,t){try{var n="",r=t;do n+=Nb(r),r=r.return;while(r);var o=n}catch(i){o=` 40Error generating stack: `+i.message+` 41`+i.stack}return{value:e,source:t,stack:o,digest:null}}function Jl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function au(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var aS=typeof WeakMap=="function"?WeakMap:Map;
vendor: 11,831 bytes, line 41
41function Yy(e,t,n){n=sn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Es||(Es=!0,yu=r),au(e,t)},n}function Qy(e,t,n){n=sn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){au(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){au(e,t),typeof r!="function"&&(Kn===null?Kn=new Set([this]):Kn.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),n}function Cf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new aS;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=bS.bind(null,e,t,n),t.then(e,e))}function kf(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Af(e,t,n,r,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=sn(-1,1),t.tag=2,Vn(n,t,1))),n.lanes|=1),e)}var sS=mn.ReactCurrentOwner,Ye=!1;function Fe(e,t,n,r){t.child=e===null?Ay(t,null,n,r):Eo(t,e.child,n,r)}function Ef(e,t,n,r,o){n=n.render;var i=t.ref;return lo(t,o),r=Ad(e,t,n,r,i,o),n=Ed(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,dn(e,t,o)):(he&&n&&pd(t),t.flags|=1,Fe(e,t,r,o),t.child)}function Tf(e,t,n,r,o){if(e===null){var i=n.type;return typeof i=="function"&&!Od(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,Xy(e,t,i,r,o)):(e=Xa(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&o)){var a=i.memoizedProps;if(n=n.compare,n=n!==null?n:Mi,n(a,r)&&e.ref===t.ref)return dn(e,t,o)}return t.flags|=1,e=Gn(i,r),e.ref=t.ref,e.return=t,t.child=e}function Xy(e,t,n,r,o){if(e!==null){var i=e.memoizedProps;if(Mi(i,r)&&e.ref===t.ref)if(Ye=!1,t.pendingProps=r=i,(e.lanes&o)!==0)e.flags&131072&&(Ye=!0);else return t.lanes=e.lanes,dn(e,t,o)}return su(e,t,n,r,o)}function Jy(e,t,n){var r=t.pendingProps,o=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ie(ro,et),et|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ie(ro,et),et|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,ie(ro,et),et|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,ie(ro,et),et|=r;return Fe(e,t,o,n),t.child}function eg(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function su(e,t,n,r,o){var i=Xe(n)?kr:Be.current;return i=ko(t,i),lo(t,o),n=Ad(e,t,n,r,i,o),r=Ed(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,dn(e,t,o)):(he&&r&&pd(t),t.flags|=1,Fe(e,t,n,o),t.child)}function Mf(e,t,n,r,o){if(Xe(n)){var i=!0;gs(t)}else i=!1;if(lo(t,o),t.stateNode===null)Za(e,t),Zy(t,n,r),iu(t,n,r,o),r=!0;else if(e===null){var a=t.stateNode,s=t.memoizedProps;a.props=s;var l=a.context,c=n.contextType;typeof c=="object"&&c!==null?c=vt(c):(c=Xe(n)?kr:Be.current,c=ko(t,c));var d=n.getDerivedStateFromProps,h=typeof d=="function"||typeof a.getSnapshotBeforeUpdate=="function";h||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==r||l!==c)&&Pf(t,a,r,c),Mn=!1;var m=t.memoizedState;a.state=m,Ss(t,r,a,o),l=t.memoizedState,s!==r||m!==l||Qe.current||Mn?(typeof d=="function"&&(ou(t,n,d,r),l=t.memoizedState),(s=Mn||Sf(t,n,s,r,m,l,c))?(h||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=c,r=s):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ty(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:At(t.type,s),a.props=c,h=t.pendingProps,m=a.context,l=n.contextType,typeof l=="object"&&l!==null?l=vt(l):(l=Xe(n)?kr:Be.current,l=ko(t,l));var p=n.getDerivedStateFromProps;(d=typeof p=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==h||m!==l)&&Pf(t,a,r,l),Mn=!1,m=t.memoizedState,a.state=m,Ss(t,r,a,o);var x=t.memoizedState;s!==h||m!==x||Qe.current||Mn?(typeof p=="function"&&(ou(t,n,p,r),x=t.memoizedState),(c=Mn||Sf(t,n,c,r,m,x,l)||!1)?(d||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(r,x,l),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(r,x,l)),typeof a.componentDidUpdate=="function"&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof a.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=x),a.props=r,a.state=x,a.context=l,r=c):(typeof a.componentDidUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return lu(e,t,n,r,i,o)}function lu(e,t,n,r,o,i){eg(e,t);var a=(t.flags&128)!==0;if(!r&&!a)return o&&pf(t,n,!1),dn(e,t,i);r=t.stateNode,sS.current=t;var s=a&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&a?(t.child=Eo(t,e.child,null,i),t.child=Eo(t,null,s,i)):Fe(e,t,s,i),t.memoizedState=r.state,o&&pf(t,n,!0),t.child}function tg(e){var t=e.stateNode;t.pendingContext?ff(e,t.pendingContext,t.pendingContext!==t.context):t.context&&ff(e,t.context,!1),Sd(e,t.containerInfo)}function Df(e,t,n,r,o){return Ao(),yd(o),t.flags|=256,Fe(e,t,n,r),t.child}var cu={dehydrated:null,treeContext:null,retryLane:0};function uu(e){return{baseLanes:e,cachePool:null,transitions:null}}function ng(e,t,n){var r=t.pendingProps,o=pe.current,i=!1,a=(t.flags&128)!==0,s;if((s=a)||(s=e!==null&&e.memoizedState===null?!1:(o&2)!==0),s?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),ie(pe,o&1),e===null)return nu(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(a=r.children,e=r.fallback,i?(r=t.mode,i=t.child,a={mode:"hidden",children:a},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=a):i=el(a,r,0,null),e=Sr(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=uu(n),t.memoizedState=cu,e):Dd(t,a));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return lS(e,t,a,r,s,o,n);if(i){i=r.fallback,a=t.mode,o=e.child,s=o.sibling;var l={mode:"hidden",children:r.children};return!(a&1)&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=Gn(o,l),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?i=Gn(s,i):(i=Sr(i,a,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,a=e.child.memoizedState,a=a===null?uu(n):{baseLanes:a.baseLanes|n,cachePool:null,transitions:a.transitions},i.memoizedState=a,i.childLanes=e.childLanes&~n,t.memoizedState=cu,r}return i=e.child,e=i.sibling,r=Gn(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Dd(e,t){return t=el({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Aa(e,t,n,r){return r!==null&&yd(r),Eo(t,e.child,null,n),e=Dd(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function lS(e,t,n,r,o,i,a){if(n)return t.flags&256?(t.flags&=-257,r=Jl(Error(R(422))),Aa(e,t,a,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=el({mode:"visible",children:r.children},o,0,null),i=Sr(i,o,a,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&Eo(t,e.child,null,a),t.child.memoizedState=uu(a),t.memoizedState=cu,i);if(!(t.mode&1))return Aa(e,t,a,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var s=r.dgst;return r=s,i=Error(R(419)),r=Jl(i,r,void 0),Aa(e,t,a,r)}if(s=(a&e.childLanes)!==0,Ye||s){if(r=De,r!==null){switch(a&-a){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=o&(r.suspendedLanes|a)?0:o,o!==0&&o!==i.retryLane&&(i.retryLane=o,un(e,o),It(r,e,o,-1))}return jd(),r=Jl(Error(R(421))),Aa(e,t,a,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=xS.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,nt=zn(o.nextSibling),rt=t,he=!0,Rt=null,e!==null&&(pt[mt++]=on,pt[mt++]=an,pt[mt++]=Ar,on=e.id,an=e.overflow,Ar=t),t=Dd(t,r.children),t.flags|=4096,t)}function Rf(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ru(e.return,t,n)}function ec(e,t,n,r,o){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o)}function rg(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(Fe(e,t,r.children,n),r=pe.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Rf(e,n,t);else if(e.tag===19)Rf(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ie(pe,r),!(t.mode&1))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Ps(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),ec(t,!1,o,n,i);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Ps(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}ec(t,!0,n,null,i);break;case"together":ec(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Za(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function dn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Tr|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(R(153));if(t.child!==null){for(e=t.child,n=Gn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Gn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function cS(e,t,n){switch(t.tag){case 3:tg(t),Ao();break;case 5:My(t);break;case 1:Xe(t.type)&&gs(t);break;case 4:Sd(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;ie(bs,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ie(pe,pe.current&1),t.flags|=128,null):n&t.child.childLanes?ng(e,t,n):(ie(pe,pe.current&1),e=dn(e,t,n),e!==null?e.sibling:null);ie(pe,pe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return rg(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),ie(pe,pe.current),r)break;return null;
vendor: 4,597 bytes, line 41
41case 22:case 23:return t.lanes=0,Jy(e,t,n)}return dn(e,t,n)}var og,du,ig,ag;og=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};du=function(){};ig=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,fr(Ut.current);var i=null;switch(n){case"input":o=Nc(e,o),r=Nc(e,r),i=[];break;case"select":o=ge({},o,{value:void 0}),r=ge({},r,{value:void 0}),i=[];break;case"textarea":o=jc(e,o),r=jc(e,r),i=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=ms)}Wc(n,r);var a;n=null;for(c in o)if(!r.hasOwnProperty(c)&&o.hasOwnProperty(c)&&o[c]!=null)if(c==="style"){var s=o[c];for(a in s)s.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(Si.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var l=r[c];if(s=o!=null?o[c]:void 0,r.hasOwnProperty(c)&&l!==s&&(l!=null||s!=null))if(c==="style")if(s){for(a in s)!s.hasOwnProperty(a)||l&&l.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in l)l.hasOwnProperty(a)&&s[a]!==l[a]&&(n||(n={}),n[a]=l[a])}else n||(i||(i=[]),i.push(c,n)),n=l;else c==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,s=s?s.__html:void 0,l!=null&&s!==l&&(i=i||[]).push(c,l)):c==="children"?typeof l!="string"&&typeof l!="number"||(i=i||[]).push(c,""+l):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(Si.hasOwnProperty(c)?(l!=null&&c==="onScroll"&&se("scroll",e),i||s===l||(i=[])):(i=i||[]).push(c,l))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}};ag=function(e,t,n,r){n!==r&&(t.flags|=4)};function Jo(e,t){if(!he)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Oe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function uS(e,t,n){var r=t.pendingProps;switch(md(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Oe(t),null;case 1:return Xe(t.type)&&ys(),Oe(t),null;case 3:return r=t.stateNode,To(),le(Qe),le(Be),Cd(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ca(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Rt!==null&&(vu(Rt),Rt=null))),du(e,t),Oe(t),null;case 5:Pd(t);var o=fr(Ii.current);if(n=t.type,e!==null&&t.stateNode!=null)ig(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(R(166));return Oe(t),null}if(e=fr(Ut.current),Ca(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[zt]=t,r[Li]=i,e=(t.mode&1)!==0,n){case"dialog":se("cancel",r),se("close",r);break;case"iframe":case"object":case"embed":se("load",r);break;case"video":case"audio":for(o=0;o<ui.length;o++)se(ui[o],r);break;case"source":se("error",r);break;case"img":case"image":case"link":se("error",r),se("load",r);break;case"details":se("toggle",r);break;case"input":$h(r,i),se("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},se("invalid",r);break;case"textarea":Hh(r,i),se("invalid",r)}Wc(n,i),o=null;for(var a in i)if(i.hasOwnProperty(a)){var s=i[a];a==="children"?typeof s=="string"?r.textContent!==s&&(i.suppressHydrationWarning!==!0&&Pa(r.textContent,s,e),o=["children",s]):typeof s=="number"&&r.textContent!==""+s&&(i.suppressHydrationWarning!==!0&&Pa(r.textContent,s,e),o=["children",""+s]):Si.hasOwnProperty(a)&&s!=null&&a==="onScroll"&&se("scroll",r)}switch(n){case"input":ma(r),Bh(r,i,!0);break;case"textarea":ma(r),Fh(r);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(r.onclick=ms)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{a=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Im(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=a.createElement("div"),e.innerHTML="<script><\/script>
41",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[zt]=t,e[Li]=r,og(e,t,!1,!1),t.stateNode=e;e:{switch(a=$c(n,r),n){case"dialog":se("cancel",e),se("close",e),o=r;break;case"iframe":case"object":case"embed":se("load",e),o=r;break;case"video":case"audio":for(o=0;o<ui.length;o++)se(ui[o],e);o=r;break;case"source":se("error",e),o=r;break;case"img":case"image":case"link":se("error",e),se("load",e),o=r;break;case"details":se("toggle",e),o=r;break;case"input":$h(e,r),o=Nc(e,r),se("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=ge({},r,{value:void 0}),se("invalid",e);break;case"textarea":Hh(e,r),o=jc(e,r),se("invalid",e);break;default:o=r}Wc(n,o),s=o;for(i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="style"?Om(e,l):i==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&_m(e,l)):i==="children"?typeof l=="string"?(n!=="textarea"||l!=="")&&Pi(e,l):typeof l=="number"&&Pi(e,""+l):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Si.hasOwnProperty(i)?l!=null&&i==="onScroll"&&se("scroll",e):l!=null&&ed(e,i,l,a))}switch(n){case"input":ma(e),Bh(e,r,!1);break;case"textarea":ma(e),Fh(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Yn(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?oo(e,!!r.multiple,i,!1):r.defaultValue!=null&&oo(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=ms)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Oe(t),null;case 6:if(e&&t.stateNode!=null)ag(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(R(166));if(n=fr(Ii.current),fr(Ut.current),Ca(t)){if(r=t.stateNode,n=t.memoizedProps,r[zt]=t,(i=r.nodeValue!==n)&&(e=rt,e!==null))switch(e.tag){case 3:Pa(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Pa(r.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[zt]=t,t.stateNode=r}return Oe(t),null;case 13:if(le(pe),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(he&&nt!==null&&t.mode&1&&!(t.flags&128))Cy(),Ao(),t.flags|=98560,i=!1;else if(i=Ca(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(R(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(R(317));i[zt]=t}else Ao(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Oe(t),i=!1}else Rt!==null&&(vu(Rt),Rt=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||pe.current&1?Ae===0&&(Ae=3):jd())),t.updateQueue!==null&&(t.flags|=4),Oe(t),null);case 4:return To(),du(e,t),e===null&&Di(t.stateNode.containerInfo),Oe(t),null;case 10:return vd(t.type._context),Oe(t),null;case 17:return Xe(t.type)&&ys(),Oe(t),null;case 19:if(le(pe),i=t.memoizedState,i===null)return Oe(t),null;if(r=(t.flags&128)!==0,a=i.rendering,a===null)if(r)Jo(i,!1);else{if(Ae!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=Ps(e),a!==null){for(t.flags|=128,Jo(i,!1),r=a.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)i=n,e=r,i.flags&=14680066,a=i.alternate,a===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=a.childLanes,i.lanes=a.lanes,i.child=a.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=a.memoizedProps,i.memoizedState=a.memoizedState,i.updateQueue=a.updateQueue,i.type=a.type,e=a.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ie(pe,pe.current&1|2),t.child}e=e.sibling}i.tail!==null&&xe()>Do&&(t.flags|=128,r=!0,Jo(i,!1),t.lanes=4194304)}else{if(!r)if(e=Ps(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Jo(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!he)return Oe(t),null}else 2*xe()-i.renderingStartTime>Do&&n!==1073741824&&(t.flags|=128,r=!0,Jo(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=xe(),t.sibling=null,n=pe.current,ie(pe,r?n&1|2:n&1),t):(Oe(t),null);case 22:case 23:return _d(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?et&1073741824&&(Oe(t),t.subtreeFlags&6&&(t.flags|=8192)):Oe(t),null;case 24:return null;case 25:return null}throw Error(R(156,t.tag))}function dS(e,t){switch(md(t),t.tag){case 1:return Xe(t.type)&&ys(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;
vendor: 26,684 bytes, line 41
41case 3:return To(),le(Qe),le(Be),Cd(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Pd(t),null;case 13:if(le(pe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(R(340));Ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return le(pe),null;case 4:return To(),null;case 10:return vd(t.type._context),null;case 22:case 23:return _d(),null;case 24:return null;default:return null}}var Ea=!1,$e=!1,hS=typeof WeakSet=="function"?WeakSet:Set,O=null;function no(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){be(e,t,r)}else n.current=null}function hu(e,t,n){try{n()}catch(r){be(e,t,r)}}var Lf=!1;function fS(e,t){if(Zc=hs,e=dy(),fd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,s=-1,l=-1,c=0,d=0,h=e,m=null;t:for(;;){for(var p;h!==n||o!==0&&h.nodeType!==3||(s=a+o),h!==i||r!==0&&h.nodeType!==3||(l=a+r),h.nodeType===3&&(a+=h.nodeValue.length),(p=h.firstChild)!==null;)m=h,h=p;for(;;){if(h===e)break t;if(m===n&&++c===o&&(s=a),m===i&&++d===r&&(l=a),(p=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=p}n=s===-1||l===-1?null:{start:s,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Yc={focusedElem:e,selectionRange:n},hs=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var y=x.memoizedProps,b=x.memoizedState,w=t.stateNode,g=w.getSnapshotBeforeUpdate(t.elementType===t.type?y:At(t.type,y),b);w.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(S){be(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return x=Lf,Lf=!1,x}function wi(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&hu(t,n,i)}o=o.next}while(o!==r)}}function Xs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function fu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function sg(e){var t=e.alternate;t!==null&&(e.alternate=null,sg(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[zt],delete t[Li],delete t[Jc],delete t[Zx],delete t[Yx])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lg(e){return e.tag===5||e.tag===3||e.tag===4}function Nf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lg(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function pu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ms));else if(r!==4&&(e=e.child,e!==null))for(pu(e,t,n),e=e.sibling;e!==null;)pu(e,t,n),e=e.sibling}function mu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(mu(e,t,n),e=e.sibling;e!==null;)mu(e,t,n),e=e.sibling}var Re=null,Dt=!1;function Pn(e,t,n){for(n=n.child;n!==null;)cg(e,t,n),n=n.sibling}function cg(e,t,n){if(Kt&&typeof Kt.onCommitFiberUnmount=="function")try{Kt.onCommitFiberUnmount(zs,n)}catch{}switch(n.tag){case 5:$e||no(n,t);case 6:var r=Re,o=Dt;Re=null,Pn(e,t,n),Re=r,Dt=o,Re!==null&&(Dt?(e=Re,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Re.removeChild(n.stateNode));break;case 18:Re!==null&&(Dt?(e=Re,n=n.stateNode,e.nodeType===8?Ul(e.parentNode,n):e.nodeType===1&&Ul(e,n),Ei(e)):Ul(Re,n.stateNode));break;case 4:r=Re,o=Dt,Re=n.stateNode.containerInfo,Dt=!0,Pn(e,t,n),Re=r,Dt=o;break;case 0:case 11:case 14:case 15:if(!$e&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&hu(n,t,a),o=o.next}while(o!==r)}Pn(e,t,n);break;case 1:if(!$e&&(no(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){be(n,t,s)}Pn(e,t,n);break;case 21:Pn(e,t,n);break;case 22:n.mode&1?($e=(r=$e)||n.memoizedState!==null,Pn(e,t,n),$e=r):Pn(e,t,n);break;default:Pn(e,t,n)}}function If(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new hS),t.forEach(function(r){var o=SS.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Ct(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,a=t,s=a;e:for(;s!==null;){switch(s.tag){case 5:Re=s.stateNode,Dt=!1;break e;case 3:Re=s.stateNode.containerInfo,Dt=!0;break e;case 4:Re=s.stateNode.containerInfo,Dt=!0;break e}s=s.return}if(Re===null)throw Error(R(160));cg(i,a,o),Re=null,Dt=!1;var l=o.alternate;l!==null&&(l.return=null),o.return=null}catch(c){be(o,t,c)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)ug(t,e),t=t.sibling}function ug(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ct(t,e),$t(e),r&4){try{wi(3,e,e.return),Xs(3,e)}catch(y){be(e,e.return,y)}try{wi(5,e,e.return)}catch(y){be(e,e.return,y)}}break;case 1:Ct(t,e),$t(e),r&512&&n!==null&&no(n,n.return);break;case 5:if(Ct(t,e),$t(e),r&512&&n!==null&&no(n,n.return),e.flags&32){var o=e.stateNode;try{Pi(o,"")}catch(y){be(e,e.return,y)}}if(r&4&&(o=e.stateNode,o!=null)){var i=e.memoizedProps,a=n!==null?n.memoizedProps:i,s=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{s==="input"&&i.type==="radio"&&i.name!=null&&Lm(o,i),$c(s,a);var c=$c(s,i);for(a=0;a<l.length;a+=2){var d=l[a],h=l[a+1];d==="style"?Om(o,h):d==="dangerouslySetInnerHTML"?_m(o,h):d==="children"?Pi(o,h):ed(o,d,h,c)}switch(s){case"input":Ic(o,i);break;case"textarea":Nm(o,i);break;case"select":var m=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var p=i.value;p!=null?oo(o,!!i.multiple,p,!1):m!==!!i.multiple&&(i.defaultValue!=null?oo(o,!!i.multiple,i.defaultValue,!0):oo(o,!!i.multiple,i.multiple?[]:"",!1))}o[Li]=i}catch(y){be(e,e.return,y)}}break;case 6:if(Ct(t,e),$t(e),r&4){if(e.stateNode===null)throw Error(R(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(y){be(e,e.return,y)}}break;case 3:if(Ct(t,e),$t(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Ei(t.containerInfo)}catch(y){be(e,e.return,y)}break;case 4:Ct(t,e),$t(e);break;case 13:Ct(t,e),$t(e),o=e.child,o.flags&8192&&(i=o.memoizedState!==null,o.stateNode.isHidden=i,!i||o.alternate!==null&&o.alternate.memoizedState!==null||(Nd=xe())),r&4&&If(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?($e=(c=$e)||d,Ct(t,e),$e=c):Ct(t,e),$t(e),r&8192){if(c=e.memoizedState!==null,(e.stateNode.isHidden=c)&&!d&&e.mode&1)for(O=e,d=e.child;d!==null;){for(h=O=d;O!==null;){switch(m=O,p=m.child,m.tag){case 0:case 11:case 14:case 15:wi(4,m,m.return);break;case 1:no(m,m.return);var x=m.stateNode;if(typeof x.componentWillUnmount=="function"){r=m,n=m.return;try{t=r,x.props=t.memoizedProps,x.state=t.memoizedState,x.componentWillUnmount()}catch(y){be(r,n,y)}}break;case 5:no(m,m.return);break;case 22:if(m.memoizedState!==null){jf(h);continue}}p!==null?(p.return=m,O=p):jf(h)}d=d.sibling}e:for(d=null,h=e;;){if(h.tag===5){if(d===null){d=h;try{o=h.stateNode,c?(i=o.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(s=h.stateNode,l=h.memoizedProps.style,a=l!=null&&l.hasOwnProperty("display")?l.display:null,s.style.display=jm("display",a))}catch(y){be(e,e.return,y)}}}else if(h.tag===6){if(d===null)try{h.stateNode.nodeValue=c?"":h.memoizedProps}catch(y){be(e,e.return,y)}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===e)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;h.sibling===null;){if(h.return===null||h.return===e)break e;d===h&&(d=null),h=h.return}d===h&&(d=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:Ct(t,e),$t(e),r&4&&If(e);break;case 21:break;default:Ct(t,e),$t(e)}}function $t(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(lg(n)){var r=n;break e}n=n.return}throw Error(R(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(Pi(o,""),r.flags&=-33);var i=Nf(e);mu(e,i,o);break;case 3:case 4:var a=r.stateNode.containerInfo,s=Nf(e);pu(e,s,a);break;default:throw Error(R(161))}}catch(l){be(e,e.return,l)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function pS(e,t,n){O=e,dg(e)}function dg(e,t,n){for(var r=(e.mode&1)!==0;O!==null;){var o=O,i=o.child;if(o.tag===22&&r){var a=o.memoizedState!==null||Ea;if(!a){var s=o.alternate,l=s!==null&&s.memoizedState!==null||$e;s=Ea;var c=$e;if(Ea=a,($e=l)&&!c)for(O=o;O!==null;)a=O,l=a.child,a.tag===22&&a.memoizedState!==null?Of(o):l!==null?(l.return=a,O=l):Of(o);for(;i!==null;)O=i,dg(i),i=i.sibling;O=o,Ea=s,$e=c}_f(e)}else o.subtreeFlags&8772&&i!==null?(i.return=o,O=i):_f(e)}}function _f(e){for(;O!==null;){var t=O;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:$e||Xs(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!$e)if(n===null)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:At(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&vf(t,i,r);break;case 3:var a=t.updateQueue;if(a!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}vf(t,a,n)}break;case 5:var s=t.stateNode;if(n===null&&t.flags&4){n=s;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&n.focus();break;case"img":l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var c=t.alternate;if(c!==null){var d=c.memoizedState;if(d!==null){var h=d.dehydrated;h!==null&&Ei(h)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(R(163))}$e||t.flags&512&&fu(t)}catch(m){be(t,t.return,m)}}if(t===e){O=null;break}if(n=t.sibling,n!==null){n.return=t.return,O=n;break}O=t.return}}function jf(e){for(;O!==null;){var t=O;if(t===e){O=null;break}var n=t.sibling;if(n!==null){n.return=t.return,O=n;break}O=t.return}}function Of(e){for(;O!==null;){var t=O;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Xs(4,t)}catch(l){be(t,n,l)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(l){be(t,o,l)}}var i=t.return;try{fu(t)}catch(l){be(t,i,l)}break;case 5:var a=t.return;try{fu(t)}catch(l){be(t,a,l)}}}catch(l){be(t,t.return,l)}if(t===e){O=null;break}var s=t.sibling;if(s!==null){s.return=t.return,O=s;break}O=t.return}}var mS=Math.ceil,As=mn.ReactCurrentDispatcher,Rd=mn.ReactCurrentOwner,gt=mn.ReactCurrentBatchConfig,te=0,De=null,Pe=null,Le=0,et=0,ro=tr(0),Ae=0,Wi=null,Tr=0,Js=0,Ld=0,vi=null,Ze=null,Nd=0,Do=1/0,tn=null,Es=!1,yu=null,Kn=null,Ta=!1,$n=null,Ts=0,bi=0,gu=null,Ya=-1,Qa=0;function ze(){return te&6?xe():Ya!==-1?Ya:Ya=xe()}function Un(e){return e.mode&1?te&2&&Le!==0?Le&-Le:Xx.transition!==null?(Qa===0&&(Qa=Zm()),Qa):(e=re,e!==0||(e=window.event,e=e===void 0?16:ny(e.type)),e):1}function It(e,t,n,r){if(50<bi)throw bi=0,gu=null,Error(R(185));Qi(e,n,r),(!(te&2)||e!==De)&&(e===De&&(!(te&2)&&(Js|=n),Ae===4&&Rn(e,Le)),Je(e,r),n===1&&te===0&&!(t.mode&1)&&(Do=xe()+500,Zs&&nr()))}function Je(e,t){var n=e.callbackNode;Xb(e,t);var r=ds(e,e===De?Le:0);if(r===0)n!==null&&Vh(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&Vh(n),t===1)e.tag===0?Qx(Wf.bind(null,e)):xy(Wf.bind(null,e)),Ux(function(){!(te&6)&&nr()}),n=null;else{switch(Ym(r)){case 1:n=id;break;case 4:n=Um;break;case 16:n=us;break;case 536870912:n=Gm;break;default:n=us}n=vg(n,hg.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function hg(e,t){if(Ya=-1,Qa=0,te&6)throw Error(R(327));var n=e.callbackNode;if(co()&&e.callbackNode!==n)return null;var r=ds(e,e===De?Le:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=Ms(e,r);else{t=r;var o=te;te|=2;var i=pg();(De!==e||Le!==t)&&(tn=null,Do=xe()+500,xr(e,t));do try{wS();break}catch(s){fg(e,s)}while(!0);wd(),As.current=i,te=o,Pe!==null?t=0:(De=null,Le=0,t=Ae)}if(t!==0){if(t===2&&(o=zc(e),o!==0&&(r=o,t=wu(e,o))),t===1)throw n=Wi,xr(e,0),Rn(e,r),Je(e,xe()),n;if(t===6)Rn(e,r);else{if(o=e.current.alternate,!(r&30)&&!yS(o)&&(t=Ms(e,r),t===2&&(i=zc(e),i!==0&&(r=i,t=wu(e,i))),t===1))throw n=Wi,xr(e,0),Rn(e,r),Je(e,xe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(R(345));case 2:ur(e,Ze,tn);break;case 3:if(Rn(e,r),(r&130023424)===r&&(t=Nd+500-xe(),10<t)){if(ds(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){ze(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Xc(ur.bind(null,e,Ze,tn),t);break}ur(e,Ze,tn);break;case 4:if(Rn(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var a=31-Nt(r);i=1<<a,a=t[a],a>o&&(o=a),r&=~i}if(r=o,r=xe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*mS(r/1960))-r,10<r){e.timeoutHandle=Xc(ur.bind(null,e,Ze,tn),r);break}ur(e,Ze,tn);break;case 5:ur(e,Ze,tn);break;default:throw Error(R(329))}}}return Je(e,xe()),e.callbackNode===n?hg.bind(null,e):null}function wu(e,t){var n=vi;return e.current.memoizedState.isDehydrated&&(xr(e,t).flags|=256),e=Ms(e,t),e!==2&&(t=Ze,Ze=n,t!==null&&vu(t)),e}function vu(e){Ze===null?Ze=e:Ze.push.apply(Ze,e)}function yS(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var o=n[r],i=o.getSnapshot;o=o.value;try{if(!_t(i(),o))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Rn(e,t){for(t&=~Ld,t&=~Js,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Nt(t),r=1<<n;e[n]=-1,t&=~r}}function Wf(e){if(te&6)throw Error(R(327));co();var t=ds(e,0);if(!(t&1))return Je(e,xe()),null;var n=Ms(e,t);if(e.tag!==0&&n===2){var r=zc(e);r!==0&&(t=r,n=wu(e,r))}if(n===1)throw n=Wi,xr(e,0),Rn(e,t),Je(e,xe()),n;if(n===6)throw Error(R(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ur(e,Ze,tn),Je(e,xe()),null}function Id(e,t){var n=te;te|=1;try{return e(t)}finally{te=n,te===0&&(Do=xe()+500,Zs&&nr())}}function Mr(e){$n!==null&&$n.tag===0&&!(te&6)&&co();var t=te;te|=1;var n=gt.transition,r=re;try{if(gt.transition=null,re=1,e)return e()}finally{re=r,gt.transition=n,te=t,!(te&6)&&nr()}}function _d(){et=ro.current,le(ro)}function xr(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Kx(n)),Pe!==null)for(n=Pe.return;n!==null;){var r=n;switch(md(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&ys();break;case 3:To(),le(Qe),le(Be),Cd();break;case 5:Pd(r);break;case 4:To();break;case 13:le(pe);break;case 19:le(pe);break;case 10:vd(r.type._context);break;case 22:case 23:_d()}n=n.return}if(De=e,Pe=e=Gn(e.current,null),Le=et=t,Ae=0,Wi=null,Ld=Js=Tr=0,Ze=vi=null,hr!==null){for(t=0;t<hr.length;t++)if(n=hr[t],r=n.interleaved,r!==null){n.interleaved=null;var o=r.next,i=n.pending;if(i!==null){var a=i.next;i.next=o,r.next=a}n.pending=r}hr=null}return e}function fg(e,t){do{var n=Pe;try{if(wd(),Ua.current=ks,Cs){for(var r=ye.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}Cs=!1}if(Er=0,Te=ke=ye=null,gi=!1,_i=0,Rd.current=null,n===null||n.return===null){Ae=1,Wi=t,Pe=null;break}e:{var i=e,a=n.return,s=n,l=t;if(t=Le,s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var c=l,d=s,h=d.tag;if(!(d.mode&1)&&(h===0||h===11||h===15)){var m=d.alternate;m?(d.updateQueue=m.updateQueue,d.memoizedState=m.memoizedState,d.lanes=m.lanes):(d.updateQueue=null,d.memoizedState=null)}var p=kf(a);if(p!==null){p.flags&=-257,Af(p,a,s,i,t),p.mode&1&&Cf(i,c,t),t=p,l=c;var x=t.updateQueue;if(x===null){var y=new Set;y.add(l),t.updateQueue=y}else x.add(l);break e}else{if(!(t&1)){Cf(i,c,t),jd();break e}l=Error(R(426))}}else if(he&&s.mode&1){var b=kf(a);if(b!==null){!(b.flags&65536)&&(b.flags|=256),Af(b,a,s,i,t),yd(Mo(l,s));break e}}i=l=Mo(l,s),Ae!==4&&(Ae=2),vi===null?vi=[i]:vi.push(i),i=a;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var w=Yy(i,l,t);wf(i,w);break e;case 1:s=l;var g=i.type,v=i.stateNode;if(!(i.flags&128)&&(typeof g.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(Kn===null||!Kn.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t;var S=Qy(i,s,t);wf(i,S);break e}}i=i.return}while(i!==null)}yg(n)}catch(P){t=P,Pe===n&&n!==null&&(Pe=n=n.return);continue}break}while(!0)}function pg(){var e=As.current;return As.current=ks,e===null?ks:e}function jd(){(Ae===0||Ae===3||Ae===2)&&(Ae=4),De===null||!(Tr&268435455)&&!(Js&268435455)||Rn(De,Le)}function Ms(e,t){var n=te;te|=2;var r=pg();(De!==e||Le!==t)&&(tn=null,xr(e,t));do try{gS();break}catch(o){fg(e,o)}while(!0);if(wd(),te=n,As.current=r,Pe!==null)throw Error(R(261));return De=null,Le=0,Ae}function gS(){for(;Pe!==null;)mg(Pe)}function wS(){for(;Pe!==null&&!qb();)mg(Pe)}function mg(e){var t=wg(e.alternate,e,et);e.memoizedProps=e.pendingProps,t===null?yg(e):Pe=t,Rd.current=null}function yg(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=dS(n,t),n!==null){n.flags&=32767,Pe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ae=6,Pe=null;return}}else if(n=uS(n,t,et),n!==null){Pe=n;return}if(t=t.sibling,t!==null){Pe=t;return}Pe=t=e}while(t!==null);Ae===0&&(Ae=5)}function ur(e,t,n){var r=re,o=gt.transition;try{gt.transition=null,re=1,vS(e,t,n,r)}finally{gt.transition=o,re=r}return null}function vS(e,t,n,r){do co();while($n!==null);if(te&6)throw Error(R(327));n=e.finishedWork;var o=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(R(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(Jb(e,i),e===De&&(Pe=De=null,Le=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Ta||(Ta=!0,vg(us,function(){return co(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=gt.transition,gt.transition=null;var a=re;re=1;var s=te;te|=4,Rd.current=null,fS(e,n),ug(n,e),$x(Yc),hs=!!Zc,Yc=Zc=null,e.current=n,pS(n),zb(),te=s,re=a,gt.transition=i}else e.current=n;if(Ta&&(Ta=!1,$n=e,Ts=o),i=e.pendingLanes,i===0&&(Kn=null),Ub(n.stateNode),Je(e,xe()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Es)throw Es=!1,e=yu,yu=null,e;return Ts&1&&e.tag!==0&&co(),i=e.pendingLanes,i&1?e===gu?bi++:(bi=0,gu=e):bi=0,nr(),null}function co(){if($n!==null){var e=Ym(Ts),t=gt.transition,n=re;try{if(gt.transition=null,re=16>e?16:e,$n===null)var r=!1;else{if(e=$n,$n=null,Ts=0,te&6)throw Error(R(331));var o=te;for(te|=4,O=e.current;O!==null;){var i=O,a=i.child;if(O.flags&16){var s=i.deletions;if(s!==null){for(var l=0;l<s.length;l++){var c=s[l];for(O=c;O!==null;){var d=O;switch(d.tag){case 0:case 11:case 15:wi(8,d,i)}var h=d.child;if(h!==null)h.return=d,O=h;else for(;O!==null;){d=O;var m=d.sibling,p=d.return;if(sg(d),d===c){O=null;break}if(m!==null){m.return=p,O=m;break}O=p}}}var x=i.alternate;if(x!==null){var y=x.child;if(y!==null){x.child=null;do{var b=y.sibling;y.sibling=null,y=b}while(y!==null)}}O=i}}if(i.subtreeFlags&2064&&a!==null)a.return=i,O=a;else e:for(;O!==null;){if(i=O,i.flags&2048)switch(i.tag){case 0:case 11:case 15:wi(9,i,i.return)}var w=i.sibling;if(w!==null){w.return=i.return,O=w;break e}O=i.return}}var g=e.current;for(O=g;O!==null;){a=O;var v=a.child;if(a.subtreeFlags&2064&&v!==null)v.return=a,O=v;else e:for(a=g;O!==null;){if(s=O,s.flags&2048)try{switch(s.tag){case 0:case 11:case 15:Xs(9,s)}}catch(P){be(s,s.return,P)}if(s===a){O=null;break e}var S=s.sibling;if(S!==null){S.return=s.return,O=S;break e}O=s.return}}if(te=o,nr(),Kt&&typeof Kt.onPostCommitFiberRoot=="function")try{Kt.onPostCommitFiberRoot(zs,e)}catch{}r=!0}return r}finally{re=n,gt.transition=t}}return!1}function $f(e,t,n){t=Mo(n,t),t=Yy(e,t,1),e=Vn(e,t,1),t=ze(),e!==null&&(Qi(e,1,t),Je(e,t))}function be(e,t,n){if(e.tag===3)$f(e,e,n);else for(;t!==null;){if(t.tag===3){$f(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Kn===null||!Kn.has(r))){e=Mo(n,e),e=Qy(t,e,1),t=Vn(t,e,1),e=ze(),t!==null&&(Qi(t,1,e),Je(t,e));break}}t=t.return}}function bS(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=ze(),e.pingedLanes|=e.suspendedLanes&n,De===e&&(Le&n)===n&&(Ae===4||Ae===3&&(Le&130023424)===Le&&500>xe()-Nd?xr(e,0):Ld|=n),Je(e,t)}function gg(e,t){t===0&&(e.mode&1?(t=wa,wa<<=1,!(wa&130023424)&&(wa=4194304)):t=1);var n=ze();e=un(e,t),e!==null&&(Qi(e,t,n),Je(e,n))}function xS(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gg(e,n)}function SS(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(t),gg(e,n)}var wg;wg=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Qe.current)Ye=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ye=!1,cS(e,t,n);Ye=!!(e.flags&131072)}else Ye=!1,he&&t.flags&1048576&&Sy(t,vs,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Za(e,t),e=t.pendingProps;var o=ko(t,Be.current);lo(t,n),o=Ad(null,t,r,e,o,n);var i=Ed();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xe(r)?(i=!0,gs(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,xd(t),o.updater=Qs,t.stateNode=o,o._reactInternals=t,iu(t,r,e,n),t=lu(null,t,r,!0,i,n)):(t.tag=0,he&&i&&pd(t),Fe(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Za(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=CS(r),e=At(r,e),o){case 0:t=su(null,t,r,e,n);break e;case 1:t=Mf(null,t,r,e,n);break e;case 11:t=Ef(null,t,r,e,n);break e;case 14:t=Tf(null,t,r,At(r.type,e),n);break e}throw Error(R(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),su(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),Mf(e,t,r,o,n);case 3:e:{if(tg(t),e===null)throw Error(R(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Ty(e,t),Ss(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Mo(Error(R(423)),t),t=Df(e,t,r,n,o);break e}else if(r!==o){o=Mo(Error(R(424)),t),t=Df(e,t,r,n,o);break e}else for(nt=zn(t.stateNode.containerInfo.firstChild),rt=t,he=!0,Rt=null,n=Ay(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ao(),r===o){t=dn(e,t,n);break e}Fe(e,t,r,n)}t=t.child}return t;case 5:return My(t),e===null&&nu(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,Qc(r,o)?a=null:i!==null&&Qc(r,i)&&(t.flags|=32),eg(e,t),Fe(e,t,a,n),t.child;case 6:return e===null&&nu(t),null;case 13:return ng(e,t,n);case 4:return Sd(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Eo(t,null,r,n):Fe(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),Ef(e,t,r,o,n);case 7:return Fe(e,t,t.pendingProps,n),t.child;case 8:return Fe(e,t,t.pendingProps.children,n),t.child;case 12:return Fe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,ie(bs,r._currentValue),r._currentValue=a,i!==null)if(_t(i.value,a)){if(i.children===o.children&&!Qe.current){t=dn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){a=i.child;for(var l=s.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=sn(-1,n&-n),l.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var d=c.pending;d===null?l.next=l:(l.next=d.next,d.next=l),c.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),ru(i.return,n,t),s.lanes|=n;break}l=l.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(R(341));a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),ru(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Fe(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,lo(t,n),o=vt(o),r=r(o),t.flags|=1,Fe(e,t,r,n),t.child;case 14:return r=t.type,o=At(r,t.pendingProps),o=At(r.type,o),Tf(e,t,r,o,n);case 15:return Xy(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),Za(e,t),t.tag=1,Xe(r)?(e=!0,gs(t)):e=!1,lo(t,n),Zy(t,r,o),iu(t,r,o,n),lu(null,t,r,!0,e,n);case 19:return rg(e,t,n);case 22:return Jy(e,t,n)}throw Error(R(156,t.tag))};function vg(e,t){return Km(e,t)}function PS(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function yt(e,t,n,r){return new PS(e,t,n,r)}function Od(e){return e=e.prototype,!(!e||!e.isReactComponent)}function CS(e){if(typeof e=="function")return Od(e)?1:0;if(e!=null){if(e=e.$$typeof,e===nd)return 11;if(e===rd)return 14}return 2}function Gn(e,t){var n=e.alternate;return n===null?(n=yt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deleti
vendor: 9,300 bytes, line 41
41ons=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Xa(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")Od(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Ur:return Sr(n.children,o,i,t);case td:a=8,o|=8;break;case Mc:return e=yt(12,n,t,o|2),e.elementType=Mc,e.lanes=i,e;case Dc:return e=yt(13,n,t,o),e.elementType=Dc,e.lanes=i,e;case Rc:return e=yt(19,n,t,o),e.elementType=Rc,e.lanes=i,e;case Mm:return el(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Em:a=10;break e;case Tm:a=9;break e;case nd:a=11;break e;case rd:a=14;break e;case Tn:a=16,r=null;break e}throw Error(R(130,e==null?e:typeof e,""))}return t=yt(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Sr(e,t,n,r){return e=yt(7,e,r,t),e.lanes=n,e}function el(e,t,n,r){return e=yt(22,e,r,t),e.elementType=Mm,e.lanes=n,e.stateNode={isHidden:!1},e}function tc(e,t,n){return e=yt(6,e,null,t),e.lanes=n,e}function nc(e,t,n){return t=yt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function kS(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=jl(0),this.expirationTimes=jl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Wd(e,t,n,r,o,i,a,s,l){return e=new kS(e,t,n,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=yt(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},xd(i),e}function AS(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Kr,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function bg(e){if(!e)return Qn;e=e._reactInternals;e:{if(Lr(e)!==e||e.tag!==1)throw Error(R(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Xe(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(R(171))}if(e.tag===1){var n=e.type;if(Xe(n))return by(e,n,t)}return t}function xg(e,t,n,r,o,i,a,s,l){return e=Wd(n,r,!0,e,o,i,a,s,l),e.context=bg(null),n=e.current,r=ze(),o=Un(n),i=sn(r,o),i.callback=t??null,Vn(n,i,o),e.current.lanes=o,Qi(e,o,r),Je(e,r),e}function tl(e,t,n,r){var o=t.current,i=ze(),a=Un(o);return n=bg(n),t.context===null?t.context=n:t.pendingContext=n,t=sn(i,a),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Vn(o,t,a),e!==null&&(It(e,o,a,i),Ka(e,o,a)),a}function Ds(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Bf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function $d(e,t){Bf(e,t),(e=e.alternate)&&Bf(e,t)}function ES(){return null}var Sg=typeof reportError=="function"?reportError:function(e){console.error(e)};function Bd(e){this._internalRoot=e}nl.prototype.render=Bd.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(R(409));tl(e,t,null,null)};nl.prototype.unmount=Bd.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Mr(function(){tl(null,e,null,null)}),t[cn]=null}};function nl(e){this._internalRoot=e}nl.prototype.unstable_scheduleHydration=function(e){if(e){var t=Jm();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Dn.length&&t!==0&&t<Dn[n].priority;n++);Dn.splice(n,0,e),n===0&&ty(e)}};function Hd(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function rl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Hf(){}function TS(e,t,n,r,o){if(o){if(typeof r=="function"){var i=r;r=function(){var c=Ds(a);i.call(c)}}var a=xg(t,r,e,0,null,!1,!1,"",Hf);return e._reactRootContainer=a,e[cn]=a.current,Di(e.nodeType===8?e.parentNode:e),Mr(),a}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var s=r;r=function(){var c=Ds(l);s.call(c)}}var l=Wd(e,0,!1,null,null,!1,!1,"",Hf);return e._reactRootContainer=l,e[cn]=l.current,Di(e.nodeType===8?e.parentNode:e),Mr(function(){tl(t,l,n,r)}),l}function ol(e,t,n,r,o){var i=n._reactRootContainer;if(i){var a=i;if(typeof o=="function"){var s=o;o=function(){var l=Ds(a);s.call(l)}}tl(t,a,e,o)}else a=TS(n,t,e,o,r);return Ds(a)}Qm=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ci(t.pendingLanes);n!==0&&(ad(t,n|1),Je(t,xe()),!(te&6)&&(Do=xe()+500,nr()))}break;case 13:Mr(function(){var r=un(e,1);if(r!==null){var o=ze();It(r,e,1,o)}}),$d(e,1)}};sd=function(e){if(e.tag===13){var t=un(e,134217728);if(t!==null){var n=ze();It(t,e,134217728,n)}$d(e,134217728)}};Xm=function(e){if(e.tag===13){var t=Un(e),n=un(e,t);if(n!==null){var r=ze();It(n,e,t,r)}$d(e,t)}};Jm=function(){return re};ey=function(e,t){var n=re;try{return re=e,t()}finally{re=n}};Hc=function(e,t,n){switch(t){case"input":if(Ic(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=Gs(r);if(!o)throw Error(R(90));Rm(r),Ic(r,o)}}}break;case"textarea":Nm(e,n);break;case"select":t=n.value,t!=null&&oo(e,!!n.multiple,t,!1)}};Bm=Id;Hm=Mr;var MS={usingClientEntryPoint:!1,Events:[Ji,Qr,Gs,Wm,$m,Id]},ei={findFiberByHostInstance:dr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},DS={bundleType:ei.bundleType,version:ei.version,rendererPackageName:ei.rendererPackageName,rendererConfig:ei.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:mn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=zm(e),e===null?null:e.stateNode},findFiberByHostInstance:ei.findFiberByHostInstance||ES,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ma=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ma.isDisabled&&Ma.supportsFiber)try{zs=Ma.inject(DS),Kt=Ma}catch{}}st.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=MS;st.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Hd(t))throw Error(R(200));return AS(e,t,null,n)};st.createRoot=function(e,t){if(!Hd(e))throw Error(R(299));var n=!1,r="",o=Sg;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=Wd(e,1,!1,null,null,n,!1,r,o),e[cn]=t.current,Di(e.nodeType===8?e.parentNode:e),new Bd(t)};st.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(R(188)):(e=Object.keys(e).join(","),Error(R(268,e)));return e=zm(t),e=e===null?null:e.stateNode,e};st.flushSync=function(e){return Mr(e)};st.hydrate=function(e,t,n){if(!rl(t))throw Error(R(200));return ol(null,e,t,!0,n)};st.hydrateRoot=function(e,t,n){if(!Hd(e))throw Error(R(405));var r=n!=null&&n.hydratedSources||null,o=!1,i="",a=Sg;if(n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(a=n.onRecoverableError)),t=xg(t,null,e,1,n??null,o,!1,i,a),e[cn]=t.current,Di(e),r)for(e=0;e<r.length;e++)n=r[e],o=n._getVersion,o=o(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new nl(t)};st.render=function(e,t,n){if(!rl(t))throw Error(R(200));return ol(null,e,t,!1,n)};st.unmountComponentAtNode=function(e){if(!rl(e))throw Error(R(40));return e._reactRootContainer?(Mr(function(){ol(null,null,e,!1,function(){e._reactRootContainer=null,e[cn]=null})}),!0):!1};st.unstable_batchedUpdates=Id;st.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!rl(n))throw Error(R(200));if(e==null||e._reactInternals===void 0)throw Error(R(38));return ol(e,t,n,!1,r)};st.version="18.3.1-next-f1338f8080-20240426";function Pg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Pg)}catch(e){console.error(e)}}Pg(),Pm.exports=st;var ta=Pm.exports;const Cg=Zi(ta);var kg,Ag,Ff=ta;Ag=Ff.createRoot,kg=Ff.hydrateRoot;const RS="modulepreload",LS=function(e){return"/"+e},qf={}
41,z=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),s=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));o=Promise.allSettled(n.map(l=>{if(l=LS(l),l in qf)return;qf[l]=!0;const c=l.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${d}`))return;const h=document.createElement("link");if(h.rel=c?"stylesheet":RS,c||(h.as="script"),h.crossOrigin="",h.href=l,s&&h.setAttribute("nonce",s),document.head.appendChild(h),c)return new Promise((m,p)=>{h.addEventListener("load",m),h.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return o.then(a=>{for(const s of a||[])s.status==="rejected"&&i(s.reason);return t().catch(i)})};var il=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},al=typeof window>"u"||"Deno"in globalThis;function Et(){}function NS(e,t){return typeof e=="function"?e(t):e}function IS(e){return typeof e=="number"&&e>=0&&e!==1/0}function _S(e,t){return Math.max(e+(t||0)-Date.now(),0)}function bu(e,t){return typeof e=="function"?e(t):e}function jS(e,t){return typeof e=="function"?e(t):e}function zf(e,t){const{type:n="all",exact:r,fetchStatus:o,predicate:i,queryKey:a,stale:s}=e;if(a){if(r){if(t.queryHash!==Fd(a,t.options))return!1}else if(!Bi(t.queryKey,a))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||o&&o!==t.state.fetchStatus||i&&!i(t))}function Vf(e,t){const{exact:n,status:r,predicate:o,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(n){if($i(t.options.mutationKey)!==$i(i))return!1}else if(!Bi(t.options.mutationKey,i))return!1}return!(r&&t.state.status!==r||o&&!o(t))}function Fd(e,t){return((t==null?void 0:t.queryKeyHashFn)||$i)(e)}function $i(e){return JSON.stringify(e,(t,n)=>xu(n)?Object.keys(n).sort().reduce((r,o)=>(r[o]=n[o],r),{}):n)}function Bi(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Bi(e[n],t[n])):!1}function Eg(e,t){if(e===t)return e;const n=Kf(e)&&Kf(t);if(n||xu(e)&&xu(t)){const r=n?e:Object.keys(e),o=r.length,i=n?t:Object.keys(t),a=i.length,s=n?[]:{},l=new Set(r);let c=0;for(let d=0;d<a;d++){const h=n?d:i[d];(!n&&l.has(h)||n)&&e[h]===void 0&&t[h]===void 0?(s[h]=void 0,c++):(s[h]=Eg(e[h],t[h]),s[h]===e[h]&&e[h]!==void 0&&c++)}return o===a&&c===o?e:s}return t}function Kf(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function xu(e){if(!Uf(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!Uf(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Uf(e){return Object.prototype.toString.call(e)==="[object Object]"}function OS(e){return new Promise(t=>{setTimeout(t,e)})}function WS(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Eg(e,t):t}function $S(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function BS(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var qd=Symbol();function Tg(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===qd?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var pr,Nn,yo,om,HS=(om=class extends il{constructor(){super();ne(this,pr);ne(this,Nn);ne(this,yo);G(this,yo,t=>{if(!al&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){M(this,Nn)||this.setEventListener(M(this,yo))}onUnsubscribe(){var t;this.hasListeners()||((t=M(this,Nn))==null||t.call(this),G(this,Nn,void 0))}setEventListener(t){var n;G(this,yo,t),(n=M(this,Nn))==null||n.call(this),G(this,Nn,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){M(this,pr)!==t&&(G(this,pr,t),this.onFocus())}onFocus(){const t=this.isFocused();
vendor: 4,517 bytes, line 41
41this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof M(this,pr)=="boolean"?M(this,pr):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},pr=new WeakMap,Nn=new WeakMap,yo=new WeakMap,om),Mg=new HS,go,In,wo,im,FS=(im=class extends il{constructor(){super();ne(this,go,!0);ne(this,In);ne(this,wo);G(this,wo,t=>{if(!al&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){M(this,In)||this.setEventListener(M(this,wo))}onUnsubscribe(){var t;this.hasListeners()||((t=M(this,In))==null||t.call(this),G(this,In,void 0))}setEventListener(t){var n;G(this,wo,t),(n=M(this,In))==null||n.call(this),G(this,In,t(this.setOnline.bind(this)))}setOnline(t){M(this,go)!==t&&(G(this,go,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return M(this,go)}},go=new WeakMap,In=new WeakMap,wo=new WeakMap,im),Rs=new FS;function qS(){let e,t;const n=new Promise((o,i)=>{e=o,t=i});n.status="pending",n.catch(()=>{});function r(o){Object.assign(n,o),delete n.resolve,delete n.reject}return n.resolve=o=>{r({status:"fulfilled",value:o}),e(o)},n.reject=o=>{r({status:"rejected",reason:o}),t(o)},n}function zS(e){return Math.min(1e3*2**e,3e4)}function Dg(e){return(e??"online")==="online"?Rs.isOnline():!0}var Rg=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function rc(e){return e instanceof Rg}function Lg(e){let t=!1,n=0,r=!1,o;const i=qS(),a=y=>{var b;r||(m(new Rg(y)),(b=e.abort)==null||b.call(e))},s=()=>{t=!0},l=()=>{t=!1},c=()=>Mg.isFocused()&&(e.networkMode==="always"||Rs.isOnline())&&e.canRun(),d=()=>Dg(e.networkMode)&&e.canRun(),h=y=>{var b;r||(r=!0,(b=e.onSuccess)==null||b.call(e,y),o==null||o(),i.resolve(y))},m=y=>{var b;r||(r=!0,(b=e.onError)==null||b.call(e,y),o==null||o(),i.reject(y))},p=()=>new Promise(y=>{var b;o=w=>{(r||c())&&y(w)},(b=e.onPause)==null||b.call(e)}).then(()=>{var y;o=void 0,r||(y=e.onContinue)==null||y.call(e)}),x=()=>{if(r)return;let y;const b=n===0?e.initialPromise:void 0;try{y=b??e.fn()}catch(w){y=Promise.reject(w)}Promise.resolve(y).then(h).catch(w=>{var k;if(r)return;const g=e.retry??(al?0:3),v=e.retryDelay??zS,S=typeof v=="function"?v(n,w):v,P=g===!0||typeof g=="number"&&n<g||typeof g=="function"&&g(n,w);if(t||!P){m(w);return}n++,(k=e.onFail)==null||k.call(e,n,w),OS(S).then(()=>c()?void 0:p()).then(()=>{t?m(w):x()})})};return{promise:i,cancel:a,continue:()=>(o==null||o(),i),cancelRetry:s,continueRetry:l,canStart:d,start:()=>(d()?x():p().then(x),i)}}var VS=e=>setTimeout(e,0);function KS(){let e=[],t=0,n=s=>{s()},r=s=>{s()},o=VS;const i=s=>{t?e.push(s):o(()=>{n(s)})},a=()=>{const s=e;e=[],s.length&&o(()=>{r(()=>{s.forEach(l=>{n(l)})})})};return{batch:s=>{let l;t++;try{l=s()}finally{t--,t||a()}return l},batchCalls:s=>(...l)=>{i(()=>{s(...l)})},schedule:i,setNotifyFunction:s=>{n=s},setBatchNotifyFunction:s=>{r=s},setScheduler:s=>{o=s}}}var qe=KS(),mr,am,Ng=(am=class{constructor(){ne(this,mr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),IS(this.gcTime)&&G(this,mr,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(al?1/0:5*60*1e3))}clearGcTimeout(){M(this,mr)&&(clearTimeout(M(this,mr)),G(this,mr,void 0))}},mr=new WeakMap,am),vo,yr,ft,gr,We,Ui,wr,Tt,en,sm,US=(sm=class extends Ng{constructor(t){super();ne(this,Tt);ne(this,vo);ne(this,yr);ne(this,ft);ne(this,gr);ne(this,We);ne(this,Ui);ne(this,wr);G(this,wr,!1),G(this,Ui,t.defaultOptions),this.setOptions(t.options),this.observers=[],G(this,gr,t.client),G(this,ft,M(this,gr).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,G(this,vo,ZS(this.options)),this.state=t.state??M(this,vo),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=M(this,We))==null?void 0:t.promise}setOptions(t){this.options={...M(this,Ui),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&M(this,ft).remove(this)}setData(t,n){const r=WS(this.state.data,t,this.options);return _e(this,Tt,en).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){_e(this,Tt,en).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,o;const n=(r=M(this,We))==null?void 0:r.promise;
vendor: 1,669 bytes, line 41
41return(o=M(this,We))==null||o.cancel(t),n?n.then(Et).catch(Et):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(M(this,vo))}isActive(){return this.observers.some(t=>jS(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===qd||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>bu(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!_S(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=M(this,We))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=M(this,We))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),M(this,ft).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(M(this,We)&&(M(this,wr)?M(this,We).cancel({revert:!0}):M(this,We).cancelRetry()),this.scheduleGc()),M(this,ft).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||_e(this,Tt,en).call(this,{type:"invalidate"})}
vendor: 4,422 bytes, line 41
41fetch(t,n){var c,d,h;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(M(this,We))return M(this,We).continueRetry(),M(this,We).promise}if(t&&this.setOptions(t),!this.options.queryFn){const m=this.observers.find(p=>p.options.queryFn);m&&this.setOptions(m.options)}const r=new AbortController,o=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(G(this,wr,!0),r.signal)})},i=()=>{const m=Tg(this.options,n),x=(()=>{const y={client:M(this,gr),queryKey:this.queryKey,meta:this.meta};return o(y),y})();return G(this,wr,!1),this.options.persister?this.options.persister(m,x,this):m(x)},s=(()=>{const m={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:M(this,gr),state:this.state,fetchFn:i};return o(m),m})();(c=this.options.behavior)==null||c.onFetch(s,this),G(this,yr,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=s.fetchOptions)==null?void 0:d.meta))&&_e(this,Tt,en).call(this,{type:"fetch",meta:(h=s.fetchOptions)==null?void 0:h.meta});const l=m=>{var p,x,y,b;rc(m)&&m.silent||_e(this,Tt,en).call(this,{type:"error",error:m}),rc(m)||((x=(p=M(this,ft).config).onError)==null||x.call(p,m,this),(b=(y=M(this,ft).config).onSettled)==null||b.call(y,this.state.data,m,this)),this.scheduleGc()};return G(this,We,Lg({initialPromise:n==null?void 0:n.initialPromise,fn:s.fetchFn,abort:r.abort.bind(r),onSuccess:m=>{var p,x,y,b;if(m===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(m)}catch(w){l(w);return}(x=(p=M(this,ft).config).onSuccess)==null||x.call(p,m,this),(b=(y=M(this,ft).config).onSettled)==null||b.call(y,m,this.state.error,this),this.scheduleGc()},onError:l,onFail:(m,p)=>{_e(this,Tt,en).call(this,{type:"failed",failureCount:m,error:p})},onPause:()=>{_e(this,Tt,en).call(this,{type:"pause"})},onContinue:()=>{_e(this,Tt,en).call(this,{type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0})),M(this,We).start()}},vo=new WeakMap,yr=new WeakMap,ft=new WeakMap,gr=new WeakMap,We=new WeakMap,Ui=new WeakMap,wr=new WeakMap,Tt=new WeakSet,en=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...GS(r.data,this.options),fetchMeta:t.meta??null};case"success":return G(this,yr,void 0),{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const o=t.error;return rc(o)&&o.revert&&M(this,yr)?{...M(this,yr),fetchStatus:"idle"}:{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),qe.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),M(this,ft).notify({query:this,type:"updated",action:t})})},sm);function GS(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Dg(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function ZS(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Ht,lm,YS=(lm=class extends il{constructor(t={}){super();ne(this,Ht);this.config=t,G(this,Ht,new Map)}build(t,n,r){const o=n.queryKey,i=n.queryHash??Fd(o,n);let a=this.get(i);return a||(a=new US({client:t,queryKey:o,queryHash:i,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(o)}),this.add(a)),a}add(t){M(this,Ht).has(t.queryHash)||(M(this,Ht).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=M(this,Ht).get(t.queryHash);n&&(t.destroy(),n===t&&M(this,Ht).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){qe.batch(()=>
41{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return M(this,Ht).get(t)}getAll(){return[...M(this,Ht).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>zf(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>zf(t,r)):n}notify(t){qe.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){qe.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){qe.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Ht=new WeakMap,lm),Ft,He,vr,qt,An,cm,QS=(cm=class extends Ng{constructor(t){super();ne(this,qt);ne(this,Ft);ne(this,He);ne(this,vr);this.mutationId=t.mutationId,G(this,He,t.mutationCache),G(this,Ft,[]),this.state=t.state||XS(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){M(this,Ft).includes(t)||(M(this,Ft).push(t),this.clearGcTimeout(),M(this,He).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){G(this,Ft,M(this,Ft).filter(n=>n!==t)),this.scheduleGc(),M(this,He).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){M(this,Ft).length||(this.state.status==="pending"?this.scheduleGc():M(this,He).remove(this))}continue(){var t;return((t=M(this,vr))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,a,s,l,c,d,h,m,p,x,y,b,w,g,v,S,P,k,A,T;const n=()=>{_e(this,qt,An).call(this,{type:"continue"})};G(this,vr,Lg({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(N,L)=>{_e(this,qt,An).call(this,{type:"failed",failureCount:N,error:L})},onPause:()=>{_e(this,qt,An).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>M(this,He).canRun(this)}));const r=this.state.status==="pending",o=!M(this,vr).canStart();try{if(r)n();else{_e(this,qt,An).call(this,{type:"pending",variables:t,isPaused:o}),await((a=(i=M(this,He).config).onMutate)==null?void 0:a.call(i,t,this));const L=await((l=(s=this.options).onMutate)==null?void 0:l.call(s,t));L!==this.state.context&&_e(this,qt,An).call(this,{type:"pending",context:L,variables:t,isPaused:o})}const N=await M(this,vr).start();return await((d=(c=M(this,He).config).onSuccess)==null?void 0:d.call(c,N,t,this.state.context,this)),await((m=(h=this.options).onSuccess)==null?void 0:m.call(h,N,t,this.state.context)),await((x=(p=M(this,He).config).onSettled)==null?void 0:x.call(p,N,null,this.state.variables,this.state.context,this)),await((b=(y=this.options).onSettled)==null?void 0:b.call(y,N,null,t,this.state.context)),_e(this,qt,An).call(this,{type:"success",data:N}),N}catch(N){try{throw await((g=(w=M(this,He).config).onError)==null?void 0:g.call(w,N,t,this.state.context,this)),await((S=(v=this.options).onError)==null?void 0:S.call(v,N,t,this.state.context)),await((k=(P=M(this,He).config).onSettled)==null?void 0:k.call(P,void 0,N,this.state.variables,this.state.context,this)),await((T=(A=this.options).onSettled)==null?void 0:T.call(A,void 0,N,t,this.state.context)),N}finally{_e(this,qt,An).call(this,{type:"error",error:N})}}finally{M(this,He).runNext(this)}}},Ft=new WeakMap,He=new WeakMap,vr=new WeakMap,qt=new WeakSet,An=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),qe.batch(()=>{M(this,Ft).forEach(r=>{r.onMutationUpdate(t)}),M(this,He).notify({mutation:this,type:"updated",action:t})})},cm);function XS(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var rn,Mt,Gi,um,JS=(um=class extends il{constructor(t={}){super();ne(this,rn);ne(this,Mt);ne(this,Gi);this.config=t,G(this,rn,new Set),G(this,Mt,new Map),G(this,Gi,0)}build(t,n,r){const o=new QS({mutationCache:this,mutationId:++ha(this,Gi)._,options:t.defaultMutationOptions(n),state:r});return this.add(o),o}add(t){M(this,rn).add(t);const n=Da(t);if(typeof n=="string"){const r=M(this,Mt).get(n);r?r.push(t):M(this,Mt).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(M(this,rn).delete(t)){const n=Da(t);if(typeof n=="string"){const r=M(this,Mt).get(n);if(r)if(r.length>1){const o=r.indexOf(t);o!==-1&&r.splice(o,1)}else r[0]===t&&M(this,Mt).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=Da(t);if(typeof n=="string"){const r=M(this,Mt).get(n),o=r==null?void 0:r.find(i=>i.state.status==="pending");return!o||o===t}else return!0}runNext(t){var r;const n=Da(t);if(typeof n=="string"){const o=(r=M(this,Mt).get(n))==null?void 0:r.find(i=>
41i!==t&&i.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){qe.batch(()=>{M(this,rn).forEach(t=>{this.notify({type:"removed",mutation:t})}),M(this,rn).clear(),M(this,Mt).clear()})}getAll(){return Array.from(M(this,rn))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Vf(n,r))}findAll(t={}){return this.getAll().filter(n=>Vf(t,n))}notify(t){qe.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return qe.batch(()=>Promise.all(t.map(n=>n.continue().catch(Et))))}},rn=new WeakMap,Mt=new WeakMap,Gi=new WeakMap,um);function Da(e){var t;return(t=e.options.scope)==null?void 0:t.id}function Gf(e){return{onFetch:(t,n)=>{var d,h,m,p,x;const r=t.options,o=(m=(h=(d=t.fetchOptions)==null?void 0:d.meta)==null?void 0:h.fetchMore)==null?void 0:m.direction,i=((p=t.state.data)==null?void 0:p.pages)||[],a=((x=t.state.data)==null?void 0:x.pageParams)||[];let s={pages:[],pageParams:[]},l=0;const c=async()=>{let y=!1;const b=v=>{Object.defineProperty(v,"signal",{enumerable:!0,get:()=>(t.signal.aborted?y=!0:t.signal.addEventListener("abort",()=>{y=!0}),t.signal)})},w=Tg(t.options,t.fetchOptions),g=async(v,S,P)=>{if(y)return Promise.reject();if(S==null&&v.pages.length)return Promise.resolve(v);const A=(()=>{const q={client:t.client,queryKey:t.queryKey,pageParam:S,direction:P?"backward":"forward",meta:t.options.meta};return b(q),q})(),T=await w(A),{maxPages:N}=t.options,L=P?BS:$S;return{pages:L(v.pages,T,N),pageParams:L(v.pageParams,S,N)}};if(o&&i.length){const v=o==="backward",S=v?eP:Zf,P={pages:i,pageParams:a},k=S(r,P);s=await g(P,k,v)}else{const v=e??i.length;do{const S=l===0?a[0]??r.initialPageParam:Zf(r,s);if(l>0&&S==null)break;s=await g(s,S),l++}while(l<v)}return s};t.options.persister?t.fetchFn=()=>{var y,b;return(b=(y=t.options).persister)==null?void 0:b.call(y,c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=c}}}function Zf(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function eP(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var ve,_n,jn,bo,xo,On,So,Po,dm,tP=(dm=class{constructor(e={}){ne(this,ve);ne(this,_n);ne(this,jn);ne(this,bo);ne(this,xo);ne(this,On);ne(this,So);ne(this,Po);G(this,ve,e.queryCache||new YS),G(this,_n,e.mutationCache||new JS),G(this,jn,e.defaultOptions||{}),G(this,bo,new Map),G(this,xo,new Map),G(this,On,0)}mount(){ha(this,On)._++,M(this,On)===1&&(G(this,So,Mg.subscribe(async e=>{e&&(await this.resumePausedMutations(),M(this,ve).onFocus())})),G(this,Po,Rs.subscribe(async e=>{e&&(await this.resumePausedMutations(),M(this,ve).onOnline())})))}unmount(){var e,t;ha(this,On)._--,M(this,On)===0&&((e=M(this,So))==null||e.call(this),G(this,So,void 0),(t=M(this,Po))==null||t.call(this),G(this,Po,void 0))}isFetching(e){return M(this,ve).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return M(this,_n).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=M(this,ve).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=M(this,ve).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(bu(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return M(this,ve).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),o=M(this,ve).get(r.queryHash),i=o==null?void 0:o.state.data,a=NS(t,i);if(a!==void 0)return M(this,ve).build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return qe.batch(()=>M(this,ve).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=M(this,ve).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=M(this,ve);qe.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=M(this,ve);return qe.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=qe.batch(()=>M(this,ve).findAll(e).map(o=>o.cancel(n)));
41return Promise.all(r).then(Et).catch(Et)}invalidateQueries(e,t={}){return qe.batch(()=>(M(this,ve).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=qe.batch(()=>M(this,ve).findAll(e).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let i=o.fetch(void 0,n);return n.throwOnError||(i=i.catch(Et)),o.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(r).then(Et)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=M(this,ve).build(this,t);return n.isStaleByTime(bu(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Et).catch(Et)}fetchInfiniteQuery(e){return e.behavior=Gf(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Et).catch(Et)}ensureInfiniteQueryData(e){return e.behavior=Gf(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Rs.isOnline()?M(this,_n).resumePausedMutations():Promise.resolve()}getQueryCache(){return M(this,ve)}getMutationCache(){return M(this,_n)}getDefaultOptions(){return M(this,jn)}setDefaultOptions(e){G(this,jn,e)}setQueryDefaults(e,t){M(this,bo).set($i(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...M(this,bo).values()],n={};return t.forEach(r=>{Bi(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){M(this,xo).set($i(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...M(this,xo).values()],n={};return t.forEach(r=>{Bi(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...M(this,jn).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Fd(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===qd&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...M(this,jn).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){M(this,ve).clear(),M(this,_n).clear()}},ve=new WeakMap,_n=new WeakMap,jn=new WeakMap,bo=new WeakMap,xo=new WeakMap,On=new WeakMap,So=new WeakMap,Po=new WeakMap,dm),nP=f.createContext(void 0),rP=({client:e,children:t})=>(f.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),u.jsx(nP.Provider,{value:e,children:t}));/** 42 * @remix-run/router v1.23.4 43 * 44 * Copyright (c) Remix Software Inc. 45 * 46 * This source code is licensed under the MIT license found in the 47 * LICENSE.md file in the root directory of this source tree. 48 * 49 * @license MIT 50 */function Hi(){return Hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Hi.apply(null,arguments)}var Bn;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Bn||(Bn={}));const Yf="popstate";function oP(e){e===void 0&&(e={});function t(r,o){let{pathname:i,search:a,hash:s}=r.location;return Su("",{pathname:i,search:a,hash:s},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(r,o){return typeof o=="string"?o:Ls(o)}return aP(t,n,null,e)}function Se(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ig(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function iP(){return Math.random().toString(36).substr(2,8)}function Qf(e,t){return{usr:e.state,key:e.key,idx:t}}function Su(e,t,n,r){return n===void 0&&(n=null),Hi({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Wo(t):t,{state:n,key:t&&t.key||r||iP()})}function Ls(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Wo(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function aP(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,s=Bn.Pop,l=null,c=d();c==null&&(c=0,a.replaceState(Hi({},a.state,{idx:c}),""));function d(){return(a.state||{idx:null}).idx}function h(){s=Bn.Pop;let b=d(),w=b==null?null:b-c;c=b,l&&l({action:s,location:y.location,delta:w})}function m(b,w){s=Bn.Push;let g=Su(y.location,b,w);c=d()+1;let v=Qf(g,c),S=y.createHref(g);try{a.pushState(v,"",S)}
vendor: 3,319 bytes, line 50
50catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;o.location.assign(S)}i&&l&&l({action:s,location:y.location,delta:1})}function p(b,w){s=Bn.Replace;let g=Su(y.location,b,w);c=d();let v=Qf(g,c),S=y.createHref(g);a.replaceState(v,"",S),i&&l&&l({action:s,location:y.location,delta:0})}function x(b){let w=o.location.origin!=="null"?o.location.origin:o.location.href,g=typeof b=="string"?b:Ls(b);return g=g.replace(/ $/,"%20"),Se(w,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,w)}let y={get action(){return s},get location(){return e(o,a)},listen(b){if(l)throw new Error("A history only accepts one active listener");return o.addEventListener(Yf,h),l=b,()=>{o.removeEventListener(Yf,h),l=null}},createHref(b){return t(o,b)},createURL:x,encodeLocation(b){let w=x(b);return{pathname:w.pathname,search:w.search,hash:w.hash}},push:m,replace:p,go(b){return a.go(b)}};return y}var Xf;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Xf||(Xf={}));function sP(e,t,n){return n===void 0&&(n="/"),lP(e,t,n,!1)}function lP(e,t,n,r){let o=typeof t=="string"?Wo(t):t,i=zd(o.pathname||"/",n);if(i==null)return null;let a=_g(e);cP(a);let s=null,l=bP(i);for(let c=0;s==null&&c<a.length;++c)s=wP(a[c],l,r);return s}function _g(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let o=(i,a,s)=>{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};l.relativePath.startsWith("/")&&(Se(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=Zn([r,l.relativePath]),d=n.concat(l);i.children&&i.children.length>0&&(Se(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),_g(i.children,t,d,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:yP(c,i.index),routesMeta:d})};return e.forEach((i,a)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,a);else for(let l of jg(i.path))o(i,a,l)}),t}function jg(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=jg(r.join("/")),s=[];return s.push(...a.map(l=>l===""?i:[i,l].join("/"))),o&&s.push(...a),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function cP(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:gP(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const uP=/^:[\w-]+$/,dP=3,hP=2,fP=1,pP=10,mP=-2,Jf=e=>e==="*";function yP(e,t){let n=e.split("/"),r=n.length;return n.some(Jf)&&(r+=mP),t&&(r+=hP),n.filter(o=>!Jf(o)).reduce((o,i)=>o+(uP.test(i)?dP:i===""?fP:pP),r)}function gP(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function wP(e,t,n){let{routesMeta:r}=e,o={},i="/",a=[];for(let s=0;s<r.length;++s){let l=r[s],c=s===r.length-1,d=i==="/"?t:t.slice(i.length)||"/",h=ep({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},d),m=l.route;if(!h&&c&&n&&!r[r.length-1].route.index&&(h=ep({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},d)),!h)return null;
vendor: 6,959 bytes, lines 50-59
50Object.assign(o,h.params),a.push({params:o,pathname:Zn([i,h.pathname]),pathnameBase:PP(Zn([i,h.pathnameBase])),route:m}),h.pathnameBase!=="/"&&(i=Zn([i,h.pathnameBase]))}return a}function ep(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=vP(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),s=o.slice(1);return{params:r.reduce((c,d,h)=>{let{paramName:m,isOptional:p}=d;if(m==="*"){let y=s[h]||"";a=i.slice(0,i.length-y.length).replace(/(.)\/+$/,"$1")}const x=s[h];return p&&!x?c[m]=void 0:c[m]=(x||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:a,pattern:e}}function vP(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Ig(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,s,l)=>(r.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function bP(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ig(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function zd(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function xP(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?Wo(e):e,i;return n?(n=Og(n),n.startsWith("/")?i=tp(n.substring(1),"/"):i=tp(n,t)):i=t,{pathname:i,search:CP(r),hash:kP(o)}}function tp(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function oc(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function SP(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Vd(e,t){let n=SP(e);return t?n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Kd(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=Wo(e):(o=Hi({},e),Se(!o.pathname||!o.pathname.includes("?"),oc("?","pathname","search",o)),Se(!o.pathname||!o.pathname.includes("#"),oc("#","pathname","hash",o)),Se(!o.search||!o.search.includes("#"),oc("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,s;if(a==null)s=n;else{let h=t.length-1;if(!r&&a.startsWith("..")){let m=a.split("/");for(;m[0]==="..";)m.shift(),h-=1;o.pathname=m.join("/")}s=h>=0?t[h]:"/"}let l=xP(o,s),c=a&&a!=="/"&&a.endsWith("/"),d=(i||a===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||d)&&(l.pathname+="/"),l}const Og=e=>e.replace(/\/\/+/g,"/"),Zn=e=>Og(e.join("/")),PP=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),CP=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,kP=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function AP(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Wg=["post","put","patch","delete"];new Set(Wg);const EP=["get",...Wg];new Set(EP);/** 51 * React Router v6.30.6 52 * 53 * Copyright (c) Remix Software Inc. 54 * 55 * This source code is licensed under the MIT license found in the 56 * LICENSE.md file in the root directory of this source tree. 57 * 58 * @license MIT 59 */function Fi(){return Fi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fi.apply(null,arguments)}const Ud=f.createContext(null),TP=f.createContext(null),rr=f.createContext(null),sl=f.createContext(null),yn=f.createContext({outlet:null,matches:[],isDataRoute:!1}),$g=f.createContext(null);function MP(e,t){let{relative:n}=t===void 0?{}:t;$o()||Se(!1);let{basename:r,navigator:o}=f.useContext(rr),{hash:i,pathname:a,search:s}=qg(e,{relative:n}),l=a;return r!=="/"&&(l=a==="/"?r:Zn([r,a])),o.createHref({pathname:l,search:s,hash:i})}function $o(){return f.useContext(sl)!=null}function Bo(){return $o()||Se(!1),f.useContext(sl).location}function Bg(e){f.useContext(rr).static||f.useLayoutEffect(e)}function Hg(){let{isDataRoute:e}=f.useContext(yn);return e?FP():DP()}function DP(){$o()||Se(!1);let e=f.useContext(Ud),{basename:t,future:n,navigator:r}=f.useContext(rr),{matches:o}=f.useContext(yn),{pathname:i}=Bo(),a=JSON.stringify(Vd(o,n.v7_relativeSplatPath)),s=f.useRef(!1);return Bg(()=>{s.current=!0}),f.useCallback(function(c,d){if(d===void 0&&(d={}),!s.current)return;if(typeof c=="number"){r.go(c);return}let h=Kd(c,JSON.parse(a),i,d.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Zn([t,h.pathname])),(d.replace?r.replace:r.push)(h,d.state,d)},[t,r,a,i,e])}function Fg(){let{matches:e}=f.useContext(yn),t=e[e.length-1];return t?t.params:{}}function qg(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=f.useContext(rr),{matches:o}=f.useContext(yn),{pathname:i}=Bo(),a=JSON.stringify(Vd(o,r.v7_relativeSplatPath));return f.useMemo(()=>Kd(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function RP(e,t){return LP(e,t)}function LP(e,t,n,r){$o()||Se(!1);let{navigator:o}=f.useContext(rr),{matches:i}=f.useContext(yn),a=i[i.length-1],s=a?a.params:{};a&&a.pathname;let l=a?a.pathnameBase:"/";a&&a.route;let c=Bo(),d;if(t){var h;let b=typeof t=="string"?Wo(t):t;l==="/"||(h=b.pathname)!=null&&h.startsWith(l)||Se(!1),d=b}else d=c;let m=d.pathname||"/",p=m;if(l!=="/"){let b=l.replace(/^\//,"").split("/");p="/"+m.replace(/^\//,"").split("/").slice(b.length).join("/")}let x=sP(e,{pathname:p}),y=OP(x&&x.map(b=>Object.assign({},b,{params:Object.assign({},s,b.params),pathname:Zn([l,o.encodeLocation?o.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?l:Zn([l,o.encodeLocation?o.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),i,n,r);return t&&y?f.createElement(sl.Provider,{value:{location:Fi({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Bn.Pop}},y):y}function NP(){let e=HP(),t=AP(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application
59Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),n?f.createElement("pre",{style:o},n):null,null)}const IP=f.createElement(NP,null);class _P extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?f.createElement(yn.Provider,{value:this.props.routeContext},f.createElement($g.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function jP(e){let{routeContext:t,match:n,children:r}=e,o=f.useContext(Ud);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),f.createElement(yn.Provider,{value:t},r)}function OP(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,s=(o=n)==null?void 0:o.errors;if(s!=null){let d=a.findIndex(h=>h.route.id&&(s==null?void 0:s[h.route.id])!==void 0);d>=0||Se(!1),a=a.slice(0,Math.min(a.length,d+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d<a.length;d++){let h=a[d];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(c=d),h.route.id){let{loaderData:m,errors:p}=n,x=h.route.loader&&m[h.route.id]===void 0&&(!p||p[h.route.id]===void 0);if(h.route.lazy||x){l=!0,c>=0?a=a.slice(0,c+1):a=[a[0]];break}}}return a.reduceRight((d,h,m)=>{let p,x=!1,y=null,b=null;n&&(p=s&&h.route.id?s[h.route.id]:void 0,y=h.route.errorElement||IP,l&&(c<0&&m===0?(x=!0,b=null):c===m&&(x=!0,b=h.route.hydrateFallbackElement||null)));let w=t.concat(a.slice(0,m+1)),g=()=>{let v;return p?v=y:x?v=b:h.route.Component?v=f.createElement(h.route.Component,null):h.route.element?v=h.route.element:v=d,f.createElement(jP,{match:h,routeContext:{outlet:d,matches:w,isDataRoute:n!=null},children:v})};return n&&(h.route.ErrorBoundary||h.route.errorElement||m===0)?f.createElement(_P,{location:n.location,revalidation:n.revalidation,component:y,error:p,children:g(),routeContext:{outlet:null,matches:w,isDataRoute:!0}}):g()},null)}var zg=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(zg||{}),Ns=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Ns||{});function WP(e){let t=f.useContext(Ud);return t||Se(!1),t}function $P(e){let t=f.useContext(TP);return t||Se(!1),t}function BP(e){let t=f.useContext(yn);return t||Se(!1),t}function Vg(e){let t=BP(),n=t.matches[t.matches.length-1];return n.route.id||Se(!1),n.route.id}function HP(){var e;let t=f.useContext($g),n=$P(Ns.UseRouteError),r=Vg(Ns.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function FP(){let{router:e}=WP(zg.UseNavigateStable),t=Vg(Ns.UseNavigateStable),n=f.useRef(!1);return Bg(()=>{n.current=!0}),f.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,Fi({fromRouteId:t},i)))},[e,t])}function qP(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function dt(e){let{to:t,replace:n,state:r,relative:o}=e;$o()||Se(!1);let{future:i,static:a}=f.useContext(rr),{matches:s}=f.useContext(yn),{pathname:l}=Bo(),c=Hg(),d=Kd(t,Vd(s,i.v7_relativeSplatPath),l,o==="path"),h=JSON.stringify(d);return f.useEffect(()=>c(JSON.parse(h),{replace:n,state:r,relative:o}),[c,h,o,n,r]),null}function $(e){Se(!1)}function zP(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Bn.Pop,navigator:i,static:a=!1,future:s}=e;$o()&&Se(!1);let l=t.replace(/^\/*/,"/"),c=f.useMemo(()=>({basename:l,navigator:i,static:a,future:Fi({v7_relativeSplatPath:!1},s)}),[l,s,i,a]);typeof r=="string"&&(r=Wo(r));
59let{pathname:d="/",search:h="",hash:m="",state:p=null,key:x="default"}=r,y=f.useMemo(()=>{let b=zd(d,l);return b==null?null:{location:{pathname:b,search:h,hash:m,state:p,key:x},navigationType:o}},[l,d,h,m,p,x,o]);return y==null?null:f.createElement(rr.Provider,{value:c},f.createElement(sl.Provider,{children:n,value:y}))}function VP(e){let{children:t,location:n}=e;return RP(Pu(t),n)}new Promise(()=>{});function Pu(e,t){t===void 0&&(t=[]);let n=[];return f.Children.forEach(e,(r,o)=>{if(!f.isValidElement(r))return;let i=[...t,o];if(r.type===f.Fragment){n.push.apply(n,Pu(r.props.children,i));return}r.type!==$&&Se(!1),!r.props.index||!r.props.children||Se(!1);let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=Pu(r.props.children,i)),n.push(a)}),n}/** 60 * React Router DOM v6.30.6 61 * 62 * Copyright (c) Remix Software Inc. 63 * 64 * This source code is licensed under the MIT license found in the 65 * LICENSE.md file in the root directory of this source tree. 66 * 67 * @license MIT 68 */function Cu(){return Cu=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Cu.apply(null,arguments)}function KP(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function UP(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function GP(e,t){return e.button===0&&(!t||t==="_self")&&!UP(e)}const ZP=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],YP="6";try{window.__reactRouterVersion=YP}catch{}const QP="startTransition",np=Qu[QP];function XP(e){let{basename:t,children:n,future:r,window:o}=e,i=f.useRef();i.current==null&&(i.current=oP({window:o,v5Compat:!0}));let a=i.current,[s,l]=f.useState({action:a.action,location:a.location}),{v7_startTransition:c}=r||{},d=f.useCallback(h=>{c&&np?np(()=>l(h)):l(h)},[l,c]);return f.useLayoutEffect(()=>a.listen(d),[a,d]),f.useEffect(()=>qP(r),[r]),f.createElement(zP,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a,future:r})}const JP=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",eC=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,de=f.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:s,target:l,to:c,preventScrollReset:d,viewTransition:h}=t,m=KP(t,ZP),{basename:p}=f.useContext(rr),x,y=!1;if(typeof c=="string"&&eC.test(c)&&(x=c,JP))try{let v=new URL(window.location.href),S=c.startsWith("//")?new URL(v.protocol+c):new URL(c),P=zd(S.pathname,p);S.origin===v.origin&&P!=null?c=P+S.search+S.hash:y=!0}catch{}let b=MP(c,{relative:o}),w=tC(c,{replace:a,state:s,target:l,preventScrollReset:d,relative:o,viewTransition:h});function g(v){r&&r(v),v.defaultPrevented||w(v)}return f.createElement("a",Cu({},m,{href:x||b,onClick:y||i?r:g,ref:n,target:l}))});var rp;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(rp||(rp={}));var op;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(op||(op={}));function tC(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,viewTransition:s}=t===void 0?{}:t,l=Hg(),c=Bo(),d=qg(e,{relative:a});return f.useCallback(h=>{if(GP(h,n)){h.preventDefault();let m=r!==void 0?r:Ls(c)===Ls(d);l(e,{replace:m,state:o,preventScrollReset:i,relative:a,viewTransition:s})}},[c,l,d,r,o,n,e,i,a,s])}var nC=typeof Element<"u",rC=typeof Map=="function",oC=typeof Set=="function",iC=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function Ja(e,t){if(e===t)return!0;
68if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Ja(e[r],t[r]))return!1;return!0}var i;if(rC&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;for(i=e.entries();!(r=i.next()).done;)if(!Ja(r.value[1],t.get(r.value[0])))return!1;return!0}if(oC&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(iC&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[r]))return!1;if(nC&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((o[r]==="_owner"||o[r]==="__v"||o[r]==="__o")&&e.$$typeof)&&!Ja(e[o[r]],t[o[r]]))return!1;return!0}return e!==e&&t!==t}var aC=function(t,n){try{return Ja(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const sC=Zi(aC);var lC=function(e,t,n,r,o,i,a,s){if(!e){var l;if(t===void 0)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],d=0;l=new Error(t.replace(/%s/g,function(){return c[d++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}},cC=lC;const ip=Zi(cC);var uC=function(t,n,r,o){var i=r?r.call(o,t,n):void 0;if(i!==void 0)return!!i;if(t===n)return!0;if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var a=Object.keys(t),s=Object.keys(n);if(a.length!==s.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(n),c=0;c<a.length;c++){var d=a[c];if(!l(d))return!1;var h=t[d],m=n[d];if(i=r?r.call(o,h,m,d):void 0,i===!1||i===void 0&&h!==m)return!1}return!0};const dC=Zi(uC);var Kg=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(Kg||{}),ic={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},ap=Object.values(Kg),ll={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Ug=Object.entries(ll).reduce((e,[t,n])=>(e[n]=t,e),{}),Lt="data-rh",uo={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},ho=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},hC=e=>{let t=ho(e,"title");const n=ho(e,uo.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,()=>t);const r=ho(e,uo.DEFAULT_TITLE);return t||r||void 0},fC=e=>ho(e,uo.ON_CHANGE_CLIENT_STATE)||(()=>{}),ac=(e,t)=>t.filter(n=>typeof n[e]<"u").map(n=>n[e]).reduce((n,r)=>({...n,...r}),{}),pC=(e,t)=>t.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,r)=>{if(!n.length){const o=Object.keys(r);for(let i=0;i<o.length;i+=1){const s=o[i].toLowerCase();if(e.indexOf(s)!==-1&&r[s])return n.concat(r)}}return n},[]),mC=e=>console&&typeof console.warn=="function"&&console.warn(e),ti=(e,t,n)=>{const r={};return n.filter(o=>Array.isArray(o[e])?!0:(typeof o[e]<"u"&&mC(`Helmet: ${e} should be of type "Array". Instead found type "${typeof o[e]}"`),!1)).map(o=>o[e]).reverse().reduce((o,i)=>{const a={};i.filter(l=>{let c;const d=Object.keys(l);for(let m=0;m<d.length;m+=1){const p=d[m],x=p.toLowerCase();t.indexOf(x)!==-1&&!(c==="rel"&&l[c].toLowerCase()==="canonical")&&!(x==="rel"&&l[x].toLowerCase()==="stylesheet")&&(c=x),t.indexOf(p)!==-1&&(p==="innerHTML"||p==="cssText"||p==="itemprop")&&(c=p)}if(!c||!l[c])return!1;const h=l[c].toLowerCase();return r[c]||(r[c]={}),a[c]||(a[c]={}),r[c][h]?!1:(a[c][h]=!0,!0)}
68).reverse().forEach(l=>o.push(l));const s=Object.keys(a);for(let l=0;l<s.length;l+=1){const c=s[l],d={...r[c],...a[c]};r[c]=d}return o},[]).reverse()},yC=(e,t)=>{if(Array.isArray(e)&&e.length){for(let n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},gC=e=>({baseTag:pC(["href"],e),bodyAttributes:ac("bodyAttributes",e),defer:ho(e,uo.DEFER),encode:ho(e,uo.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:ac("htmlAttributes",e),linkTags:ti("link",["rel","href"],e),metaTags:ti("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:ti("noscript",["innerHTML"],e),onChangeClientState:fC(e),scriptTags:ti("script",["src","innerHTML"],e),styleTags:ti("style",["cssText"],e),title:hC(e),titleAttributes:ac("titleAttributes",e),prioritizeSeoTags:yC(e,uo.PRIORITIZE_SEO_TAGS)}),Gg=e=>Array.isArray(e)?e.join(""):e,wC=(e,t)=>{const n=Object.keys(e);for(let r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1},sc=(e,t)=>Array.isArray(e)?e.reduce((n,r)=>(wC(r,t)?n.priority.push(r):n.default.push(r),n),{priority:[],default:[]}):{default:e,priority:[]},sp=(e,t)=>({...e,[t]:void 0}),vC=["noscript","script","style"],ku=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Zg=e=>Object.keys(e).reduce((t,n)=>{const r=typeof e[n]<"u"?`${n}="${e[n]}"`:`${n}`;return t?`${t} ${r}`:r},""),bC=(e,t,n,r)=>{const o=Zg(n),i=Gg(t);return o?`<${e} ${Lt}="true" ${o}>${ku(i,r)}</${e}>`:`<${e} ${Lt}="true">${ku(i,r)}</${e}>`},xC=(e,t,n=!0)=>t.reduce((r,o)=>{const i=o,a=Object.keys(i).filter(c=>!(c==="innerHTML"||c==="cssText")).reduce((c,d)=>{const h=typeof i[d]>"u"?d:`${d}="${ku(i[d],n)}"`;return c?`${c} ${h}`:h},""),s=i.innerHTML||i.cssText||"",l=vC.indexOf(e)===-1;return`${r}<${e} ${Lt}="true" ${a}${l?"/>":`>${s}</${e}>`}`},""),Yg=(e,t={})=>Object.keys(e).reduce((n,r)=>{const o=ll[r];return n[o||r]=e[r],n},t),SC=(e,t,n)=>{const r={key:t,[Lt]:!0},o=Yg(n,r);return[D.createElement("title",o,t)]},es=(e,t)=>t.map((n,r)=>{const o={key:r,[Lt]:!0};return Object.keys(n).forEach(i=>{const s=ll[i]||i;if(s==="innerHTML"||s==="cssText"){const l=n.innerHTML||n.cssText;o.dangerouslySetInnerHTML={__html:l}}else o[s]=n[i]}),D.createElement(e,o)}),ht=(e,t,n=!0)=>{switch(e){case"title":return{toComponent:()=>SC(e,t.title,t.titleAttributes),toString:()=>bC(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Yg(t),toString:()=>Zg(t)};default:return{toComponent:()=>es(e,t),toString:()=>xC(e,t,n)}}},PC=({metaTags:e,linkTags:t,scriptTags:n,encode:r})=>{const o=sc(e,ic.meta),i=sc(t,ic.link),a=sc(n,ic.script);return{priorityMethods:{toComponent:()=>[...es("meta",o.priority),...es("link",i.priority),...es("script",a.priority)],toString:()=>`${ht("meta",o.priority,r)} ${ht("link",i.priority,r)} ${ht("script",a.priority,r)}`},metaTags:o.default,linkTags:i.default,scriptTags:a.default}},CC=e=>{const{baseTag:t,bodyAttributes:n,encode:r=!0,htmlAttributes:o,noscriptTags:i,styleTags:a,title:s="",titleAttributes:l,prioritizeSeoTags:c}=e;let{linkTags:d,metaTags:h,scriptTags:m}=e,p={toComponent:()=>[],toString:()=>""};return c&&({priorityMethods:p,linkTags:d,metaTags:h,scriptTags:m}=PC(e)),{priority:p,base:ht("base",t,r),bodyAttributes:ht("bodyAttributes",n,r),htmlAttributes:ht("htmlAttributes",o,r),link:ht("link",d,r),meta:ht("meta",h,r),noscript:ht("noscript",i,r),script:ht("script",m,r),style:ht("style",a,r),title:ht("title",{title:s,titleAttributes:l},r)}},Au=CC,Ra=[],Gd=!!(typeof window<"u"&&window.document&&window.document.createElement),Eu=class{constructor(e,t){Xt(this,"instances",[]);Xt(this,"canUseDOM",Gd);Xt(this,"context");Xt(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?Ra:this.instances,add:e=>{(this.canUseDOM?Ra:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?Ra:this.instances).indexOf(e);(this.canUseDOM?Ra:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=Au({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},kC=parseInt(D.version.split(".")[0],10),Tu=kC>=19,AC={},Qg=D.createContext(AC),br,Xg=(br=class extends f.Component{constructor(n){super(n);Xt(this,"helmetData");Tu?this.helmetData=null:this.helmetData=new Eu(this.props.context||{},br.canUseDOM)}render(){return Tu?D.createElement(D.Fragment,null,this.props.children):D.createElement(Qg.Provider,{value:this.helmetData.value},this.props.children)}},Xt(br,"canUseDOM",Gd),br),Fr=(e,t)=>
68{const n=document.head||document.querySelector("head"),r=n.querySelectorAll(`${e}[${Lt}]`),o=[].slice.call(r),i=[];let a;return t&&t.length&&t.forEach(s=>{const l=document.createElement(e);for(const c in s)if(Object.prototype.hasOwnProperty.call(s,c))if(c==="innerHTML")l.innerHTML=s.innerHTML;else if(c==="cssText"){const d=s.cssText;l.appendChild(document.createTextNode(d))}else{const d=c,h=typeof s[d]>"u"?"":s[d];l.setAttribute(c,h)}l.setAttribute(Lt,"true"),o.some((c,d)=>(a=d,l.isEqualNode(c)))?o.splice(a,1):i.push(l)}),o.forEach(s=>{var l;return(l=s.parentNode)==null?void 0:l.removeChild(s)}),i.forEach(s=>n.appendChild(s)),{oldTags:o,newTags:i}},Mu=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const r=n.getAttribute(Lt),o=r?r.split(","):[],i=[...o],a=Object.keys(t);for(const s of a){const l=t[s]||"";n.getAttribute(s)!==l&&n.setAttribute(s,l),o.indexOf(s)===-1&&o.push(s);const c=i.indexOf(s);c!==-1&&i.splice(c,1)}for(let s=i.length-1;s>=0;s-=1)n.removeAttribute(i[s]);o.length===i.length?n.removeAttribute(Lt):n.getAttribute(Lt)!==a.join(",")&&n.setAttribute(Lt,a.join(","))},EC=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=Gg(e)),Mu("title",t)},lp=(e,t)=>{const{baseTag:n,bodyAttributes:r,htmlAttributes:o,linkTags:i,metaTags:a,noscriptTags:s,onChangeClientState:l,scriptTags:c,styleTags:d,title:h,titleAttributes:m}=e;Mu("body",r),Mu("html",o),EC(h,m);const p={baseTag:Fr("base",n),linkTags:Fr("link",i),metaTags:Fr("meta",a),noscriptTags:Fr("noscript",s),scriptTags:Fr("script",c),styleTags:Fr("style",d)},x={},y={};Object.keys(p).forEach(b=>{const{newTags:w,oldTags:g}=p[b];w.length&&(x[b]=w),g.length&&(y[b]=p[b].oldTags)}),t&&t(),l(e,x,y)},ni=null,TC=e=>{ni&&cancelAnimationFrame(ni),e.defer?ni=requestAnimationFrame(()=>{lp(e,()=>{ni=null})}):(lp(e),ni=null)},MC=TC,cp=class extends f.Component{constructor(){super(...arguments);Xt(this,"rendered",!1)}shouldComponentUpdate(t){return!dC(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:n}=this.props.context;let r=null;const o=gC(t.get().map(i=>{const{context:a,...s}=i.props;return s}));Xg.canUseDOM?MC(o):Au&&(r=Au(o)),n(r)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},ts=[],up=e=>{const t={};for(const n of Object.keys(e))t[Ug[n]||n]=e[n];return t},lr=e=>{const t={};for(const n of Object.keys(e)){const r=ll[n];t[r||n]=e[n]}return t},dp=(e,t)=>{if(!Gd)return;const n=document.getElementsByTagName(e)[0];if(!n)return;const r="data-rh-managed",o=n.getAttribute(r),i=o?o.split(","):[],a=Object.keys(t);for(const s of i)a.includes(s)||n.removeAttribute(s);for(const s of a){const l=t[s];l==null||l===!1?n.removeAttribute(s):l===!0?n.setAttribute(s,""):n.setAttribute(s,String(l))}a.length>0?n.setAttribute(r,a.join(",")):n.removeAttribute(r)},lc=()=>{const e={},t={};for(const n of ts){const{htmlAttributes:r,bodyAttributes:o}=n.props;r&&Object.assign(e,up(r)),o&&Object.assign(t,up(o))}dp("html",e),dp("body",t)},DC=class extends f.Component{componentDidMount(){ts.push(this),lc()}componentDidUpdate(){lc()}componentWillUnmount(){const e=ts.indexOf(this);e!==-1&&ts.splice(e,1),lc()}resolveTitle(){const{title:e,titleTemplate:t,defaultTitle:n}=this.props;return e&&t?t.replace(/%s/g,()=>Array.isArray(e)?e.join(""):e):e||n||void 0}renderTitle(){const e=this.resolveTitle();if(e===void 0)return null;const t=this.props.titleAttributes||{};return D.createElement("title",lr(t),e)}renderBase(){const{base:e}=this.props;return e?D.createElement("base",lr(e)):null}renderMeta(){const{meta:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>D.createElement("meta",{key:n,...lr(t)}))}renderLink(){const{link:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>D.createElement("link",{key:n,...lr(t)}))}renderScript(){const{script:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:r,...o}=t,i=lr(o);return r&&(i.dangerouslySetInnerHTML={__html:r}),D.createElement("script",{key:n,...i})})}renderStyle(){const{style:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{cssText:r,...o}=t,i=lr(o);return r&&(i.dangerouslySetInnerHTML={__html:r}),D.createElement("style",{key:n,...i})})}renderNoscript(){const{noscript:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:r,...o}=t,i=lr(o);return r&&(i.dangerouslySetInnerHTML={__html:r}),D.createElement("noscript",{key:n,...i})})}render(){return D.createElement(D.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},Ec,Zd=(Ec=class extends f.Component{shouldComponentUpdate(e){return!sC(sp(this.props,"helmetData"),sp(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,n,r){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,r)}]}}mapObjectTypeChildren(e,t,n,r){switch(e.type){case"title":return{...t,[e.type]:r,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach(r=>{n={...n,[r]:e[r]}}),n}
68warnOnInvalidChildren(e,t){return ip(ap.some(n=>e.type===n),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${ap.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),ip(!t||typeof t=="string"||Array.isArray(t)&&!t.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let n={};return D.Children.forEach(e,r=>{if(!r||!r.props)return;const{children:o,...i}=r.props,a=Object.keys(i).reduce((l,c)=>(l[Ug[c]||c]=i[c],l),{});let{type:s}=r;switch(typeof s=="symbol"?s=s.toString():this.warnOnInvalidChildren(r,o),s){case"Symbol(react.fragment)":t=this.mapChildrenToProps(o,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(r,n,a,o);break;default:t=this.mapObjectTypeChildren(r,t,a,o);break}}),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:r}=t;if(e&&(n=this.mapChildrenToProps(e,n)),r&&!(r instanceof Eu)){const o=r;r=new Eu(o.context,!0),delete n.helmetData}return Tu?D.createElement(DC,{...n}):r?D.createElement(cp,{...n,context:r.value}):D.createElement(Qg.Consumer,null,o=>D.createElement(cp,{...n,context:o}))}},Xt(Ec,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Ec),hp=["light","dark"],RC="(prefers-color-scheme: dark)",LC=f.createContext(void 0),NC={setTheme:e=>{},themes:[]},IC=()=>{var e;return(e=f.useContext(LC))!=null?e:NC};f.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:o,defaultTheme:i,value:a,attrs:s,nonce:l})=>{let c=i==="system",d=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${s.map(x=>`'${x}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,h=o?hp.includes(i)&&i?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",m=(x,y=!1,b=!0)=>{let w=a?a[x]:x,g=y?x+"|| ''":`'${w}'`,v="";return o&&b&&!y&&hp.includes(x)&&(v+=`d.style.colorScheme = '${x}';`),n==="class"?y||w?v+=`c.add(${g})`:v+="null":w&&(v+=`d[s](n,${g})`),v},p=e?`!function(){${d}${m(e)}}()`:r?`!function(){try{${d}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${c})){var t='${RC}',m=window.matchMedia(t);if(m.media!==t||m.matches){${m("dark")}}else{${m("light")}}}else if(e){${a?`var x=${JSON.stringify(a)};`:""}${m(a?"x[e]":"e",!0)}}${c?"":"else{"+m(i,!1,!1)+"}"}${h}}catch(e){}}()`:`!function(){try{${d}var e=localStorage.getItem('${t}');if(e){${a?`var x=${JSON.stringify(a)};`:""}${m(a?"x[e]":"e",!0)}}else{${m(i,!1,!1)};}${h}}catch(t){}}();`;return f.createElement("script",{nonce:l,dangerouslySetInnerHTML:{__html:p}})});var _C=e=>{switch(e){case"success":return WC;case"info":return BC;case"warning":return $C;case"error":return HC;default:return null}},jC=Array(12).fill(0),OC=({visible:e,className:t})=>D.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},D.createElement("div",{className:"sonner-spinner"},jC.map((n,r)=>D.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),WC=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),$C=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),BC=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),HC=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},D.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),FC=D.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},D.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),D.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),qC=()=>{let[e,t]=D.useState(document.hidden);return D.useEffect(()=>{let n=()=>{t(document.hidden)};
68return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},Du=1,zC=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,o=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:Du++,i=this.toasts.find(s=>s.id===o),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),i?this.toasts=this.toasts.map(s=>s.id===o?(this.publish({...s,...e,id:o,title:n}),{...s,...e,id:o,dismissible:a,title:n}):s):this.addToast({title:n,...r,dismissible:a,id:o}),o},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
68this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let r=e instanceof Promise?e:e(),o=n!==void 0,i,a=r.then(async l=>{if(i=["resolve",l],D.isValidElement(l))o=!1,this.create({id:n,type:"default",message:l});else if(KC(l)&&!l.ok){o=!1;let c=typeof t.error=="function"?await t.error(`HTTP error! status: ${l.status}`):t.error,d=typeof t.description=="function"?await t.description(`HTTP error! status: ${l.status}`):t.description;this.create({id:n,type:"error",message:c,description:d})}else if(t.success!==void 0){o=!1;let c=typeof t.success=="function"?await t.success(l):t.success,d=typeof t.description=="function"?await t.description(l):t.description;this.create({id:n,type:"success",message:c,description:d})}}).catch(async l=>{if(i=["reject",l],t.error!==void 0){o=!1;let c=typeof t.error=="function"?await t.error(l):t.error,d=typeof t.description=="function"?await t.description(l):t.description;this.create({id:n,type:"error",message:c,description:d})}}).finally(()=>{var l;o&&(this.dismiss(n),n=void 0),(l=t.finally)==null||l.call(t)}),s=()=>new Promise((l,c)=>a.then(()=>i[0]==="reject"?c(i[1]):l(i[1])).catch(c));return typeof n!="string"&&typeof n!="number"?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||Du++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Ge=new zC,VC=(e,t)=>{let n=(t==null?void 0:t.id)||Du++;return Ge.addToast({title:e,...t,id:n}),n},KC=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",UC=VC,GC=()=>Ge.toasts,ZC=()=>Ge.getActiveToasts();Object.assign(UC,{success:Ge.success,info:Ge.info,warning:Ge.warning,error:Ge.error,custom:Ge.custom,message:Ge.message,promise:Ge.promise,dismiss:Ge.dismiss,loading:Ge.loading},{getHistory:GC,getToasts:ZC});function YC(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}YC(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
68left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
68:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
68--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 69`);function La(e){return e.label!==void 0}var QC=3,XC="32px",JC="16px",fp=4e3,e1=356,t1=14,n1=20,r1=200;function kt(...e){return e.filter(Boolean).join(" ")}function o1(e){let[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}var i1=e=>{var t,n,r,o,i,a,s,l,c,d,h;let{invert:m,toast:p,unstyled:x,interacting:y,setHeights:b,visibleToasts:w,heights:g,index:v,toasts:S,expanded:P,removeToast:k,defaultRichColors:A,closeButton:T,style:N,cancelButtonStyle:L,actionButtonStyle:q,className:j="",descriptionClassName:K="",duration:_,position:Q,gap:B,loadingIcon:V,expandByDefault:E,classNames:C,icons:I,closeButtonAriaLabel:F="Close toast",pauseWhenPageIsHidden:W}
69=e,[Z,X]=D.useState(null),[fe,we]=D.useState(null),[J,Qt]=D.useState(!1),[Ee,Wt]=D.useState(!1),[wn,jr]=D.useState(!1),[vn,ca]=D.useState(!1),[Al,ua]=D.useState(!1),[El,Vo]=D.useState(0),[Or,Ah]=D.useState(0),Ko=D.useRef(p.duration||_||fp),Eh=D.useRef(null),ar=D.useRef(null),G0=v===0,Z0=v+1<=w,ut=p.type,Wr=p.dismissible!==!1,Y0=p.className||"",Q0=p.descriptionClassName||"",da=D.useMemo(()=>g.findIndex(U=>U.toastId===p.id)||0,[g,p.id]),X0=D.useMemo(()=>{var U;return(U=p.closeButton)!=null?U:T},[p.closeButton,T]),Th=D.useMemo(()=>p.duration||_||fp,[p.duration,_]),Tl=D.useRef(0),$r=D.useRef(0),Mh=D.useRef(0),Br=D.useRef(null),[J0,eb]=Q.split("-"),Dh=D.useMemo(()=>g.reduce((U,oe,ue)=>ue>=da?U:U+oe.height,0),[g,da]),Rh=qC(),tb=p.invert||m,Ml=ut==="loading";$r.current=D.useMemo(()=>da*B+Dh,[da,Dh]),D.useEffect(()=>{Ko.current=Th},[Th]),D.useEffect(()=>{Qt(!0)},[]),D.useEffect(()=>{let U=ar.current;if(U){let oe=U.getBoundingClientRect().height;return Ah(oe),b(ue=>[{toastId:p.id,height:oe,position:p.position},...ue]),()=>b(ue=>ue.filter(xt=>xt.toastId!==p.id))}},[b,p.id]),D.useLayoutEffect(()=>{if(!J)return;let U=ar.current,oe=U.style.height;U.style.height="auto";let ue=U.getBoundingClientRect().height;U.style.height=oe,Ah(ue),b(xt=>xt.find(St=>St.toastId===p.id)?xt.map(St=>St.toastId===p.id?{...St,height:ue}:St):[{toastId:p.id,height:ue,position:p.position},...xt])},[J,p.title,p.description,b,p.id]);let bn=D.useCallback(()=>{Wt(!0),Vo($r.current),b(U=>U.filter(oe=>oe.toastId!==p.id)),setTimeout(()=>{k(p)},r1)},[p,k,b,$r]);D.useEffect(()=>{if(p.promise&&ut==="loading"||p.duration===1/0||p.type==="loading")return;let U;return P||y||W&&Rh?(()=>{if(Mh.current<Tl.current){let oe=new Date().getTime()-Tl.current;Ko.current=Ko.current-oe}Mh.current=new Date().getTime()})():Ko.current!==1/0&&(Tl.current=new Date().getTime(),U=setTimeout(()=>{var oe;(oe=p.onAutoClose)==null||oe.call(p,p),bn()},Ko.current)),()=>clearTimeout(U)},[P,y,p,ut,W,Rh,bn]),D.useEffect(()=>{p.delete&&bn()},[bn,p.delete]);function nb(){var U,oe,ue;return I!=null&&I.loading?D.createElement("div",{className:kt(C==null?void 0:C.loader,(U=p==null?void 0:p.classNames)==null?void 0:U.loader,"sonner-loader"),"data-visible":ut==="loading"},I.loading):V?D.createElement("div",{className:kt(C==null?void 0:C.loader,(oe=p==null?void 0:p.classNames)==null?void 0:oe.loader,"sonner-loader"),"data-visible":ut==="loading"},V):D.createElement(OC,{className:kt(C==null?void 0:C.loader,(ue=p==null?void 0:p.classNames)==null?void 0:ue.loader),visible:ut==="loading"})}return D.createElement("li",{tabIndex:0,ref:ar,className:kt(j,Y0,C==null?void 0:C.toast,(t=p==null?void 0:p.classNames)==null?void 0:t.toast,C==null?void 0:C.default,C==null?void 0:C[ut],(n=p==null?void 0:p.classNames)==null?void 0:n[ut]),"data-sonner-toast":"","data-rich-colors":(r=p.richColors)!=null?r:A,"data-styled":!(p.jsx||p.unstyled||x),"data-mounted":J,"data-promise":!!p.promise,"data-swiped":Al,"data-removed":Ee,"data-visible":Z0,"data-y-position":J0,"data-x-position":eb,"data-index":v,"data-front":G0,"data-swiping":wn,"data-dismissible":Wr,"data-type":ut,"data-invert":tb,"data-swipe-out":vn,"data-swipe-direction":fe,"data-expanded":!!(P||E&&J),style:{"--index":v,"--toasts-before":v,"--z-index":S.length-v,"--offset":`${Ee?El:$r.current}px`,"--initial-height":E?"auto":`${Or}px`,...N,...p.style},onDragEnd:()=>{jr(!1),X(null),Br.current=null},onPointerDown:U=>{Ml||!Wr||(Eh.current=new Date,Vo($r.current),U.target.setPointerCapture(U.pointerId),U.target.tagName!=="BUTTON"&&(jr(!0),Br.current={x:U.clientX,y:U.clientY}))},onPointerUp:()=>{var U,oe,ue,xt;if(vn||!Wr)return;Br.current=null;let St=Number(((U=ar.current)==null?void 0:U.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),xn=Number(((oe=ar.current)==null?void 0:oe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),sr=new Date().getTime()-((ue=Eh.current)==null?void 0:ue.getTime()),Pt=Z==="x"?St:xn,Sn=Math.abs(Pt)/sr;if(Math.abs(Pt)>=n1||Sn>.11){Vo($r.current),(xt=p.onDismiss)==null||xt.call(p,p),we(Z==="x"?St>0?"right":"left":xn>0?"down":"up"),bn(),ca(!0),ua(!1);return}jr(!1),X(null)},onPointerMove:U=>{var oe,ue,xt,St;if(!Br.current||!Wr||((oe=window.getSelection())==null?void 0:oe.toString().length)>0)return;let xn=U.clientY-Br.current.y,sr=U.clientX-Br.current.x,Pt=(ue=e.swipeDirections)!=null?ue:o1(Q);!Z&&(Math.abs(sr)>1||Math.abs(xn)>1)&&X(Math.abs(sr)>Math.abs(xn)?"x":"y");let Sn={x:0,y:0};Z==="y"?(Pt.includes("top")||Pt.includes("bottom"))&&(Pt.includes("top")&&xn<0||Pt.includes("bottom")&&xn>0)&&(Sn.y=xn):Z==="x"&&(Pt.includes("left")||Pt.includes("right"))&&(Pt.includes("left")&&sr<0||Pt.includes("right")&&sr>0)&&(Sn.x=sr),(Math.abs(Sn.x)>0||Math.abs(Sn.y)>0)&&ua(!0),(xt=ar.current)==null||xt.style.setProperty("--swipe-amount-x",`${Sn.x}px`),(St=ar.current)==null||St.style.setProperty("--swipe-amount-y",`${Sn.y}px`)}},X0&&!p.jsx?D.createElement("button",{"aria-label":F,"data-disabled":Ml,"data-close-button":!0,onClick:Ml||!Wr?()=>{}:()=>{var U;bn(),(U=p.onDismiss)==null||U.call(p,p)},className:kt(C==null?void 0:C.closeButton,(o=p==null?void 0:p.classNames)==null?void 0:o.closeButton)},(i=I==null?void 0:I.close)!=null?i:FC):null,p.jsx||f.isValidElement(p.title)?p.jsx?p.jsx:typeof p.title=="function"?p.title():p.title:D.createElement(D.Fragment,null,ut||p.icon||p.promise?D.createElement("div",{"data-icon":"",className:kt(C==null?void 0:C.icon,(a=p==null?void 0:p.classNames)==null?void 0:a.icon)}
69,p.promise||p.type==="loading"&&!p.icon?p.icon||nb():null,p.type!=="loading"?p.icon||(I==null?void 0:I[ut])||_C(ut):null):null,D.createElement("div",{"data-content":"",className:kt(C==null?void 0:C.content,(s=p==null?void 0:p.classNames)==null?void 0:s.content)},D.createElement("div",{"data-title":"",className:kt(C==null?void 0:C.title,(l=p==null?void 0:p.classNames)==null?void 0:l.title)},typeof p.title=="function"?p.title():p.title),p.description?D.createElement("div",{"data-description":"",className:kt(K,Q0,C==null?void 0:C.description,(c=p==null?void 0:p.classNames)==null?void 0:c.description)},typeof p.description=="function"?p.description():p.description):null),f.isValidElement(p.cancel)?p.cancel:p.cancel&&La(p.cancel)?D.createElement("button",{"data-button":!0,"data-cancel":!0,style:p.cancelButtonStyle||L,onClick:U=>{var oe,ue;La(p.cancel)&&Wr&&((ue=(oe=p.cancel).onClick)==null||ue.call(oe,U),bn())},className:kt(C==null?void 0:C.cancelButton,(d=p==null?void 0:p.classNames)==null?void 0:d.cancelButton)},p.cancel.label):null,f.isValidElement(p.action)?p.action:p.action&&La(p.action)?D.createElement("button",{"data-button":!0,"data-action":!0,style:p.actionButtonStyle||q,onClick:U=>{var oe,ue;La(p.action)&&((ue=(oe=p.action).onClick)==null||ue.call(oe,U),!U.defaultPrevented&&bn())},className:kt(C==null?void 0:C.actionButton,(h=p==null?void 0:p.classNames)==null?void 0:h.actionButton)},p.action.label):null))};function pp(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function a1(e,t){let n={};return[e,t].forEach((r,o)=>{let i=o===1,a=i?"--mobile-offset":"--offset",s=i?JC:XC;function l(c){["top","right","bottom","left"].forEach(d=>{n[`${a}-${d}`]=typeof c=="number"?`${c}px`:c})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(c=>{r[c]===void 0?n[`${a}-${c}`]=s:n[`${a}-${c}`]=typeof r[c]=="number"?`${r[c]}px`:r[c]}):l(s)}),n}var s1=f.forwardRef(function(e,t){let{invert:n,position:r="bottom-right",hotkey:o=["altKey","KeyT"],expand:i,closeButton:a,className:s,offset:l,mobileOffset:c,theme:d="light",richColors:h,duration:m,style:p,visibleToasts:x=QC,toastOptions:y,dir:b=pp(),gap:w=t1,loadingIcon:g,icons:v,containerAriaLabel:S="Notifications",pauseWhenPageIsHidden:P}=e,[k,A]=D.useState([]),T=D.useMemo(()=>Array.from(new Set([r].concat(k.filter(W=>W.position).map(W=>W.position)))),[k,r]),[N,L]=D.useState([]),[q,j]=D.useState(!1),[K,_]=D.useState(!1),[Q,B]=D.useState(d!=="system"?d:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),V=D.useRef(null),E=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),C=D.useRef(null),I=D.useRef(!1),F=D.useCallback(W=>{A(Z=>{var X;return(X=Z.find(fe=>fe.id===W.id))!=null&&X.delete||Ge.dismiss(W.id),Z.filter(({id:fe})=>fe!==W.id)})},[]);return D.useEffect(()=>Ge.subscribe(W=>{if(W.dismiss){A(Z=>Z.map(X=>X.id===W.id?{...X,delete:!0}:X));return}setTimeout(()=>{Cg.flushSync(()=>{A(Z=>{let X=Z.findIndex(fe=>fe.id===W.id);return X!==-1?[...Z.slice(0,X),{...Z[X],...W},...Z.slice(X+1)]:[W,...Z]})})})}),[]),D.useEffect(()=>{if(d!=="system"){B(d);return}if(d==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?B("dark"):B("light")),typeof window>"u")return;let W=window.matchMedia("(prefers-color-scheme: dark)");try{W.addEventListener("change",({matches:Z})=>{B(Z?"dark":"light")})}catch{W.addListener(({matches:X})=>{try{B(X?"dark":"light")}catch(fe){console.error(fe)}})}},[d]),D.useEffect(()=>{k.length<=1&&j(!1)},[k]),D.useEffect(()=>{let W=Z=>{var X,fe;o.every(we=>Z[we]||Z.code===we)&&(j(!0),(X=V.current)==null||X.focus()),Z.code==="Escape"&&(document.activeElement===V.current||(fe=V.current)!=null&&fe.contains(document.activeElement))&&j(!1)};return document.addEventListener("keydown",W),()=>document.removeEventListener("keydown",W)},[o]),D.useEffect(()=>{if(V.current)return()=>{C.current&&(C.current.focus({preventScroll:!0}
69),C.current=null,I.current=!1)}},[V.current]),D.createElement("section",{ref:t,"aria-label":`${S} ${E}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},T.map((W,Z)=>{var X;let[fe,we]=W.split("-");return k.length?D.createElement("ol",{key:W,dir:b==="auto"?pp():b,tabIndex:-1,ref:V,className:s,"data-sonner-toaster":!0,"data-theme":Q,"data-y-position":fe,"data-lifted":q&&k.length>1&&!i,"data-x-position":we,style:{"--front-toast-height":`${((X=N[0])==null?void 0:X.height)||0}px`,"--width":`${e1}px`,"--gap":`${w}px`,...p,...a1(l,c)},onBlur:J=>{I.current&&!J.currentTarget.contains(J.relatedTarget)&&(I.current=!1,C.current&&(C.current.focus({preventScroll:!0}),C.current=null))},onFocus:J=>{J.target instanceof HTMLElement&&J.target.dataset.dismissible==="false"||I.current||(I.current=!0,C.current=J.relatedTarget)},onMouseEnter:()=>j(!0),onMouseMove:()=>j(!0),onMouseLeave:()=>{K||j(!1)},onDragEnd:()=>j(!1),onPointerDown:J=>{J.target instanceof HTMLElement&&J.target.dataset.dismissible==="false"||_(!0)},onPointerUp:()=>_(!1)},k.filter(J=>!J.position&&Z===0||J.position===W).map((J,Qt)=>{var Ee,Wt;return D.createElement(i1,{key:J.id,icons:v,index:Qt,toast:J,defaultRichColors:h,duration:(Ee=y==null?void 0:y.duration)!=null?Ee:m,className:y==null?void 0:y.className,descriptionClassName:y==null?void 0:y.descriptionClassName,invert:n,visibleToasts:x,closeButton:(Wt=y==null?void 0:y.closeButton)!=null?Wt:a,interacting:K,position:W,style:y==null?void 0:y.style,unstyled:y==null?void 0:y.unstyled,classNames:y==null?void 0:y.classNames,cancelButtonStyle:y==null?void 0:y.cancelButtonStyle,actionButtonStyle:y==null?void 0:y.actionButtonStyle,removeToast:F,toasts:k.filter(wn=>wn.position==J.position),heights:N.filter(wn=>wn.position==J.position),setHeights:L,expandByDefault:i,gap:w,loadingIcon:g,expanded:q,pauseWhenPageIsHidden:P,swipeDirections:e.swipeDirections})})):null}))});const l1=({...e})=>{const{theme:t="system"}=IC();return u.jsx(s1,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})},c1=1,u1=1e6;let cc=0;function d1(){return cc=(cc+1)%Number.MAX_SAFE_INTEGER,cc.toString()}const uc=new Map,mp=e=>{if(uc.has(e))return;const t=setTimeout(()=>{uc.delete(e),xi({type:"REMOVE_TOAST",toastId:e})},u1);uc.set(e,t)},h1=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,c1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?mp(n):e.toasts.forEach(r=>{mp(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},ns=[];let rs={toasts:[]};function xi(e){rs=h1(rs,e),ns.forEach(t=>{t(rs)})}function f1({...e}){const t=d1(),n=o=>xi({type:"UPDATE_TOAST",toast:{...o,id:t}}),r=()=>xi({type:"DISMISS_TOAST",toastId:t});return xi({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:o=>{o||r()}}}),{id:t,dismiss:r,update:n}}function p1(){const[e,t]=f.useState(rs);return f.useEffect(()=>(ns.push(t),()=>{const n=ns.indexOf(t);n>-1&&ns.splice(n,1)}),[e]),{...e,toast:f1,dismiss:n=>xi({type:"DISMISS_TOAST",toastId:n})}}function H(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function yp(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function cl(...e){return t=>{let n=!1;const r=e.map(o=>{const i=yp(o,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let o=0;o<r.length;o++){const i=r[o];typeof i=="function"?i():yp(e[o],null)}}}}function Ce(...e){return f.useCallback(cl(...e),e)}function or(e,t=[]){let n=[];function r(i,a){const s=f.createContext(a),l=n.length;n=[...n,a];const c=h=>{var w;const{scope:m,children:p,...x}=h,y=((w=m==null?void 0:m[e])==null?void 0:w[l])||s,b=f.useMemo(()=>x,Object.values(x));return u.jsx(y.Provider,{value:b,children:p})};c.displayName=i+"Provider";function d(h,m){var y;const p=((y=m==null?void 0:m[e])==null?void 0:y[l])||s,x=f.useContext(p);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${h}\` must be used within \`${i}\``)}return[c,d]}const o=()=>{const i=n.map(a=>f.createContext(a));return function(s){const l=(s==null?void 0:s[e])||i;return f.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return o.scopeName=e,[r,m1(o,...t)]}function m1(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((s,{useScope:l,scopeName:c}
vendor: 8,292 bytes, line 69
69)=>{const h=l(i)[`__scope${c}`];return{...s,...h}},{});return f.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}function Ro(e){const t=g1(e),n=f.forwardRef((r,o)=>{const{children:i,...a}=r,s=f.Children.toArray(i),l=s.find(v1);if(l){const c=l.props.children,d=s.map(h=>h===l?f.Children.count(c)>1?f.Children.only(null):f.isValidElement(c)?c.props.children:null:h);return u.jsx(t,{...a,ref:o,children:f.isValidElement(c)?f.cloneElement(c,void 0,d):null})}return u.jsx(t,{...a,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}var y1=Ro("Slot");function g1(e){const t=f.forwardRef((n,r)=>{const{children:o,...i}=n;if(f.isValidElement(o)){const a=x1(o),s=b1(i,o.props);return o.type!==f.Fragment&&(s.ref=r?cl(r,a):a),f.cloneElement(o,s)}return f.Children.count(o)>1?f.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Jg=Symbol("radix.slottable");function w1(e){const t=({children:n})=>u.jsx(u.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Jg,t}function v1(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Jg}function b1(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...s)=>{const l=i(...s);return o(...s),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function x1(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Yd(e){const t=e+"CollectionProvider",[n,r]=or(t),[o,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=y=>{const{scope:b,children:w}=y,g=D.useRef(null),v=D.useRef(new Map).current;return u.jsx(o,{scope:b,itemMap:v,collectionRef:g,children:w})};a.displayName=t;const s=e+"CollectionSlot",l=Ro(s),c=D.forwardRef((y,b)=>{const{scope:w,children:g}=y,v=i(s,w),S=Ce(b,v.collectionRef);return u.jsx(l,{ref:S,children:g})});c.displayName=s;const d=e+"CollectionItemSlot",h="data-radix-collection-item",m=Ro(d),p=D.forwardRef((y,b)=>{const{scope:w,children:g,...v}=y,S=D.useRef(null),P=Ce(b,S),k=i(d,w);return D.useEffect(()=>(k.itemMap.set(S,{ref:S,...v}),()=>void k.itemMap.delete(S))),u.jsx(m,{[h]:"",ref:P,children:g})});p.displayName=d;function x(y){const b=i(e+"CollectionConsumer",y);return D.useCallback(()=>{const g=b.collectionRef.current;if(!g)return[];const v=Array.from(g.querySelectorAll(`[${h}]`));return Array.from(b.itemMap.values()).sort((k,A)=>v.indexOf(k.ref.current)-v.indexOf(A.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:c,ItemSlot:p},x,r]}var S1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ce=S1.reduce((e,t)=>{const n=Ro(`Primitive.${t}`),r=f.forwardRef((o,i)=>{const{asChild:a,...s}=o,l=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),u.jsx(l,{...s,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Qd(e,t){e&&ta.flushSync(()=>e.dispatchEvent(t))}function at(e){const t=f.useRef(e);return f.useEffect(()=>{t.current=e}),f.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function P1(e,t=globalThis==null?void 0:globalThis.document){const n=at(e);f.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var C1="DismissableLayer",Ru="dismissableLayer.update",k1="dismissableLayer.pointerDownOutside",A1="dismissableLayer.focusOutside",gp,ew=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),na=f.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:s,...l}=e,c=f.useContext(ew),[d,h]=f.useState(null),m=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,p]=f.useState({}),x=Ce(t,A=>h(A)),y=Array.from(c.layers),[b]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),w=y.indexOf(b),g=d?y.indexOf(d):-1,v=c.layersWithOutsidePointerEventsDisabled.size>0,S=g>=w,P=T1(A=>{const T=A.target,N=[...c.branches].some(L=>L.contains(T));!S||N||(o==null||o(A),a==null||a(A),A.defaultPrevented||s==null||s())},m),k=M1(A=>{const T=A.target;[...c.branches].some(L=>L.contains(T))||(i==null||i(A),a==null||a(A),A.defaultPrevented||s==null||s())},m);return P1(A=>{g===c.layers.size-1&&(r==null||r(A),!A.defaultPrevented&&s&&(A.preventDefault(),s()))},m),f.useEffect(()=>{if(d)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(gp=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(d)),c.layers.add(d),wp(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=gp)}},[d,m,n,c]),f.useEffect(()=>()=>{d&&(c.layers.delete(d),c.layersWithOutsidePointerEventsDisabled.delete(d),wp())},[d,c]),f.useEffect(()=>{const A=()=>p({});return document.addEventListener(Ru,A),()=>document.removeEventListener(Ru,A)},[]),u.jsx(ce.div,{...l,ref:x,style:{pointerEvents:v?S?"auto":"none":void 0,...e.style},onFocusCapture:H(e.onFocusCapture,k.onFocusCapture),onBlurCapture:H(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:H(e.onPointerDownCapture,P.onPointerDownCapture)})});na.displayName=C1;var E1="DismissableLayerBranch",tw=f.forwardRef((e,t)=>{const n=f.useContext(ew),r=f.useRef(null),o=Ce(t,r);return f.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),u.jsx(ce.div,{...e,ref:o})});tw.displayName=E1;function T1(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=f.useRef(!1),o=f.useRef(()=>{});return f.useEffect(()=>{const i=s=>{if(s.target&&!r.current){let l=function(){nw(k1,n,c,{discrete:!0})};const c={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=l,t.addEventListener("click",o.current,{once:!0})):l()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function M1(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=f.useRef(!1);return f.useEffect(()=>{const o=i=>{i.target&&!r.current&&nw(A1,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function wp(){const e=new CustomEvent(Ru);document.dispatchEvent(e)}function nw(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Qd(o,i):o.dispatchEvent(i)}var D1=na,R1=tw,hn=globalThis!=null&&globalThis.document?f.useLayoutEffect:()=>{},L1="Portal",ul=f.forwardRef((e,t)=>{var s;const{container:n,...r}=e,[o,i]=f.useState(!1);hn(()=>i(!0),[]);const a=n||o&&((s=globalThis==null?void 0:globalThis.document)==null?void 0:s.body);return a?Cg.createPortal(u.jsx(ce.div,{...r,ref:t}),a):null});ul.displayName=L1;function N1(e,t){return f.useReducer((n,r)=>t[n][r]??n,e)}var gn=e=>{const{present:t,children:n}=e,r=I1(t),o=typeof n=="function"?n({present:r.isPresent}):f.Children.only(n),i=Ce(r.ref,_1(o));return typeof n=="function"||r.isPresent?f.cloneElement(o,{ref:i}):null};gn.displayName="Presence";function I1(e){const[t,n]=f.useState(),r=f.useRef(null),o=f.useRef(e),i=f.useRef("none"),a=e?"mounted":"unmounted",[s,l]=N1(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{const c=Na(r.current);i.current=s==="mounted"?c:"none"},[s]),hn(()=>{const c=r.current,d=o.current;if(d!==e){const m=i.current,p=Na(c);e?l("MOUNT"):p==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&m!==p?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,l]),hn(()=>
69{if(t){let c;const d=t.ownerDocument.defaultView??window,h=p=>{const y=Na(r.current).includes(p.animationName);if(p.target===t&&y&&(l("ANIMATION_END"),!o.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",c=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},m=p=>{p.target===t&&(i.current=Na(r.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",h),t.addEventListener("animationend",h),()=>{d.clearTimeout(c),t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",h),t.removeEventListener("animationend",h)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:f.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function Na(e){return(e==null?void 0:e.animationName)||"none"}function _1(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var j1=Qu[" useInsertionEffect ".trim().toString()]||hn;function dl({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,a]=O1({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:o;{const d=f.useRef(e!==void 0);f.useEffect(()=>{const h=d.current;h!==s&&console.warn(`${r} is changing from ${h?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=f.useCallback(d=>{var h;if(s){const m=W1(d)?d(e):d;m!==e&&((h=a.current)==null||h.call(a,m))}else i(d)},[s,e,i,a]);return[l,c]}function O1({defaultProp:e,onChange:t}){const[n,r]=f.useState(e),o=f.useRef(n),i=f.useRef(t);return j1(()=>{i.current=t},[t]),f.useEffect(()=>{var a;o.current!==n&&((a=i.current)==null||a.call(i,n),o.current=n)},[n,o]),[n,r,i]}function W1(e){return typeof e=="function"}var $1=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),B1="VisuallyHidden",hl=f.forwardRef((e,t)=>u.jsx(ce.span,{...e,ref:t,style:{...$1,...e.style}}));hl.displayName=B1;var H1=hl,Xd="ToastProvider",[Jd,F1,q1]=Yd("Toast"),[rw,JD]=or("Toast",[q1]),[z1,fl]=rw(Xd),ow=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:o="right",swipeThreshold:i=50,children:a}=e,[s,l]=f.useState(null),[c,d]=f.useState(0),h=f.useRef(!1),m=f.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Xd}\`. Expected non-empty \`string\`.`),u.jsx(Jd.Provider,{scope:t,children:u.jsx(z1,{scope:t,label:n,duration:r,swipeDirection:o,swipeThreshold:i,toastCount:c,viewport:s,onViewportChange:l,onToastAdd:f.useCallback(()=>d(p=>p+1),[]),onToastRemove:f.useCallback(()=>d(p=>p-1),[]),isFocusedToastEscapeKeyDownRef:h,isClosePausedRef:m,children:a})})};ow.displayName=Xd;var iw="ToastViewport",V1=["F8"],Lu="toast.viewportPause",Nu="toast.viewportResume",aw=f.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=V1,label:o="Notifications ({hotkey})",...i}=e,a=fl(iw,n),s=F1(n),l=f.useRef(null),c=f.useRef(null),d=f.useRef(null),h=f.useRef(null),m=Ce(t,h,a.onViewportChange),p=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),x=a.toastCount>0;f.useEffect(()=>{const b=w=>{var v;r.length!==0&&r.every(S=>w[S]||w.code===S)&&((v=h.current)==null||v.focus())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),f.useEffect(()=>{const b=l.current,w=h.current;if(x&&b&&w){const g=()=>{if(!a.isClosePausedRef.current){const k=new CustomEvent(Lu);w.dispatchEvent(k),a.isClosePausedRef.current=!0}},v=()=>{if(a.isClosePausedRef.current){const k=new CustomEvent(Nu);w.dispatchEvent(k),a.isClosePausedRef.current=!1}},S=k=>{!b.contains(k.relatedTarget)&&v()},P=()=>{b.contains(document.activeElement)||v()};return b.addEventListener("focusin",g),b.addEventListener("focusout",S),b.addEventListener("pointermove",g),b.addEventListener("pointerleave",P),window.addEventListener("blur",g),window.addEventListener("focus",v),()=>{b.removeEventListener("focusin",g),b.removeEventListener("focusout",S),b.removeEventListener("pointermove",g),b.removeEventListener("pointerleave",P),window.removeEventListener("blur",g),window.removeEventListener("focus",v)}}},[x,a.isClosePausedRef]);const y=f.useCallback(({tabbingDirection:b})=>{const g=s().map(v=>{const S=v.ref.current,P=[S,...ok(S)];return b==="forwards"?P:P.reverse()});return(b==="forwards"?g.reverse():g).flat()},[s]);return f.useEffect(()=>{const b=h.current;if(b){const w=g=>{var P,k,A;const v=g.altKey||g.ctrlKey||g.metaKey;if(g.key==="Tab"&&!v){const T=document.activeElement,N=g.shiftKey;if(g.target===b&&N){(P=c.current)==null||P.focus();return}const j=y({tabbingDirection:N?"backwards":"forwards"}),K=j.findIndex(_=>_===T);dc(j.slice(K+1))?g.preventDefault():N?(k=c.current)==null||k.focus():(A=d.current)==null||A.focus()}};return b.addEventListener("keydown",w),()=>b.removeEventListener("keydown",w)}},[s,y]),u.jsxs(R1,{ref:l,role:"region","aria-label":o.replace("{hotkey}",p),tabIndex:-1,style:{pointerEvents:x?void 0:"none"},children:[x&&u.jsx(Iu,{ref:c,onFocusFromOutsideViewport:()=>{const b=y({tabbingDirection:"forwards"});dc(b)}}),u.jsx(Jd.Slot,{scope:n,children:u.jsx(ce.ol,{tabIndex:-1,...i,ref:m})}),x&&u.jsx(Iu,{ref:d,onFocusFromOutsideViewport:()=>{const b=y({tabbingDirection:"backwards"});dc(b)}})]})});aw.displayName=iw;var sw="ToastFocusProxy",Iu=f.forwardRef((e,t)=>
69{const{__scopeToast:n,onFocusFromOutsideViewport:r,...o}=e,i=fl(sw,n);return u.jsx(hl,{"aria-hidden":!0,tabIndex:0,...o,ref:t,style:{position:"fixed"},onFocus:a=>{var c;const s=a.relatedTarget;!((c=i.viewport)!=null&&c.contains(s))&&r()}})});Iu.displayName=sw;var ra="Toast",K1="toast.swipeStart",U1="toast.swipeMove",G1="toast.swipeCancel",Z1="toast.swipeEnd",lw=f.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:o,onOpenChange:i,...a}=e,[s,l]=dl({prop:r,defaultProp:o??!0,onChange:i,caller:ra});return u.jsx(gn,{present:n||s,children:u.jsx(X1,{open:s,...a,ref:t,onClose:()=>l(!1),onPause:at(e.onPause),onResume:at(e.onResume),onSwipeStart:H(e.onSwipeStart,c=>{c.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:H(e.onSwipeMove,c=>{const{x:d,y:h}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","move"),c.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${d}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${h}px`)}),onSwipeCancel:H(e.onSwipeCancel,c=>{c.currentTarget.setAttribute("data-swipe","cancel"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:H(e.onSwipeEnd,c=>{const{x:d,y:h}=c.detail.delta;c.currentTarget.setAttribute("data-swipe","end"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),c.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),c.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${d}px`),c.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${h}px`),l(!1)})})})});lw.displayName=ra;var[Y1,Q1]=rw(ra,{onClose(){}}),X1=f.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:o,open:i,onClose:a,onEscapeKeyDown:s,onPause:l,onResume:c,onSwipeStart:d,onSwipeMove:h,onSwipeCancel:m,onSwipeEnd:p,...x}=e,y=fl(ra,n),[b,w]=f.useState(null),g=Ce(t,_=>w(_)),v=f.useRef(null),S=f.useRef(null),P=o||y.duration,k=f.useRef(0),A=f.useRef(P),T=f.useRef(0),{onToastAdd:N,onToastRemove:L}=y,q=at(()=>{var Q;(b==null?void 0:b.contains(document.activeElement))&&((Q=y.viewport)==null||Q.focus()),a()}),j=f.useCallback(_=>{!_||_===1/0||(window.clearTimeout(T.current),k.current=new Date().getTime(),T.current=window.setTimeout(q,_))},[q]);f.useEffect(()=>{const _=y.viewport;if(_){const Q=()=>{j(A.current),c==null||c()},B=()=>{const V=new Date().getTime()-k.current;A.current=A.current-V,window.clearTimeout(T.current),l==null||l()};return _.addEventListener(Lu,B),_.addEventListener(Nu,Q),()=>{_.removeEventListener(Lu,B),_.removeEventListener(Nu,Q)}}},[y.viewport,P,l,c,j]),f.useEffect(()=>{i&&!y.isClosePausedRef.current&&j(P)},[i,P,y.isClosePausedRef,j]),f.useEffect(()=>(N(),()=>L()),[N,L]);const K=f.useMemo(()=>b?mw(b):null,[b]);return y.viewport?u.jsxs(u.Fragment,{children:[K&&u.jsx(J1,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite","aria-atomic":!0,children:K}),u.jsx(Y1,{scope:n,onClose:q,children:ta.createPortal(u.jsx(Jd.ItemSlot,{scope:n,children:u.jsx(D1,{asChild:!0,onEscapeKeyDown:H(s,()=>{y.isFocusedToastEscapeKeyDownRef.current||q(),y.isFocusedToastEscapeKeyDownRef.current=!1}),children:u.jsx(ce.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":i?"open":"closed","data-swipe-direction":y.swipeDirection,...x,ref:g,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:H(e.onKeyDown,_=>{_.key==="Escape"&&(s==null||s(_.nativeEvent),_.nativeEvent.defaultPrevented||(y.isFocusedToastEscapeKeyDownRef.current=!0,q()))}),onPointerDown:H(e.onPointerDown,_=>{_.button===0&&(v.current={x:_.clientX,y:_.clientY})}),onPointerMove:H(e.onPointerMove,_=>{if(!v.current)return;const Q=_.clientX-v.current.x,B=_.clientY-v.current.y,V=!!S.current,E=["left","right"].includes(y.swipeDirection),C=["left","up"].includes(y.swipeDirection)?Math.min:Math.max,I=E?C(0,Q):0,F=E?0:C(0,B),W=_.pointerType==="touch"?10:2,Z={x:I,y:F},X={originalEvent:_,delta:Z};V?(S.current=Z,Ia(U1,h,X,{discrete:!1})):vp(Z,y.swipeDirection,W)?(S.current=Z,Ia(K1,d,X,{discrete:!1}),_.target.setPointerCapture(_.pointerId)):(Math.abs(Q)>W||Math.abs(B)>W)&&(v.current=null)}),onPointerUp:H(e.onPointerUp,_=>{const Q=S.current,B=_.target;if(B.hasPointerCapture(_.pointerId)&&B.releasePointerCapture(_.pointerId),S.current=null,v.current=null,Q){const V=_.currentTarget,E={originalEvent:_,delta:Q};vp(Q,y.swipeDirection,y.swipeThreshold)?Ia(Z1,p,E,{discrete:!0}):Ia(G1,m,E,{discrete:!0}),V.addEventListener("click",C=>C.preventDefault(),{once:!0})}})})})}),y.viewport)})]}):null}),J1=e=>{const{__scopeToast:t,children:n,...r}=e,o=fl(ra,t),[i,a]=f.useState(!1),[s,l]=f.useState(!1);return nk(()=>a(!0)),f.useEffect(()=>{const c=window.setTimeout(()=>l(!0),1e3);return()=>window.clearTimeout(c)},[]),s?null:u.jsx(ul,{asChild:!0,children:u.jsx(hl,{...r,children:i&&u.jsxs(u.Fragment,{children:[o.label," ",n]})})})},ek="ToastTitle",cw=f.forwardRef((e,t)=>
vendor: 4,741 bytes, lines 69-89
69{const{__scopeToast:n,...r}=e;return u.jsx(ce.div,{...r,ref:t})});cw.displayName=ek;var tk="ToastDescription",uw=f.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return u.jsx(ce.div,{...r,ref:t})});uw.displayName=tk;var dw="ToastAction",hw=f.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?u.jsx(pw,{altText:n,asChild:!0,children:u.jsx(eh,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${dw}\`. Expected non-empty \`string\`.`),null)});hw.displayName=dw;var fw="ToastClose",eh=f.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,o=Q1(fw,n);return u.jsx(pw,{asChild:!0,children:u.jsx(ce.button,{type:"button",...r,ref:t,onClick:H(e.onClick,o.onClose)})})});eh.displayName=fw;var pw=f.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...o}=e;return u.jsx(ce.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...o,ref:t})});function mw(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),rk(r)){const o=r.ariaHidden||r.hidden||r.style.display==="none",i=r.dataset.radixToastAnnounceExclude==="";if(!o)if(i){const a=r.dataset.radixToastAnnounceAlt;a&&t.push(a)}else t.push(...mw(r))}}),t}function Ia(e,t,n,{discrete:r}){const o=n.originalEvent.currentTarget,i=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Qd(o,i):o.dispatchEvent(i)}var vp=(e,t,n=0)=>{const r=Math.abs(e.x),o=Math.abs(e.y),i=r>o;return t==="left"||t==="right"?i&&r>n:!i&&o>n};function nk(e=()=>{}){const t=at(e);hn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function rk(e){return e.nodeType===e.ELEMENT_NODE}function ok(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function dc(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var ik=ow,yw=aw,gw=lw,ww=cw,vw=uw,bw=hw,xw=eh;function Sw(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Sw(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Pw(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Sw(e))&&(r&&(r+=" "),r+=t);return r}const bp=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,xp=Pw,Cw=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return xp(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:i}=t,a=Object.keys(o).map(c=>{const d=n==null?void 0:n[c],h=i==null?void 0:i[c];if(d===null)return null;const m=bp(d)||bp(h);return o[c][m]}),s=n&&Object.entries(n).reduce((c,d)=>{let[h,m]=d;return m===void 0||(c[h]=m),c},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((c,d)=>{let{class:h,className:m,...p}=d;return Object.entries(p).every(x=>{let[y,b]=x;return Array.isArray(b)?b.includes({...i,...s}[y]):{...i,...s}[y]===b})?[...c,h,m]:c},[]);return xp(e,a,l,n==null?void 0:n.class,n==null?void 0:n.className)};/** 70 * @license lucide-react v0.462.0 - ISC 71 * 72 * This source code is licensed under the ISC license. 73 * See the LICENSE file in the root directory of this source tree. 74 */const ak=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),kw=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** 75 * @license lucide-react v0.462.0 - ISC 76 * 77 * This source code is licensed under the ISC license. 78 * See the LICENSE file in the root directory of this source tree. 79 */var sk={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 80 * @license lucide-react v0.462.0 - ISC 81 * 82 * This source code is licensed under the ISC license. 83 * See the LICENSE file in the root directory of this source tree. 84 */const lk=f.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:a,...s},l)=>f.createElement("svg",{ref:l,...sk,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:kw("lucide",o),...s},[...a.map(([c,d])=>f.createElement(c,d)),...Array.isArray(i)?i:[i]]));/** 85 * @license lucide-react v0.462.0 - ISC 86 * 87 * This source code is licensed under the ISC license. 88 * See the LICENSE file in the root directory of this source tree. 89 */const ct=(e,t)=>
89{const n=f.forwardRef(({className:r,...o},i)=>f.createElement(lk,{ref:i,iconNode:t,className:kw(`lucide-${ak(e)}`,r),...o}));return n.displayName=`${e}`,n};/** 90 * @license lucide-react v0.462.0 - ISC 91 * 92 * This source code is licensed under the ISC license. 93 * See the LICENSE file in the root directory of this source tree. 94 */const ri=ct("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 95 * @license lucide-react v0.462.0 - ISC 96 * 97 * This source code is licensed under the ISC license. 98 * See the LICENSE file in the root directory of this source tree. 99 */const Aw=ct("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 100 * @license lucide-react v0.462.0 - ISC 101 * 102 * This source code is licensed under the ISC license. 103 * See the LICENSE file in the root directory of this source tree. 104 */const Sp=ct("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 105 * @license lucide-react v0.462.0 - ISC 106 * 107 * This source code is licensed under the ISC license. 108 * See the LICENSE file in the root directory of this source tree. 109 */const ck=ct("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 110 * @license lucide-react v0.462.0 - ISC 111 * 112 * This source code is licensed under the ISC license. 113 * See the LICENSE file in the root directory of this source tree. 114 */const uk=ct("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 115 * @license lucide-react v0.462.0 - ISC 116 * 117 * This source code is licensed under the ISC license. 118 * See the LICENSE file in the root directory of this source tree. 119 */const dk=ct("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 120 * @license lucide-react v0.462.0 - ISC 121 * 122 * This source code is licensed under the ISC license. 123 * See the LICENSE file in the root directory of this source tree. 124 */const hk=ct("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** 125 * @license lucide-react v0.462.0 - ISC 126 * 127 * This source code is licensed under the ISC license. 128 * See the LICENSE file in the root directory of this source tree. 129 */const fk=ct("MicVocal",[["path",{d:"m11 7.601-5.994 8.19a1 1 0 0 0 .1 1.298l.817.818a1 1 0 0 0 1.314.087L15.09 12",key:"80a601"}],["path",{d:"M16.5 21.174C15.5 20.5 14.372 20 13 20c-2.058 0-3.928 2.356-6 2-2.072-.356-2.775-3.369-1.5-4.5",key:"j0ngtp"}],["circle",{cx:"16",cy:"7",r:"5",key:"d08jfb"}]]);/** 130 * @license lucide-react v0.462.0 - ISC 131 * 132 * This source code is licensed under the ISC license. 133 * See the LICENSE file in the root directory of this source tree. 134 */const pk=ct("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/** 135 * @license lucide-react v0.462.0 - ISC 136 * 137 * This source code is licensed under the ISC license. 138 * See the LICENSE file in the root directory of this source tree. 139 */const mk=ct("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** 140 * @license lucide-react v0.462.0 - ISC 141 * 142 * This source code is licensed under the ISC license. 143 * See the LICENSE file in the root directory of this source tree. 144 */const Ew=ct("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/** 145 * @license lucide-react v0.462.0 - ISC 146 * 147 * This source code is licensed under the ISC license. 148 * See the LICENSE file in the root directory of this source tree. 149 */const yk=ct("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 150 * @license lucide-react v0.462.0 - ISC 151 * 152 * This source code is licensed under the ISC license. 153 * See the LICENSE file in the root directory of this source tree. 154 */const Tw=ct("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}
vendor: 5,906 bytes, line 154
154],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),th="-",gk=e=>{const t=vk(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const s=a.split(th);return s[0]===""&&s.length!==1&&s.shift(),Mw(s,t)||wk(a)},getConflictingClassGroupIds:(a,s)=>{const l=n[a]||[];return s&&r[a]?[...l,...r[a]]:l}}},Mw=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?Mw(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const i=e.join(th);return(a=t.validators.find(({validator:s})=>s(i)))==null?void 0:a.classGroupId},Pp=/^\[(.+)\]$/,wk=e=>{if(Pp.test(e)){const t=Pp.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},vk=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return xk(Object.entries(e.classGroups),n).forEach(([i,a])=>{_u(a,r,i,t)}),r},_u=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const i=o===""?t:Cp(t,o);i.classGroupId=n;return}if(typeof o=="function"){if(bk(o)){_u(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{_u(a,Cp(t,i),n,r)})})},Cp=(e,t)=>{let n=e;return t.split(th).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},bk=e=>e.isThemeGetter,xk=(e,t)=>t?e.map(([n,r])=>{const o=r.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([a,s])=>[t+a,s])):i);return[n,o]}):e,Sk=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(i,a)=>{n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(i){let a=n.get(i);if(a!==void 0)return a;if((a=r.get(i))!==void 0)return o(i,a),a},set(i,a){n.has(i)?n.set(i,a):o(i,a)}}},Dw="!",Pk=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],i=t.length,a=s=>{const l=[];let c=0,d=0,h;for(let b=0;b<s.length;b++){let w=s[b];if(c===0){if(w===o&&(r||s.slice(b,b+i)===t)){l.push(s.slice(d,b)),d=b+i;continue}if(w==="/"){h=b;continue}}w==="["?c++:w==="]"&&c--}const m=l.length===0?s:s.substring(d),p=m.startsWith(Dw),x=p?m.substring(1):m,y=h&&h>d?h-d:void 0;return{modifiers:l,hasImportantModifier:p,baseClassName:x,maybePostfixModifierPosition:y}};return n?s=>n({className:s,parseClassName:a}):a},Ck=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},kk=e=>({cache:Sk(e.cacheSize),parseClassName:Pk(e),...gk(e)}),Ak=/\s+/,Ek=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=[],a=e.trim().split(Ak);let s="";for(let l=a.length-1;l>=0;l-=1){const c=a[l],{modifiers:d,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:p}=n(c);let x=!!p,y=r(x?m.substring(0,p):m);if(!y){if(!x){s=c+(s.length>0?" "+s:s);continue}if(y=r(m),!y){s=c+(s.length>0?" "+s:s);continue}x=!1}const b=Ck(d).join(":"),w=h?b+Dw:b,g=w+y;if(i.includes(g))continue;i.push(g);const v=o(y,x);for(let S=0;S<v.length;++S){const P=v[S];i.push(w+P)}s=c+(s.length>0?" "+s:s)}return s};function Tk(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=Rw(t))&&(r&&(r+=" "),r+=n);return r}const Rw=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=Rw(e[r]))&&(n&&(n+=" "),n+=t);return n};function Mk(e,...t){let n,r,o,i=a;function a(l){const c=t.reduce((d,h)=>h(d),e());return n=kk(c),r=n.cache.get,o=n.cache.set,i=s,s(l)}function s(l){const c=r(l);if(c)return c;const d=Ek(l,n);return o(l,d),d}return function(){return i(Tk.apply(null,arguments))}}const ae=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Lw=/^\[(?:([a-z-]+):)?(.+)\]$/i,Dk=/^\d+\/\d+$/,Rk=new Set(["px","full","screen"]),Lk=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Nk=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ik=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,_k=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,jk=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Jt=e=>fo(e)||Rk.has(e)||Dk.test(e),Cn=e=>Ho(e,"length",zk),fo=e=>!!e&&!Number.isNaN(Number(e)),hc=e=>Ho(e,"number",fo),oi=e=>!!e&&Number.isInteger(Number(e)),Ok=e=>e.endsWith("%")&&fo(e.slice(0,-1)),Y=e=>Lw.test(e),kn=e=>Lk.test(e),Wk=new Set(["length","size","percentage"]),$k=e=>Ho(e,Wk,Nw),Bk=e=>Ho(e,"position",Nw),Hk=new Set(["image","url"]),Fk=e=>Ho(e,Hk,Kk),qk=e=>Ho(e,"",Vk),ii=()=>!0,Ho=(e,t,n)=>{const r=Lw.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},zk=e=>Nk.test(e)&&!Ik.test(e),Nw=()=>!1,Vk=e=>_k.test(e),Kk=e=>jk.test(e),Uk=()=>{const e=ae("colors"),t=ae("spacing"),n=ae("blur"),r=ae("brightness"),o=ae("borderColor"),i=ae("borderRadius"),a=ae("borderSpacing"),s=ae("borderWidth"),l=ae("contrast"),c=ae("grayscale"),d=ae("hueRotate"),h=ae("invert"),m=ae("gap"),p=ae("gradientColorStops"),x=ae("gradientColorStopPositions"),y=ae("inset"),b=ae("margin"),w=ae("opacity"),g=ae("padding"),v=ae("saturate"),S=ae("scale"),P=ae("sepia"),k=ae("skew"),A=ae("space"),T=ae("translate"),N=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],q=()=>["auto",Y,t],j=()=>[Y,t],K=()=>["",Jt,Cn],_=()=>["auto",fo,Y],Q=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],B=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],E=()=>["start","end","center","between","around","evenly","stretch"],C=()=>["","0",Y],I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],F=()=>[fo,Y];return{cacheSize:500,separator:":",theme:{colors:[ii],spacing:[Jt,Cn],blur:["none","",kn,Y],brightness:F(),borderColor:[e],borderRadius:["n
154one","","full",kn,Y],borderSpacing:j(),borderWidth:K(),contrast:F(),grayscale:C(),hueRotate:F(),invert:C(),gap:j(),gradientColorStops:[e],gradientColorStopPositions:[Ok,Cn],inset:q(),margin:q(),opacity:F(),padding:j(),saturate:F(),scale:F(),sepia:C(),skew:F(),space:j(),translate:j()},classGroups:{aspect:[{aspect:["auto","square","video",Y]}],container:["container"],columns:[{columns:[kn]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Q(),Y]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",oi,Y]}],basis:[{basis:q()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Y]}],grow:[{grow:C()}],shrink:[{shrink:C()}],order:[{order:["first","last","none",oi,Y]}],"grid-cols":[{"grid-cols":[ii]}],"col-start-end":[{col:["auto",{span:["full",oi,Y]},Y]}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":[ii]}],"row-start-end":[{row:["auto",{span:[oi,Y]},Y]}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Y]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Y]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...E()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...E(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...E(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[g]}],px:[{px:[g]}],py:[{py:[g]}],ps:[{ps:[g]}],pe:[{pe:[g]}],pt:[{pt:[g]}],pr:[{pr:[g]}],pb:[{pb:[g]}],pl:[{pl:[g]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[A]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[A]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Y,t]}],"min-w":[{"min-w":[Y,t,"min","max","fit"]}],"max-w":[{"max-w":[Y,t,"none","full","min","max","fit","prose",{screen:[kn]},kn]}],h:[{h:[Y,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Y,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Y,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Y,t,"auto","min","max","fit"]}],"font-size":[{text:["base",kn,Cn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",hc]}],"font-family":[{font:[ii]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Y]}],"line-clamp":[{"line-clamp":["none",fo,hc]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Jt,Y]}],"list-image":[{"list-image":["none",Y]}],"list-style-type":[{list:["none","disc","decimal",Y]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[w]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[w]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...B(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Jt,Cn]}],"underline-offset":[{"underline-offset":["auto",Jt,Y]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:j()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Y]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Y]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[w]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Q(),Bk]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",$k]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Fk]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[x]}
vendor: 5,172 bytes, line 154
154],"gradient-via-pos":[{via:[x]}],"gradient-to-pos":[{to:[x]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[w]}],"border-style":[{border:[...B(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[w]}],"divide-style":[{divide:B()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...B()]}],"outline-offset":[{"outline-offset":[Jt,Y]}],"outline-w":[{outline:[Jt,Cn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[w]}],"ring-offset-w":[{"ring-offset":[Jt,Cn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",kn,qk]}],"shadow-color":[{shadow:[ii]}],opacity:[{opacity:[w]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",kn,Y]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[h]}],saturate:[{saturate:[v]}],sepia:[{sepia:[P]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[w]}],"backdrop-saturate":[{"backdrop-saturate":[v]}],"backdrop-sepia":[{"backdrop-sepia":[P]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Y]}],duration:[{duration:F()}],ease:[{ease:["linear","in","out","in-out",Y]}],delay:[{delay:F()}],animate:[{animate:["none","spin","ping","pulse","bounce",Y]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[oi,Y]}],"translate-x":[{"translate-x":[T]}],"translate-y":[{"translate-y":[T]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Y]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Y]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":j()}],"scroll-mx":[{"scroll-mx":j()}],"scroll-my":[{"scroll-my":j()}],"scroll-ms":[{"scroll-ms":j()}],"scroll-me":[{"scroll-me":j()}],"scroll-mt":[{"scroll-mt":j()}],"scroll-mr":[{"scroll-mr":j()}],"scroll-mb":[{"scroll-mb":j()}],"scroll-ml":[{"scroll-ml":j()}],"scroll-p":[{"scroll-p":j()}],"scroll-px":[{"scroll-px":j()}],"scroll-py":[{"scroll-py":j()}],"scroll-ps":[{"scroll-ps":j()}],"scroll-pe":[{"scroll-pe":j()}],"scroll-pt":[{"scroll-pt":j()}],"scroll-pr":[{"scroll-pr":j()}],"scroll-pb":[{"scroll-pb":j()}],"scroll-pl":[{"scroll-pl":j()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
154],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Y]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Jt,Cn,hc]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Gk=Mk(Uk);function Ie(...e){return Gk(Pw(e))}const Zk=ik,Iw=f.forwardRef(({className:e,...t},n)=>u.jsx(yw,{ref:n,className:Ie("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));Iw.displayName=yw.displayName;const Yk=Cw("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),_w=f.forwardRef(({className:e,variant:t,...n},r)=>u.jsx(gw,{ref:r,className:Ie(Yk({variant:t}),e),...n}));_w.displayName=gw.displayName;const Qk=f.forwardRef(({className:e,...t},n)=>u.jsx(bw,{ref:n,className:Ie("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));Qk.displayName=bw.displayName;const jw=f.forwardRef(({className:e,...t},n)=>u.jsx(xw,{ref:n,className:Ie("absolute right-2 top-2 rounded-md p-1 text-foreground
vendor: 11,574 bytes, line 154
154/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:u.jsx(Tw,{className:"h-4 w-4"})}));jw.displayName=xw.displayName;const Ow=f.forwardRef(({className:e,...t},n)=>u.jsx(ww,{ref:n,className:Ie("text-sm font-semibold",e),...t}));Ow.displayName=ww.displayName;const Ww=f.forwardRef(({className:e,...t},n)=>u.jsx(vw,{ref:n,className:Ie("text-sm opacity-90",e),...t}));Ww.displayName=vw.displayName;function Xk(){const{toasts:e}=p1();return u.jsxs(Zk,{children:[e.map(function({id:t,title:n,description:r,action:o,...i}){return u.jsxs(_w,{...i,children:[u.jsxs("div",{className:"grid gap-1",children:[n&&u.jsx(Ow,{children:n}),r&&u.jsx(Ww,{children:r})]}),o,u.jsx(jw,{})]},t)}),u.jsx(Iw,{})]})}var Jk=Qu[" useId ".trim().toString()]||(()=>{}),eA=0;function Is(e){const[t,n]=f.useState(Jk());return hn(()=>{n(r=>r??String(eA++))},[e]),t?`radix-${t}`:""}const tA=["top","right","bottom","left"],Xn=Math.min,tt=Math.max,_s=Math.round,_a=Math.floor,Gt=e=>({x:e,y:e}),nA={left:"right",right:"left",bottom:"top",top:"bottom"},rA={start:"end",end:"start"};function ju(e,t,n){return tt(e,Xn(t,n))}function fn(e,t){return typeof e=="function"?e(t):e}function pn(e){return e.split("-")[0]}function Fo(e){return e.split("-")[1]}function nh(e){return e==="x"?"y":"x"}function rh(e){return e==="y"?"height":"width"}const oA=new Set(["top","bottom"]);function Vt(e){return oA.has(pn(e))?"y":"x"}function oh(e){return nh(Vt(e))}function iA(e,t,n){n===void 0&&(n=!1);const r=Fo(e),o=oh(e),i=rh(o);let a=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=js(a)),[a,js(a)]}function aA(e){const t=js(e);return[Ou(e),t,Ou(t)]}function Ou(e){return e.replace(/start|end/g,t=>rA[t])}const kp=["left","right"],Ap=["right","left"],sA=["top","bottom"],lA=["bottom","top"];function cA(e,t,n){switch(e){case"top":case"bottom":return n?t?Ap:kp:t?kp:Ap;case"left":case"right":return t?sA:lA;default:return[]}}function uA(e,t,n,r){const o=Fo(e);let i=cA(pn(e),n==="start",r);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(Ou)))),i}function js(e){return e.replace(/left|right|bottom|top/g,t=>nA[t])}function dA(e){return{top:0,right:0,bottom:0,left:0,...e}}function $w(e){return typeof e!="number"?dA(e):{top:e,right:e,bottom:e,left:e}}function Os(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Ep(e,t,n){let{reference:r,floating:o}=e;const i=Vt(t),a=oh(t),s=rh(a),l=pn(t),c=i==="y",d=r.x+r.width/2-o.width/2,h=r.y+r.height/2-o.height/2,m=r[s]/2-o[s]/2;let p;switch(l){case"top":p={x:d,y:r.y-o.height};break;case"bottom":p={x:d,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:h};break;case"left":p={x:r.x-o.width,y:h};break;default:p={x:r.x,y:r.y}}switch(Fo(t)){case"start":p[a]-=m*(n&&c?-1:1);break;case"end":p[a]+=m*(n&&c?-1:1);break}return p}const hA=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,s=i.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:d,y:h}=Ep(c,r,l),m=r,p={},x=0;for(let y=0;y<s.length;y++){const{name:b,fn:w}=s[y],{x:g,y:v,data:S,reset:P}=await w({x:d,y:h,initialPlacement:r,placement:m,strategy:o,middlewareData:p,rects:c,platform:a,elements:{reference:e,floating:t}});d=g??d,h=v??h,p={...p,[b]:{...p[b],...S}},P&&x<=50&&(x++,typeof P=="object"&&(P.placement&&(m=P.placement),P.rects&&(c=P.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:o}):P.rects),{x:d,y:h}=Ep(c,m,l)),y=-1)}return{x:d,y:h,placement:m,strategy:o,middlewareData:p}};async function qi(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:i,rects:a,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:h="floating",altBoundary:m=!1,padding:p=0}=fn(t,e),x=$w(p),b=s[m?h==="floating"?"reference":"floating":h],w=Os(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(b)))==null||n?b:b.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:l})),g=h==="floating"?{x:r,y:o,width:a.floating.width,height:a.floating.height}:a.reference,v=await(i.getOffsetParent==null?void 0:i.getOffsetParent(s.floating)),S=await(i.isElement==null?void 0:i.isElement(v))?await(i.getScale==null?void 0:i.getScale(v))||{x:1,y:1}:{x:1,y:1},P=Os(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:g,offsetParent:v,strategy:l}):g);return{top:(w.top-P.top+x.top)/S.y,bottom:(P.bottom-w.bottom+x.bottom)/S.y,left:(w.left-P.left+x.left)/S.x,right:(P.right-w.right+x.right)/S.x}}const fA=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:s,middlewareData:l}=t,{element:c,padding:d=0}=fn(e,t)||{};if(c==null)return{};const h=$w(d),m={x:n,y:r},p=oh(o),x=rh(p),y=await a.getDimensions(c),b=p==="y",w=b?"top":"left",g=b?"bottom":"right",v=b?"clientHeight":"clientWidth",S=i.reference[x]+i.reference[p]-m[p]-i.floating[x],P=m[p]-i.reference[p],k=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c));let A=k?k[v]:0;(!A||!await(a.isElement==null?void 0:a.isElement(k)))&&(A=s.floating[v]||i.floating[x]);const T=S/2-P/2,N=A/2-y[x]/2-1,L=Xn(h[w],N),q=Xn(h[g],N),j=L,K=A-y[x]-q,_=A/2-y[x]/2+T,Q=ju(j,_,K),B=!l.arrow&&Fo(o)!=null&&_!==Q&&i.reference[x]/2-(_<j?L:q)-y[x]/2<0,V=B?_<j?_-j:_-K:0;return{[p]:m[p]+V,data:{[p]:Q,centerOffset:_-Q-V,...B&&{alignmentOffset:V}},reset:B}}}),pA=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:a,initialPlacement:s,platform:l,elements:c}=t,{mainAxis:d=!0,crossAxis:h=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:y=!0,...b}=fn(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const w=pn(o),g=Vt(s),v=pn(s)===s,S=await(l.isRTL==null?void 0:l.isRTL(c.floating)),P=m||(v||!y?[js(s)]:aA(s)),k=x!=="none";!m&&k&&P.push(...uA(s,y,x,S));const A=[s,...P],T=await qi(t,b),N=[];let L=((r=i.flip)==null?void 0:r.overflows)||[];if(d&&N.push(T[w]),h){const _=iA(o,a,S);N.push(T[_[0]],T[_[1]])}if(L=[...L,{placement:o,overflows:N}],!N.every(_=>_<=0)){var q,j;const _=(((q=i.flip)==null?void 0:q.index)||0)+1,Q=A[_];if(Q&&(!(h==="alignment"?g!==Vt(Q):!1)||L.every(E=>E.overflows[0]>0&&Vt(E.placement)===g)))return{data:{index:_,overflows:L},reset:{placement:Q}};let B=(j=L.filter(V=>V.overflows[0]<=0).sort((V,E)=>V.overflows[1]-E.overflows[1])[0])==null?void 0:j.placement;if(!B)switch(p){case"bestFit":{var K;const V=(K=L.filter(E=>{if(k){const C=Vt(E.placement);return C===g||C==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(C=>C>0).reduce((C,I)=>C+I,0)]).sort((E,C)=>E[1]-C[1])[0])==null?void 0:K[0];V&&(B=V);break}case"initialPlacement":B=s;break}if(o!==B)return{reset:{placement:B}}}return{}}}};function Tp(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Mp(e){return tA.some(t=>e[t]>=0)}const mA=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=fn(e,t);switch(r){case"referenceHidden":{const i=await qi(t,{...o,elementContext:"reference"}),a=Tp(i,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:Mp(a)}}}case"escaped":{const i=await qi(t,{...o,altBoundary:!0}),a=Tp(i,n.floating);return{data:{escapedOffsets:a,escaped:Mp(a)}}}default:return{}}}}},Bw=new Set(["left","top"]);async function yA(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),a=pn(n),s=Fo(n),l=Vt(n)==="y",c=Bw.has(a)?-1:1,d=i&&l?-1:1,h=fn(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:x}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return s&&typeof x=="number"&&(p=s==="end"?x*-1:x),l?{x:p*d,y:m*c}:{x:m*c,y:p*d}}const gA=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:s}=t,l=await yA(t,e);return a===((n=s.offset)==null?void 0:n.placement)&&(r=s.arrow)!=null&&r.alignmentOffset?{}:{x:o+l.x,y:i+l.y,data:{...l,placement:a}}}}},wA=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:s={fn:b=>{let{x:w,y:g}=b;return{x:w,y:g}}},...l}=fn(e,t),c={x:n,y:r},d=await qi(t,l),h=Vt(pn(o)),m=nh(h);let p=c[m],x=c[h];if(i){const b=m==="y"?"top":"left",w=m==="y"?"bottom":"right",g=p+d[b],v=p-d[w];p=ju(g,p,v)}if(a){const b=h==="y"?"top":"left",w=h==="y"?"bottom":"right",g=x+d[b],v=x-d[w];x=ju(g,x,v)}const y=s.fn({...t,[m]:p,[h]:x});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[m]:i,[h]:a}}}}}},vA=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=fn(e,t),d={x:n,y:r},h=Vt(o),m=nh(h);let p=d[m],x=d[h];const y=fn(s,t),b=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(l){const v=m==="y"?"height":"width",S=i.reference[m]-i.floating[v]+b.mainAxis,P=i.reference[m]+i.reference[v]-b.mainAxis;p<S?p=S:p>P&&(p=P)}if(c){var w,g;const v=m==="y"?"width":"height",S=Bw.has(pn(o)),P=i.reference[h]-i.floating[v]+(S&&((w=a.offset)==null?void 0:w[h])||0)+(S?0:b.crossAxis),k=i.reference[h]+i.reference[v]+(S?0:((g=a.offset)==null?void 0:g[h])||0)-(S?b.crossAxis:0);x<P?x=P:x>k&&(x=k)}return{[m]:p,[h]:x}}}},bA=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:i,platform:a,elements:s}=t,{apply:l=()=>{},...c}=fn(e,t),d=await qi(t,c),h=pn(o),m=Fo(o),p=Vt(o)==="y",{width:x,height:y}=i.floating;let b,w;h==="top"||h==="bottom"?(b=h,w=m===(await(a.isRTL==null?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(w=h,b=m==="end"?"top":"bottom");const g=y-d.top-d.bottom,v=x-d.left-d.right,S=Xn(y-d[b],g),P=Xn(x-d[w],v),k=!t.middlewareData.shift;let A=S,T=P;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(T=v),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(A=g),k&&!m){const L=tt(d.left,0),q=tt(d.right,0),j=tt(d.top,0),K=tt(d.bottom,0);p?T=x-2*(L!==0||q!==0?L+q:tt(d.left,d.right)):A=y-2*(j!==0||K!==0?j+K:tt(d.top,d.bottom))}await l({...t,availableWidth:T,availableHeight:A});const N=await a.getDimensions(s.floating);return x!==N.width||y!==N.height?{reset:{rects:!0}}:{}}}};function pl(){return typeof window<"u"}function qo(e){return Hw(e)?(e.nodeName||"").toLowerCase():"#document"}function ot(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Yt(e){var t;return(t=(Hw(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Hw(e){return pl()?e instanceof Node||e instanceof ot(e).Node:!1}function jt(e){return pl()?e instanceof Element||e instanceof ot(e).Element:!1}function Zt(e){return pl()?e instanceof HTMLElement||e instanceof ot(e).HTMLElement:!1}function Dp(e){return!pl()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ot(e).ShadowRoot}const xA=new Set(["inline","contents"]);function oa(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Ot(e);
vendor: 4,121 bytes, line 154
154return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!xA.has(o)}const SA=new Set(["table","td","th"]);function PA(e){return SA.has(qo(e))}const CA=[":popover-open",":modal"];function ml(e){return CA.some(t=>{try{return e.matches(t)}catch{return!1}})}const kA=["transform","translate","scale","rotate","perspective"],AA=["transform","translate","scale","rotate","perspective","filter"],EA=["paint","layout","strict","content"];function ih(e){const t=ah(),n=jt(e)?Ot(e):e;return kA.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||AA.some(r=>(n.willChange||"").includes(r))||EA.some(r=>(n.contain||"").includes(r))}function TA(e){let t=Jn(e);for(;Zt(t)&&!Lo(t);){if(ih(t))return t;if(ml(t))return null;t=Jn(t)}return null}function ah(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const MA=new Set(["html","body","#document"]);function Lo(e){return MA.has(qo(e))}function Ot(e){return ot(e).getComputedStyle(e)}function yl(e){return jt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Jn(e){if(qo(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Dp(e)&&e.host||Yt(e);return Dp(t)?t.host:t}function Fw(e){const t=Jn(e);return Lo(t)?e.ownerDocument?e.ownerDocument.body:e.body:Zt(t)&&oa(t)?t:Fw(t)}function zi(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=Fw(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=ot(o);if(i){const s=Wu(a);return t.concat(a,a.visualViewport||[],oa(o)?o:[],s&&n?zi(s):[])}return t.concat(o,zi(o,[],n))}function Wu(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function qw(e){const t=Ot(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Zt(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=_s(n)!==i||_s(r)!==a;return s&&(n=i,r=a),{width:n,height:r,$:s}}function sh(e){return jt(e)?e:e.contextElement}function po(e){const t=sh(e);if(!Zt(t))return Gt(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=qw(t);let a=(i?_s(n.width):n.width)/r,s=(i?_s(n.height):n.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!s||!Number.isFinite(s))&&(s=1),{x:a,y:s}}const DA=Gt(0);function zw(e){const t=ot(e);return!ah()||!t.visualViewport?DA:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function RA(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==ot(e)?!1:t}function Dr(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=sh(e);let a=Gt(1);t&&(r?jt(r)&&(a=po(r)):a=po(e));const s=RA(i,n,r)?zw(i):Gt(0);let l=(o.left+s.x)/a.x,c=(o.top+s.y)/a.y,d=o.width/a.x,h=o.height/a.y;if(i){const m=ot(i),p=r&&jt(r)?ot(r):r;let x=m,y=Wu(x);for(;y&&r&&p!==x;){const b=po(y),w=y.getBoundingClientRect(),g=Ot(y),v=w.left+(y.clientLeft+parseFloat(g.paddingLeft))*b.x,S=w.top+(y.clientTop+parseFloat(g.paddingTop))*b.y;l*=b.x,c*=b.y,d*=b.x,h*=b.y,l+=v,c+=S,x=ot(y),y=Wu(x)}}return Os({width:d,height:h,x:l,y:c})}function lh(e,t){const n=yl(e).scrollLeft;return t?t.left+n:Dr(Yt(e)).left+n}function Vw(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),o=r.left+t.scrollLeft-(n?0:lh(e,r)),i=r.top+t.scrollTop;return{x:o,y:i}}function LA(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",a=Yt(r),s=t?ml(t.floating):!1;if(r===a||s&&i)return n;let l={scrollLeft:0,scrollTop:0},c=Gt(1);const d=Gt(0),h=Zt(r);if((h||!h&&!i)&&((qo(r)!=="body"||oa(a))&&(l=yl(r)),Zt(r))){const p=Dr(r);c=po(r),d.x=p.x+r.clientLeft,d.y=p.y+r.clientTop}const m=a&&!h&&!i?Vw(a,l,!0):Gt(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+m.x,y:n.y*c.y-l.scrollTop*c.y+d.y+m.y}}function NA(e){return Array.from(e.getClientRects())}function IA(e){const t=Yt(e),n=yl(e),r=e.ownerDocument.body,o=tt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=tt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+lh(e);const s=-n.scrollTop;return Ot(r).direction==="rtl"&&(a+=tt(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:s}}
vendor: 4,590 bytes, line 154
154function _A(e,t){const n=ot(e),r=Yt(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,s=0,l=0;if(o){i=o.width,a=o.height;const c=ah();(!c||c&&t==="fixed")&&(s=o.offsetLeft,l=o.offsetTop)}return{width:i,height:a,x:s,y:l}}const jA=new Set(["absolute","fixed"]);function OA(e,t){const n=Dr(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Zt(e)?po(e):Gt(1),a=e.clientWidth*i.x,s=e.clientHeight*i.y,l=o*i.x,c=r*i.y;return{width:a,height:s,x:l,y:c}}function Rp(e,t,n){let r;if(t==="viewport")r=_A(e,n);else if(t==="document")r=IA(Yt(e));else if(jt(t))r=OA(t,n);else{const o=zw(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Os(r)}function Kw(e,t){const n=Jn(e);return n===t||!jt(n)||Lo(n)?!1:Ot(n).position==="fixed"||Kw(n,t)}function WA(e,t){const n=t.get(e);if(n)return n;let r=zi(e,[],!1).filter(s=>jt(s)&&qo(s)!=="body"),o=null;const i=Ot(e).position==="fixed";let a=i?Jn(e):e;for(;jt(a)&&!Lo(a);){const s=Ot(a),l=ih(a);!l&&s.position==="fixed"&&(o=null),(i?!l&&!o:!l&&s.position==="static"&&!!o&&jA.has(o.position)||oa(a)&&!l&&Kw(e,a))?r=r.filter(d=>d!==a):o=s,a=Jn(a)}return t.set(e,r),r}function $A(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?ml(t)?[]:WA(t,this._c):[].concat(n),r],s=a[0],l=a.reduce((c,d)=>{const h=Rp(t,d,o);return c.top=tt(h.top,c.top),c.right=Xn(h.right,c.right),c.bottom=Xn(h.bottom,c.bottom),c.left=tt(h.left,c.left),c},Rp(t,s,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function BA(e){const{width:t,height:n}=qw(e);return{width:t,height:n}}function HA(e,t,n){const r=Zt(t),o=Yt(t),i=n==="fixed",a=Dr(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const l=Gt(0);function c(){l.x=lh(o)}if(r||!r&&!i)if((qo(t)!=="body"||oa(o))&&(s=yl(t)),r){const p=Dr(t,!0,i,t);l.x=p.x+t.clientLeft,l.y=p.y+t.clientTop}else o&&c();i&&!r&&o&&c();const d=o&&!r&&!i?Vw(o,s):Gt(0),h=a.left+s.scrollLeft-l.x-d.x,m=a.top+s.scrollTop-l.y-d.y;return{x:h,y:m,width:a.width,height:a.height}}function fc(e){return Ot(e).position==="static"}function Lp(e,t){if(!Zt(e)||Ot(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Yt(e)===n&&(n=n.ownerDocument.body),n}function Uw(e,t){const n=ot(e);if(ml(e))return n;if(!Zt(e)){let o=Jn(e);for(;o&&!Lo(o);){if(jt(o)&&!fc(o))return o;o=Jn(o)}return n}let r=Lp(e,t);for(;r&&PA(r)&&fc(r);)r=Lp(r,t);return r&&Lo(r)&&fc(r)&&!ih(r)?n:r||TA(e)||n}const FA=async function(e){const t=this.getOffsetParent||Uw,n=this.getDimensions,r=await n(e.floating);return{reference:HA(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function qA(e){return Ot(e).direction==="rtl"}const zA={convertOffsetParentRelativeRectToViewportRelativeRect:LA,getDocumentElement:Yt,getClippingRect:$A,getOffsetParent:Uw,getElementRects:FA,getClientRects:NA,getDimensions:BA,getScale:po,isElement:jt,isRTL:qA};function Gw(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function VA(e,t){let n=null,r;const o=Yt(e);function i(){var s;clearTimeout(r),(s=n)==null||s.disconnect(),n=null}function a(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),i();const c=e.getBoundingClientRect(),{left:d,top:h,width:m,height:p}=c;if(s||t(),!m||!p)return;const x=_a(h),y=_a(o.clientWidth-(d+m)),b=_a(o.clientHeight-(h+p)),w=_a(d),v={rootMargin:-x+"px "+-y+"px "+-b+"px "+-w+"px",threshold:tt(0,Xn(1,l))||1};let S=!0;function P(k){const A=k[0].intersectionRatio;if(A!==l){if(!S)return a();A?a(!1,A):r=setTimeout(()=>{a(!1,1e-7)},1e3)}A===1&&!Gw(c,e.getBoundingClientRect())&&a(),S=!1}try{n=new IntersectionObserver(P,{...v,root:o.ownerDocument})}catch{n=new IntersectionObserver(P,v)}n.observe(e)}return a(!0),i}function KA(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=sh(e),d=o||i?[...c?zi(c):[],...zi(t)]:[];d.forEach(w=>{o&&w.addEventListener("scroll",n,{passive:!0}),i&&w.addEventListener("resize",n)});const h=c&&s?VA(c,n):null;let m=-1,p=null;a&&(p=new ResizeObserver(w=>{let[g]=w;g&&g.target===c&&p&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var v;(v=p)==null||v.observe(t)})),n()}),c&&!l&&p.observe(c),p.observe(t));let x,y=l?Dr(e):null;l&&b();function b(){const w=Dr(e);y&&!Gw(y,w)&&n(),y=w,x=requestAnimationFrame(b)}return n(),()=>{var w;d.forEach(g=>{o&&g.removeEventListener("scroll",n),i&&g.removeEventListener("resize",n)}),h==null||h(),(w=p)==null||w.disconnect(),p=null,l&&cancelAnimationFrame(x)}}
vendor: 4,124 bytes, line 154
154const UA=gA,GA=wA,ZA=pA,YA=bA,QA=mA,Np=fA,XA=vA,JA=(e,t,n)=>{const r=new Map,o={platform:zA,...n},i={...o.platform,_c:r};return hA(e,t,{...o,platform:i})};var eE=typeof document<"u",tE=function(){},os=eE?f.useLayoutEffect:tE;function Ws(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ws(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!Ws(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function Zw(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Ip(e,t){const n=Zw(e);return Math.round(t*n)/n}function pc(e){const t=f.useRef(e);return os(()=>{t.current=e}),t}function nE(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:a}={},transform:s=!0,whileElementsMounted:l,open:c}=e,[d,h]=f.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=f.useState(r);Ws(m,r)||p(r);const[x,y]=f.useState(null),[b,w]=f.useState(null),g=f.useCallback(E=>{E!==k.current&&(k.current=E,y(E))},[]),v=f.useCallback(E=>{E!==A.current&&(A.current=E,w(E))},[]),S=i||x,P=a||b,k=f.useRef(null),A=f.useRef(null),T=f.useRef(d),N=l!=null,L=pc(l),q=pc(o),j=pc(c),K=f.useCallback(()=>{if(!k.current||!A.current)return;const E={placement:t,strategy:n,middleware:m};q.current&&(E.platform=q.current),JA(k.current,A.current,E).then(C=>{const I={...C,isPositioned:j.current!==!1};_.current&&!Ws(T.current,I)&&(T.current=I,ta.flushSync(()=>{h(I)}))})},[m,t,n,q,j]);os(()=>{c===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,h(E=>({...E,isPositioned:!1})))},[c]);const _=f.useRef(!1);os(()=>(_.current=!0,()=>{_.current=!1}),[]),os(()=>{if(S&&(k.current=S),P&&(A.current=P),S&&P){if(L.current)return L.current(S,P,K);K()}},[S,P,K,L,N]);const Q=f.useMemo(()=>({reference:k,floating:A,setReference:g,setFloating:v}),[g,v]),B=f.useMemo(()=>({reference:S,floating:P}),[S,P]),V=f.useMemo(()=>{const E={position:n,left:0,top:0};if(!B.floating)return E;const C=Ip(B.floating,d.x),I=Ip(B.floating,d.y);return s?{...E,transform:"translate("+C+"px, "+I+"px)",...Zw(B.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:C,top:I}},[n,s,B.floating,d.x,d.y]);return f.useMemo(()=>({...d,update:K,refs:Q,elements:B,floatingStyles:V}),[d,K,Q,B,V])}const rE=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Np({element:r.current,padding:o}).fn(n):{}:r?Np({element:r,padding:o}).fn(n):{}}}},oE=(e,t)=>({...UA(e),options:[e,t]}),iE=(e,t)=>({...GA(e),options:[e,t]}),aE=(e,t)=>({...XA(e),options:[e,t]}),sE=(e,t)=>({...ZA(e),options:[e,t]}),lE=(e,t)=>({...YA(e),options:[e,t]}),cE=(e,t)=>({...QA(e),options:[e,t]}),uE=(e,t)=>({...rE(e),options:[e,t]});var dE="Arrow",Yw=f.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return u.jsx(ce.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:u.jsx("polygon",{points:"0,0 30,0 15,10"})})});Yw.displayName=dE;var hE=Yw;function fE(e){const[t,n]=f.useState(void 0);return hn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let a,s;if("borderBoxSize"in i){const l=i.borderBoxSize,c=Array.isArray(l)?l[0]:l;a=c.inlineSize,s=c.blockSize}else a=e.offsetWidth,s=e.offsetHeight;n({width:a,height:s})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var ch="Popper",[Qw,zo]=or(ch),[pE,Xw]=Qw(ch),Jw=e=>{const{__scopePopper:t,children:n}=e,[r,o]=f.useState(null);return u.jsx(pE,{scope:t,anchor:r,onAnchorChange:o,children:n})};Jw.displayName=ch;var ev="PopperAnchor",tv=f.forwardRef((e,t)=>
154{const{__scopePopper:n,virtualRef:r,...o}=e,i=Xw(ev,n),a=f.useRef(null),s=Ce(t,a);return f.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||a.current)}),r?null:u.jsx(ce.div,{...o,ref:s})});tv.displayName=ev;var uh="PopperContent",[mE,yE]=Qw(uh),nv=f.forwardRef((e,t)=>{var J,Qt,Ee,Wt,wn,jr;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:a=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:c=[],collisionPadding:d=0,sticky:h="partial",hideWhenDetached:m=!1,updatePositionStrategy:p="optimized",onPlaced:x,...y}=e,b=Xw(uh,n),[w,g]=f.useState(null),v=Ce(t,vn=>g(vn)),[S,P]=f.useState(null),k=fE(S),A=(k==null?void 0:k.width)??0,T=(k==null?void 0:k.height)??0,N=r+(i!=="center"?"-"+i:""),L=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},q=Array.isArray(c)?c:[c],j=q.length>0,K={padding:L,boundary:q.filter(wE),altBoundary:j},{refs:_,floatingStyles:Q,placement:B,isPositioned:V,middlewareData:E}=nE({strategy:"fixed",placement:N,whileElementsMounted:(...vn)=>KA(...vn,{animationFrame:p==="always"}),elements:{reference:b.anchor},middleware:[oE({mainAxis:o+T,alignmentAxis:a}),l&&iE({mainAxis:!0,crossAxis:!1,limiter:h==="partial"?aE():void 0,...K}),l&&sE({...K}),lE({...K,apply:({elements:vn,rects:ca,availableWidth:Al,availableHeight:ua})=>{const{width:El,height:Vo}=ca.reference,Or=vn.floating.style;Or.setProperty("--radix-popper-available-width",`${Al}px`),Or.setProperty("--radix-popper-available-height",`${ua}px`),Or.setProperty("--radix-popper-anchor-width",`${El}px`),Or.setProperty("--radix-popper-anchor-height",`${Vo}px`)}}),S&&uE({element:S,padding:s}),vE({arrowWidth:A,arrowHeight:T}),m&&cE({strategy:"referenceHidden",...K})]}),[C,I]=iv(B),F=at(x);hn(()=>{V&&(F==null||F())},[V,F]);const W=(J=E.arrow)==null?void 0:J.x,Z=(Qt=E.arrow)==null?void 0:Qt.y,X=((Ee=E.arrow)==null?void 0:Ee.centerOffset)!==0,[fe,we]=f.useState();return hn(()=>{w&&we(window.getComputedStyle(w).zIndex)},[w]),u.jsx("div",{ref:_.setFloating,"data-radix-popper-content-wrapper":"",style:{...Q,transform:V?Q.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:fe,"--radix-popper-transform-origin":[(Wt=E.transformOrigin)==null?void 0:Wt.x,(wn=E.transformOrigin)==null?void 0:wn.y].join(" "),...((jr=E.hide)==null?void 0:jr.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:u.jsx(mE,{scope:n,placedSide:C,onArrowChange:P,arrowX:W,arrowY:Z,shouldHideArrow:X,children:u.jsx(ce.div,{"data-side":C,"data-align":I,...y,ref:v,style:{...y.style,animation:V?void 0:"none"}})})})});nv.displayName=uh;var rv="PopperArrow",gE={top:"bottom",right:"left",bottom:"top",left:"right"},ov=f.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=yE(rv,r),a=gE[i.placedSide];return u.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:u.jsx(hE,{...o,ref:n,style:{...o.style,display:"block"}})})});ov.displayName=rv;function wE(e){return e!==null}var vE=e=>({name:"transformOrigin",options:e,fn(t){var b,w,g;const{placement:n,rects:r,middlewareData:o}=t,a=((b=o.arrow)==null?void 0:b.centerOffset)!==0,s=a?0:e.arrowWidth,l=a?0:e.arrowHeight,[c,d]=iv(n),h={start:"0%",center:"50%",end:"100%"}[d],m=(((w=o.arrow)==null?void 0:w.x)??0)+s/2,p=(((g=o.arrow)==null?void 0:g.y)??0)+l/2;let x="",y="";return c==="bottom"?(x=a?h:`${m}px`,y=`${-l}px`):c==="top"?(x=a?h:`${m}px`,y=`${r.floating.height+l}px`):c==="right"?(x=`${-l}px`,y=a?h:`${p}px`):c==="left"&&(x=`${r.floating.width+l}px`,y=a?h:`${p}px`),{data:{x,y}}}});function iv(e){const[t,n="center"]=e.split("-");return[t,n]}var av=Jw,gl=tv,dh=nv,hh=ov,[wl,eR]=or("Tooltip",[zo]),fh=zo(),sv="TooltipProvider",bE=700,_p="tooltip.open",[xE,lv]=wl(sv),cv=e=>{const{__scopeTooltip:t,delayDuration:n=bE,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:i}=e,a=f.useRef(!0),s=f.useRef(!1),l=f.useRef(0);return f.useEffect(()=>{const c=l.current;return()=>window.clearTimeout(c)},[]),u.jsx(xE,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:f.useCallback(()=>{window.clearTimeout(l.current),a.current=!1},[]),onClose:f.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:f.useCallback(c=>{s.current=c},[]),disableHoverableContent:o,children:i})};cv.displayName=sv;var uv="Tooltip",[tR,vl]=wl(uv),$u="TooltipTrigger",SE=f.forwardRef((e,t)=>
vendor: 5,220 bytes, line 154
154{const{__scopeTooltip:n,...r}=e,o=vl($u,n),i=lv($u,n),a=fh(n),s=f.useRef(null),l=Ce(t,s,o.onTriggerChange),c=f.useRef(!1),d=f.useRef(!1),h=f.useCallback(()=>c.current=!1,[]);return f.useEffect(()=>()=>document.removeEventListener("pointerup",h),[h]),u.jsx(gl,{asChild:!0,...a,children:u.jsx(ce.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:l,onPointerMove:H(e.onPointerMove,m=>{m.pointerType!=="touch"&&!d.current&&!i.isPointerInTransitRef.current&&(o.onTriggerEnter(),d.current=!0)}),onPointerLeave:H(e.onPointerLeave,()=>{o.onTriggerLeave(),d.current=!1}),onPointerDown:H(e.onPointerDown,()=>{o.open&&o.onClose(),c.current=!0,document.addEventListener("pointerup",h,{once:!0})}),onFocus:H(e.onFocus,()=>{c.current||o.onOpen()}),onBlur:H(e.onBlur,o.onClose),onClick:H(e.onClick,o.onClose)})})});SE.displayName=$u;var PE="TooltipPortal",[nR,CE]=wl(PE,{forceMount:void 0}),No="TooltipContent",dv=f.forwardRef((e,t)=>{const n=CE(No,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,a=vl(No,e.__scopeTooltip);return u.jsx(gn,{present:r||a.open,children:a.disableHoverableContent?u.jsx(hv,{side:o,...i,ref:t}):u.jsx(kE,{side:o,...i,ref:t})})}),kE=f.forwardRef((e,t)=>{const n=vl(No,e.__scopeTooltip),r=lv(No,e.__scopeTooltip),o=f.useRef(null),i=Ce(t,o),[a,s]=f.useState(null),{trigger:l,onClose:c}=n,d=o.current,{onPointerInTransitChange:h}=r,m=f.useCallback(()=>{s(null),h(!1)},[h]),p=f.useCallback((x,y)=>{const b=x.currentTarget,w={x:x.clientX,y:x.clientY},g=DE(w,b.getBoundingClientRect()),v=RE(w,g),S=LE(y.getBoundingClientRect()),P=IE([...v,...S]);s(P),h(!0)},[h]);return f.useEffect(()=>()=>m(),[m]),f.useEffect(()=>{if(l&&d){const x=b=>p(b,d),y=b=>p(b,l);return l.addEventListener("pointerleave",x),d.addEventListener("pointerleave",y),()=>{l.removeEventListener("pointerleave",x),d.removeEventListener("pointerleave",y)}}},[l,d,p,m]),f.useEffect(()=>{if(a){const x=y=>{const b=y.target,w={x:y.clientX,y:y.clientY},g=(l==null?void 0:l.contains(b))||(d==null?void 0:d.contains(b)),v=!NE(w,a);g?m():v&&(m(),c())};return document.addEventListener("pointermove",x),()=>document.removeEventListener("pointermove",x)}},[l,d,a,c,m]),u.jsx(hv,{...e,ref:i})}),[AE,EE]=wl(uv,{isInside:!1}),TE=w1("TooltipContent"),hv=f.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:a,...s}=e,l=vl(No,n),c=fh(n),{onClose:d}=l;return f.useEffect(()=>(document.addEventListener(_p,d),()=>document.removeEventListener(_p,d)),[d]),f.useEffect(()=>{if(l.trigger){const h=m=>{const p=m.target;p!=null&&p.contains(l.trigger)&&d()};return window.addEventListener("scroll",h,{capture:!0}),()=>window.removeEventListener("scroll",h,{capture:!0})}},[l.trigger,d]),u.jsx(na,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:h=>h.preventDefault(),onDismiss:d,children:u.jsxs(dh,{"data-state":l.stateAttribute,...c,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[u.jsx(TE,{children:r}),u.jsx(AE,{scope:n,isInside:!0,children:u.jsx(H1,{id:l.contentId,role:"tooltip",children:o||r})})]})})});dv.displayName=No;var fv="TooltipArrow",ME=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=fh(n);return EE(fv,n).isInside?null:u.jsx(hh,{...o,...r,ref:t})});ME.displayName=fv;function DE(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function RE(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function LE(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function NE(e,t){const{x:n,y:r}=e;let o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){const s=t[i],l=t[a],c=s.x,d=s.y,h=l.x,m=l.y;d>r!=m>r&&n<(h-c)*(r-d)/(m-d)+c&&(o=!o)}return o}function IE(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),_E(t)}function _E(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const i=t[t.length-1],a=t[t.length-2];if((i.x-a.x)*(o.y-a.y)>=(i.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const i=n[n.length-1],a=n[n.length-2];if((i.x-a.x)*(o.y-a.y)>=(i.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var jE=cv,pv=dv;const OE=jE,WE=f.forwardRef(({className:e,sideOffset:t=4,...n},r)=>
vendor: 4,473 bytes, line 154
154u.jsx(pv,{ref:r,sideOffset:t,className:Ie("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));WE.displayName=pv.displayName;var $E=f.createContext(void 0);function mv(e){const t=f.useContext($E);return e||t||"ltr"}var mc=0;function yv(){f.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??jp()),document.body.insertAdjacentElement("beforeend",e[1]??jp()),mc++,()=>{mc===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),mc--}},[])}function jp(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var yc="focusScope.autoFocusOnMount",gc="focusScope.autoFocusOnUnmount",Op={bubbles:!1,cancelable:!0},BE="FocusScope",ph=f.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[s,l]=f.useState(null),c=at(o),d=at(i),h=f.useRef(null),m=Ce(t,y=>l(y)),p=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(r){let y=function(v){if(p.paused||!s)return;const S=v.target;s.contains(S)?h.current=S:En(h.current,{select:!0})},b=function(v){if(p.paused||!s)return;const S=v.relatedTarget;S!==null&&(s.contains(S)||En(h.current,{select:!0}))},w=function(v){if(document.activeElement===document.body)for(const P of v)P.removedNodes.length>0&&En(s)};document.addEventListener("focusin",y),document.addEventListener("focusout",b);const g=new MutationObserver(w);return s&&g.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",y),document.removeEventListener("focusout",b),g.disconnect()}}},[r,s,p.paused]),f.useEffect(()=>{if(s){$p.add(p);const y=document.activeElement;if(!s.contains(y)){const w=new CustomEvent(yc,Op);s.addEventListener(yc,c),s.dispatchEvent(w),w.defaultPrevented||(HE(KE(gv(s)),{select:!0}),document.activeElement===y&&En(s))}return()=>{s.removeEventListener(yc,c),setTimeout(()=>{const w=new CustomEvent(gc,Op);s.addEventListener(gc,d),s.dispatchEvent(w),w.defaultPrevented||En(y??document.body,{select:!0}),s.removeEventListener(gc,d),$p.remove(p)},0)}}},[s,c,d,p]);const x=f.useCallback(y=>{if(!n&&!r||p.paused)return;const b=y.key==="Tab"&&!y.altKey&&!y.ctrlKey&&!y.metaKey,w=document.activeElement;if(b&&w){const g=y.currentTarget,[v,S]=FE(g);v&&S?!y.shiftKey&&w===S?(y.preventDefault(),n&&En(v,{select:!0})):y.shiftKey&&w===v&&(y.preventDefault(),n&&En(S,{select:!0})):w===g&&y.preventDefault()}},[n,r,p.paused]);return u.jsx(ce.div,{tabIndex:-1,...a,ref:m,onKeyDown:x})});ph.displayName=BE;function HE(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(En(r,{select:t}),document.activeElement!==n)return}function FE(e){const t=gv(e),n=Wp(t,e),r=Wp(t.reverse(),e);return[n,r]}function gv(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Wp(e,t){for(const n of e)if(!qE(n,{upTo:t}))return n}function qE(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function zE(e){return e instanceof HTMLInputElement&&"select"in e}function En(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&zE(e)&&t&&e.select()}}var $p=VE();function VE(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Bp(e,t),e.unshift(t)},remove(t){var n;e=Bp(e,t),(n=e[0])==null||n.resume()}}}function Bp(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function KE(e){return e.filter(t=>t.tagName!=="A")}var wc="rovingFocusGroup.onEntryFocus",UE={bubbles:!1,cancelable:!0},ia="RovingFocusGroup",[Bu,wv,GE]=Yd(ia),[ZE,vv]=or(ia,[GE]),[YE,QE]=ZE(ia),bv=f.forwardRef((e,t)=>
vendor: 10,804 bytes, lines 154-169
154u.jsx(Bu.Provider,{scope:e.__scopeRovingFocusGroup,children:u.jsx(Bu.Slot,{scope:e.__scopeRovingFocusGroup,children:u.jsx(XE,{...e,ref:t})})}));bv.displayName=ia;var XE=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:c,preventScrollOnEntryFocus:d=!1,...h}=e,m=f.useRef(null),p=Ce(t,m),x=mv(i),[y,b]=dl({prop:a,defaultProp:s??null,onChange:l,caller:ia}),[w,g]=f.useState(!1),v=at(c),S=wv(n),P=f.useRef(!1),[k,A]=f.useState(0);return f.useEffect(()=>{const T=m.current;if(T)return T.addEventListener(wc,v),()=>T.removeEventListener(wc,v)},[v]),u.jsx(YE,{scope:n,orientation:r,dir:x,loop:o,currentTabStopId:y,onItemFocus:f.useCallback(T=>b(T),[b]),onItemShiftTab:f.useCallback(()=>g(!0),[]),onFocusableItemAdd:f.useCallback(()=>A(T=>T+1),[]),onFocusableItemRemove:f.useCallback(()=>A(T=>T-1),[]),children:u.jsx(ce.div,{tabIndex:w||k===0?-1:0,"data-orientation":r,...h,ref:p,style:{outline:"none",...e.style},onMouseDown:H(e.onMouseDown,()=>{P.current=!0}),onFocus:H(e.onFocus,T=>{const N=!P.current;if(T.target===T.currentTarget&&N&&!w){const L=new CustomEvent(wc,UE);if(T.currentTarget.dispatchEvent(L),!L.defaultPrevented){const q=S().filter(B=>B.focusable),j=q.find(B=>B.active),K=q.find(B=>B.id===y),Q=[j,K,...q].filter(Boolean).map(B=>B.ref.current);Pv(Q,d)}}P.current=!1}),onBlur:H(e.onBlur,()=>g(!1))})})}),xv="RovingFocusGroupItem",Sv=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:i,children:a,...s}=e,l=Is(),c=i||l,d=QE(xv,n),h=d.currentTabStopId===c,m=wv(n),{onFocusableItemAdd:p,onFocusableItemRemove:x,currentTabStopId:y}=d;return f.useEffect(()=>{if(r)return p(),()=>x()},[r,p,x]),u.jsx(Bu.ItemSlot,{scope:n,id:c,focusable:r,active:o,children:u.jsx(ce.span,{tabIndex:h?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:H(e.onMouseDown,b=>{r?d.onItemFocus(c):b.preventDefault()}),onFocus:H(e.onFocus,()=>d.onItemFocus(c)),onKeyDown:H(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){d.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const w=t2(b,d.orientation,d.dir);if(w!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let v=m().filter(S=>S.focusable).map(S=>S.ref.current);if(w==="last")v.reverse();else if(w==="prev"||w==="next"){w==="prev"&&v.reverse();const S=v.indexOf(b.currentTarget);v=d.loop?n2(v,S+1):v.slice(S+1)}setTimeout(()=>Pv(v))}}),children:typeof a=="function"?a({isCurrentTabStop:h,hasTabStop:y!=null}):a})})});Sv.displayName=xv;var JE={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function e2(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function t2(e,t,n){const r=e2(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return JE[r]}function Pv(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function n2(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var r2=bv,o2=Sv,i2=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},qr=new WeakMap,ja=new WeakMap,Oa={},vc=0,Cv=function(e){return e&&(e.host||Cv(e.parentNode))},a2=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Cv(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},s2=function(e,t,n,r){var o=a2(t,Array.isArray(e)?e:[e]);Oa[n]||(Oa[n]=new WeakMap);var i=Oa[n],a=[],s=new Set,l=new Set(o),c=function(h){!h||s.has(h)||(s.add(h),c(h.parentNode))};o.forEach(c);var d=function(h){!h||l.has(h)||Array.prototype.forEach.call(h.children,function(m){if(s.has(m))d(m);else try{var p=m.getAttribute(r),x=p!==null&&p!=="false",y=(qr.get(m)||0)+1,b=(i.get(m)||0)+1;qr.set(m,y),i.set(m,b),a.push(m),y===1&&x&&ja.set(m,!0),b===1&&m.setAttribute(n,"true"),x||m.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",m,w)}})};return d(t),s.clear(),vc++,function(){a.forEach(function(h){var m=qr.get(h)-1,p=i.get(h)-1;qr.set(h,m),i.set(h,p),m||(ja.has(h)||h.removeAttribute(r),ja.delete(h)),p||h.removeAttribute(n)}),vc--,vc||(qr=new WeakMap,qr=new WeakMap,ja=new WeakMap,Oa={})}},kv=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=i2(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),s2(r,o,n,"aria-hidden")):function(){return null}},Ln=function(){return Ln=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Ln.apply(this,arguments)};function l2(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function c2(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var is="right-scroll-bar-position",as="width-before-scroll-bar",u2="with-scroll-bars-hidden",d2="--removed-body-scroll-bar-size";function bc(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function h2(e,t){var n=f.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var f2=typeof window<"u"?f.useLayoutEffect:f.useEffect,Hp=new WeakMap;function p2(e,t){var n=h2(null,function(r){return e.forEach(function(o){return bc(o,r)})});return f2(function(){var r=Hp.get(n);if(r){var o=new Set(r),i=new Set(e),a=n.current;o.forEach(function(s){i.has(s)||bc(s,null)}),i.forEach(function(s){o.has(s)||bc(s,a)})}Hp.set(n,e)},[e]),n}var $s=function(){return $s=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},$s.apply(this,arguments)};function m2(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function y2(e){return e}function g2(e,t){t===void 0&&(t=y2);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var a=t(i,r);return n.push(a),function(){n=n.filter(function(s){return s!==a})}},assignSyncMedium:function(i){for(r=!0;n.length;){var a=n;n=[],a.forEach(i)}n={push:function(s){return i(s)},filter:function(){return n}}},assignMedium:function(i){r=!0;var a=[];if(n.length){var s=n;n=[],s.forEach(i),a=n}var l=function(){var d=a;a=[],d.forEach(i)},c=function(){return Promise.resolve().then(l)};c(),n={push:function(d){a.push(d),c()},filter:function(d){return a=a.filter(d),n}}}};return o}function w2(e){e===void 0&&(e={});var t=g2(null);return t.options=$s({async:!0,ssr:!1},e),t}var Av=function(e){var t=e.sideCar,n=m2(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return f.createElement(r,$s({},n))};Av.isSideCarExport=!0;function v2(e,t){return e.useMedium(t),Av}var Ev=w2(),xc=function(){},bl=f.forwardRef(function(e,t){var n=f.useRef(null),r=f.useState({onScrollCapture:xc,onWheelCapture:xc,onTouchMoveCapture:xc}),o=r[0],i=r[1],a=e.forwardProps,s=e.children,l=e.className,c=e.removeScrollBar,d=e.enabled,h=e.shards,m=e.sideCar,p=e.noRelative,x=e.noIsolation,y=e.inert,b=e.allowPinchZoom,w=e.as,g=w===void 0?"div":w,v=e.gapMode,S=l2(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=m,k=p2([n,t]),A=Ln(Ln({},S),o);return f.createElement(f.Fragment,null,d&&f.createElement(P,{sideCar:Ev,removeScrollBar:c,shards:h,noRelative:p,noIsolation:x,inert:y,setCallbacks:i,allowPinchZoom:!!b,lockRef:n,gapMode:v}),a?f.cloneElement(f.Children.only(s),Ln(Ln({},A),{ref:k})):f.createElement(g,Ln({},A,{className:l,ref:k}),s))});bl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};bl.classNames={fullWidth:as,zeroRight:is};var b2=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function x2(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=b2();return t&&e.setAttribute("nonce",t),e}function S2(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function P2(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var C2=function(){var e=0,t=null;return{add:function(n){e==0&&(t=x2())&&(S2(t,n),P2(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},k2=function(){var e=C2();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Tv=function(){var e=k2(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},A2={left:0,top:0,right:0,gap:0},Sc=function(e){return parseInt(e||"",10)||0},E2=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Sc(n),Sc(r),Sc(o)]},T2=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return A2;var t=E2(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},M2=Tv(),mo="data-scroll-locked",D2=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,s=e.gap;return n===void 0&&(n="margin"),` 155 .`.concat(u2,` { 156 overflow: hidden `).concat(r,`; 157 padding-right: `).concat(s,"px ").concat(r,`; 158 } 159 body[`).concat(mo,`] { 160 overflow: hidden `).concat(r,`; 161 overscroll-behavior: contain; 162 `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` 163 padding-left: `.concat(o,`px; 164 padding-top: `).concat(i,`px; 165 padding-right: `).concat(a,`px; 166 margin-left:0; 167 margin-top:0; 168 margin-right: `).concat(s,"px ").concat(r,`; 169 `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(r,";
169")].filter(Boolean).join(""),` 170 } 171 172 .`).concat(is,` { 173 right: `).concat(s,"px ").concat(r,`; 174 } 175 176 .`).concat(as,` { 177 margin-right: `).concat(s,"px ").concat(r,`; 178 } 179 180 .`).concat(is," .").concat(is,` { 181 right: 0 `).concat(r,`; 182 } 183 184 .`).concat(as," .").concat(as,` { 185 margin-right: 0 `).concat(r,`; 186 } 187 188 body[`).concat(mo,`] { 189 `).concat(d2,": ").concat(s,`px; 190 } 191`)},Fp=function(){var e=parseInt(document.body.getAttribute(mo)||"0",10);return isFinite(e)?e:0},R2=function(){f.useEffect(function(){return document.body.setAttribute(mo,(Fp()+1).toString()),function(){var e=Fp()-1;e<=0?document.body.removeAttribute(mo):document.body.setAttribute(mo,e.toString())}},[])},L2=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;R2();var i=f.useMemo(function(){return T2(o)},[o]);return f.createElement(M2,{styles:D2(i,!t,o,n?"":"!important")})},Hu=!1;if(typeof window<"u")try{var Wa=Object.defineProperty({},"passive",{get:function(){return Hu=!0,!0}});window.addEventListener("test",Wa,Wa),window.removeEventListener("test",Wa,Wa)}catch{Hu=!1}var zr=Hu?{passive:!1}:!1,N2=function(e){return e.tagName==="TEXTAREA"},Mv=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!N2(e)&&n[t]==="visible")},I2=function(e){return Mv(e,"overflowY")},_2=function(e){return Mv(e,"overflowX")},qp=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=Dv(e,r);if(o){var i=Rv(e,r),a=i[1],s=i[2];if(a>s)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},j2=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},O2=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},Dv=function(e,t){return e==="v"?I2(t):_2(t)},Rv=function(e,t){return e==="v"?j2(t):O2(t)},W2=function(e,t){return e==="h"&&t==="rtl"?-1:1},$2=function(e,t,n,r,o){var i=W2(e,window.getComputedStyle(t).direction),a=i*r,s=n.target,l=t.contains(s),c=!1,d=a>0,h=0,m=0;do{if(!s)break;var p=Rv(e,s),x=p[0],y=p[1],b=p[2],w=y-b-i*x;(x||w)&&Dv(e,s)&&(h+=w,m+=x);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&(Math.abs(h)<1||!o)||!d&&(Math.abs(m)<1||!o))&&(c=!0),c},$a=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},zp=function(e){return[e.deltaX,e.deltaY]},Vp=function(e){return e&&"current"in e?e.current:e},B2=function(e,t){return e[0]===t[0]&&e[1]===t[1]},H2=function(e){return` 192 .block-interactivity-`.concat(e,` {pointer-events: none;} 193 .allow-interactivity-`).concat(e,` {pointer-events: all;} 194`)},F2=0,Vr=[];function q2(e){var t=f.useRef([]),n=f.useRef([0,0]),r=f.useRef(),o=f.useState(F2++)[0],i=f.useState(Tv)[0],a=f.useRef(e);f.useEffect(function(){a.current=e},[e]),f.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var y=c2([e.lockRef.current],(e.shards||[]).map(Vp),!0).filter(Boolean);return y.forEach(function(b){return b.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),y.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var s=f.useCallback(function(y,b){if("touches"in y&&y.touches.length===2||y.type==="wheel"&&y.ctrlKey)return!a.current.allowPinchZoom;var w=$a(y),g=n.current,v="deltaX"in y?y.deltaX:g[0]-w[0],S="deltaY"in y?y.deltaY:g[1]-w[1],P,k=y.target,A=Math.abs(v)>Math.abs(S)?"h":"v";if("touches"in y&&A==="h"&&k.type==="range")return!1;var T=qp(A,k);if(!T)return!0;if(T?P=A:(P=A==="v"?"h":"v",T=qp(A,k)),!T)return!1;if(!r.current&&"changedTouches"in y&&(v||S)&&(r.current=P),!P)return!0;var N=r.current||P;return $2(N,b,y,N==="h"?v:S,!0)},[]),l=f.useCallback(function(y){var b=y;if(!(!Vr.length||Vr[Vr.length-1]!==i)){var w="deltaY"in b?zp(b):$a(b),g=t.current.filter(function(P){return P.name===b.type&&(P.target===b.target||b.target===P.shadowParent)&&B2(P.delta,w)})[0];if(g&&g.should){b.cancelable&&b.preventDefault();return}
vendor: 15,344 bytes, line 194
194if(!g){var v=(a.current.shards||[]).map(Vp).filter(Boolean).filter(function(P){return P.contains(b.target)}),S=v.length>0?s(b,v[0]):!a.current.noIsolation;S&&b.cancelable&&b.preventDefault()}}},[]),c=f.useCallback(function(y,b,w,g){var v={name:y,delta:b,target:w,should:g,shadowParent:z2(w)};t.current.push(v),setTimeout(function(){t.current=t.current.filter(function(S){return S!==v})},1)},[]),d=f.useCallback(function(y){n.current=$a(y),r.current=void 0},[]),h=f.useCallback(function(y){c(y.type,zp(y),y.target,s(y,e.lockRef.current))},[]),m=f.useCallback(function(y){c(y.type,$a(y),y.target,s(y,e.lockRef.current))},[]);f.useEffect(function(){return Vr.push(i),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:m}),document.addEventListener("wheel",l,zr),document.addEventListener("touchmove",l,zr),document.addEventListener("touchstart",d,zr),function(){Vr=Vr.filter(function(y){return y!==i}),document.removeEventListener("wheel",l,zr),document.removeEventListener("touchmove",l,zr),document.removeEventListener("touchstart",d,zr)}},[]);var p=e.removeScrollBar,x=e.inert;return f.createElement(f.Fragment,null,x?f.createElement(i,{styles:H2(o)}):null,p?f.createElement(L2,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function z2(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const V2=v2(Ev,q2);var mh=f.forwardRef(function(e,t){return f.createElement(bl,Ln({},e,{ref:t,sideCar:V2}))});mh.classNames=bl.classNames;var Fu=["Enter"," "],K2=["ArrowDown","PageUp","Home"],Lv=["ArrowUp","PageDown","End"],U2=[...K2,...Lv],G2={ltr:[...Fu,"ArrowRight"],rtl:[...Fu,"ArrowLeft"]},Z2={ltr:["ArrowLeft"],rtl:["ArrowRight"]},aa="Menu",[Vi,Y2,Q2]=Yd(aa),[Nr,Nv]=or(aa,[Q2,zo,vv]),xl=zo(),Iv=vv(),[X2,Ir]=Nr(aa),[J2,sa]=Nr(aa),_v=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:i,modal:a=!0}=e,s=xl(t),[l,c]=f.useState(null),d=f.useRef(!1),h=at(i),m=mv(o);return f.useEffect(()=>{const p=()=>{d.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},x=()=>d.current=!1;return document.addEventListener("keydown",p,{capture:!0}),()=>{document.removeEventListener("keydown",p,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),u.jsx(av,{...s,children:u.jsx(X2,{scope:t,open:n,onOpenChange:h,content:l,onContentChange:c,children:u.jsx(J2,{scope:t,onClose:f.useCallback(()=>h(!1),[h]),isUsingKeyboardRef:d,dir:m,modal:a,children:r})})})};_v.displayName=aa;var eT="MenuAnchor",yh=f.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=xl(n);return u.jsx(gl,{...o,...r,ref:t})});yh.displayName=eT;var gh="MenuPortal",[tT,jv]=Nr(gh,{forceMount:void 0}),Ov=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,i=Ir(gh,t);return u.jsx(tT,{scope:t,forceMount:n,children:u.jsx(gn,{present:n||i.open,children:u.jsx(ul,{asChild:!0,container:o,children:r})})})};Ov.displayName=gh;var wt="MenuContent",[nT,wh]=Nr(wt),Wv=f.forwardRef((e,t)=>{const n=jv(wt,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=Ir(wt,e.__scopeMenu),a=sa(wt,e.__scopeMenu);return u.jsx(Vi.Provider,{scope:e.__scopeMenu,children:u.jsx(gn,{present:r||i.open,children:u.jsx(Vi.Slot,{scope:e.__scopeMenu,children:a.modal?u.jsx(rT,{...o,ref:t}):u.jsx(oT,{...o,ref:t})})})})}),rT=f.forwardRef((e,t)=>{const n=Ir(wt,e.__scopeMenu),r=f.useRef(null),o=Ce(t,r);return f.useEffect(()=>{const i=r.current;if(i)return kv(i)},[]),u.jsx(vh,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:H(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),oT=f.forwardRef((e,t)=>{const n=Ir(wt,e.__scopeMenu);return u.jsx(vh,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),iT=Ro("MenuContent.ScrollLock"),vh=f.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:s,onEntryFocus:l,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:p,disableOutsideScroll:x,...y}=e,b=Ir(wt,n),w=sa(wt,n),g=xl(n),v=Iv(n),S=Y2(n),[P,k]=f.useState(null),A=f.useRef(null),T=Ce(t,A,b.onContentChange),N=f.useRef(0),L=f.useRef(""),q=f.useRef(0),j=f.useRef(null),K=f.useRef("right"),_=f.useRef(0),Q=x?mh:f.Fragment,B=x?{as:iT,allowPinchZoom:!0}:void 0,V=C=>{var J,Qt;const I=L.current+C,F=S().filter(Ee=>!Ee.disabled),W=document.activeElement,Z=(J=F.find(Ee=>Ee.ref.current===W))==null?void 0:J.textValue,X=F.map(Ee=>Ee.textValue),fe=gT(X,I,Z),we=(Qt=F.find(Ee=>Ee.textValue===fe))==null?void 0:Qt.ref.current;(function Ee(Wt){L.current=Wt,window.clearTimeout(N.current),Wt!==""&&(N.current=window.setTimeout(()=>Ee(""),1e3))})(I),we&&setTimeout(()=>we.focus())};f.useEffect(()=>()=>window.clearTimeout(N.current),[]),yv();const E=f.useCallback(C=>{var F,W;return K.current===((F=j.current)==null?void 0:F.side)&&vT(C,(W=j.current)==null?void 0:W.area)},[]);return u.jsx(nT,{scope:n,searchRef:L,onItemEnter:f.useCallback(C=>{E(C)&&C.preventDefault()},[E]),onItemLeave:f.useCallback(C=>{var I;E(C)||((I=A.current)==null||I.focus(),k(null))},[E]),onTriggerLeave:f.useCallback(C=>{E(C)&&C.preventDefault()},[E]),pointerGraceTimerRef:q,onPointerGraceIntentChange:f.useCallback(C=>{j.current=C},[]),children:u.jsx(Q,{...B,children:u.jsx(ph,{asChild:!0,trapped:o,onMountAutoFocus:H(i,C=>{var I;C.preventDefault(),(I=A.current)==null||I.focus({preventScroll:!0})}),onUnmountAutoFocus:a,children:u.jsx(na,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:h,onInteractOutside:m,onDismiss:p,children:u.jsx(r2,{asChild:!0,...v,dir:w.dir,orientation:"vertical",loop:r,currentTabStopId:P,onCurrentTabStopIdChange:k,onEntryFocus:H(l,C=>{w.isUsingKeyboardRef.current||C.preventDefault()}),preventScrollOnEntryFocus:!0,children:u.jsx(dh,{role:"menu","aria-orientation":"vertical","data-state":e0(b.open),"data-radix-menu-content":"",dir:w.dir,...g,...y,ref:T,style:{outline:"none",...y.style},onKeyDown:H(y.onKeyDown,C=>{const F=C.target.closest("[data-radix-menu-content]")===C.currentTarget,W=C.ctrlKey||C.altKey||C.metaKey,Z=C.key.length===1;F&&(C.key==="Tab"&&C.preventDefault(),!W&&Z&&V(C.key));const X=A.current;if(C.target!==X||!U2.includes(C.key))return;C.preventDefault();const we=S().filter(J=>!J.disabled).map(J=>J.ref.current);Lv.includes(C.key)&&we.reverse(),mT(we)}),onBlur:H(e.onBlur,C=>{C.currentTarget.contains(C.target)||(window.clearTimeout(N.current),L.current="")}),onPointerMove:H(e.onPointerMove,Ki(C=>{const I=C.target,F=_.current!==C.clientX;if(C.currentTarget.contains(I)&&F){const W=C.clientX>_.current?"right":"left";K.current=W,_.current=C.clientX}}))})})})})})})});Wv.displayName=wt;var aT="MenuGroup",bh=f.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(ce.div,{role:"group",...r,ref:t})});bh.displayName=aT;var sT="MenuLabel",$v=f.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(ce.div,{...r,ref:t})});$v.displayName=sT;var Bs="MenuItem",Kp="menu.itemSelect",Sl=f.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,i=f.useRef(null),a=sa(Bs,e.__scopeMenu),s=wh(Bs,e.__scopeMenu),l=Ce(t,i),c=f.useRef(!1),d=()=>{const h=i.current;if(!n&&h){const m=new CustomEvent(Kp,{bubbles:!0,cancelable:!0});h.addEventListener(Kp,p=>r==null?void 0:r(p),{once:!0}),Qd(h,m),m.defaultPrevented?c.current=!1:a.onClose()}};return u.jsx(Bv,{...o,ref:l,disabled:n,onClick:H(e.onClick,d),onPointerDown:h=>{var m;(m=e.onPointerDown)==null||m.call(e,h),c.current=!0},onPointerUp:H(e.onPointerUp,h=>{var m;c.current||(m=h.currentTarget)==null||m.click()}),onKeyDown:H(e.onKeyDown,h=>{const m=s.searchRef.current!=="";n||m&&h.key===" "||Fu.includes(h.key)&&(h.currentTarget.click(),h.preventDefault())})})});Sl.displayName=Bs;var Bv=f.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...i}=e,a=wh(Bs,n),s=Iv(n),l=f.useRef(null),c=Ce(t,l),[d,h]=f.useState(!1),[m,p]=f.useState("");return f.useEffect(()=>{const x=l.current;x&&p((x.textContent??"").trim())},[i.children]),u.jsx(Vi.ItemSlot,{scope:n,disabled:r,textValue:o??m,children:u.jsx(o2,{asChild:!0,...s,focusable:!r,children:u.jsx(ce.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...i,ref:c,onPointerMove:H(e.onPointerMove,Ki(x=>{r?a.onItemLeave(x):(a.onItemEnter(x),x.defaultPrevented||x.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:H(e.onPointerLeave,Ki(x=>a.onItemLeave(x))),onFocus:H(e.onFocus,()=>h(!0)),onBlur:H(e.onBlur,()=>h(!1))})})})}),lT="MenuCheckboxItem",Hv=f.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return u.jsx(Kv,{scope:e.__scopeMenu,checked:n,children:u.jsx(Sl,{role:"menuitemcheckbox","aria-checked":Hs(n)?"mixed":n,...o,ref:t,"data-state":Sh(n),onSelect:H(o.onSelect,()=>r==null?void 0:r(Hs(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Hv.displayName=lT;var Fv="MenuRadioGroup",[cT,uT]=Nr(Fv,{value:void 0,onValueChange:()=>{}}),qv=f.forwardRef((e,t)=>{const{value:n,onValueChange:r,...o}=e,i=at(r);return u.jsx(cT,{scope:e.__scopeMenu,value:n,onValueChange:i,children:u.jsx(bh,{...o,ref:t})})});qv.displayName=Fv;var zv="MenuRadioItem",Vv=f.forwardRef((e,t)=>{const{value:n,...r}=e,o=uT(zv,e.__scopeMenu),i=n===o.value;return u.jsx(Kv,{scope:e.__scopeMenu,checked:i,children:u.jsx(Sl,{role:"menuitemradio","aria-checked":i,...r,ref:t,"data-state":Sh(i),onSelect:H(r.onSelect,()=>{var a;return(a=o.onValueChange)==null?void 0:a.call(o,n)},{checkForDefaultPrevented:!1})})})});Vv.displayName=zv;var xh="MenuItemIndicator",[Kv,dT]=Nr(xh,{checked:!1}),Uv=f.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,i=dT(xh,n);return u.jsx(gn,{present:r||Hs(i.checked)||i.checked===!0,children:u.jsx(ce.span,{...o,ref:t,"data-state":Sh(i.checked)})})});Uv.displayName=xh;var hT="MenuSeparator",Gv=f.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return u.jsx(ce.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});Gv.displayName=hT;var fT="MenuArrow",Zv=f.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=xl(n);return u.jsx(hh,{...o,...r,ref:t})});Zv.displayName=fT;var pT="MenuSub",[rR,Yv]=Nr(pT),di="MenuSubTrigger",Qv=f.forwardRef((e,t)=>{const n=Ir(di,e.__scopeMenu),r=sa(di,e.__scopeMenu),o=Yv(di,e.__scopeMenu),i=wh(di,e.__scopeMenu),a=f.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:l}=i,c={__scopeMenu:e.__scopeMenu},d=f.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return f.useEffect(()=>d,[d]),f.useEffect(()=>{const h=s.current;return()=>{window.clearTimeout(h),l(null)}},[s,l]),u.jsx(yh,{asChild:!0,...c,children:u.jsx(Bv,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":e0(n.open),...e,ref:cl(t,o.onTriggerChange),onClick:h=>{var m;(m=e.onClick)==null||m.call(e,h),!(e.disabled||h.defaultPrevented)&&(h.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:H(e.onPointerMove,Ki(h=>{i.onItemEnter(h),!h.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(i.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:H(e.onPointerLeave,Ki(h=>{var p,x;d();const m=(p=n.content)==null?void 0:p.getBoundingClientRect();if(m){const y=(x=n.content)==null?void 0:x.dataset.side,b=y==="right",w=b?-5:5,g=m[b?"left":"right"],v=m[b?"right":"left"];i.onPointerGraceIntentChange({area:[{x:h.clientX+w,y:h.clientY},{x:g,y:m.top},{x:v,y:m.top},{x:v,y:m.bottom},{x:g,y:m.bottom}],side:y}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(h),h.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:H(e.onKeyDown,h=>{var p;const m=i.searchRef.current!=="";e.disabled||m&&h.key===" "||G2[r.dir].includes(h.key)&&(n.onOpenChange(!0),(p=n.content)==null||p.focus(),h.preventDefault())})})})});Qv.displayName=di;var Xv="MenuSubContent",Jv=f.forwardRef((e,t)=>{const n=jv(wt,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=Ir(wt,e.__scopeMenu),a=sa(wt,e.__scopeMenu),s=Yv(Xv,e.__scopeMenu),l=f.useRef(null),c=Ce(t,l);return u.jsx(Vi.Provider,{scope:e.__scopeMenu,children:u.jsx(gn,{present:r||i.open,children:u.jsx(Vi.Slot,{scope:e.__scopeMenu,children:u.jsx(vh,{id:s.contentId,"aria-labelledby":s.triggerId,...o,ref:c,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var h;a.isUsingKeyboardRef.current&&((h=l.current)==null||h.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:H(e.onFocusOutside,d=>{d.target!==s.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:H(e.onEscapeKeyDown,d=>{a.onClose(),d.preventDefault()}),onKeyDown:H(e.onKeyDown,d=>{var p;const h=d.currentTarget.contains(d.target),m=Z2[a.dir].includes(d.key);h&&m&&(i.onOpenChange(!1),(p=s.trigger)==null||p.focus(),d.preventDefault())})})})})})});Jv.displayName=Xv;function e0(e){return e?"open":"closed"}function Hs(e){return e==="indeterminate"}function Sh(e){return Hs(e)?"indeterminate":e?"checked":"unchecked"}function mT(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function yT(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function gT(e,t,n){const o=t.length>1&&Array.from(t).every(c=>c===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let a=yT(e,Math.max(i,0));o.length===1&&(a=a.filter(c=>c!==n));const l=a.find(c=>c.toLowerCase().startsWith(o.toLowerCase()));return l!==n?l:void 0}function wT(e,t){const{x:n,y:r}=e;let o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){const s=t[i],l=t[a],c=s.x,d=s.y,h=l.x,m=l.y;d>r!=m>r&&n<(h-c)*(r-d)/(m-d)+c&&(o=!o)}return o}function vT(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return wT(n,t)}function Ki(e){return t=>t.pointerType==="mouse"?e(t):void 0}var bT=_v,xT=yh,ST=Ov,PT=Wv,CT=bh,kT=$v,AT=Sl,ET=Hv,TT=qv,MT=Vv,DT=Uv,RT=Gv,LT=Zv,NT=Qv,IT=Jv,Pl="DropdownMenu",[_T,oR]=or(Pl,[Nv]),Ue=Nv(),[jT,t0]=_T(Pl),n0=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,l=Ue(t),c=f.useRef(null),[d,h]=dl({prop:o,defaultProp:i??!1,onChange:a,caller:Pl});return u.jsx(jT,{scope:t,triggerId:Is(),triggerRef:c,contentId:Is(),open:d,onOpenChange:h,onOpenToggle:f.useCallback(()=>h(m=>!m),[h]),modal:s,children:u.jsx(bT,{...l,open:d,onOpenChange:h,dir:r,modal:s,children:n})})};n0.displayName=Pl;var r0="DropdownMenuTrigger",o0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,i=t0(r0,n),a=Ue(n);return u.jsx(xT,{asChild:!0,...a,children:u.jsx(ce.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:cl(t,i.triggerRef),onPointerDown:H(e.onPointerDown,s=>{!r&&s.button===0&&s.ctrlKey===!1&&(i.onOpenToggle(),i.open||s.preventDefault())}),onKeyDown:H(e.onKeyDown,s=>{r||(["Enter"," "].includes(s.key)&&i.onOpenToggle(),s.key==="ArrowDown"&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(s.key)&&s.preventDefault())})})})});o0.displayName=r0;
194var OT="DropdownMenuPortal",i0=e=>{const{__scopeDropdownMenu:t,...n}=e,r=Ue(t);return u.jsx(ST,{...r,...n})};i0.displayName=OT;var a0="DropdownMenuContent",s0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=t0(a0,n),i=Ue(n),a=f.useRef(!1);return u.jsx(PT,{id:o.contentId,"aria-labelledby":o.triggerId,...i,...r,ref:t,onCloseAutoFocus:H(e.onCloseAutoFocus,s=>{var l;a.current||(l=o.triggerRef.current)==null||l.focus(),a.current=!1,s.preventDefault()}),onInteractOutside:H(e.onInteractOutside,s=>{const l=s.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0,d=l.button===2||c;(!o.modal||d)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});s0.displayName=a0;var WT="DropdownMenuGroup",$T=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(CT,{...o,...r,ref:t})});$T.displayName=WT;var BT="DropdownMenuLabel",l0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(kT,{...o,...r,ref:t})});l0.displayName=BT;var HT="DropdownMenuItem",c0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(AT,{...o,...r,ref:t})});c0.displayName=HT;var FT="DropdownMenuCheckboxItem",u0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(ET,{...o,...r,ref:t})});u0.displayName=FT;var qT="DropdownMenuRadioGroup",zT=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(TT,{...o,...r,ref:t})});zT.displayName=qT;var VT="DropdownMenuRadioItem",d0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(MT,{...o,...r,ref:t})});d0.displayName=VT;var KT="DropdownMenuItemIndicator",h0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(DT,{...o,...r,ref:t})});h0.displayName=KT;var UT="DropdownMenuSeparator",f0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(RT,{...o,...r,ref:t})});f0.displayName=UT;var GT="DropdownMenuArrow",ZT=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(LT,{...o,...r,ref:t})});ZT.displayName=GT;var YT="DropdownMenuSubTrigger",p0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(NT,{...o,...r,ref:t})});p0.displayName=YT;var QT="DropdownMenuSubContent",m0=f.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Ue(n);return u.jsx(IT,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});m0.displayName=QT;var XT=n0,JT=o0,eM=i0,y0=s0,g0=l0,w0=c0,v0=u0,b0=d0,x0=h0,S0=f0,P0=p0,C0=m0;const Up=XT,Gp=JT,tM=f.forwardRef(({className:e,inset:t,children:n,...r},o)=>u.jsxs(P0,{ref:o,className:Ie("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent",t&&"pl-8",e),...r,children:[n,u.jsx(ck,{className:"ml-auto h-4 w-4"})]}));tM.displayName=P0.displayName;const nM=f.forwardRef(({className:e,...t},n)=>u.jsx(C0,{ref:n,className:Ie("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));nM.displayName=C0.displayName;const qu=f.forwardRef(({className:e,sideOffset:t=4,...n},r)=>u.jsx(eM,{children:u.jsx(y0,{ref:r,sideOffset:t,className:Ie("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
194de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));qu.displayName=y0.displayName;const rM=f.forwardRef(({className:e,inset:t,...n},r)=>u.jsx(w0,{ref:r,className:Ie("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",t&&"pl-8",e),...n}));rM.displayName=w0.displayName;const oM=f.forwardRef(({className:e,children:t,checked:n,...r},o)=>u.jsxs(v0,{ref:o,className:Ie("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),checked:n,...r,children:[u.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:u.jsx(x0,{children:u.jsx(Aw,{className:"h-4 w-4"})})}),t]}));oM.displayName=v0.displayName;const iM=f.forwardRef(({className:e,children:t,...n},r)=>u.jsxs(b0,{ref:r,className:Ie("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),...n,children:[u.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:u.jsx(x0,{children:u.jsx(uk,{className:"h-2 w-2 fill-current"})})}),t]}));iM.displayName=b0.displayName;const aM=f.forwardRef(({className:e,inset:t,...n},r)=>u.jsx(g0,{ref:r,className:Ie("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));aM.displayName=g0.displayName;const sM=f.forwardRef(({className:e,...t},n)=>u.jsx(S0,{ref:n,className:Ie("-mx-1 my-1 h-px bg-muted",e),...t}));sM.displayName=S0.displayName;const lM=[{slug:"berwyn",city:"Berwyn",state:"PA",zips:["19312"],county:"Chester County",schoolDistrict:"Tredyffrin/Easttown School District",metaTitle:"Real Estate Agent in Berwyn, PA | Saiid Zamani",metaDescription:"Berwyn PA real estate guide â Conestoga schools, Main Line living, walkable downtown. Local Keller Williams agent Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Berwyn, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Berwyn, PA (19312) in Tredyffrin/Easttown School District. Berwyn sits on the Main Line between Wayne and Paoli with direct SEPTA Paoli/Thorndale Line service. Median price ~$700Kâ$1.1M.",priceBand:"Median sale price ~$700Kâ$1.1M (2025), with luxury Daylesford and Glenhardie homes exceeding $1.5M.",commute:"SEPTA Paoli/Thorndale Line direct to 30th Street Station in ~35 minutes.",intro:"Berwyn is a walkable Main Line village in Tredyffrin Township with award-winning Conestoga High School (T/E SD), historic homes, and a small commercial corridor along Lancaster Avenue. Berwyn buyers prioritize school feeders, walk-to-train access, and the Tredyffrin tax base.",neighborhoods:"Daylesford, Glenhardie, Trianon, Berwyn Borough proper, and the streets surrounding Conestoga High School. Each pocket has distinct lot sizes and price points.",market:"Berwyn homes inside the T/E district routinely sell within 14 days, often with multiple offers. Inventory is tight; well-staged listings near Conestoga set neighborhood comps.",whyMe:"Saiid lives and works on the Main Line and tracks Berwyn micro-markets weekly. He knows which streets feed Beaumont vs Devon Elementary and how that affects resale.",faqs:[{question:"Is Berwyn, PA a place to live?",answer:"Yes. Berwyn is a Main Line town thanks to Tredyffrin/Easttown School District (Conestoga High), SEPTA train access, established residential character, and walkable Lancaster Avenue dining."},{question:"What school district is Berwyn, PA in?",answer:"Berwyn is served by Tredyffrin/Easttown School District, home to Conestoga High School â consistently a top-5 public high school in Pennsylvania."},{question:"What is the median home price in Berwyn, PA?",answer:"Median sale price in Berwyn (ZIP 19312) in 2025 runs $700K to $1.1M for typical single-family homes, with luxury properties exceeding $1.5M."},{question:"How long is the train commute from Berwyn to Philadelphia?",answer:"About 35 minutes on the SEPTA Paoli/Thorndale Line direct to 30th Street Station."}],geo:{lat:40.0454,lng:-75.4438}
194,nearbyEntities:["Conestoga High School","Tredyffrin Township","Lancaster Avenue","SEPTA Paoli/Thorndale Line","Main Line"]},{slug:"devon",city:"Devon",state:"PA",zips:["19333"],county:"Chester County",schoolDistrict:"Tredyffrin/Easttown School District",metaTitle:"Real Estate Agent in Devon, PA | Saiid Zamani",metaDescription:"Devon PA real estate â Tredyffrin/Easttown schools, Devon Horse Show, Main Line luxury. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Devon, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor based in Devon, PA (19333), serving Tredyffrin/Easttown School District. Devon is home to the historic Devon Horse Show grounds and some of the Main Line's most desirable luxury estates.",priceBand:"Median sale price ~$900Kâ$1.6M (2025); estates north of Lancaster Ave routinely exceed $2M.",commute:"SEPTA Devon station (Paoli/Thorndale Line) ~33 min to 30th Street. Quick access to US-202, US-30, and the PA Turnpike.",intro:"Devon, PA is a Main Line community in Easttown Township known for the Devon Horse Show, leafy estate lots, and the Devon Yard mixed-use district. Buyers are typically drawn by T/E schools and the upscale Devon Yard restaurants and shops.",neighborhoods:"Waterloo, Devon Estates, Beaumont, and the streets surrounding Devon Yard. Lot sizes range from ¼ acre near downtown to 2+ acres in the northern sections.",market:"Devon's high-end inventory turns slower than entry-level Main Line stock, but luxury demand from corporate relocations keeps values strong year-over-year.",whyMe:"Saiid lists and sells Devon and Berwyn properties regularly and knows the agents, the appraisers, and the buyer pool that drives luxury Main Line transactions.",faqs:[{question:"Is Devon, PA a wealthy area?",answer:"Yes. Devon is one of the most affluent zip codes on the Pennsylvania Main Line, with median household incomes well above state averages and a high concentration of luxury single-family estates."},{question:"What school district is Devon, PA in?",answer:"Devon is served by Tredyffrin/Easttown School District (Conestoga High School), one of the highest-rated public districts in Pennsylvania."},{question:"What is Devon Yard?",answer:"Devon Yard is a walkable shopping and dining district at Lancaster and Berkley featuring Terrain, Anthropologie, Amis Trattoria, and Urban Outfitters, anchoring downtown Devon."},{question:"Where is the Devon Horse Show?",answer:"The Devon Horse Show is held at the Devon Horse Show Grounds at 23 Dorset Road, Devon, PA â running annually since 1896."}],geo:{lat:40.0451,lng:-75.4221},nearbyEntities:["Devon Horse Show","Devon Yard","Conestoga High School","Easttown Township","Main Line"]},{slug:"paoli",city:"Paoli",state:"PA",zips:["19301"],county:"Chester County",schoolDistrict:"Tredyffrin/Easttown School District",metaTitle:"Real Estate Agent in Paoli, PA | Saiid Zamani",metaDescription:"Paoli PA homes for sale â T/E schools, Paoli train station, Main Line commuter town. Local agent Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Paoli, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Paoli, PA (19301) in Tredyffrin/Easttown School District. Paoli is the end-of-line for the SEPTA Paoli/Thorndale Line and Amtrak's Keystone service, making it a top Philadelphia commuter town.",priceBand:"Median sale price ~$575Kâ$950K (2025); luxury properties to $1.3M.",commute:"SEPTA Paoli/Thorndale Line and Amtrak Keystone direct to 30th Street Station (~40 min). US-30 and PA Turnpike Slip Ramp nearby.",intro:"Paoli sits at the western edge of the Main Line, combining T/E schools with one of the region's strongest train commuter advantages. Walk-to-train homes near Paoli Station are perennially in demand.",neighborhoods:"Paoli Station district, Glenhardie, Chesterbrook border, and Daylesford. Walk scores drop quickly outside the village core.",market:"Paoli inventory turns fast for anything inside T/E. Townhomes and walk-to-train singles see the most competition.",whyMe:"Saiid's office is minutes away in Wayne â he handles Paoli listings every week and tracks weekly absorption trends in T/E.",faqs:[{question:"What school district is Paoli, PA in?",answer:"Paoli is in Tredyffrin/Easttown School District, with Conestoga High School as the assigned high school."},{question:"Is Paoli a good commute to Philadelphia?",answer:"Yes. Paoli Station offers SEPTA Paoli/Thorndale Line and Amtrak Keystone service direct to 30th Street and Center City â about 40 minutes."},{question:"What is the median home price in Paoli, PA?",answer:"As of 2025, median home prices in Paoli (ZIP 19301) range from $575K to $950K, with luxury homes reaching $1.3M+."}],geo:{lat:40.0432,lng:-75.486},nearbyEntities:["Paoli Station","Amtrak Keystone","Conestoga High School","Tredyffrin Towns
194hip","Main Line"]},{slug:"radnor",city:"Radnor",state:"PA",zips:["19087","19010"],county:"Delaware County",schoolDistrict:"Radnor Township School District",metaTitle:"Real Estate Agent in Radnor, PA | Saiid Zamani",metaDescription:"Radnor PA real estate â Radnor Township SD, Villanova University, Main Line luxury. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Radnor, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Radnor Township, PA in Delaware County â home to Villanova University, Cabrini University, and the well-regarded Radnor Township School District.",priceBand:"Median sale price ~$850Kâ$1.4M (2025); estate properties exceed $2M.",commute:"SEPTA Paoli/Thorndale Line at Radnor and Villanova stations (~30 min to 30th Street). US-30, I-476 access.",intro:"Radnor Township anchors the central Main Line with Radnor Township School District, Villanova University, and a strong jobs base around the Radnor corporate corridor.",neighborhoods:"Villanova, Wayne (Radnor side), South Wayne, St Davids, and Garrett Hill.",market:"Radnor SD homes consistently see multiple offers within days. Inventory is the binding constraint.",whyMe:"Saiid's brokerage office on West Lancaster Avenue is in Radnor â he sees the Radnor market in real time.",faqs:[{question:"What school district is Radnor, PA in?",answer:"Radnor Township is served by Radnor Township School District, regularly ranked among the top public districts in Pennsylvania."},{question:"Is Villanova University in Radnor?",answer:"Yes, Villanova University's main campus straddles Radnor Township and Lower Merion Township along Lancaster Avenue."},{question:"What is the median home price in Radnor, PA?",answer:"Median sale price in Radnor Township in 2025 runs $850K to $1.4M, with luxury estate properties exceeding $2M."}],geo:{lat:40.0467,lng:-75.3596},nearbyEntities:["Villanova University","Cabrini University","Radnor Township School District","Radnor Station","Main Line"]}
194,{slug:"bryn-mawr",city:"Bryn Mawr",state:"PA",zips:["19010"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Real Estate Agent in Bryn Mawr, PA | Saiid Zamani",metaDescription:"Bryn Mawr PA homes â Lower Merion schools, Bryn Mawr College & Hospital, walkable village. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Bryn Mawr, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Bryn Mawr, PA (19010) across Lower Merion (Montgomery County) and Radnor Township (Delaware County). Bryn Mawr is anchored by Bryn Mawr College, Bryn Mawr Hospital, and a walkable downtown.",priceBand:"Median sale price ~$725Kâ$1.3M (2025); luxury north-side estates exceed $2M.",commute:"SEPTA Paoli/Thorndale Line at Bryn Mawr Station (~25 min to 30th Street). Quick access to I-476.",intro:"Bryn Mawr is a quintessential Main Line town â walkable, historic, and split between Lower Merion and Radnor school districts. Most of the village sits in Lower Merion, with several southern streets feeding into Radnor SD.",neighborhoods:"Bryn Mawr Village core, Old Gulph Road corridor, Old Lancaster Road, and Garrett Hill (Radnor side).",market:"Bryn Mawr is one of the Main Line's most liquid markets. Walk-to-train and walk-to-village homes are the most competitive.",whyMe:"Saiid tracks both Lower Merion and Radnor SD splits inside the Bryn Mawr ZIP â critical because school feeder dictates resale value here.",faqs:[{question:"What school district is Bryn Mawr, PA in?",answer:"Most of Bryn Mawr is in Lower Merion School District (Montgomery County); some southern streets fall in Radnor Township School District (Delaware County). Saiid can verify the exact feeder for any address."},{question:"Is Bryn Mawr a place to live?",answer:"Yes. Bryn Mawr is consistently rated among the top Main Line towns thanks to top-tier schools (Lower Merion or Radnor), walkability, SEPTA access, Bryn Mawr Hospital, and a historic village center."},{question:"What is Bryn Mawr known for?",answer:"Bryn Mawr is known for Bryn Mawr College (a Seven Sisters women's college), Bryn Mawr Hospital (Main Line Health), the historic stone train station, and Lancaster Avenue's walkable retail district."}],geo:{lat:40.0218,lng:-75.3149},nearbyEntities:["Bryn Mawr College","Bryn Mawr Hospital","Lower Merion School District","Bryn Mawr Station","Main Line"]},{slug:"ardmore",city:"Ardmore",state:"PA",zips:["19003"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Real Estate Agent in Ardmore, PA | Saiid Zamani",metaDescription:"Ardmore PA homes â Lower Merion schools, Suburban Square, walkable Main Line town. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Ardmore, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Ardmore, PA (19003) in Lower Merion Township, Montgomery County. Ardmore is the most walkable Main Line town â anchored by Suburban Square, the Ardmore SEPTA station, and Amtrak's Ardmore stop.",priceBand:"Median sale price ~$600Kâ$950K (2025); luxury north Ardmore properties exceed $1.4M.",commute:"SEPTA Paoli/Thorndale + Amtrak Keystone at Ardmore Station (~20 min to 30th Street). I-76 nearby.",intro:"Ardmore offers Main Line schools (Lower Merion SD) with the best walk-to-everything score of any Philadelphia suburb. Suburban Square and Ardmore Music Hall anchor a true urban village feel.",neighborhoods:"Suburban Square district, South Ardmore, North Ardmore, Wynnewood border.",market:"Ardmore is the most competitive Main Line entry point. Townhomes and starter colonials in Lower Merion SD see multiple offers fast.",whyMe:"Saiid handles Ardmore walk-to-train listings often and knows which streets fall in Lower Merion vs Haverford SD.",faqs:[{question:"Is Ardmore, PA walkable?",answer:"Yes. Ardmore is one of the most walkable Philadelphia suburbs, with Suburban Square, restaurants, two train stations, and Ardmore Music Hall all within a 10-minute walk for many residents."},{question:"What school district is Ardmore, PA in?",answer:"Most of Ardmore is in Lower Merion Sc
194hool District (Montgomery County). Some southern streets are in Haverford Township SD (Delaware County) â confirm with a Realtor before buying."},{question:"What is Suburban Square?",answer:"Suburban Square is an outdoor shopping and dining district in downtown Ardmore â one of the oldest planned shopping centers in the U.S., now featuring Trader Joe's, Apple, Lululemon, and CO-OP food hall."}],geo:{lat:40.0084,lng:-75.2966},nearbyEntities:["Suburban Square","Ardmore Station","Ardmore Music Hall","Lower Merion School District","Main Line"]},{slug:"haverford",city:"Haverford",state:"PA",zips:["19041"],county:"Delaware County",schoolDistrict:"Haverford Township School District",metaTitle:"Real Estate Agent in Haverford, PA | Saiid Zamani",metaDescription:"Haverford PA homes â Haverford College, Haverford Township SD, Main Line living. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Haverford, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Haverford, PA (19041), a Main Line community split between Haverford Township (Delaware County) and Lower Merion Township (Montgomery County). Home to Haverford College.",priceBand:"Median sale price ~$700Kâ$1.2M (2025); luxury properties exceed $1.8M.",commute:"SEPTA Paoli/Thorndale Line at Haverford Station (~25 min to 30th Street).",intro:"Haverford combines elite academics (Haverford College), strong public schools, and classic Main Line architecture. The ZIP straddles two townships and two counties â a critical detail for buyers.",neighborhoods:"Haverford College area, Coopertown, Allgates, Buck Lane corridor.",market:"Steady demand from Haverford College and Bryn Mawr/Villanova area buyers. Inventory is thin.",whyMe:"Saiid clarifies the Haverford Twp SD vs Lower Merion SD split for every Haverford buyer.",faqs:[{question:"What school district is Haverford, PA in?",answer:"Most of Haverford ZIP 19041 is served by Haverford Township School District (Delaware County). Northern sections fall in Lower Merion SD (Montgomery County). The split materially affects home value."},{question:"Is Haverford College in Haverford, PA?",answer:"Yes. Haverford College, a top-ranked liberal arts college founded in 1833, is located on Lancaster Avenue in Haverford, PA."}],geo:{lat:40.0089,lng:-75.306},nearbyEntities:["Haverford College","Haverford Township","Lower Merion Township","Main Line","Haverford Station"]},{slug:"villanova",city:"Villanova",state:"PA",zips:["19085"],county:"Delaware County",schoolDistrict:"Radnor Township School District",metaTitle:"Real Estate Agent in Villanova, PA | Saiid Zamani",metaDescription:"Villanova PA luxury homes â Radnor SD, Villanova University, Main Line estates. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Villanova, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Villanova, PA (19085) across Radnor Township (Delaware County) and Lower Merion Township (Montgomery County). Home to Villanova University and some of the Main Line's most valuable estates.",priceBand:"Median sale price ~$1.1Mâ$2.2M (2025); top estates exceed $5M.",commute:"SEPTA Paoli/Thorndale at Villanova Station (~28 min to 30th Street); I-476 access.",intro:"Villanova is synonymous with Main Line luxury â large lots, mature trees, public schools (Radnor or Lower Merion SD), and Villanova University at the center.",neighborhoods:"North Villanova estate corridor, Stoneleigh, Ithan, and the Villanova University area.",market:"Luxury inventory above $2M is competitive when priced right. Estate properties can sit longer.",whyMe:"Saiid handles Villanova luxury listings and works with appraisers familiar with unique estate properties.",faqs:[{question:"What school district is Villanova, PA in?",answer:"Most of Villanova ZIP 19085 is served by Radnor Township School District (Delaware County). Some streets fall in Lower Merion SD (Montgomery County)."},{question:"How wealthy is Villanova, PA?",answer:"Villanova is one of the wealthiest ZIP codes in Pennsylvania, with a high concentration of executive estates, luxury new builds, and historic Main Line mansions."}],geo:{lat:40.0382,lng:-75.3438},nearbyEntities:["Villanova University","Radnor Township","Lower Merion Towns
194hip","Main Line","Stoneleigh"]},{slug:"conshohocken",city:"Conshohocken",state:"PA",zips:["19428"],county:"Montgomery County",schoolDistrict:"Colonial School District",metaTitle:"Real Estate Agent in Conshohocken, PA | Saiid Zamani",metaDescription:"Conshohocken PA homes â Colonial SD, walkable Fayette Street, I-476 commuter hub. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Conshohocken, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Conshohocken, PA (19428) â a walkable Schuylkill River town in Colonial School District with explosive growth in new construction townhomes and condos.",priceBand:"Median sale price ~$400Kâ$700K for townhomes; single-family $550Kâ$900K (2025).",commute:"SEPTA Manayunk/Norristown Line at Conshohocken Station (~25 min to 30th Street). I-476 and I-76 access.",intro:"Conshohocken is one of the fastest-changing Philadelphia suburbs â Fayette Street offers walkable dining and brewery culture, while the riverfront has filled with new corporate campuses and luxury apartments.",neighborhoods:"Fayette Street corridor, Riverfront, West Conshohocken, Spring Mill.",market:"New-construction townhomes and condos drive most transactions; resale Victorians on side streets command premiums for walk-to-train.",whyMe:"Saiid tracks Conshohocken's new builds vs resale comps weekly â a critical edge in a market with mixed inventory types.",faqs:[{question:"Is Conshohocken a place to live?",answer:"Yes. Conshohocken offers walkable Fayette Street dining, easy I-476 access, SEPTA train service, riverfront trails, and Colonial School District â making it popular with young professionals and downsizers."},{question:"What school district is Conshohocken in?",answer:"Conshohocken is served by Colonial School District, which also covers Plymouth Meeting and Whitemarsh Township."},{question:"Why is Conshohocken called the 'Wall Street West'?",answer:"Conshohocken's riverfront corporate campuses host major asset managers and financial firms (including Hamilton Lane and BNY Mellon), giving it the local nickname 'Wall Street West.'"}],geo:{lat:40.079,lng:-75.3018},nearbyEntities:["Fayette Street","Colonial School District","Schuylkill River Trail","I-476","Conshohocken Station"]},{slug:"plymouth-meeting",city:"Plymouth Meeting",state:"PA",zips:["19462"],county:"Montgomery County",schoolDistrict:"Colonial School District",metaTitle:"Real Estate Agent in Plymouth Meeting, PA | Saiid Zamani",metaDescription:"Plymouth Meeting PA homes â Colonial SD, Plymouth Meeting Mall, I-476/I-276 hub. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Plymouth Meeting, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Plymouth Meeting, PA (19462) in Colonial School District. Plymouth Meeting offers easy commutes via I-476 and the PA Turnpike (I-276) plus the Plymouth Meeting Mall retail hub.",priceBand:"Median sale price ~$425Kâ$700K (2025).",commute:"I-476 and I-276 (PA Turnpike) interchange. ~30 min to Center City via I-76.",intro:"Plymouth Meeting is a job-rich Montgomery County town anchored by the Plymouth Meeting Mall, IKEA, and a cluster of corporate campuses, plus highly-rated Colonial SD schools.",neighborhoods:"Cold Point, Harriman, Plymouth Meeting Mall area.",market:"Single-family inventory is limited; mid-market homes ($450Kâ$650K) move fastest.",whyMe:"Saiid handles Colonial SD listings and explains tax structure clearly to relocating buyers.",faqs:[{question:"What school district is Plymouth Meeting in?",answer:"Plymouth Meeting is part of Colonial School District, alongside Conshohocken and Whitemarsh Township."},{question:"Is Plymouth Meeting a good commuter town?",answer:"Yes."}],geo:{lat:40.1043,lng:-75.2779},nearbyEntities:["Plymouth Meeting Mall","Colonial School District","IKEA Plymouth Meeting","I-476","PA Turnpike"]},{slug:"lansdale",city:"Lansdale",state:"PA",zips:["19446"],county:"Montgomery County",schoolDistrict:"North Penn School District",metaTitle:"Real Estate Agent in Lansdale, PA | Saiid Zamani",metaDescription:"Lansdale PA homes â North Penn SD, walkable downtown, SEPTA Lansdale/Doylestown Line. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Lansdale, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Lansdale, PA (19446) in North Penn School District. Lansdale offers a walkable downtown, SEPTA train access, and some of the most attainable single-family prices in Montgomery County.",priceBand:"Median sale price ~$375Kâ$525K (2025).",commute:"SEPTA Lansdale/Doylestown Line at Lansdale Station (~50 min to 30th Street). PA-309 and PA Turnpike Northeast Extension access.",intro:"Lansdale Borough anchors a strong North Penn SD community with walkable Main Street dining, breweries, and farmer's markets. The town draws first-time buyers priced out of the Main Line.",neighborhoods:"Lansdale Borough, Towamencin Twp border, Hatfield border.",market:"Entry-level and mid-market homes move fast. New construction limited; older colonials dominate inventory.",whyMe:"Saiid serves the North Penn corridor and knows the streets that hold value longest in Lansdale Borough.",faqs:[{question:"What school district is Lansdale, PA in?",answer:"Lansdale is served by North Penn School District, one of the largest districts in Montgomery County."},{question:"Is Lansdale a good place for first-time buyers?",answer:"Yes. Lansdale offers some of the most attainable single-family home prices in Montgomery County, with a walkable downtown and SEPTA train access to Philadelphia."}],geo:{lat:40.2415,lng:-75.2838},nearbyEntities:["North Penn School District","Lansdale Station","Lansdale Borough","PA-309","SEPTA Lansdale/Doylestown Line"]},{slug:"ambler",city:"Ambler",state:"PA",zips:["19002"],county:"Montgomery County",schoolDistrict:"Wissahickon School District",metaTitle:"Real Estate Agent in Ambler, PA | Saiid Zamani",metaDescription:"Ambler PA homes â Wissahickon SD, walkable Butler Avenue, Ambler Theater. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Ambler, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Ambler, PA (19002) in Wissahickon School District. Ambler Borough offers a walkable Butler Avenue downtown with the historic Ambler Theater anchoring its arts scene.",priceBand:"Median sale price ~$475Kâ$725K (2025); luxury homes to $950K.",commute:"SEPTA Lansdale/Doylestown Line at Ambler Station (~40 min to 30th Street). PA Turnpike NE Extension nearby.",intro:"Ambler is one of Montgomery County's most loved walkable suburbs â independent restaurants, the historic Ambler Theater, and Wissahickon SD schools draw young families and professionals.",neighborhoods:"Ambler Borough, Upper Dublin border, Lower Gwynedd border, Mattison Estate area.",market:"Walk-to-train homes are the most competitive segment. Restored Victorians command premiums.",whyMe:"Saiid actively lists in Ambler and knows the buyer pool drawn to walkable Borough living.",faqs:[{question:"Is Ambler, PA a place to live?",answer:"Yes. Ambler is repeatedly ranked among Montgomery County's best small towns, with walkable Butler Avenue dining, the Ambler Theater, SEPTA train access, and Wissahickon School District schools."},{question:"What school district is Ambler, PA in?",answer:"Ambler is served by Wissahickon School District, which also covers Lower Gwynedd, Whitpain, and parts of Ambler Borough and Upper Dublin."}],geo:{lat:40.1551,lng:-75.221},nearbyEntities:["Ambler Theater","Wissahickon School District","Butler Avenue","Ambler Station","Upper Dublin Towns
194hip"]},{slug:"blue-bell",city:"Blue Bell",state:"PA",zips:["19422"],county:"Montgomery County",schoolDistrict:"Wissahickon School District",metaTitle:"Real Estate Agent in Blue Bell, PA | Saiid Zamani",metaDescription:"Blue Bell PA homes â Wissahickon SD, Whitpain Township, executive single-family homes. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Blue Bell, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Blue Bell, PA (19422) in Wissahickon School District. Blue Bell is an unincorporated community in Whitpain Township known for executive single-family homes and Normandy Farm.",priceBand:"Median sale price ~$650Kâ$1.1M (2025); luxury Normandy and Belvoir homes exceed $1.5M.",commute:"PA-202, PA-73, and PA Turnpike NE Extension nearby. ~35 min to Center City via I-76.",intro:"Blue Bell is one of Montgomery County's top executive suburbs â well-regarded Wissahickon SD, large lots, and proximity to corporate campuses in Plymouth Meeting and Conshohocken.",neighborhoods:"Normandy Farms, Belvoir, Whitpain Hunt, Penllyn Pike corridor.",market:"Move-up family buyers drive the $700Kâ$1M range. Inventory is consistently low.",whyMe:"Saiid handles Blue Bell move-up buyers and knows the Wissahickon SD feeder boundaries that matter.",faqs:[{question:"Is Blue Bell, PA a wealthy area?",answer:"Yes. Blue Bell has one of the highest median household incomes in Montgomery County, with a concentration of executive single-family homes on larger lots."},{question:"What school district is Blue Bell in?",answer:"Blue Bell is served by Wissahickon School District, consistently rated among Pennsylvania's top public school districts."}],geo:{lat:40.1518,lng:-75.2685},nearbyEntities:["Normandy Farm","Wissahickon School District","Whitpain Township","PA-202","PA Turnpike NE Extension"]},{slug:"downingtown",city:"Downingtown",state:"PA",zips:["19335"],county:"Chester County",schoolDistrict:"Downingtown Area School District",metaTitle:"Real Estate Agent in Downingtown, PA | Saiid Zamani",metaDescription:"Downingtown PA homes â Downingtown Area SD (STEM Academy), Brandywine, walkable Borough. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Downingtown, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Downingtown, PA (19335) in Downingtown Area School District â home to the Downingtown STEM Academy.",priceBand:"Median sale price ~$450Kâ$700K (2025); luxury new builds exceed $900K.",commute:"SEPTA Paoli/Thorndale Line at Downingtown and Whitford stations. US-30 Business and PA Turnpike access.",intro:"Downingtown anchors western Chester County's strongest school district. The Downingtown STEM Academy, a magnet program, ranks among the top public high schools in Pennsylvania.",neighborhoods:"Downingtown Borough, Caln Township, East Brandywine, Wallace Township.",market:"Strong demand from relocating families targeting DASD schools. New construction in East Brandywine driving growth.",whyMe:"Saiid serves Downingtown buyers regularly and understands the magnet enrollment process for STEM Academy.",faqs:[{question:"What is Downingtown STEM Academy?",answer:"Downingtown STEM Academy is a magnet high school within Downingtown Area School District focused on science, technology, engineering, and mathematics. It consistently ranks among the top public high schools in Pennsylvania and the U.S."},{question:"What school district is Downingtown, PA in?",answer:"Downingtown is served by Downingtown Area School District (DASD), one of the largest and highest-rated districts in Chester County."}],geo:{lat:40.0065,lng:-75.7032},nearbyEntities:["Downingtown STEM Academy","Downingtown Area School District","Brandywine Creek","Downingtown Station","Chester County"]},{slug:"exton",city:"Exton",state:"PA",zips:["19341"],county:"Chester County",schoolDistrict:"West Chester Area School District",metaTitle:"Real Estate Agent in Exton, PA | Saiid Zamani",metaDescription:"Exton PA homes â West Chester Area SD, Main Street at Exton, US-30/PA-100 hub. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Exton, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Exton, PA (19341) in West Chester Area School District (with portions in Downingtown Area SD). Exton is a job-rich Chester County hub with major retail at Main Street at Exton.",priceBand:"Median sale price ~$475Kâ$725K (2025); luxury new builds to $950K.",commute:"SEPTA Paoli/Thorndale Line at Exton Station. US-30 Bypass, PA-100, and PA Turnpike access. Major corporate corridor.",intro:"Exton anchors the US-30/PA-100 corridor with corporate jobs, retail, and a mix of West Chester Area and Downingtown Area school feeders. The town suits buyers prioritizing commute optionality.",neighborhoods:"Main Street at Exton, Exton Square, West Whiteland Township, Uwchlan Township border.",market:"Townhomes and new construction dominate transactions; older singles on side streets often outperform comps.",whyMe:"Saiid clarifies which streets feed WCASD vs DASD in the Exton ZIP â a critical resale factor.",faqs:[{question:"What school district is Exton, PA in?",answer:"Most of Exton (19341) is in West Chester Area School District; some streets feed Downingtown Area School District. Always confirm b
194y address."},{question:"Is Exton a place to live?",answer:"Yes. Exton offers strong WCASD or DASD schools, easy commutes via US-30, PA-100, and the PA Turnpike, and major shopping at Main Street at Exton and Exton Square."}],geo:{lat:40.029,lng:-75.6249},nearbyEntities:["Main Street at Exton","West Chester Area School District","Exton Square","US-30 Bypass","Exton Station"]},{slug:"royersford",city:"Royersford",state:"PA",zips:["19468"],county:"Montgomery County",schoolDistrict:"Spring-Ford Area School District",metaTitle:"Real Estate Agent in Royersford, PA | Saiid Zamani",metaDescription:"Royersford PA homes â Spring-Ford Area SD, Limerick, 422 corridor. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Royersford, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Royersford, PA (19468) in Spring-Ford Area School District. Royersford and neighboring Limerick offer attainable new construction along the US-422 corridor.",priceBand:"Median sale price ~$400Kâ$575K (2025).",commute:"US-422 and PA Turnpike NE Extension access. ~50 min to Center City Philadelphia.",intro:"Royersford and Limerick anchor the western Montgomery County growth corridor, with new townhome and single-family developments along US-422 attracting first-time buyers and downsizers.",neighborhoods:"Royersford Borough, Limerick Township, Upper Providence Township.",market:"New construction and townhomes are the primary inventory. Move-fast pricing common.",whyMe:"Saiid handles 422-corridor buyers through Pottstown and knows Spring-Ford feeder maps.",faqs:[{question:"What school district is Royersford, PA in?",answer:"Royersford is served by Spring-Ford Area School District, which also covers Limerick and Spring City."},{question:"Is Royersford a good place for first-time buyers?",answer:"Yes. Royersford offers attainable single-family and townhome prices in Spring-Ford SD, with new construction along US-422."}],geo:{lat:40.1846,lng:-75.5391},nearbyEntities:["Spring-Ford Area School District","US-422","Limerick Township","Royersford Borough","PA Turnpike NE Extension"]},{slug:"doylestown",city:"Doylestown",state:"PA",zips:["18901"],county:"Bucks County",schoolDistrict:"Central Bucks School District",metaTitle:"Real Estate Agent in Doylestown, PA | Saiid Zamani",metaDescription:"Doylestown PA homes â Central Bucks SD, walkable historic downtown, Mercer Museum. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Doylestown, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Doylestown, PA (18901) â the Bucks County seat. Doylestown Borough offers a walkable historic downtown, Central Bucks School District, and easy SEPTA Lansdale/Doylestown Line access.",priceBand:"Median sale price ~$525Kâ$850K (2025); luxury homes to $1.5M+.",commute:"SEPTA Lansdale/Doylestown Line terminus at Doylestown Station. PA-611 and PA-202 access.",intro:"Doylestown is Bucks County's most loved walkable town â historic stone architecture, Mercer Museum, Michener Art Museum, and Central Bucks School District (one of PA's largest and highest-rated).",neighborhoods:"Doylestown Borough, Doylestown Township, New Britain Township border.",market:"Walk-to-Borough homes command premium. Restored Victorians and historic stone homes are hot.",whyMe:"Saiid works the Bucks County market and serves Doylestown buyers relocating from the Main Line and NYC.",faqs:[{question:"What school district is Doylestown, PA in?",answer:"Doylestown is served by Central Bucks School District, one of the largest and highest-rated public districts in Pennsylvania."},{question:"Is Doylestown a place to live?",answer:"Yes. Doylestown Borough is repeatedly ranked among the best small towns in America for its walkable downtown, historic architecture, top-tier Central Bucks schools, museums, and SEPTA train access."}],geo:{lat:40.3101,lng:-75.1299},nearbyEntities:["Central Bucks School District","Mercer Museum","Michener Art Museum","Doylestown Station","Bucks County Courthouse"]},{slug:"media",city:"Media",state:"PA",zips:["19063"],county:"Delaware County",schoolDistrict:"Rose Tree Media School District",metaTitle:"Real Estate Agent in Media, PA | Saiid Zamani",metaDescription:"Media PA homes â Rose Tree Media SD, 'Everybody's Hometown,' walkable State Street. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Media, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Media, PA (19063) in Rose Tree Media School District. Media Borough â branded 'Everybody's Hometown' â is the Delaware County seat with a walkable State Street trolley line.",priceBand:"Median sale price ~$425Kâ$700K (2025).",commute:"SEPTA Media/Wawa Line and Media Trolley at State Street. US-1 and I-476 access.",intro:"Media Borough is one of the Philadelphia suburbs' most distinctive walkable towns, with the in-street SEPTA Media Trolley running down State Street past restaurants, breweries, and indie shops.",neighborhoods:"Media Borough, Upper Providence (Delco), Rose Valley, Nether Providence.",market:"Walk-to-State-Street homes are the most competitive segment.",whyMe:"Saiid handles Delco transactions and helps buyers understand the Rose Tree Media SD feeder maps.",faqs:[{question:"What school district is Media, PA in?",answer:"Media is served by Rose Tree Media School District, which also covers Upper Providence, Middletown, and Edgmont Townships."},{question:"Why is Media called Everybody's Hometown?",answer:"'Everybody's Hometown' is Media Borough's official tagline reflecting its w
194alkable State Street, the in-street Media Trolley, and a strong sense of community."}],geo:{lat:39.9168,lng:-75.3877},nearbyEntities:["Rose Tree Media School District","State Street Media","Media Trolley","Delaware County Courthouse","Media Borough"]},{slug:"drexel-hill",city:"Drexel Hill",state:"PA",zips:["19026"],county:"Delaware County",schoolDistrict:"Upper Darby School District",metaTitle:"Real Estate Agent in Drexel Hill, PA | Saiid Zamani",metaDescription:"Drexel Hill PA homes â affordable Delaware County, classic stone twins, SEPTA trolley access. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Drexel Hill, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Drexel Hill, PA (19026) in Upper Darby School District â one of the most attainable Delaware County entry points with classic stone twins and SEPTA trolley access to Philadelphia.",priceBand:"Median sale price ~$275Kâ$425K (2025).",commute:"SEPTA Norristown High Speed Line and Route 101 Trolley. ~25 min to Center City. I-476 nearby.",intro:"Drexel Hill offers some of the best value-for-square-foot in the Philadelphia western suburbs â classic 1920sâ1940s stone twins on tree-lined streets with quick SEPTA access.",neighborhoods:"Aronimink, Drexel Park, Aronimink Estates, Upper Darby border.",market:"Strong first-time buyer demand. Renovated kitchens drive bidding wars.",whyMe:"Saiid helps first-time Delco buyers navigate inspections common in older stone twin housing stock.",faqs:[{question:"Is Drexel Hill, PA affordable?",answer:"Yes. Drexel Hill is one of the most attainable Philadelphia western suburb markets â median prices typically run $275Kâ$425K in 2025."},{question:"What school district is Drexel Hill in?",answer:"Drexel Hill is served by Upper Darby School District, one of the largest and most diverse districts in Pennsylvania."}],geo:{lat:39.954,lng:-75.296},nearbyEntities:["Upper Darby School District","Aronimink","SEPTA Norristown High Speed Line","Route 101 Trolley","Delaware County"]},{slug:"springfield-delco",city:"Springfield (Delco)",state:"PA",zips:["19064"],county:"Delaware County",schoolDistrict:"Springfield School District",metaTitle:"Real Estate Agent in Springfield, PA (Delco) | Saiid Zamani",metaDescription:"Springfield PA (Delco) homes â Springfield Township SD, Healthplex, attainable single-family. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Springfield, PA (Delco)",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Springfield Township, Delaware County, PA (19064). Note: this is the Delco Springfield (not Montgomery County's Springfield Township). Served by Springfield School District.",priceBand:"Median sale price ~$425Kâ$625K (2025).",commute:"SEPTA Media/Wawa Line at Springfield. US-1 (Baltimore Pike), I-476 access. ~30 min to Center City.",intro:"Springfield (Delco) is a stable mid-Delco community with consistently public schools district boundaries, the Healthplex retail district, and easy I-476 access.",neighborhoods:"Springfield Township proper, Baltimore Pike corridor, Powell Road area.",market:"Move-up family buyers dominate the $475Kâ$650K range.",whyMe:"Saiid helps Delco buyers compare Springfield vs neighboring Marple Newtown and Rose Tree Media districts.",faqs:[{question:"Which Springfield is in Delaware County, PA?",answer:"Springfield Township in Delaware County (ZIP 19064) is served by Springfield School District. There is also a Springfield Township in Montgomery County â they are distinct municipalities with different school districts."},{question:"What school district is Springfield, Delco in?",answer:"Springfield (Delco) is served by Springfield School District (Delaware County), not to be confused with Springfield Township SD in Montgomery County."}],geo:{lat:39.9304,lng:-75.3299},nearbyEntities:["Springfield School District","Healthplex","Baltimore Pike","I-476","Springfield Township Delaware County"]}],cM=[{slug:"wynnewood",city:"Wynnewood",state:"PA",zips:["19096"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Real Estate Agent in Wynnewood, PA | Saiid Zamani",metaDescription:"Wynnewood PA real estate â Lower Merion schools, walk to SEPTA, Wynnewood Shopping Center. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Wynnewood, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving W
194ynnewood, PA (19096) in Lower Merion School District. Wynnewood is an eastern Main Line community on the SEPTA Paoli/Thorndale Line with a walkable shopping center and Lankenau Medical Center nearby.",priceBand:"Median sale price ~$575Kâ$1.1M (2025); larger estates north of Lancaster Avenue can exceed $1.7M.",commute:"SEPTA Wynnewood Station direct to 30th Street in ~22 minutes. Quick access to I-476, US-30, and the Schuylkill Expressway.",intro:"Wynnewood blends a strong commuter profile with Lower Merion SD schools (Lower Merion High School), one of Pennsylvania's most respected public districts. The Wynnewood Shopping Center, Lankenau Medical Center, and the SEPTA station anchor daily life.",neighborhoods:"Penn Wynne, North Wynnewood (north of Lancaster Ave), and the streets surrounding Wynnewood Valley Park and Lankenau. Lot sizes and prices step up as you move north.",market:"Wynnewood homes inside Lower Merion SD see steady demand year-round. Walk-to-train singles and renovated mid-century homes set neighborhood comps.",whyMe:"Saiid sells across Lower Merion Township and understands how Lower Merion vs Harriton High School feeders affect resale on individual streets.",faqs:[{question:"What school district is Wynnewood, PA in?",answer:"Wynnewood is served by Lower Merion School District â split between Lower Merion High School and Harriton High School depending on the street. Both are consistently well-regarded Pennsylvania public high schools."},{question:"How long is the commute from Wynnewood to Philadelphia?",answer:"About 22 minutes on the SEPTA Paoli/Thorndale Line direct to 30th Street Station."},{question:"Is Wynnewood walkable?",answer:"Yes around the Wynnewood Shopping Center, the SEPTA station, and Penn Wynne. Walkability drops in the larger-lot sections north of Lancaster Avenue."},{question:"What is the median home price in Wynnewood, PA?",answer:"Median sale price in Wynnewood (ZIP 19096) in 2025 runs $575K to $1.1M for typical single-family homes, with luxury properties exceeding $1.7M."}],geo:{lat:40.0001,lng:-75.2724},nearbyEntities:["Lower Merion High School","Harriton High School","Wynnewood Shopping Center","Lankenau Medical Center","SEPTA Paoli/Thorndale Line"]},{slug:"narberth",city:"Narberth",state:"PA",zips:["19072"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Real Estate Agent in Narberth, PA | Saiid Zamani",metaDescription:"Narberth PA real estate â walkable borough, Lower Merion schools, SEPTA station. Local Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Narberth, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Narberth, PA (19072) in Lower Merion School District. Narberth is a 0.5-square-mile walkable borough with its own SEPTA station, downtown restaurants, and Narberth Playground.",priceBand:"Median sale price ~$625Kâ$1.0M (2025); larger Victorians in the borough can exceed $1.3M.",commute:"SEPTA Narberth Station direct to 30th Street in ~20 minutes. I-76 and I-476 within minutes.",intro:"Narberth Borough is one of the most walkable Main Line communities â a true small-town downtown with restaurants, the Narberth Theatre, a Saturday farmers market, and an annual July 4th parade. Schools are Lower Merion SD.",neighborhoods:"Narberth Borough proper is small enough that 'neighborhoods' are typically described by street: Conway Avenue, Essex Avenue, Forrest Avenue, and the streets surrounding Narberth Playground and the train station.",market:"Narberth's tight inventory and strong walkability premium keep days on market low for borough homes. Renovated twins and singles inside the borough set comps quickly.",whyMe:"Saiid actively sells in Narberth and the surrounding Lower Merion Township and knows the borough's strong buyer demand profile firsthand.",faqs:[{question:"Is Narberth, PA a borough?",answer:"Yes. Narberth is an independent 0.5-square-mile borough in Montgomery County, fully surrounded by Lower Merion Township."},{question:"What school district is Narberth, PA in?",answer:"Narberth is part of Lower Merion Sc
194hool District (Lower Merion High School), one of Pennsylvania's top public school districts."},{question:"How long is the SEPTA commute from Narberth?",answer:"About 20 minutes from Narberth Station to 30th Street Station on the SEPTA Paoli/Thorndale Line."},{question:"What is the median home price in Narberth?",answer:"Median sale price in Narberth Borough (ZIP 19072) in 2025 runs $625K to $1.0M, with larger Victorians exceeding $1.3M."}],geo:{lat:40.0073,lng:-75.2627},nearbyEntities:["Narberth Playground","Narberth Theatre","Lower Merion High School","SEPTA Narberth Station","Narberth Borough"]},{slug:"gladwyne",city:"Gladwyne",state:"PA",zips:["19035"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Gladwyne PA Luxury Real Estate Agent | Saiid Zamani",metaDescription:"Gladwyne PA luxury real estate â Lower Merion schools, large estate lots, Philadelphia Country Club. Realtor Saiid Zamani. 484-597-6868.",h1:"Luxury Real Estate Agent in Gladwyne, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Gladwyne, PA (19035) in Lower Merion School District. Gladwyne is one of the most affluent ZIP codes in Pennsylvania, characterized by large estate lots and proximity to Philadelphia Country Club and the Schuylkill River.",priceBand:"Median sale price ~$1.4Mâ$3.5M (2025); historic estates can exceed $7M.",commute:"About 25 minutes to Center City via I-76 (Schuylkill Expressway) or 28 minutes by SEPTA from nearby Bryn Mawr Station.",intro:"Gladwyne is an unincorporated luxury community within Lower Merion Township. Its character is defined by large lots (often 1 to 5+ acres), historic estates, Philadelphia Country Club, Merion Cricket Club proximity, and Harriton High School.",neighborhoods:"Gladwyne village, Rose Glen, the Gladwyne School area, and the streets surrounding Riverbend Environmental Education Center. Estate properties extend toward the Schuylkill River.",market:"Gladwyne luxury inventory moves slower than entry-level Main Line stock, but trophy properties and renovated estates draw strong out-of-region buyer interest.",whyMe:"Saiid handles luxury Lower Merion transactions and understands the appraisal challenges, marketing requirements, and buyer pool for $2M+ Gladwyne estates.",faqs:[{question:"Is Gladwyne, PA wealthy?",answer:"Yes. Gladwyne (ZIP 19035) consistently ranks among the wealthiest ZIP codes in Pennsylvania by household income and home value."},{question:"What school district is Gladwyne, PA in?",answer:"Gladwyne is served by Lower Merion School District, with most students attending Harriton High School."},{question:"How big are lot sizes in Gladwyne?",answer:"Gladwyne lots typically range from 1 to 5 acres for estate properties, with some historic estates on 10+ acres."},{question:"What is the median home price in Gladwyne?",answer:"Median sale price in Gladwyne (ZIP 19035) in 2025 runs $1.4M to $3.5M, with historic estates exceeding $7M."}],geo:{lat:40.0426,lng:-75.2735},nearbyEntities:["Philadelphia Country Club","Harriton High School","Riverbend Environmental Education Center","Schuylkill River","Lower Merion Township"]},{slug:"rosemont",city:"Rosemont",state:"PA",zips:["19010"],county:"Montgomery County",schoolDistrict:"Lower Merion School District",metaTitle:"Real Estate Agent in Rosemont, PA | Saiid Zamani",metaDescription:"Rosemont PA real estate â Lower Merion schools, Rosemont College, Main Line stone homes. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Rosemont, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Rosemont, PA (19010) in Lower Merion School District. Rosemont sits between Bryn Mawr and Villanova on the Main Line, home to Rosemont College and Agnes Irwin School.",priceBand:"Median sale price ~$850Kâ$1.6M (2025); historic stone estates can exceed $2.5M.",commute:"SEPTA Rosemont Station direct to 30th Street in ~30 minutes. Quick access to US-30 and I-476.",intro:"Rosemont is a small Main Line community with a distinct stone-architecture character, anchored by Rosemont College and several independent schools. Most homes feed into Harriton High School (Lower Merion SD).",neighborhoods:"Rosemont Village, the streets surrounding Rosemont College and Agnes Irwin, and the larger-lot sections moving toward Villanova. Lot sizes vary from a half-acre near the village to 2+ acres further out.",market:"Rosemont's combination of Harriton feeder, stone architecture, and small-village character keeps demand steady. Renovated historic homes typically sell quickly.",whyMe:"Saiid works across the Bryn MawrâRosemontâVillanova corridor and tracks Harriton feeder dynamics that shape Rosemont resale pricing.",faqs:[{question:"What school district is Rosemont, PA in?",answer:"Rosemont is part of Lower Merion Sc
194hool District, with most students attending Harriton High School."},{question:"Is Rosemont, PA the same as Bryn Mawr?",answer:"No. Rosemont and Bryn Mawr share the 19010 ZIP code and are adjacent, but they are distinct Main Line communities with different post-office addresses and slight school feeder differences."},{question:"Is Rosemont walkable?",answer:"The Rosemont Village area near the SEPTA station and Rosemont College is walkable. Streets further from the village center are more traditional single-family with lower walk scores."},{question:"What is the median home price in Rosemont?",answer:"Median sale price in Rosemont (ZIP 19010) in 2025 runs $850K to $1.6M, with stone historic estates exceeding $2.5M."}],geo:{lat:40.0212,lng:-75.3271},nearbyEntities:["Rosemont College","Agnes Irwin School","Harriton High School","SEPTA Rosemont Station","Main Line"]},{slug:"strafford",city:"Strafford",state:"PA",zips:["19087"],county:"Chester County",schoolDistrict:"Tredyffrin/Easttown School District",metaTitle:"Real Estate Agent in Strafford, PA | Saiid Zamani",metaDescription:"Strafford PA real estate â Tredyffrin/Easttown schools, historic Strafford Station, Main Line. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Strafford, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Strafford, PA (19087) in Tredyffrin/Easttown School District. Strafford is the easternmost T/E community, bordering Wayne and home to the historic Strafford SEPTA station.",priceBand:"Median sale price ~$725Kâ$1.3M (2025); larger lots north of Lancaster Avenue can exceed $1.8M.",commute:"SEPTA Strafford Station direct to 30th Street in ~32 minutes. Quick access to PA-252, US-30, and I-476.",intro:"Strafford shares the 19087 Wayne ZIP but sits in Tredyffrin Township and feeds Conestoga High School (T/E SD). It's a popular pick for families who want a Wayne address with T/E schools.",neighborhoods:"Strafford Village near the station, Old Eagle School Road corridor, and the larger-lot sections moving toward Devon and Berwyn.",market:"Strafford's appeal as a T/E pocket inside the Wayne ZIP keeps demand high. Walk-to-train singles and renovated mid-century homes set local comps.",whyMe:"Saiid's Wayne office sits a short drive from Strafford, and he routinely advises buyers on the Wayne ZIP's split between Radnor SD and T/E SD.",faqs:[{question:"Is Strafford, PA in the Wayne ZIP code?",answer:"Yes. Strafford uses the 19087 Wayne ZIP code, but it sits in Tredyffrin Township and feeds Tredyffrin/Easttown School District (Conestoga HS) â not Radnor SD."},{question:"What school district is Strafford, PA in?",answer:"Strafford is part of Tredyffrin/Easttown School District (Conestoga High School), one of Pennsylvania's highest-rated public districts."},{question:"How long is the train commute from Strafford?",answer:"About 32 minutes on the SEPTA Paoli/Thorndale Line direct to 30th Street Station."},{question:"What is the median home price in Strafford, PA?",answer:"Median sale price in Strafford in 2025 runs $725K to $1.3M, with larger lots exceeding $1.8M."}],geo:{lat:40.0454,lng:-75.4054},nearbyEntities:["Strafford SEPTA Station","Conestoga High School","Tredyffrin Township","Old Eagle School Road","Main Line"]},{slug:"audubon",city:"Audubon",state:"PA",zips:["19403"],county:"Montgomery County",schoolDistrict:"Methacton School District",metaTitle:"Real Estate Agent in Audubon, PA | Saiid Zamani",metaDescription:"Audubon PA real estate â Methacton schools, John James Audubon Center, Lower Providence. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Audubon, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Audubon, PA (19403) in Methacton School District. Audubon is a Lower Providence Township community home to the John James Audubon Center at Mill Grove and minutes from Valley Forge.",priceBand:"Median sale price ~$425Kâ$675K (2025); larger lots and new construction can exceed $850K.",commute:"About 35 minutes to Center City via US-422 and I-76.",intro:"Audubon offers a strong combination of Methacton SD schools, suburban character, and proximity to Valley Forge National Historical Park. The John James Audubon Center at Mill Grove is a defining local landmark.",neighborhoods:"Audubon Village, the streets surrounding Audubon Elementary, and newer developments along Egypt Road. Lot sizes are typically a quarter to half acre.",market:"Audubon's mid-priced inventory and Methacton schools draw consistent buyer demand from Plymouth Meeting commuters. Updated homes typically sell quickly.",whyMe:"Saiid covers Lower Providence and Audubon regularly and helps buyers compare Methacton vs Spring-Ford and Phoenixville districts in the same commute radius.",faqs:[{question:"What school district is Audubon, PA in?",answer:"Audubon is served by Methacton School District, which serves Lower Providence Township and Worcester Township."},{question:"What is the John James Audubon Center?",answer:"The John James Audubon Center at Mill Grove is a 175-acre museum and wildlife sanctuary at the historic first American home of artist and naturalist John James Audubon."},{question:"Is Audubon, PA close to Valley Forge?",answer:"Yes. Audubon is directly across the Schuylkill River from Valley Forge National Historical Park â about 5 minutes by car."},{question:"What is the median home price in Audubon?",answer:"Median sale price in Audubon (ZIP 19403) in 2025 runs $425K to $675K, with larger homes and new construction exceeding $850K."}],geo:{lat:40.1248,lng:-75.4307},nearbyEntities:["John James Audubon Center at Mill Grove","Methacton School District","Valley Forge National Historical Park","Lower Providence Township","US-422"]},{slug:"limerick",city:"Limerick",state:"PA",zips:["19468"],county:"Montgomery County",schoolDistrict:"Spring-Ford Area School District",metaTitle:"Real Estate Agent in Limerick, PA | Saiid Zamani",metaDescription:"Limerick PA real estate â Spring-Ford schools, Philadelphia Premium Outlets, new construction. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Limerick, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Limerick, PA (19468) in Spring-Ford Area School District. Limerick is a growing western Montgomery County township home to the Philadelphia Premium Outlets and significant new-construction inventory.",priceBand:"Median sale price ~$425Kâ$650K (2025); new construction in larger developments can exceed $750K.",commute:"About 45 minutes to Center City via US-422 and I-76. Quick access to the Pottstown Pike (PA-100) corridor and Phoenixville.",intro:"Limerick Towns
194hip combines Spring-Ford SD schools with the highest concentration of new-construction inventory in the area. The Philadelphia Premium Outlets, Limerick Diner, and major employers along US-422 anchor commercial life.",neighborhoods:"Trappe-adjacent sections, new developments off Lewis Road and Ridge Pike, and established Limerick Borough streets near Limerick Diner.",market:"Limerick's mix of new construction and resale draws first-time buyers and growing families seeking Spring-Ford schools and Route 422 access.",whyMe:"Saiid helps buyers evaluate new-construction tradeoffs in Limerick and surrounding Spring-Ford / Pottstown / Phoenixville commute alternatives.",faqs:[{question:"What school district is Limerick, PA in?",answer:"Limerick is served by Spring-Ford Area School District, which serves Limerick, Royersford, Trappe, Collegeville (partial), and Upper Providence."},{question:"Are there outlets in Limerick, PA?",answer:"Yes. Philadelphia Premium Outlets is located in Limerick at the intersection of US-422 and Lightcap Road."},{question:"Does Limerick have new construction?",answer:"Yes. Limerick has consistently been one of the top townships in Montgomery County for new single-family and townhome construction over the past decade."},{question:"What is the median home price in Limerick?",answer:"Median sale price in Limerick (ZIP 19468) in 2025 runs $425K to $650K, with new-construction larger homes exceeding $750K."}],geo:{lat:40.2304,lng:-75.536},nearbyEntities:["Philadelphia Premium Outlets","Spring-Ford Area School District","US-422","Limerick Diner","Limerick Township"]},{slug:"schwenksville",city:"Schwenksville",state:"PA",zips:["19473"],county:"Montgomery County",schoolDistrict:"Perkiomen Valley School District",metaTitle:"Real Estate Agent in Schwenksville, PA | Saiid Zamani",metaDescription:"Schwenksville PA real estate â Perkiomen Valley schools, Perkiomen Trail, country character. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Schwenksville, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Schwenksville, PA (19473) in Perkiomen Valley School District. Schwenksville sits along the Perkiomen Creek and Perkiomen Trail with a small downtown and country-suburban character.",priceBand:"Median sale price ~$425Kâ$625K (2025); larger lots and new construction can exceed $750K.",commute:"About 50 minutes to Center City via PA-29 and the Pennsylvania Turnpike.",intro:"Schwenksville Borough and the surrounding Lower Frederick / Upper Salford Townships offer Perkiomen Valley SD schools, the Perkiomen Trail for biking and walking, and a quieter rural-suburban feel than the Main Line.",neighborhoods:"Schwenksville Borough proper, the Lower Frederick sections, and newer developments off PA-29 and Game Farm Road.",market:"Schwenksville draws buyers wanting larger lots and Perkiomen Valley schools at a more attainable price than Collegeville.",whyMe:"Saiid covers the Perkiomen Valley corridor and helps buyers compare Schwenksville to Collegeville, Royersford, and Skippack on commute, schools, and lot size.",faqs:[{question:"What school district is Schwenksville, PA in?",answer:"Schwenksville is part of Perkiomen Valley School District, which also serves Collegeville, Skippack, and Lower / Upper Frederick Townships."},{question:"Is Schwenksville on the Perkiomen Trail?",answer:"Yes. The Perkiomen Trail runs through Schwenksville along the Perkiomen Creek, connecting north to Green Lane and south toward Valley Forge."},{question:"What is the median home price in Schwenksville?",answer:"Median sale price in Schwenksville (ZIP 19473) in 2025 runs $425K to $625K, with larger homes exceeding $750K."}],geo:{lat:40.2587,lng:-75.4624},nearbyEntities:["Perkiomen Trail","Perkiomen Creek","Perkiomen Valley School District","Schwenksville Borough","PA-29"]},{slug:"trappe",city:"Trappe",state:"PA",zips:["19426"],county:"Montgomery County",schoolDistrict:"Spring-Ford Area School District",metaTitle:"Real Estate Agent in Trappe, PA | Saiid Zamani",metaDescription:"Trappe PA real estate â Spring-Ford schools, Augustus Lutheran Church, Collegeville-adjacent. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Trappe, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Trappe, PA (19426) in Spring-Ford Area School District. Trappe Borough is a historic community along Main Street adjacent to Collegeville and home to Augustus Lutheran Church, the oldest unchanged Lutheran church in continuous use in the United States.",priceBand:"Median sale price ~$475Kâ$675K (2025); new construction and larger homes can exceed $800K.",commute:"About 45 minutes to Center City via US-422 and I-76.",intro:"Trappe combines a historic Main Street with modern Spring-Ford SD schools and direct adjacency to Collegeville's shopping along Ridge Pike and Main Street. Buyers often consider Trappe and Collegeville together.",neighborhoods:"Trappe Borough proper along Main Street, newer developments off W 9th Avenue and Park Avenue, and the streets bordering Collegeville.",market:"Trappe's mid-priced inventory and Spring-Ford schools draw consistent buyer demand. Renovated and new-construction homes typically lead local comps.",whyMe:"Saiid sells in Trappe and Collegeville frequently and understands how the Trappe/Collegeville border can change school feeders and HOA structures by street.",faqs:[{question:"What school district is Trappe, PA in?",answer:"Trappe is served by Spring-Ford Area School District, the same district as Royersford, Limerick, and parts of Collegeville and Upper Providence."},{question:"Is Trappe the same as Collegeville?",answer:"No. Trappe and Collegeville are two separate boroughs that share the 19426 ZIP c
194ode and a continuous Main Street. They have separate municipal governments but similar housing stock and schools."},{question:"What is Augustus Lutheran Church?",answer:"Augustus Lutheran Church on Main Street in Trappe was founded in 1745 and is the oldest unchanged Lutheran church in continuous use in the United States."},{question:"What is the median home price in Trappe, PA?",answer:"Median sale price in Trappe in 2025 runs $475K to $675K, with new construction exceeding $800K."}],geo:{lat:40.1976,lng:-75.4807},nearbyEntities:["Augustus Lutheran Church","Spring-Ford Area School District","Collegeville","Main Street Trappe","Ridge Pike"]},{slug:"skippack",city:"Skippack",state:"PA",zips:["19474"],county:"Montgomery County",schoolDistrict:"Perkiomen Valley School District",metaTitle:"Real Estate Agent in Skippack, PA | Saiid Zamani",metaDescription:"Skippack PA real estate â Perkiomen Valley schools, Skippack Village shopping, country feel. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Skippack, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Skippack, PA (19474) in Perkiomen Valley School District. Skippack Village is a walkable shopping and dining destination along PA-73, surrounded by larger-lot suburban and rural-residential homes.",priceBand:"Median sale price ~$525Kâ$775K (2025); estate properties with acreage can exceed $1.0M.",commute:"About 50 minutes to Center City via PA-73 and I-476.",intro:"Skippack Township offers Perkiomen Valley SD schools, the walkable Skippack Village dining and shopping corridor, Evansburg State Park.",neighborhoods:"Skippack Village, the streets surrounding Evansburg State Park, and the larger-lot sections moving toward Collegeville and Worcester. Lot sizes commonly range from a half-acre to 2+ acres.",market:"Skippack's combination of Perkiomen Valley schools, Skippack Village lifestyle, and larger lots draws buyers looking for more land at a more attainable price.",whyMe:"Saiid covers Skippack, Collegeville, and Worcester regularly and helps buyers weigh Skippack's lot size and village lifestyle against tighter commute alternatives.",faqs:[{question:"What school district is Skippack, PA in?",answer:"Skippack is part of Perkiomen Valley School District, the same district as Collegeville and Schwenksville."},{question:"What is Skippack Village known for?",answer:"Skippack Village along PA-73 is known for its walkable strip of restaurants, antique shops, and the annual Skippack Days festival."},{question:"Is Evansburg State Park in Skippack?",answer:"Yes. Evansburg State Park sits in Skippack and Lower Providence Townships and covers about 3,300 acres along the Skippack Creek."},{question:"What is the median home price in Skippack?",answer:"Median sale price in Skippack (ZIP 19474) in 2025 runs $525K to $775K, with estate properties exceeding $1.0M."}],geo:{lat:40.2237,lng:-75.4054},nearbyEntities:["Skippack Village","Evansburg State Park","Perkiomen Valley School District","PA-73","Skippack Township"]},{slug:"harleysville",city:"Harleysville",state:"PA",zips:["19438"],county:"Montgomery County",schoolDistrict:"Souderton Area School District",metaTitle:"Real Estate Agent in Harleysville, PA | Saiid Zamani",metaDescription:"Harleysville PA real estate â Souderton schools, Harleysville Village, NE Montgomery County. Realtor Saiid Zamani. 484-597-6868.",h1:"Real Estate Agent in Harleysville, PA",quickAnswer:"Saiid Zamani is a Keller Williams Realtor serving Harleysville, PA (19438) in Souderton Area School District. Harleysville is an unincorporated community in Lower Salford Township in northeastern Montgomery County.",priceBand:"Median sale price ~$450Kâ$650K (2025); newer larger homes can exceed $800K.",commute:"About 55 minutes to Center City via PA-63 (Sumneytown Pike) and the Pennsylvania Turnpike. 25 minutes to Lansdale.",intro:"Harleysville combines Souderton SD schools with a quieter northeastern Montgomery County character, Harleysville Park, and proximity to the Pennsylvania Turnpike (Lansdale interchange).",neighborhoods:"Harleysville Village, neighborhoods near Salford Hills Elementary, and newer developments off Sumneytown Pike. Lot sizes commonly range from a quarter to half acre.",market:"Harleysville draws buyers from Lansdale, Souderton, and points n
194orth looking for more space and Souderton SD schools at attainable prices.",whyMe:"Saiid covers the LansdaleâHarleysvilleâSouderton corridor and helps buyers compare Souderton, North Penn, and Methacton school districts in the same commute radius.",faqs:[{question:"What school district is Harleysville, PA in?",answer:"Harleysville is served by Souderton Area School District, which also serves Souderton, Telford, and surrounding northeastern Montgomery County townships."},{question:"Is Harleysville a borough?",answer:"No. Harleysville is an unincorporated community within Lower Salford Township, Montgomery County."},{question:"How far is Harleysville from the Pennsylvania Turnpike?",answer:"Harleysville sits about 5 minutes from the Lansdale interchange of the Pennsylvania Turnpike (Exit 31)."},{question:"What is the median home price in Harleysville?",answer:"Median sale price in Harleysville (ZIP 19438) in 2025 runs $450K to $650K, with newer larger homes exceeding $800K."}],geo:{lat:40.2787,lng:-75.3854},nearbyEntities:["Souderton Area School District","Harleysville Park","Sumneytown Pike","Lower Salford Township","Pennsylvania Turnpike"]}],uM=[{slug:"malvern",city:"Malvern",state:"PA",zips:["19355"],county:"Chester County",schoolDistrict:"Great Valley School District",metaTitle:"Real Estate Agent in Malvern, PA | Saiid Zamani",metaDescription:"Saiid Zamani helps buyers and sellers in Malvern, PA. Knowledgeable about Great Valley schools, Atwater, and historic borough homes. Local Keller Williams agent.",h1:"Real Estate Agent in Malvern, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Malvern, PA (ZIP 19355) in Chester County. He works with buyers and sellers across Malvern Borough, East Whiteland, and Willistown, including communities like Atwater and Charlestown Hunt. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $500K (townhomes) to $900K+ (single-family) as of 2025.",commute:"Quick access to US-202, the PA Turnpike, and SEPTA Paoli/Thorndale Line from Malvern Station. About 35 minutes to Center City Philadelphia by train.",intro:"Malvern blends a walkable historic borough with newer luxury communities and award-winning Great Valley schools. It's a magnet for families relocating for jobs at nearby corporate campuses, and demand from Main Line buyers wanting more square footage continues to push values higher.",neighborhoods:"Sought-after Malvern communities include Atwater (master-planned with retail and townhomes), Charlestown Hunt, Charlestown Oaks, Spring Oak, and the historic Malvern Borough. Each offers different combinations of HOA amenities, lot size, and walkability.",market:"The Malvern market in 2025 favors well-prepared sellers, with Great Valley School District homes drawing strong interest from relocating executives. Newer construction in Atwater and Spring Oak commands premium pricing thanks to walkable retail and modern floor plans.",whyMe:"Saiid lives and works the Main Line every day. He understands the nuances between Great Valley feeders, the difference between township vs. borough taxes, and how to position Malvern listings to attract corporate relocation buyers.",faqs:[{question:"Who is the trusted real estate agent in Malvern, PA?",answer:"Saiid Zamani is a Realtor® with Keller Williams Realty Devon-Wayne serving Malvern. He specializes in Great Valley School District, Atwater, Charlestown Hunt, and historic Malvern Borough properties."},{question:"What is the average home price in Malvern, PA?",answer:"As of 2025, median home prices in Malvern (ZIP 19355
194) typically range from $500,000 for townhomes to $900,000+ for single-family homes. Luxury homes in Charlestown and on larger lots can exceed $1.5M."},{question:"Is Malvern, PA a place to live?",answer:"Yes. Malvern offers Great Valley School District, a charming walkable borough, SEPTA train access to Philadelphia, and proximity to major corporate employers along the Route 202 corridor. It consistently ranks among Chester County's most desirable towns."},{question:"What school district is Malvern in?",answer:"Most of Malvern is served by the Great Valley School District, which is well-regarded. Some surrounding addresses fall into Downingtown Area or West Chester Area school districts â always confirm with your agent before making an offer."},{question:"Is Atwater in Malvern a neighborhood?",answer:"Atwater is one of Malvern's most popular master-planned communities, featuring townhomes, single-family homes, and walkable retail. It's especially attractive to professionals working at nearby corporate campuses thanks to its newer construction and amenities."},{question:"How fast do homes sell in Malvern, PA?",answer:"Well-priced Malvern homes in Great Valley School District typically sell within 14 to 30 days. Strong staging, professional marketing, and accurate pricing are critical in this competitive market."}],geo:{lat:40.0362,lng:-75.5138},nearbyEntities:["Great Valley School District","Malvern Borough","Atwater","SEPTA Malvern Station","Wharton Esherick Museum"]},{slug:"phoenixville",city:"Phoenixville",state:"PA",zips:["19460"],county:"Chester County",schoolDistrict:"Phoenixville Area School District",metaTitle:"Real Estate Agent in Phoenixville, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Phoenixville, PA real estate agent. Experienced on Phoenixville schools, downtown Bridge Street, and new townhome communities. Call 484-597-6868.",h1:"Real Estate Agent in Phoenixville, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Phoenixville, PA (ZIP 19460) in Chester County. He helps buyers and sellers throughout the borough and surrounding townships, including new construction along Bridge Street and family neighborhoods near Phoenixville Area schools. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $350K (townhomes) to $600K+ (single-family) as of 2025.",commute:"Direct access to US-422 and PA-23.",intro:"Phoenixville's revival is one of the most talked-about stories in Chester County. A walkable downtown packed with breweries, restaurants, and the historic Colonial Theatre has made it a leading destination for young professionals and families looking for character without sacrificing modern amenities.",neighborhoods:"Popular Phoenixville neighborhoods include downtown lofts and townhomes near Bridge Street, Riverwalk at Phoenixville, French Creek, and welcoming subdivisions in surrounding Schuylkill, East Pikeland, and Charlestown townships.",market:"The Phoenixville market in 2025 continues to attract first-time buyers and downsizers thanks to its walkable downtown and relative affordability compared to the Main Line. New construction townhomes and condos near downtown command premium pricing.",whyMe:"Saiid understands what makes Phoenixville unique â the borough vs. township tax differences, the buyer pools drawn by the downtown vibe, and how to market a Phoenixville home to both local and Philadelphia commuter buyers.",faqs:[{question:"Who is the trusted real estate agent in Phoenixville, PA?",answer:"Saiid Zamani is a trusted real estate agent serving Phoenixville, PA with Keller Williams Realty. He specializes in downtown Phoenixville townhomes, Phoenixville Area School District, and new construction along the Bridge Street corridor."},{question:"What is the average home price in Phoenixville, PA?",answer:"As of 2025, median home prices in Phoenixville (ZIP 19460) typically range from $350,000 for townhomes and condos to $600,000+ for single-family homes. Newer construction near downtown can exceed $700K."},{question:"Is Phoenixville, PA a place to live?",answer:"Yes. Phoenixville offers a vibrant walkable downtown, the historic Colonial Theatre, multiple breweries, easy access to US-422, and a revitalized arts and dining scene. It's especially popular with young professionals and families."},{question:"What school district is Phoenixville in?",answer:"Phoenixville is served by the Phoenixville Area School District, which includes Phoenixville Area High School and several elementary and middle schools across the borough and surrounding townships."},{question:"Are there new construction homes in Phoenixville?",answer:"Yes. New construction townhomes, condos, and apartments continue to be developed along the Bridge Street corridor and in surrounding townships. Saiid Zamani can help you compare new builds to resale options."},{question:"How long does it take to sell a home in Phoenixville?",answer:"Well-priced Phoenixville homes typically sell within 20 to 40 days. Downtown townhomes and homes in well-regarded Phoenixville Area schools tend to move fastest."}],geo:{lat:40.1304,lng:-75.5149},nearbyEntities:["Bridge Street Phoenixville","Colonial Theatre","Phoenixville Area School District","Black Rock Sanctuary","Schuylkill River Trail"]},{slug:"collegeville",city:"Collegeville",state:"PA",zips:["19426"],county:"Montgomery County",schoolDistrict:"Perkiomen Valley School District",metaTitle:"Real Estate Agent in Collegeville, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Collegeville, PA real estate agent. Experienced on Perkiomen Valley schools, Providence Town Center, and new townhomes. Call 484-597-6868.",h1:"Real Estate Agent in Collegeville, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Collegeville, PA (ZIP 19426) in Montgomery County. He helps buyers and sellers throughout Collegeville Borough, Lower Providence, and Trappe, including new communities near Providence Town Center. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $375K (townhomes) to $650K+ (single-family) as of 2025.",commute:"Quick access to US-422, PA-29, and the PA Tur
194npike.",intro:"Collegeville offers a strong combination of well-rated schools, growing retail at Providence Town Center, and proximity to major Route 422 corporate employers. Its mix of new townhome communities and established neighborhoods appeals to a wide range of buyers.",neighborhoods:"Popular Collegeville areas include neighborhoods around Ursinus College, communities near Providence Town Center, and newer townhomes and single-family developments in Lower Providence and Trappe. Each offers different price points and HOA structures.",market:"The Collegeville market in 2025 is steady with strong buyer demand for homes in Perkiomen Valley and Methacton school districts. Newer townhomes near Providence Town Center continue to draw professionals working along the Route 422 corridor.",whyMe:"Saiid helps Collegeville buyers and sellers understand the school district lines (Perkiomen Valley vs. Methacton vs. Spring-Ford), HOA fee differences across new construction, and how to price homes competitively in this growing market.",faqs:[{question:"Who is the trusted real estate agent in Collegeville, PA?",answer:"Saiid Zamani is a Realtor® with Keller Williams Realty Devon-Wayne serving Collegeville. He specializes in Perkiomen Valley and Methacton school districts, new construction townhomes, and resale homes throughout Collegeville Borough, Lower Providence, and Trappe."},{question:"What is the average home price in Collegeville, PA?",answer:"As of 2025, median home prices in Collegeville (ZIP 19426) typically range from $375,000 for townhomes to $650,000+ for single-family homes. Newer construction in select communities can exceed $750K."},{question:"Is Collegeville, PA a place to live?",answer:"Yes. Collegeville offers well-rated schools, the Providence Town Center retail and dining, easy access to US-422, and proximity to major employers. It's popular with families and professionals working along the 422 corridor."},{question:"What school district is Collegeville in?",answer:"Collegeville is served primarily by the Perkiomen Valley School District, with portions falling into Methacton or Spring-Ford depending on the address. Always verify school assignments before purchasing."},{question:"Are there new homes for sale in Collegeville?",answer:"Yes. Several new townhome and single-family communities have been built in and around Collegeville, especially near Providence Town Center and along the US-422 corridor. Saiid Zamani can help you compare new construction to resale options."},{question:"How long does it take to sell a home in Collegeville?",answer:"Well-priced Collegeville homes typically sell within 20 to 35 days. Homes in Perkiomen Valley School District with strong staging and pricing often sell faster."}],geo:{lat:40.1859,lng:-75.4527},nearbyEntities:["Ursinus College","Providence Town Center","Perkiomen Valley School District","Perkiomen Trail","US-422"]},{slug:"west-chester",city:"West Chester",state:"PA",zips:["19380","19382","19383"],county:"Chester County",schoolDistrict:"West Chester Area School District",metaTitle:"Real Estate Agent in West Chester, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a West Chester, PA real estate agent. Experienced on West Chester Area schools, downtown borough homes, and family neighborhoods. Call 484-597-6868.",h1:"Real Estate Agent in West Chester, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving West Chester, PA (ZIPs 19380, 19382, 19383) in Chester County. He helps buyers and sellers throughout the borough, surrounding townships, and West Chester Area School District. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $425K (townhomes) to $800K+ (single-family) as of 2025.",commute:"Access to US-202, US-322, and US-1. About 40 minutes to Center City Philadelphia and 25 minutes to Wilmington.",intro:"West Chester combines a vibrant historic borough â home to West Chester University, top restaurants, and the Chester County Courthouse â with a wide range of family neighborhoods across East Bradford, West Goshen, and Westtown townships. It's one of the most desirable places to live in Chester County.",neighborhoods:"Popular West Chester neighborhoods include downtown borough Victorian and townhome streets, Hershey's Mill (active adult), Greystone, Hillsdale, and family communities throughout East Bradford, West Goshen, and Westtown.",market:"The West Chester market in 2025 stays competitive thanks to West Chester Area School District ratings and the borough's lifestyle appeal. Walkable borough homes and well-located single-family properties consistently attract multiple offers.",whyMe:"Saiid helps West Chester buyers and sellers navigate the differences between borough vs. township taxes, school feeder boundaries within WCASD, and how to market a downtown West Chester home to both local move-up buyers and Philadelphia commuters.",faqs:[{question:"Who is the trusted real estate agent in West Chester, PA?",answer:"Saiid Zamani is a trusted real estate agent serving West Chester, PA with Keller Williams Realty. He specializes in West Chester Area School District, downtown borough properties, and family neighborhoods in East Bradford, West Goshen, and Westtown."},{question:"What is the average home price in West Chester, PA?",answer:"As of 2025, median home prices in West Chester (ZIPs 19380 and 19382) typically range from $425,000 for townhomes to $800,000+ for single-family homes, with luxury properties on larger lots exceeding $1.2M."},{question:"Is West Chester, PA a place to live?",answer:"Yes. West Chester offers a public schools district, a walkable historic downtown, West Chester University, excellent restaurants, and easy access to major highways. It's consistently ranked among Pennsylvania's well-regarded places to live."},{question:"What school district is West Chester in?",answer:"Most West Chester addresses are served by the West Chester Area School District, one of Chester County's well-regarded districts. Some outlying addresses may fall into Unionville-C
194hadds Ford or Downingtown â always confirm before buying."},{question:"Is downtown West Chester a good place to buy a home?",answer:"Yes. Downtown West Chester offers walkable streets, historic Victorian and townhome architecture, well-regarded restaurants, and proximity to West Chester University and the Chester County Courthouse. Demand for borough homes remains strong."},{question:"How fast do homes sell in West Chester, PA?",answer:"Well-priced West Chester homes typically sell within 15 to 35 days. Borough homes and properties in well-regarded WCASD feeders often receive multiple offers."}],geo:{lat:39.9601,lng:-75.6058},nearbyEntities:["West Chester University","Chester County Courthouse","West Chester Area School District","Everhart Park","QVC headquarters"]},{slug:"wayne",city:"Wayne",state:"PA",zips:["19087"],county:"Delaware County / Chester County",schoolDistrict:"Radnor Township & Tredyffrin/Easttown School Districts",metaTitle:"Real Estate Agent in Wayne, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Wayne, PA real estate agent on the Main Line. Experienced on Radnor and T/E schools, downtown Wayne, and luxury homes. Call 484-597-6868.",h1:"Real Estate Agent in Wayne, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent based in Wayne, PA (ZIP 19087) on the Main Line. He helps buyers and sellers across Radnor Township and Tredyffrin/Easttown School District communities, including downtown Wayne and surrounding luxury neighborhoods. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $600K (townhomes/condos) to $1.5M+ (single-family) as of 2025.",commute:"SEPTA Paoli/Thorndale Line from Wayne Station, plus quick access to I-476, I-76, and US-202. About 25 minutes to Center City Philadelphia by train.",intro:"Wayne is the heart of the Main Line â a walkable downtown with renowned restaurants, well-regarded Radnor and Tredyffrin/Easttown schools, and tree-lined streets of historic Main Line architecture. It's one of the most desirable real estate markets in the entire Philadelphia region.",neighborhoods:"Popular Wayne neighborhoods include downtown Wayne (walkable to Lancaster Avenue), South Wayne, Strafford, North Wayne, and luxury enclaves throughout Radnor Township. Tredyffrin/Easttown sections include parts of Wayne in Chester County.",market:"The Wayne market in 2025 remains highly competitive. Inventory is consistently tight in both Radnor and T/E school districts. Well-prepared luxury homes attract serious buyers from Philadelphia, New York, and the international relocation market.",whyMe:"Saiid is based in Wayne and works the Main Line every day. He knows the difference between Radnor and T/E feeders, understands the buyer pools that drive Wayne pricing, and brings nationally recognized marketing technology to every listing.",faqs:[{question:"Who is the trusted real estate agent in Wayne, PA?",answer:"Saiid Zamani is a top Main Line real estate agent based in Wayne, PA with Keller Williams Realty. He specializes in Radnor Township and Tredyffrin/Easttown School Districts, downtown Wayne, and luxury Main Line properties."},{question:"What is the average home price in Wayne, PA?",answer:"As of 2025, median home prices in Wayne (ZIP 19087) typically range from $600,000 for townhomes and condos to $1.5M+ for single-family homes. Luxury Main Line estates regularly exceed $3M."},{question:"Is Wayne, PA a place to live?",answer:"Yes. Wayne is the heart of the Main Line, offering well-regarded Radnor and T/E schools, a walkable downtown with award-winning restaurants, SEPTA train service to Philadelphia, and historic architecture. It's one of the most desirable suburbs in the country."},{question:"What school districts serve Wayne, PA?",answer:"Wayne is split between Radnor Township School District (Delaware County side) and Tredyffrin/Easttown School District (Chester County side). Both are well-regarded. Always confirm school assignment by exact address before buying."},{question:"Is downtown Wayne walkable?",answer:"Yes. Downtown Wayne along Lancaster Avenue is one of the most walkable parts of the Main Line, with restaurants, shops, the Wayne SEPTA station, and tree-lined residential streets within easy walking distance."},{question:"How competitive is the Wayne, PA real estate market?",answer:"Very competitive. Inventory is consistently tight in both Radnor and T/E school districts, and well-priced homes often receive multiple offers within days. Working with a Main Line specialist is critical."}],geo:{lat:40.044,lng:-75.3879},nearbyEntities:["Lancaster Avenue (Main Line)","Radnor Township","Tredyffrin/Easttown School District","SEPTA Wayne Station","Valley Forge National Historical Park"]},{slug:"newtown-square",city:"Newtown Square",state:"PA",zips:["19073"],county:"Delaware County",schoolDistrict:"Marple Newtown School District",metaTitle:"Real Estate Agent in Newtown Square, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Newtown Square, PA real estate agent. Experienced on Marple Newtown schools, Liseter, and luxury Edgmont Township homes. Call 484-597-6868.",h1:"Real Estate Agent in Newtown Square, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Newtown Square, PA (ZIP 19073) in Delaware County. He helps buyers and sellers across Newtown Township, Edgmont, and Marple Newtown School District communities including Liseter and Runnymeade. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $550K (townhomes) to $1.2M+ (single-family) as of 2025.",commute:"Acce
194ss to US-3 (West Chester Pike), PA-252, and I-476 (Blue Route). About 30 minutes to Center City Philadelphia.",intro:"Newtown Square offers Main Line lifestyle with larger lots and a more rural feel than Wayne or Bryn Mawr. Anchored by SAP America's headquarters and luxury communities like Liseter, it attracts executives and families looking for well-regarded Marple Newtown schools and significant square footage.",neighborhoods:"Sought-after Newtown Square communities include Liseter (Toll Brothers luxury), Runnymeade, White Horse, Whitemarsh, and estate-style properties throughout Newtown and Edgmont Townships.",market:"The Newtown Square market in 2025 favors luxury sellers, with new construction and recently built homes in Liseter commanding strong premiums. Buyer demand is driven by relocating SAP and corporate executives plus Philadelphia move-up buyers.",whyMe:"Saiid understands the Newtown Square buyer profile â relocating executives, downsizers from larger Main Line estates, and growing families. He knows how to position luxury Newtown Square listings and how to negotiate in low-inventory micro-markets.",faqs:[{question:"Who is the trusted real estate agent in Newtown Square, PA?",answer:"Saiid Zamani is a Realtor® with Keller Williams Realty Devon-Wayne serving Newtown Square. He specializes in Marple Newtown School District, Liseter, Runnymeade, and luxury homes throughout Newtown and Edgmont Townships."},{question:"What is the average home price in Newtown Square, PA?",answer:"As of 2025, median home prices in Newtown Square (ZIP 19073) typically range from $550,000 for townhomes to $1.2M+ for single-family homes. Luxury homes in Liseter and on larger lots often exceed $2M."},{question:"Is Newtown Square, PA a place to live?",answer:"Yes. Newtown Square offers well-regarded Marple Newtown schools, larger lots than most Main Line towns, proximity to SAP and other corporate employers, and easy access to the Blue Route (I-476) and US-3."},{question:"What school district is Newtown Square in?",answer:"Newtown Square is primarily served by the Marple Newtown School District, one of Delaware County's well-regarded districts. A small portion of Edgmont Township falls into the Rose Tree Media School District."},{question:"Is Liseter a neighborhood in Newtown Square?",answer:"Yes. Liseter is one of Newtown Square's most established luxury communities, featuring Toll Brothers homes on the historic du Pont estate. It offers resort-style amenities and is popular with executives and downsizers."},{question:"How fast do homes sell in Newtown Square, PA?",answer:"Well-priced Newtown Square homes typically sell within 20 to 45 days. Luxury homes may take longer to find the right buyer but consistently command strong prices when properly marketed."}],geo:{lat:39.9837,lng:-75.4099},nearbyEntities:["SAP America Headquarters","Liseter","Marple Newtown School District","Ridley Creek State Park","Edgmont Country Club"]},{slug:"chesterbrook",city:"Chesterbrook",state:"PA",zips:["19087"],county:"Chester County",schoolDistrict:"Tredyffrin/Easttown School District",metaTitle:"Real Estate Agent in Chesterbrook, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Chesterbrook, PA real estate agent. Experienced on T/E schools, Chesterbrook townhomes, and Tredyffrin Township homes. Call 484-597-6868.",h1:"Real Estate Agent in Chesterbrook, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Chesterbrook, PA (ZIP 19087) in Tredyffrin Township, Chester County. He helps buyers and sellers across Chesterbrook's planned community and surrounding T/E School District homes. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $400K (townhomes/condos) to $850K+ (single-family) as of 2025.",commute:"Quick access to US-202, the PA Turnpike, and SEPTA Paoli/Thorndale Line. About 30 minutes to Center City Philadelphia.",intro:"Chesterbrook is a well-planned community in Tredyffrin Township offering a unique mix of townhomes, condos, and single-family homes within the well-regarded Tredyffrin/Easttown School District. It's a top choice for buyers who want T/E schools at a more accessible price point than nearby Wayne.",neighborhoods:"Chesterbrook is divided into multiple sub-communities including Brynwood, Greene Countrie, Coventry, Daylesford Lake, and Greentree, each with its own HOA, amenities, and architectural style.",market:"The Chesterbrook market in 2025 remains strong thanks to T/E schools and corporate proximity. Townhomes and condos move quickly with relocating professionals, and single-family homes consistently attract families targeting T/E feeders.",whyMe:"Saiid lives the Main Line and understands every Chesterbrook sub-community â the HOA fee differences, the school feeder nuances, and which floor plans hold value well on resale.",faqs:[{question:"Who is the trusted real estate agent in Chesterbrook, PA?",answer:"Saiid Zamani is a top Chesterbrook real estate agent with Keller Williams Realty. He specializes in the Tredyffrin/Easttown School District and knows every Chesterbrook sub-community including Brynwood, Greene Countrie, Coventry, and Daylesford Lake."},{question:"What is the average home price in Chesterbrook, PA?",answer:"As of 2025, median home prices in Chesterbrook typically range from $400,000 for townhomes and condos to $850,000+ for single-family homes. Pricing varies by sub-community, HOA, and proximity to top T/E schools."},{question:"Is Chesterbrook, PA a place to live?",answer:"Yes. Chesterbrook offers Tredyffrin/Easttown schools, a planned-community layout with parks and trails, easy access to US-202 and the PA Tur
194npike, and proximity to Wayne. It's especially popular with relocating professionals."},{question:"What school district is Chesterbrook in?",answer:"Chesterbrook is served by the Tredyffrin/Easttown School District (T/E), consistently one of Pennsylvania's well-regarded public school districts."},{question:"What are the HOA fees like in Chesterbrook?",answer:"HOA fees in Chesterbrook vary by sub-community and home type. Condos and townhomes typically have higher fees that cover exterior maintenance, while single-family homes may have lower or no HOA. Always review HOA documents before making an offer."},{question:"How fast do homes sell in Chesterbrook?",answer:"Well-priced Chesterbrook homes typically sell within 15 to 30 days, especially townhomes and condos that appeal to relocating professionals targeting T/E schools."}],geo:{lat:40.0712,lng:-75.4555},nearbyEntities:["Tredyffrin/Easttown School District","Wilson Farm Park","Chesterbrook Corporate Center","PA Turnpike","US-202"]},{slug:"norristown",city:"Norristown",state:"PA",zips:["19401","19403"],county:"Montgomery County",schoolDistrict:"Norristown Area School District",metaTitle:"Real Estate Agent in Norristown, PA | Saiid Zamani",metaDescription:"Saiid Zamani is a Norristown, PA real estate agent. Local expert on East/West Norriton, Norristown Borough, and Montgomery County Seat homes. Call 484-597-6868.",h1:"Real Estate Agent in Norristown, PA",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving the Norristown area, PA (ZIPs 19401, 19403) in Montgomery County. He helps buyers and sellers across Norristown Borough, East Norriton, and West Norriton â the seat of Montgomery County. Contact: 484-597-6868.",priceBand:"Median sale price typically ranges from $250K (borough rowhomes) to $550K+ (East/West Norriton single-family) as of 2025.",commute:"Direct access to US-202, PA-23, and the PA Turnpike (I-276). SEPTA Manayunk/Norristown Line plus the Norristown High Speed Line to 69th Street. About 30 minutes to Center City Philadelphia.",intro:"The Norristown area combines the historic Borough â Montgomery County's seat of government â with the family-oriented East Norriton and West Norriton townships. It's one of the most affordable entry points into Montgomery County for first-time buyers, while East/West Norriton offer larger lots and access to Methacton and Norristown Area schools.",neighborhoods:"Popular Norristown-area neighborhoods include historic Norristown Borough rowhomes and twins, East Norriton single-family communities near Einstein Medical Center Montgomery, West Norriton family neighborhoods near Methacton schools, and Plymouth/Whitemarsh-adjacent pockets along Germantown Pike.",market:"East Norriton single-family homes in Norristown Area or Methacton School District move quickly when priced correctly.",whyMe:"Saiid helps Norristown-area buyers and sellers understand the borough-vs-township tax differences, school feeder boundaries (Norristown Area SD vs. Methacton), and how to price homes competitively in a market with wide value ranges between blocks.",faqs:[{question:"Who is the trusted real estate agent in Norristown, PA?",answer:"Saiid Zamani is a Keller Williams real estate agent serving the Norristown area, PA. He helps buyers and sellers in Norristown Borough, East Norriton, and West Norriton across Montgomery County."},{question:"What is the average home price in Norristown, PA?",answer:"As of 2025, median home prices in the Norristown area (ZIPs 19401, 19403) typically range from about $250,000 for borough rowhomes and twins to $550,000+ for single-family homes in East Norriton and West Norriton townships."},{question:"Is Norristown, PA a place to live?",answer:"Yes. Norristown is the seat of Montgomery County and offers excellent access to US-202, the PA Turnpike, SEPTA Regional Rail, and the Norristown High Speed Line."},{question:"What school district is Norristown in?",answer:"Norristown Borough and East Norriton Township are served by the Norristown Area School District. Most of West Norriton is served by the Methacton School District, which is one of Montgomery County's higher-rated districts."}
194,{question:"Is Norristown safe?",answer:"Norristown, like any urban borough, varies block by block. East Norriton and West Norriton townships are predominantly suburban and family-oriented. A local agent like Saiid Zamani can help you evaluate specific streets, recent comparable sales, and neighborhood profiles before you make an offer."},{question:"How long does it take to sell a home in Norristown, PA?",answer:"Well-priced Norristown-area homes typically sell within 20 to 45 days. Single-family homes in East Norriton and West Norriton with public schools assignments tend to move fastest."}],geo:{lat:40.1215,lng:-75.3399},nearbyEntities:["Montgomery County Courthouse","Einstein Medical Center Montgomery","Elmwood Park Zoo","Norristown Transportation Center","Methacton School District"]},{slug:"main-line",city:"Main Line",state:"PA",zips:["19087","19312","19355","19010","19085","19301"],county:"Chester & Delaware & Montgomery Counties",schoolDistrict:"Radnor Township SD, Tredyffrin/Easttown SD, Great Valley SD, Lower Merion SD",metaTitle:"Main Line PA Real Estate Agent | Saiid Zamani",metaDescription:"Saiid Zamani is a trusted Main Line PA real estate agent. Local expertise in Wayne, Devon, Berwyn, Paoli, Malvern, Bryn Mawr & Chesterbrook. Call 484-597-6868.",h1:"Main Line PA Real Estate Agent",quickAnswer:"Saiid Zamani is a Keller Williams Realty Devon-Wayne real estate agent serving the Main Line, PA â the historic Pennsylvania Railroad corridor running west from Philadelphia through Bryn Mawr, Wayne, Devon, Berwyn, Paoli, Malvern, and Chesterbrook. He helps buyers and sellers across Radnor, Tredyffrin/Easttown, Great Valley, and Lower Merion School Districts. Contact: 484-597-6868.",priceBand:"Median sale price ranges widely from $500K (townhomes/condos) to $1.5M+ (estate homes) as of 2025, depending on town and school district.",commute:"Direct SEPTA Paoli/Thorndale Regional Rail to Center City Philadelphia (25â45 minutes), plus US-30 (Lancaster Avenue), US-202, and the PA Turnpike.",intro:"The Main Line is the historic Pennsylvania Railroad corridor running west from Philadelphia through some of the most established and desirable suburban communities in the United States. Anchored by walkable train-line villages and top-tier public and private schools, the Main Line offers homes from luxury Bryn Mawr estates to walkable Wayne townhomes and residential Chesterbrook neighborhoods.",neighborhoods:"The Main Line spans multiple municipalities â Bryn Mawr, Haverford, Ardmore (Lower Merion), Wayne, Radnor, Villanova (Radnor Township), Devon, Berwyn, Paoli, Chesterbrook (Tredyffrin/Easttown), and Malvern (Willistown/East Whiteland). Each town has its own walkable downtown, distinct architecture, and price band.",market:"The Main Line market in 2025 remains one of the most competitive in suburban Philadelphia. Well-priced homes in Radnor, Tredyffrin/Easttown, and Lower Merion School Districts typically receive multiple offers, while luxury estate homes in Bryn Mawr and Villanova continue to set record prices.",whyMe:"Saiid lives and works on the Main Line every day. He understands school feeder differences (Radnor vs. T/E vs. Great Valley vs. Lower Merion), township-versus-borough tax structures, and how to position Main Line listings to attract corporate-relocation, downsizer, and Philadelphia-move-out buyers.",faqs:[{question:"What is the Main Line in PA?",answer:"The Main Line refers to the historic Pennsylvania Railroad corridor running west from Philadelphia along Lancaster Avenue (US-30) through Bryn Mawr, Haverford, Ardmore, Wayne, Devon, Berwyn, Paoli, and Malvern. It is one of the most established and affluent suburban regions in the United States, served by SEPTA's Paoli/Thorndale Regional Rail Line."},{question:"Which real estate agent should I consider on the Main Line, PA?",answer:"Saiid Zamani is a Realtor® with Keller Williams Realty Devon-Wayne serving Main Line Devon-Wayne, based at 744 W Lancaster Avenue in Wayne, PA. He specializes in Radnor, Tredyffrin/Easttown, Great Valley, and Lower Merion School Districts and republishes client reviews from Google, Zillow and Realtor.com, each rated 5 out of 5 on its source platform."},{question:"What towns are on the Main Line PA?",answer:"The Main Line includes Bryn Mawr, Haverford, Ardmore, Rosemont, Villanova, Radnor, Wayne, Devon, Berwyn, Paoli, Chesterbrook, and Malvern. Wayne is often considered the commercial heart of the Main Line."},{question:"What school districts serve the Main Line?",answer:"The Main Line is served by four well-regarded public school districts: Lower Merion SD (Bryn Mawr, Ardmore, Haverford, Wynnewood), Radnor Township SD (Wayne, Villanova, Radnor), Tredyffrin/Easttown SD (Devon, Berwyn, Paoli, Chesterbrook, Strafford), and Great Valley SD (Malvern, East Whiteland)."},{question:"How much do homes cost on the Main Line PA?",answer:"Main Line home prices in 2025 range from about $500,000 for townhomes and condos to $1.5M+ for single-family homes, with luxury estates in Bryn Mawr, Villanova, and Devon regularly exceeding $3M."}],geo:{lat:40.044,lng:-75.3879},nearbyEntities:["SEPTA Paoli/Thorndale Line","US-30 Lancaster Avenue","Villanova University","Bryn Mawr College","Valley Forge National Historical Park"]}],zu=[...uM,...lM,...cM],Zp=[{slug:"montgomery-county-pa",name:"Montgomery County, Pennsylvania",shortName:"Montgomery County",state:"PA",metaTitle:"Montgomery County PA Real Estate Agent | Homes & Schools",metaDescription:"Complete Montgomery County PA real estate guide: Collegeville, Plymouth Meeting, Conshohocken, school districts, market trends, and a top local agent. Call 484-597-6868.",h1:"Montgomery County, PA Real Estate Guide",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Montgomery County, Pennsylvania â including Collegeville, Plymouth Meeting, Norristown, and Conshohocken. He helps buyers, sellers, and relocating families navigate Methacton, Spring-Ford, Perkiomen Valley, Lower Merion, and Wissahickon school districts. Call 484-597-6868.",intro:"Montgomery County is one of Pennsylvania's most populous and economically vibrant counties, home to corporate headquarters, public schools districts, and some of the most desirable suburbs in Greater Philadelphia.",population:"~865,000 residents (PA's 3rd most populous county)",medianPrice:"Median sale price ~$475K (2025).",topEmployers:"GlaxoSmithKline, Merck, Vanguard, Lockheed Martin, Children's Hospital of Philadelphia, Einstein Healthcare, Universal Health Services.",cities:[{name:"Collegeville",slug:"collegeville",note:"Perkiomen Valley SD · 422 corridor growth"},{name:"Phoenixville (border)",slug:"phoenixville",note:"Phoenixville Area SD · walkable downtown"}],schoolDistricts:[{name:"Methacton School District",slug:"methacton-school-district",note:"Worcester, Lower Providence â strong academics."},{name:"Spring-Ford Area School District",slug:"spring-ford-area-school-district",note:"Royersford, Limerick, Trappe â fast-growing."}
194,{name:"Lower Merion School District",note:"One of PA's well-regarded districts â Bryn Mawr, Ardmore, Wynnewood."},{name:"Wissahickon School District",note:"Ambler, Blue Bell â well-regarded, Main Line adjacent."},{name:"Perkiomen Valley School District",note:"Collegeville, Schwenksville â welcoming growth area."}],market:"Montgomery County's 2026 market continues to favor sellers in well-rated school feeders. Townhome inventory along the 422 corridor is moving especially fast as relocating professionals target newer construction near GSK and Merck campuses. Inventory remains tight (~1.5 months supply) keeping pricing pressure positive.",taxes:"Montgomery County property taxes vary widely by municipality and school district. Buyers should review the current county, municipal, and school tax bills for the exact property rather than rely on a countywide estimate.",whyMe:"Saiid Zamani advises Montgomery County buyers and sellers from his Wayne office. He helps clients compare municipal boundaries, school assignments, new construction, commute options, and neighborhood-level comparable sales before making a decision.",faqs:[{question:"Who is the trusted real estate agent in Montgomery County, PA?",answer:"Saiid Zamani is a top Montgomery County real estate agent with Keller Williams Realty."},{question:"What is the median home price in Montgomery County, PA?",answer:"As of 2025, the median sale price in Montgomery County is approximately $475,000. Submarkets vary widely, so buyers and sellers should use recent neighborhood-level comparable sales for decisions."},{question:"What are the public school districts in Montgomery County?",answer:"Montgomery County districts include Lower Merion, Wissahickon, Methacton, Spring-Ford Area, Perkiomen Valley, Hatboro-Horsham, and Colonial. Each has distinct boundaries and tax rates that can affect home prices."},{question:"Is Montgomery County a place to live?",answer:"Yes. Montgomery County combines strong job centers (GSK, Merck, Vanguard), top public schools, walkable downtowns like Ambler and Conshohocken, and easy access to Philadelphia and the Pennsylvania Turnpike."},{question:"How are Montgomery County property taxes?",answer:"Property taxes depen
194d on the exact municipality, school district, assessment, and current millage. Review the actual tax bill and confirm it with the county and municipality before relying on an estimate."},{question:"Where are the most affordable homes in Montgomery County?",answer:"Norristown, Pottstown, Lansdale, and Hatfield offer some of the most affordable entry points in Montgomery County, with median prices well below the county average. They're popular with first-time buyers and investors."}],geo:{lat:40.2107,lng:-75.3778},landmarks:["Valley Forge National Historical Park","Elmwood Park Zoo","Wissahickon Valley Park","Pennsylvania Turnpike (I-276)"]},{slug:"chester-county-pa",name:"Chester County, Pennsylvania",shortName:"Chester County",state:"PA",metaTitle:"Chester County PA Real Estate Agent | Malvern & Schools",metaDescription:"Complete Chester County PA real estate guide: Malvern, West Chester, Chesterbrook, Phoenixville, public schools districts, market trends. Local agent â call 484-597-6868.",h1:"Chester County, PA Real Estate Guide",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Chester County, Pennsylvania â including Malvern, West Chester, Chesterbrook, Phoenixville, and Exton. He helps buyers and sellers navigate Tredyffrin/Easttown, Great Valley, West Chester Area, Downingtown, and Phoenixville Area school districts. Call 484-597-6868.",intro:"Chester County is consistently ranked one of the wealthiest and most desirable counties in Pennsylvania, with award-winning school districts, rolling horse country, walkable downtowns like Malvern and West Chester, and major corporate campuses along the Route 202 and Route 30 corridors. Inventory is famously tight, and well-priced homes in T/E and Great Valley feeders move within days.",population:"~545,000 residents",medianPrice:"Median sale price ~$525K (2025), with Tredyffrin/Easttown and luxury Malvern submarkets regularly exceeding $1M.",topEmployers:"Vanguard, Endo Pharmaceuticals, Cerner, QVC, Chester County Hospital, Bentley Systems, AmeriGas.",cities:[{name:"Malvern",slug:"malvern",note:"Great Valley SD · walkable historic borough"},{name:"Chesterbrook",slug:"chesterbrook",note:"T/E SD · planned community"},{name:"West Chester",slug:"west-chester",note:"WCASD · vibrant downtown"},{name:"Phoenixville",slug:"phoenixville",note:"Phoenixville Area SD · revitalized borough"},{name:"Wayne (T/E side)",slug:"wayne",note:"T/E SD · Main Line anchor"}],schoolDistricts:[{name:"Tredyffrin/Easttown School District",slug:"tredyffrin-easttown-school-district",note:"Highly ranked in PA â Wayne, Berwyn, Devon, Chesterbrook, Paoli."},{name:"Great Valley School District",slug:"great-valley-school-district",note:"Malvern, East Whiteland, Charlestown â well-regarded."},{name:"Phoenixville Area School District",slug:"phoenixville-area-school-district",note:"Phoenixville Borough, Schuylkill Twp."},{name:"West Chester Area School District",note:"West Chester Borough, East Bradford, Westtown."},{name:"Downingtown Area School District",note:"Downingtown, Exton, Lionville â well-regarded and growing."},{name:"Unionville-Chadds Ford School District",note:"Unionville, Chadds Ford â small, well-regarded."}],market:"Chester County's 2026 market is one of the most competitive in southeastern PA. Inventory in T/E and Great Valley feeders sits under 1 month supply, and well-prepared homes regularly receive 5-10 offers within the first weekend. Newer construction in Atwater (Malvern) and Spring Oak commands meaningful premiums. Townhome demand from corporate relocators along Route 202 stays strong year-round.",taxes:"Chester County's effective property tax rate averages 1.3% to 1.7%. Tredyffrin/Easttown carries a higher millage rate driven by its public schools district; West Chester Borough and Phoenixville Borough add municipal tax layers but remain competitive with Montgomery County peers.",whyMe:"Saiid Zamani works the Chester County market daily. He knows the school feeder boundaries that move pricing by $50K+ in T/E and Great Valley, the HOA differences between Chesterbrook sub-communities, and how to win bidding wars in tight micro-markets like Atwater and downtown West Chester.",faqs:[{question:"Who is the trusted real estate agent in Chester County, PA?",answer:"Saiid Zamani is a top Chester County real estate agent with Keller Williams Realty. He specializes in Tredyffrin/Easttown, Great Valley, West Chester Area, and Phoenixville Area school districts and serves Malvern, Chesterbrook, West Chester, Wayne, Phoenixville, and Exton."},{question:"What is the median home price in Chester County, PA?",answer:"As of 2025, the median sale price in Chester County is approximately $525,000. Tredyffrin/Easttown and Great Valley feeders regularly exceed $1M for single-family homes, while Phoenixville and Co
194atesville offer more accessible price points."},{question:"What are the public schools districts in Chester County?",answer:"Highly rated Chester County school districts include Tredyffrin/Easttown, Great Valley, Unionville-Chadds Ford, Downingtown Area, West Chester Area, and Phoenixville Area. Tredyffrin/Easttown is consistently ranked in Pennsylvania's highly ranked."},{question:"Is Chester County a place to live?",answer:"Yes. Chester County offers some of Pennsylvania's top public schools, walkable downtowns in Malvern and West Chester, major corporate employers along the Route 202 corridor, beautiful preserved open space, and strong appreciation in home values."},{question:"Which Chester County town has public schools?",answer:"Tredyffrin/Easttown School District (covering parts of Wayne, Berwyn, Devon, Paoli, and Chesterbrook) is consistently ranked among Pennsylvania's highly ranked school districts. Great Valley (covering Malvern) and Unionville-Chadds Ford are also nationally recognized."},{question:"How competitive is the Chester County housing market?",answer:"Very competitive. Inventory in T/E and Great Valley feeders sits under one month of supply. Well-prepared homes regularly attract multiple offers within days. Working with a local agent who understands feeder boundaries and bidding war strategy is critical."}],geo:{lat:39.9526,lng:-75.771},landmarks:["Longwood Gardens","Brandywine Battlefield","Valley Forge National Historical Park","Marsh Creek State Park","QVC Headquarters"]},{slug:"delaware-county-pa",name:"Delaware County, Pennsylvania",shortName:"Delaware County",state:"PA",metaTitle:"Delaware County PA Real Estate Agent | Newtown Square",metaDescription:"Complete Delaware County PA real estate guide: Newtown Square, Media, Wayne, Radnor, school districts and market trends. Local agent â call 484-597-6868.",h1:"Delaware County, PA Real Estate Guide",quickAnswer:"Saiid Zamani is a Keller Williams real estate agent serving Delaware County, Pennsylvania â including Newtown Square, Wayne (Radnor side), Media, and Broomall. He helps buyers and sellers navigate Marple Newtown, Radnor Township, Wallingford-Swarthmore, and Rose Tree Media school districts. Call 484-597-6868.",intro:"Delaware County (Delco) blends Main Line prestige in towns like Wayne and Newtown Square with more affordable, character-rich communities like Media and Havertown. It offers some of the closest suburbs to Center City Philadelphia, public schools districts, and significant new construction in Newtown Square along the Liseter and Runnymeade corridors.",population:"~575,000 residents",medianPrice:"Median sale price ~$385K (2025), with Radnor Township and Newtown Square luxury submarkets regularly exceeding $1.5M.",topEmployers:"Crozer Health, Main Line Health, SAP America, Boeing, Aramark, Penn Medicine.",cities:[{name:"Newtown Square",slug:"newtown-square",note:"Marple Newtown SD · luxury Liseter community"},{name:"Wayne (Radnor)",slug:"wayne",note:"Radnor Township SD · Main Line heart"}],schoolDistricts:[{name:"Radnor Township School District",note:"One of PA's well-regarded â Wayne, Radnor, Villanova."},{name:"Marple Newtown School District",note:"Newtown Square, Broomall, Edgmont â strong academics."},{name:"Wallingford-Swarthmore School District",note:"Swarthmore, Rose Valley â small and well-regarded."},{name:"Rose Tree Media School District",note:"Media, Middletown, Edgmont â well-regarded."},{name:"Garnet Valley School District",note:"Concord, Bethel â among PA's well-regarded districts."},{name:"Springfield School District",note:"Springfield Township â well-rated, welcoming."}],market:"Delaware County's 2026 market is segmented: Radnor and Marple Newtown feeders move in under 30 days with consistent multiple offers, while Media and Havertown attract value-conscious move-up buyers. Newtown Square's Liseter community continues to draw relocating SAP and corporate executives. Affordable starter inventory in Springfield, Drexel Hill, and Ridley Park sells quickly to first-time buyers.",taxes:"Delaware County's effective property tax rate averages 1.6% to 2.1% â one of the higher rates in the region. Radnor Township sits at the high end (driven by school millage), while Newtown Township and Edgmont remain more competitive.",whyMe:"Saiid Zamani serves Delaware County's Main Line and luxury submarkets with deep local expertise. He understands the difference between Radnor and Tredyffrin/Easttown feeders along the Wayne corridor, the Liseter vs. Runnymeade pricing dynamics in Newtown Square, and how to position Delco luxury homes for relocating executive buyers.",faqs:[{question:"Who is the trusted real estate agent in Delaware County, PA?",answer:"Saiid Zamani is a top Delaware County real estate agent with Keller Williams Realty. He specializes in Newtown Square, Wayne (Radnor side), and Marple Newtown, Radnor Township, and Rose Tree Media school districts."},{question:"What is the median home price in Delaware County, PA?",answer:"As of 2025, the median sale price in Delaware County is approximately $385,000. Radnor and Newtown Square luxury submarkets regularly exceed $1.5M, while Springfield, Drexel Hill, and Upper Darby offer entry points under $300K."},{question:"What are the public schools districts in Delaware County?",answer:"Highly rated Delaware County school districts include Radnor Township, Garnet Valley, Wallingford-Swarthmore, Rose Tree Media, Marple Newtown, and Springfield. Radnor is consistently ranked among Pennsylvania's highly ranked."},{question:"Is Delaware County a place to live?",answer:"Yes. Delaware County offers some of the closest suburbs to Center City Philadelphia, the established Radnor and Wallingford-Swarthmore school districts, walkable Media Borough, and a wide range of price points from luxury Newtown Square to affordable Springfield."},{question:"How are Delaware County property taxes?",answer:"Delaware County has one of the higher effective property tax rates in the Philadelphia region â averaging 1.6% to 2.1%. Radnor Township sits at the upper end due to school district funding, while Newtown and Edgmont Townships remain more competitive."},{question:"Where is Liseter in Delaware County?",answer:"Liseter is a luxury Toll Brothers community in Newtown Square (Ne
194wtown Township, Delaware County) built on the historic du Pont estate. It's served by the Marple Newtown School District and is one of the most established new-construction addresses in the western suburbs."}],geo:{lat:39.9168,lng:-75.4002},landmarks:["Ridley Creek State Park","Longwood Gardens (border)","Tyler Arboretum","Springfield Mall","Villanova University"]}],Yp=[{to:"/about",label:"About Saiid"},{to:"/about/youtube",label:"YouTube"},{to:"/press",label:"Press"},{to:"/contact",label:"Contact"}],Qp=[{to:"/about",label:"About"},{to:"/blog",label:"Ideas"},{to:"/ai",label:"AI & Human Judgment"}],Xp=[{to:"/ai",label:"AI in Real Estate"},{to:"/real-estate-education",label:"Education Library"},{to:"/ai-human-advantage",label:"AI + Human Advantage"},{to:"/services",label:"Services"}],Jp=[{to:"/blog",label:"Blog & Guides"},{to:"/philadelphia-suburbs-homebuying-answers",label:"Local Homebuying Answers"},{to:"/using-retirement-savings-to-buy-first-home",label:"First-Home + Retirement Guide"},{to:"/first-time-homebuyer-retirement-faq",label:"First-Time Buyer FAQ"},{to:"/local-guides",label:"Local Guides"},{to:"/resources",label:"Resources Hub"}],dM=()=>{const[e,t]=f.useState(!1),n=Bo(),r=s=>s==="/"?n.pathname==="/":n.pathname.startsWith(s),o=s=>`font-sans text-[15px] font-semibold pb-[3px] transition-colors duration-150 ${s?"text-ink border-b-2 border-accent":"text-gra
194phite hover:text-ink border-b-2 border-transparent"}`,i=s=>`block py-2.5 font-sans text-[17px] font-semibold transition-colors duration-150 ${s?"text-ink":"text-graphite hover:text-ink"}`,a="block py-1.5 font-sans text-[15px] text-graphite hover:text-ink transition-colors duration-150";return u.jsxs("header",{className:"sticky top-0 z-50 bg-paper border-b border-hairline shadow-none",children:[u.jsxs("nav",{className:"container mx-auto flex items-center justify-between h-[72px] px-4","aria-label":"Main navigation",children:[u.jsxs(de,{to:"/","aria-label":"Saiid Zamani â Home",className:"flex items-center shrink-0",children:[u.jsx("span",{"aria-hidden":"true",className:"h-[38px] w-[38px] border border-ink flex items-center justify-center font-display text-[18px] text-ink",children:"SZ"}),u.jsx("span",{className:"hidden sm:inline font-display text-[20px] text-ink ml-3",children:"Saiid Zamani"})]}),u.jsxs("ul",{className:"hidden lg:flex items-center gap-7",children:[Qp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,className:o(r(s.to)),children:s.label})},s.to)),u.jsx("li",{children:u.jsxs(Up,{children:[u.jsxs(Gp,{className:`${o(r("/ai")||r("/real-estate-education"))} inline-flex items-center gap-1`,children:["Professional Work ",u.jsx(Sp,{className:"h-3.5 w-3.5"})]}),u.jsx(qu,{align:"end",className:"w-60 bg-paper p-2",children:u.jsx("ul",{children:Xp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,className:`${a} px-2`,children:s.label})},s.to))})})]})}),u.jsx("li",{children:u.jsxs(Up,{children:[u.jsxs(Gp,{className:`${o(!1)} inline-flex items-center gap-1`,children:["Real Estate ",u.jsx(Sp,{className:"h-3.5 w-3.5"})]}),u.jsxs(qu,{align:"end",className:"w-[540px] p-6 grid grid-cols-2 gap-6 bg-paper",children:[u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-3",children:"Cities"}),u.jsx("ul",{children:zu.map(s=>u.jsx("li",{children:u.jsx(de,{to:`/philadelphia-suburbs/${s.slug}`,className:a,children:s.city})},s.slug))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-3",children:"Counties"}),u.jsx("ul",{children:Zp.map(s=>u.jsx("li",{children:u.jsx(de,{to:`/counties/${s.slug}`,className:a,children:s.shortName})},s.slug))}),u.jsx("p",{className:"meta-mono mt-5 mb-3",children:"More"}),u.jsx("ul",{children:Jp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,className:a,children:s.label})},s.to))})]})]})]})})]}),u.jsx(de,{to:"/contact",className:"hidden lg:inline-flex bg-ink text-paper px-[18px] py-[11px] text-xs font-semibold font-sans transition-colors duration-150 hover:bg-accent",children:"Work with Saiid"}),u.jsx("button",{className:"lg:hidden p-2 text-ink",onClick:()=>t(!e),"aria-label":"Toggle menu","aria-expanded":e,children:e?u.jsx(Tw,{className:"h-5 w-5"}):u.jsx(dk,{className:"h-5 w-5"})})]}),e&&u.jsxs("div",{className:"lg:hidden border-t border-hairline bg-paper px-4 pb-6 max-h-[80vh] overflow-y-auto",children:[u.jsx("ul",{className:"pt-2",children:Qp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,onClick:()=>t(!1),className:i(r(s.to)),children:s.label})},s.to))}),u.jsxs("div",{className:"mt-4 pt-4 border-t border-hairline space-y-5",children:[u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"About Saiid"}),u.jsx("ul",{children:Yp.slice(1).map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,onClick:()=>t(!1),className:a,children:s.label})},s.to))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"Professional Work"}),u.jsx("ul",{children:Xp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,onClick:()=>t(!1),className:a,children:s.label})},s.to))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"About"}),u.jsx("ul",{children:Yp.map(s=>u.jsx("li",{children:u.jsx(de,{to:s.to,onClick:()=>t(!1),className:a,children:s.label})},s.to))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"Cities"}),u.jsx("ul",{className:"grid grid-cols-2 gap-x-4",children:zu.map(s=>u.jsx("li",{children:u.jsx(de,{onClick:()=>t(!1),to:`/philadelphia-suburbs/${s.slug}`,className:a,children:s.city})},s.slug))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"Counties"}),u.jsx("ul",{className:"grid grid-cols-2 gap-x-4",children:Zp.map(s=>u.jsx("li",{children:u.jsx(de,{onClick:()=>t(!1),to:`/counties/${s.slug}`,className:a,children:s.shortName})},s.slug))})]}),u.jsxs("div",{children:[u.jsx("p",{className:"meta-mono mb-2",children:"More"}),u.jsx("ul",{children:Jp.map(s=>u.jsx("li",{children:u.jsx(de,{onClick:()=>t(!1),to:s.to,className:a,children:s.label})},s.to))})]})]})]})]})},hM=["malvern","chesterbrook","wayne","berwyn","devon"],fM=hM.map(e=>zu.find(t=>t.slug===e)).filter(e=>!!e),pM=[{to:"/market-reports",label:"Philadelphia Suburbs"},{to:"/resources",label:"Resources Hub"},{to:"/local-guides",label:"Town Guides"},{to:"/market-reports",label:"Market Reports"},{to:"/real-estate-education",label:"Education"},{to:"/faq",label:"FAQ"},{to:"/services",label:"Services"},{to:"/about",label:"About"},{to:"/contact",label:"Contact"},{to:"/privacy",label:"Privacy"},{to:"/terms",label:"Terms & Disclosures"},{to:"/using-retirement-savings-to-buy-first-home",label:"First-Home + Retirement"},{to:"/llm-index",label:"LLM Index"},{to:"/ai-discovery",label:"For AI Engines"},{to:"/sitemap",label:"Sitemap"}],Ba="font-mono text-[11px] uppercase tracking-[0.14em] text-stone hover:text-paper transition-colors duration-150",mM=()=>u.jsx("footer",{className:"bg-ink mt-20",children:u.jsxs("div",{className:"container mx-auto px-4 py-14",children:[u.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-10 md:gap-16",children:[u.jsxs("div",{children:[u.jsx("p",{className:"font-mono text-[15px] md:text-[16
194px] leading-none text-paper",children:"Saiid Zamani"}),u.jsx("hr",{className:"border-0 border-t border-paper/20 mt-6"}),u.jsx("p",{className:"font-mono uppercase text-[11px] tracking-[0.24em] text-stone mt-4",children:"Serving Wayne · Malvern · Chesterbrook · Conshohocken · Phoenixville"})]}),u.jsxs("div",{className:"md:text-right font-mono text-[15px] md:text-[16px] leading-[1.75] text-stone",children:[u.jsxs("span",{itemScope:!0,itemType:"https://schema.org/RealEstateAgent",children:[u.jsx("span",{className:"block text-paper",itemProp:"name",children:"Saiid Zamani, Realtor®"}),u.jsx("span",{className:"block text-paper",children:"Keller Williams Realty Devon-Wayne"}),u.jsxs("span",{className:"block",itemProp:"address",itemScope:!0,itemType:"https://schema.org/PostalAddress",children:[u.jsx("span",{itemProp:"streetAddress",children:"744 W Lancaster Avenue, Suite 125"}),","," ",u.jsx("span",{itemProp:"addressLocality",children:"Wayne"}),","," ",u.jsx("span",{itemProp:"addressRegion",children:"Pennsylvania"})," ",u.jsx("span",{itemProp:"postalCode",children:"19087"})]}),u.jsx("a",{href:"tel:+14845976868",itemProp:"telephone",className:"block hover:text-paper transition-colors duration-150",children:"Direct: 484-597-6868"}),u.jsx("a",{href:"tel:+16106478300",className:"block hover:text-paper transition-colors duration-150",children:"Office (Keller Williams Realty Devon-Wayne): 610-647-8300"}),u.jsx("a",{href:"mailto:[email protected]",itemProp:"email",className:"block hover:text-paper transition-colors duration-150",children:"[email protected]"}),u.jsx("a",{href:"/",itemProp:"url",className:"block hover:text-paper transition-colors duration-150",children:"www.saiidzamani.com"})]}),u.jsx("span",{className:"block",children:"Licensed in Pennsylvania only"}),u.jsxs("span",{className:"block",children:["© ",new Date().getFullYear()," Saiid Zamani. All rights reserved."]})]})]}),u.jsx("nav",{"aria-label":"Footer links",className:"mt-12 pt-8 border-t border-paper/20",children:u.jsxs("ul",{className:"flex flex-wrap gap-x-6 gap-y-3",children:[fM.map(e=>u.jsx("li",{children:u.jsx(de,{to:`/philadelphia-suburbs/${e.slug}`,className:Ba,children:e.city})},e.slug)),pM.map(e=>u.jsx("li",{children:u.jsx(de,{to:e.to,className:Ba,children:e.label})},e.to)),u.jsx("li",{children:u.jsx("a",{href:"/llms.txt",className:Ba,children:"llms.txt"})}),u.jsx("li",{children:u.jsx("a",{href:"/agent.json",className:Ba,children:"agent.json"})})]})}),u.jsxs("p",{className:"mt-8 font-sans text-[12px] leading-[1.7] text-stone max-w-3xl",children:[u.jsx("strong",{className:"text-paper font-semibold",children:"Equal Housing Opportunity."})," Saiid Zamani and Keller Williams Realty follow all federal, state, and local Fair Housing laws. Data here is believed accurate but is not guaranteed. Verify it before you rely on it."]}),u.jsxs("p",{className:"mt-4 font-sans text-[12px] leading-[1.7] text-stone max-w-3xl",children:[u.jsx("strong",{className:"text-paper font-semibold",children:"Pennsylvania Consumer Notice."})," Pennsylvania law requires real estate licensees to provide the Consumer Notice at the first substantive contact. You can read the official notice here:"," ",u.jsx("a",{href:"https://www.pa.gov/content/dam/copapwp-pagov/en/dos/department-and-offices/bpoa/real-estate/Written%20Consumer%20Notice.pdf",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-paper",children:"Pennsylvania Written Consumer Notice (PDF, PA Department of State)"}),". Posting it on this website does not replace the notice Saiid Zamani delivers to you directly, and reading it here does not create an agency relationship."]})]})}),yM=()=>null,gM=Cw("inline-flex items-center justify-center gap-2 whitespace-nowrap font-sans text-sm font-semibold transition-[background-color,color,border-color] duration-150 ease-in-out focus-visible:outline-none focus-visible:border-ink disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-ink text-paper hover:bg-accent hover:text-white",destructive:"bg-accent text-white hover:bg-ink hover:text-paper",outline:"border border-ink text-ink bg-transparent hover:bg-ink hover:text-paper",secondary:"border border-ink text-ink bg-transparent hover:bg-ink hover:text-paper",ghost:"text-ink bg-transparent hover:text-accent",link:"text-ink border-b border-accent pb-[3px] px-0 py-0 hover:text-accent after:content-['_â']"},size:{default:"px-6 py-4",sm:"px-4 py-2.5",lg:"px-8 py-4",icon:"h-11 w-11 p-0"}},compoundVariants:[{variant:"link",className:"px-0 py-0"},{variant:"ghost",className:"px-2 py-2"}],defaultVariants:{variant:"default",size:"default"}}),Pr=f.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},i)=>{const a=r?y1:"button";return u.jsx(a,{className:Ie(gM({variant:t,size:n,className:e})),ref:i,...o})});
vendor: 4,172 bytes, line 194
194Pr.displayName="Button";var Cl="Popover",[k0,iR]=or(Cl,[zo]),la=zo(),[wM,ir]=k0(Cl),A0=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!1}=e,s=la(t),l=f.useRef(null),[c,d]=f.useState(!1),[h,m]=dl({prop:r,defaultProp:o??!1,onChange:i,caller:Cl});return u.jsx(av,{...s,children:u.jsx(wM,{scope:t,contentId:Is(),triggerRef:l,open:h,onOpenChange:m,onOpenToggle:f.useCallback(()=>m(p=>!p),[m]),hasCustomAnchor:c,onCustomAnchorAdd:f.useCallback(()=>d(!0),[]),onCustomAnchorRemove:f.useCallback(()=>d(!1),[]),modal:a,children:n})})};A0.displayName=Cl;var E0="PopoverAnchor",vM=f.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=ir(E0,n),i=la(n),{onCustomAnchorAdd:a,onCustomAnchorRemove:s}=o;return f.useEffect(()=>(a(),()=>s()),[a,s]),u.jsx(gl,{...i,...r,ref:t})});vM.displayName=E0;var T0="PopoverTrigger",M0=f.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=ir(T0,n),i=la(n),a=Ce(t,o.triggerRef),s=u.jsx(ce.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":I0(o.open),...r,ref:a,onClick:H(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?s:u.jsx(gl,{asChild:!0,...i,children:s})});M0.displayName=T0;var Ph="PopoverPortal",[bM,xM]=k0(Ph,{forceMount:void 0}),D0=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,i=ir(Ph,t);return u.jsx(bM,{scope:t,forceMount:n,children:u.jsx(gn,{present:n||i.open,children:u.jsx(ul,{asChild:!0,container:o,children:r})})})};D0.displayName=Ph;var Io="PopoverContent",R0=f.forwardRef((e,t)=>{const n=xM(Io,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,i=ir(Io,e.__scopePopover);return u.jsx(gn,{present:r||i.open,children:i.modal?u.jsx(PM,{...o,ref:t}):u.jsx(CM,{...o,ref:t})})});R0.displayName=Io;var SM=Ro("PopoverContent.RemoveScroll"),PM=f.forwardRef((e,t)=>{const n=ir(Io,e.__scopePopover),r=f.useRef(null),o=Ce(t,r),i=f.useRef(!1);return f.useEffect(()=>{const a=r.current;if(a)return kv(a)},[]),u.jsx(mh,{as:SM,allowPinchZoom:!0,children:u.jsx(L0,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:H(e.onCloseAutoFocus,a=>{var s;a.preventDefault(),i.current||(s=n.triggerRef.current)==null||s.focus()}),onPointerDownOutside:H(e.onPointerDownOutside,a=>{const s=a.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0,c=s.button===2||l;i.current=c},{checkForDefaultPrevented:!1}),onFocusOutside:H(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),CM=f.forwardRef((e,t)=>{const n=ir(Io,e.__scopePopover),r=f.useRef(!1),o=f.useRef(!1);return u.jsx(L0,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a,s;(a=e.onCloseAutoFocus)==null||a.call(e,i),i.defaultPrevented||(r.current||(s=n.triggerRef.current)==null||s.focus(),i.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:i=>{var l,c;(l=e.onInteractOutside)==null||l.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const a=i.target;((c=n.triggerRef.current)==null?void 0:c.contains(a))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}})}),L0=f.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onInteractOutside:d,...h}=e,m=ir(Io,n),p=la(n);return yv(),u.jsx(ph,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:u.jsx(na,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:d,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:c,onDismiss:()=>m.onOpenChange(!1),children:u.jsx(dh,{"data-state":I0(m.open),role:"dialog",id:m.contentId,...p,...h,ref:t,style:{...h.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N0="PopoverClose",kM=f.forwardRef((e,t)=>
194{const{__scopePopover:n,...r}=e,o=ir(N0,n);return u.jsx(ce.button,{type:"button",...r,ref:t,onClick:H(e.onClick,()=>o.onOpenChange(!1))})});kM.displayName=N0;var AM="PopoverArrow",EM=f.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=la(n);return u.jsx(hh,{...o,...r,ref:t})});EM.displayName=AM;function I0(e){return e?"open":"closed"}var TM=A0,MM=M0,DM=D0,_0=R0;const RM=TM,LM=MM,j0=f.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},o)=>u.jsx(DM,{children:u.jsx(_0,{ref:o,align:t,sideOffset:n,className:Ie("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})}));j0.displayName=_0.displayName;const Fs=[{id:"arctic-frost",name:"Arctic Frost",description:"Icy blues & frosted whites",swatch:["#e8f0f8","#b8d4e8","#6ba3c8","#2e6b8a"],tokens:{"--background":"210 47% 98%","--foreground":"210 45% 12%","--card":"0 0% 100%","--card-foreground":"210 45% 12%","--popover":"0 0% 100%","--popover-foreground":"210 45% 12%","--primary":"202 50% 32%","--primary-foreground":"210 47% 98%","--primary-glow":"202 47% 60%","--secondary":"210 47% 94%","--secondary-foreground":"210 45% 14%","--muted":"210 40% 95%","--muted-foreground":"210 20% 42%","--accent":"204 53% 88%","--accent-foreground":"202 60% 22%","--border":"210 35% 88%","--input":"210 35% 88%","--ring":"202 50% 36%","--kw-red":"202 50% 32%","--kw-dark":"210 45% 12%","--kw-gray":"210 20% 50%"}},{id:"deep-mariner",name:"Deep Mariner",description:"Midnight navy & teal accents",swatch:["#0c2340","#1a4a6e","#2d8a9e","#5cbdb9"],tokens:{"--background":"210 40% 97%","--foreground":"212 60% 10%","--card":"0 0% 100%","--card-foreground":"212 60% 10%","--popover":"0 0% 100%","--popover-foreground":"212 60% 10%","--primary":"212 67% 15%","--primary-foreground":"180 30% 96%","--primary-glow":"188 55% 40%","--secondary":"200 40% 93%","--secondary-foreground":"212 60% 14%","--muted":"200 30% 94%","--muted-foreground":"210 18% 40%","--accent":"183 38% 80%","--accent-foreground":"200 65% 18%","--border":"200 25% 86%","--input":"200 25% 86%","--ring":"188 55% 40%","--kw-red":"212 67% 15%","--kw-dark":"212 60% 10%","--kw-gray":"210 18% 45%"}},{id:"noir-gold",name:"Noir & Gold",description:"Black with luxe gold accents",swatch:["#0d0d0d","#1a1a1a","#c9a84c","#f0d78c"],tokens:{"--background":"40 25% 96%","--foreground":"0 0% 6%","--card":"0 0% 100%","--card-foreground":"0 0% 6%","--popover":"0 0% 100%","--popover-foreground":"0 0% 6%","--primary":"0 0% 8%","--primary-foreground":"44 60% 70%","--primary-glow":"44 60% 60%","--secondary":"44 35% 90%","--secondary-foreground":"0 0% 8%","--muted":"40 20% 92%","--muted-foreground":"0 0% 35%","--accent":"44 55% 75%","--accent-foreground":"0 0% 8%","--border":"40 18% 84%","--input":"40 18% 84%","--ring":"44 60% 50%","--kw-red":"44 60% 45%","--kw-dark":"0 0% 8%","--kw-gray":"0 0% 35%"}},{id:"emerald-prestige",name:"Emerald Prestige",description:"Deep emerald & antique gold",swatch:["#064e3b","#0d7a5f","#c9a84c","#f5f0e0"],tokens:{"--background":"44 40% 96%","--foreground":"162 60% 8%","--card":"0 0% 100%","--card-foreground":"162 60% 8%","--popover":"0 0% 100%","--popover-foreground":"162 60% 8%","--primary":"162 78% 16%","--primary-foreground":"44 45% 92%","--primary-glow":"44 55% 55%","--secondary":"150 25% 90%","--secondary-foreground":"162 60% 12%","--muted":"150 20% 93%","--muted-foreground":"162 15% 35%","--accent":"44 50% 80%","--accent-foreground":"162 60% 12%","--border":"150 18% 84%","--input":"150 18% 84%","--ring":"162 78% 22%","--kw-red":"162 78% 16%","--kw-dark":"162 60% 8%","--kw-gray":"162 12% 40%"}},{id:"warm-sand",name:"Warm Sand",description:"Sandy neutrals & earth tones",swatch:["#faf8f5","#f0ebe3","#c9b99a","#8b7355"],tokens:{"--background":"36 33% 97%","--foreground":"28 25% 14%","--card":"0 0% 100%","--card-foreground":"28 25% 14%","--popover":"0 0% 100%","--popover-foreground":"28 25% 14%","--primary":"28 25% 32%","--primary-foreground":"36 33% 97%","--primary-glow":"32 35% 58%","--secondary":"34 28% 92%","--secondary-foreground":"28 25% 16%","--muted":"34 22% 93
194%","--muted-foreground":"28 12% 38%","--accent":"32 32% 80%","--accent-foreground":"28 30% 22%","--border":"32 18% 84%","--input":"32 18% 84%","--ring":"28 25% 36%","--kw-red":"28 25% 32%","--kw-dark":"28 25% 14%","--kw-gray":"28 12% 42%"}}],NM="arctic-frost",IM="sz-theme";function O0(e){const t=Fs.find(n=>n.id===e)??Fs[0];document.documentElement.setAttribute("data-theme",t.id)}function W0(){try{const e=localStorage.getItem(IM);if(e&&Fs.some(t=>t.id===e))return e}catch{}return NM}const _M=()=>{const[e,t]=f.useState(W0());return f.useEffect(()=>{O0(e)},[e]),u.jsx("div",{className:"fixed bottom-20 md:bottom-5 right-5 z-[60] print:hidden",children:u.jsxs(RM,{children:[u.jsx(LM,{asChild:!0,children:u.jsx(Pr,{size:"icon",variant:"outline","aria-label":"Preview color palette",className:"h-11 w-11 rounded-full shadow-lg bg-card/95 backdrop-blur border-border/80",children:u.jsx(pk,{className:"h-5 w-5 text-primary"})})}),u.jsxs(j0,{align:"end",side:"top",className:"w-72 p-3 bg-popover",children:[u.jsxs("div",{className:"mb-2 px-1",children:[u.jsx("p",{className:"font-display text-base leading-tight text-foreground",children:"Preview a palette"}),u.jsx("p",{className:"text-xs text-muted-foreground",children:"Visual only â does not affect content."})]}),u.jsx("ul",{className:"space-y-1",children:Fs.map(n=>{const r=n.id===e;return u.jsx("li",{children:u.jsxs("button",{type:"button",onClick:()=>t(n.id),className:`w-full flex items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-accent/60 ${r?"bg-accent/50":""}`,children:[u.jsx("span",{className:"flex h-7 w-12 overflow-hidden rounded border border-border/60 flex-shrink-0",children:n.swatch.map((o,i)=>u.jsx("span",{className:"flex-1",style:{backgroundColor:o}},i))}),u.jsxs("span",{className:"flex-1 min-w-0",children:[u.jsx("span",{className:"block text-sm font-medium text-foreground truncate",children:n.name}),u.jsx("span",{className:"block text-xs text-muted-foreground truncate",children:n.description})]}),r&&u.jsx(Aw,{className:"h-4 w-4 text-primary flex-shrink-0"})]})},n.id)})})]})]})})},jM=()=>u.jsxs(u.Fragment,{children:[u.jsx("div",{"aria-hidden":!0,className:"md:hidden h-16"}),u.jsx("div",{className:"md:hidden fixed bottom-0 inset-x-0 z-40 border-t bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80 shadow-[0_-4px_20px_rgba(0,0,0,0.08)]",role:"region","aria-label":"Quick contact",children:u.jsxs("div",{className:"grid grid-cols-2 gap-2 p-2 pb-[max(0.5rem,env(safe-area-inset-bottom))]",children:[u.jsxs("a",{href:"sms:+14845976868",className:"inline-flex items-center justify-center gap-2 rounded-md border border-primary/30 bg-background px-3 py-3 text-sm font-semibold text-primary hover:bg-primary/5 transition-colors","aria-label":"Text Saiid at 484-597-6868",children:[u.jsx(hk,{className:"h-4 w-4"})," Text Me Now"]}),u.jsxs("a",{href:"tel:+14845976868",className:"inline-flex items-center justify-center gap-2 rounded-md bg-primary px-3 py-3 text-sm font-semibold text-primary-foreground hover:bg-primary/90 transition-colors","aria-label":"Call Saiid at 484-597-6868 to book a consultation",children:[u.jsx(Ew,{className:"h-4 w-4"})," Book a Consultation"]})]})})]}),em="saiid-analytics-consent",Pc="x33yv0os9v",tm=()=>{if(document.querySelector(`script[data-clarity-id="${Pc}"]`))return;const e=window;e.clarity=e.clarity||function(...n){const r=e.clarity;r.q=r.q||[],r.q.push(n)};const t=document.createElement("script");t.async=!0,t.dataset.clarityId=Pc,t.src=`https://www.clarity.ms/tag/${Pc}`,document.head.appendChild(t)},OM=()=>{const[e,t]=f.useState(null),[n,r]=f.useState(!1);f.useEffect(()=>{const i=window.localStorage.getItem(em);t(i==="accepted"||i==="declined"?i:null),i==="accepted"&&tm(),r(!0);const a=()=>t(null);return window.addEventListener("open-privacy-choices",a),()=>window.removeEventListener("open-privacy-choices",a)},[]);const o=i=>{window.localStorage.setItem(em,i),t(i),i==="accepted"&&tm()};return!n||e?null:u.jsx("aside",{className:"fixed inset-x-0 bottom-0 z-[100] border-t border-hairline bg-paper p-4 text-ink","aria-label":"Analytics privacy choices",children:u.jsxs("div",{className:"mx-auto flex max-w-5xl flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[u.jsxs("p",{className:"max-w-3xl text-sm leading-relaxed text-gra
194phite",children:["This site uses optional Microsoft Clarity analytics to understand page use. It stays off unless you accept. Read the"," ",u.jsx(de,{to:"/privacy",className:"font-semibold underline",children:"Privacy Policy"}),"."]}),u.jsxs("div",{className:"flex shrink-0 gap-2",children:[u.jsx(Pr,{type:"button",variant:"outline",onClick:()=>o("declined"),children:"Decline"}),u.jsx(Pr,{type:"button",onClick:()=>o("accepted"),children:"Accept analytics"})]})]})})},me={name:"Saiid Zamani â Keller Williams Realty Devon-Wayne",legalName:"Saiid Zamani",brokerage:"Keller Williams Realty Devon-Wayne",phone:"+1-484-597-6868",phoneDisplay:"(484) 597-6868",phoneTel:"484-597-6868",email:"[email protected]",url:"https://saiidzamani.com",address:{streetAddress:"744 W Lancaster Avenue, Suite 125",addressLocality:"Wayne",addressRegion:"PA",postalCode:"19087",addressCountry:"US"},geo:{latitude:40.044,longitude:-75.3879},hours:{days:["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],opens:"09:00",closes:"19:00"},googleMapsUrl:"https://www.google.com/maps/place/744+W+Lancaster+Ave,+Wayne,+PA+19087"},aR=()=>`${me.address.streetAddress}, ${me.address.addressLocality}, ${me.address.addressRegion} ${me.address.postalCode}`,Ch={"@type":"PostalAddress",...me.address},Me=me.url,Cr=`${Me}/#person`,$0=`${Me}/#business`,kh=`${Me}/#brokerage`,WM=`${Me}/#website`,B0=`${Me}/#service-area`,Vu=`${Me}/saiid-headshot.jpg`,$M="RS327426",H0=["https://www.linkedin.com/in/saiidzamanire/","https://www.instagram.com/saiidzamanire","https://www.youtube.com/@saiidzamanire","https://www.facebook.com/saiidzamanire","https://www.zillow.com/profile/saiidzamani","https://www.realtor.com/realestateagents/saiid-zamani"],F0=[{name:"Wayne",state:"PA",latitude:40.044,longitude:-75.3879}],sR=[{name:"Wayne",county:"Delaware"},{name:"St. Davids",county:"Delaware"},{name:"Strafford",county:"Chester"},{name:"Radnor",county:"Delaware"},{name:"Devon",county:"Chester"},{name:"Gulph Mills",county:"Montgomery"},{name:"Villanova",county:"Delaware"},{name:"Eagleville",county:"Montgomery"},{name:"Berwyn",county:"Chester"},{name:"Bridgeport",county:"Montgomery"},{name:"Trooper",county:"Montgomery"},{name:"Rosemont",county:"Montgomery"},{name:"Valley Forge",county:"Montgomery"},{name:"Norristown",county:"Montgomery"},{name:"Jeffersonville",county:"Montgomery"},{name:"Newtown Square",county:"Delaware"},{name:"Bryn Mawr",county:"Montgomery"},{name:"West Conshohocken",county:"Montgomery"},{name:"Paoli",county:"Chester"},{name:"Broomall",county:"Delaware"},{name:"Chesterbrook",county:"Chester"},{name:"Haverford",county:"Delaware"}],q0=["Montgomery County, Pennsylvania","Chester County, Pennsylvania","Delaware County, Pennsylvania"],z0=["Residential home buying in Pennsylvania","Residential home selling and listing","Comparative market analysis (CMA) and home values","Comparable sales analysis","Relocation to the Philadelphia suburbs","First-time home buyers","Veterans and VA-financed home purchases","Downsizing and inherited homes","Residential investors and 1â4 unit properties","New construction and residential land","Tredyffrin/Easttown School District","Great Valley School District","Radnor Township School District","AI-assisted residential real estate workflows"],Ku=[...F0.map(e=>({"@type":"City",name:`${e.name}, ${e.state}`,containedInPlace:{"@type":"State",name:"Pennsylvania"}})),...q0.map(e=>({"@type":"AdministrativeArea",name:e}))],nm={"@type":"OpeningHoursSpecification",dayOfWeek:[...me.hours.days],opens:me.hours.opens,closes:me.hours.closes},BM={"@type":"Place","@id":B0,name:"Saiid Zamani residential service area â Wayne, Pennsylvania and the surrounding counties",description:"Residential real estate service area centered on Wayne, Pennsylvania and the surrounding communities; Montgomery, Chester, and Delaware Counties in Pennsylvania are secondary regional areas.",geo:F0.map(e=>({"@type":"GeoCoordinates",latitude:e.latitude,longitude:e.longitude,description:`${e.name}, PA`})),containedInPlace:q0.map(e=>({"@type":"AdministrativeArea",name:e}))},HM={"@type":"Organization","@id":kh,name:me.brokerage,url:"https://www.kw.com/",telephone:"+1-610-647-8300",address:Ch,parentOrganization:{"@type":"Organization",name:"Keller Williams Realty",url:"https://www.kw.com/"}},V0={"@type":"Person","@id":Cr,name:"Saiid Zamani",givenName:"Saiid",familyName:"Zamani",honorificSuffix:"Realtor®",jobTitle:["Speaker","Educator","Advisor","Realtor®"],url:`${Me}
194/about`,mainEntityOfPage:{"@id":`${Me}/about`},image:Vu,telephone:me.phone,email:me.email,description:"Saiid Zamani is a speaker, educator, advisor, and Realtor® focused on responsible technology, human judgment, professional decisions, and Pennsylvania residential real estate.",worksFor:{"@id":kh},memberOf:[{"@type":"Organization",name:"National Association of REALTORS® (NAR)"},{"@type":"Organization",name:"Pennsylvania Association of REALTORS® (PAR)"},{"@type":"Organization",name:"Suburban West REALTORS® Association"}],address:Ch,knowsLanguage:["English","Persian (Farsi)","Swedish"],knowsAbout:["Responsible artificial intelligence","Human judgment","Professional education",...z0],hasCredential:[{"@type":"EducationalOccupationalCredential",credentialCategory:"license",name:`Pennsylvania Real Estate Salesperson License ${$M}`},{"@type":"EducationalOccupationalCredential",credentialCategory:"certification",name:"Realtor® â National Association of REALTORS®"}],areaServed:Ku,sameAs:H0},kl={"@type":"RealEstateAgent","@id":$0,name:"Saiid Zamani Real Estate",legalName:me.legalName,url:Me,mainEntityOfPage:{"@id":Me},image:Vu,logo:Vu,description:"Residential real estate practice serving Wayne and the surrounding Pennsylvania communities â buyer and seller representation, home values and CMAs, relocation, and 1â4 unit residential investment purchases.",telephone:me.phone,email:me.email,address:Ch,geo:{"@type":"GeoCoordinates",latitude:me.geo.latitude,longitude:me.geo.longitude},hasMap:me.googleMapsUrl,openingHoursSpecification:[nm],currenciesAccepted:"USD",founder:{"@id":Cr},employee:{"@id":Cr},parentOrganization:{"@id":kh},areaServed:Ku,serviceArea:{"@id":B0},knowsAbout:z0,contactPoint:{"@type":"ContactPoint",telephone:me.phone,email:me.email,contactType:"Residential real estate services",availableLanguage:["English","Persian (Farsi)","Swedish"],areaServed:Ku,hoursAvailable:nm},sameAs:H0},K0={"@type":"WebSite","@id":WM,url:Me,name:"Saiid Zamani â Speaker, Educator & Realtor®",description:"Saiid Zamani's professional platform for responsible technology, human judgment, education, and Pennsylvania residential real estate guidance.",inLanguage:"en-US",publisher:{"@id":Cr},author:{"@id":Cr},about:{"@id":Cr}},lR=me.brokerage,cR=me.phone,uR=me.email,_r=e=>({"@context":"https://schema.org",...e}),dR=_r(V0),hR=_r(kl),fR=_r(kl);_r(HM);const pR=_r(K0);_r(BM);const Cc={"@id":$0},kc=[{"@type":"AdministrativeArea",name:"Montgomery County, Pennsylvania"},{"@type":"AdministrativeArea",name:"Chester County, Pennsylvania"},{"@type":"AdministrativeArea",name:"Delaware County, Pennsylvania"}],mR=[{"@context":"https://schema.org","@type":"Service","@id":`${Me}/services#buyer-representation`,serviceType:"Residential buyer representation",name:"Residential Home Buyer Representation â Wayne, PA",description:"Buyer representation for residential purchases in Wayne and the surrounding Pennsylvania communities: search strategy, school-district verification, comparable-sales analysis, offer negotiation, inspections, and closing coordination.",provider:Cc,areaServed:kc,audience:{"@type":"Audience",audienceType:"Residential home buyers"}},{"@context":"https://schema.org","@type":"Service","@id":`${Me}/services#seller-representation`,serviceType:"Residential listing and seller representation",name:"Residential Home Seller Representation â Wayne, PA",description:"Listing services for residential sellers in Montgomery, Chester, and Delaware Counties, Pennsylvania â pricing strategy from comparable sales, photography, MLS distribution, negotiation, and closing.",provider:Cc,areaServed:kc,audience:{"@type":"Audience",audienceType:"Residential home sellers"}},{"@context":"https://schema.org","@type":"Service","@id":`${Me}/services#home-valuation`,serviceType:"Comparative market analysis",name:"Home Value and Comparative Market Analysis (CMA)",description:"Comparative market analysis for Pennsylvania homeowners using Bright MLS comparable sales in Wayne and nearby communities.",provider:Cc,areaServed:kc,audience:{"@type":"Audience",audienceType:"Pennsylvania homeowners"}},{"@context":"https://schema.org","@type":"Service","@id":`${Me}/services#agent-training`,serviceType:"Real estate technology and AI training",name:"Real Estate AI & Technology Training",description:"Training for real estate agents and brokerages on CRM workflows (KW Command, Follow Up Boss) and AI-assisted workflows (ChatGPT, Claude, Gemini) for residential real estate.",provider:{"@id":Cr},areaServed:{"@type":"Country",name:"United States"},audience:{"@type":"Audience",audienceType:"Real estate agents and brokerages"}}],yR=(e,t)=>{var n;return{"@context":"https://schema.org","@type":"BreadcrumbList","@id":`${((n=e[e.length-1])==null?void 0:n.url)??`${Me}/`}#breadcrumb`,itemListElement:e.map((r,o)=>({"@type":"ListItem",position:o+1,name:r.name,item:r.url}))}},U0=Me,gR=e=>({"@context":"https://schema.org","@type":"ItemList",name:"Philadelphia Suburbs Cities Served",itemListElement:e.map((t,n)=>({"@type":"ListItem",position:n+1,url:`${Me}/philadelphia-suburbs/${t.slug}`,name:`${t.city}, ${t.state}`}))}),wR=_r(kl),FM=`${U0}/social/saiid-zamani-share.jpg`,qM="Saiid Zamani â Keller Williams Realtor® in Wayne, Pennsylvania",zM="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1",VM=({title:e,description:t,path:n,type:r="website",image:o,imageAlt:i,video:a,noindex:s,nofollow:l,modifiedTime:c,publishedTime:d})=>{const h=n?n.startsWith("http")?n:`${U0}${n.startsWith("/")?n:`/${n}`}`:void 0,m=o||FM,p=i||qM,x=s?`noindex, ${l?"nofollow":"follow"}`:zM,y=r==="article";return u.jsxs(Zd,{children:[u.jsx("title",{children:e}),u.jsx("meta",{name:"description",content:t}),h&&u.jsx("link",{rel:"canonical",href:h}),u.jsx("meta",{name:"robots",content:x}),u.jsx("meta",{name:"googlebot",content:x}),u.jsx("meta",{property:"og:title",content:e}),u.jsx("meta",{property:"og:description",content:t}),h&&u.jsx("meta",{property:"og:url",content:h}),u.jsx("meta",{property:"og:type",content:r}),u.jsx("meta",{property:"og:site_name",content:"Saiid Zamani â Speaker, Educator & Realtor®"}),u.jsx("meta",{property:"og:locale",content:"en_US"}),u.jsx("meta",{property:"og:image",content:m}
194),!o&&u.jsx("meta",{property:"og:image:width",content:"1200"}),!o&&u.jsx("meta",{property:"og:image:height",content:"630"}),u.jsx("meta",{property:"og:image:alt",content:p}),a&&u.jsx("meta",{property:"og:video",content:a}),y&&d&&u.jsx("meta",{property:"article:published_time",content:d}),y&&c&&u.jsx("meta",{property:"article:modified_time",content:c}),y&&u.jsx("meta",{property:"article:author",content:"Saiid Zamani"}),u.jsx("meta",{name:"twitter:card",content:a?"player":"summary_large_image"}),u.jsx("meta",{name:"twitter:site",content:"@saiidzamanire"}),u.jsx("meta",{name:"twitter:creator",content:"@saiidzamanire"}),u.jsx("meta",{name:"twitter:title",content:e}),u.jsx("meta",{name:"twitter:description",content:t}),u.jsx("meta",{name:"twitter:image",content:m}),u.jsx("meta",{name:"twitter:image:alt",content:p}),a&&u.jsx("meta",{name:"twitter:player",content:a}),a&&u.jsx("meta",{name:"twitter:player:width",content:"1280"}),a&&u.jsx("meta",{name:"twitter:player:height",content:"720"}),u.jsx("meta",{name:"author",content:"Saiid Zamani"}),u.jsx("meta",{name:"publisher",content:"Saiid Zamani â Keller Williams Realty Devon-Wayne"})]})},KM="/assets/saiid-headshot-B4dMu9Vi.webp",UM=[{slug:"main-line-towns-comparison-guide-2026",title:"Main Line Towns Comparison Guide: Bryn Mawr to Malvern (2026)",metaTitle:"Philly Suburb Towns Compared 2026",metaDescription:"Compare every Main Line town: schools, prices, walkability, commute. Bryn Mawr, Ardmore, Wayne, Devon, Berwyn, Paoli, Malvern â by Saiid Zamani.",excerpt:"A town-by-town comparison of the Pennsylvania Main Line from Bryn Mawr to Malvern â schools, median prices, walkability, and commute by SEPTA.",date:"May 2026",dateISO:"2026-05-20",category:"Area Comparison",readTime:"10 min read",content:["The Pennsylvania Main Line is one of the most established luxury suburb corridors in the United States, stretching west from Philadelphia along Lancaster Avenue (US-30) and the SEPTA Paoli/Thorndale Line.","## Bryn Mawr (Lower Merion SD)","Bryn Mawr is the eastern anchor of the Main Line. Median sale price runs $725Kâ$1.3M. Walk-to-train, Bryn Mawr College, and Bryn Mawr Hospital define the town. Most of the ZIP is Lower Merion SD; some southern streets are Radnor SD.","## Ardmore (Lower Merion SD)","Ardmore is the most walkable Main Line town â Suburban Square, two train stations (SEPTA + Amtrak), and a true urban village vibe. Median $600Kâ$950K.","## Wayne (Radnor SD or T/E SD)","Wayne is the commercial heart of the Main Line, with downtown shopping along North Wayne Avenue and Lancaster Avenue. The Wayne ZIP (19087) straddles Radnor SD (Delco) and Tredyffrin/Easttown SD (Chester County) â confirm by address. Median $700Kâ$1.4M.","## Devon, Berwyn, Paoli (Tredyffrin/Easttown SD)","These three towns share T/E SD (Conestoga HS) and the Devon Yard / Daylesford lifestyle corridor. Devon trends most luxury ($900Kâ$1.6M), Berwyn mid ($700Kâ$1.1M), and Paoli most attainable ($575Kâ$950K).","## Malvern (Great Valley SD)","Malvern Borough offers a walkable downtown, Great Valley SD, and quick SEPTA Malvern Station access (~45 min to Philadelphia). Median $625Kâ$925K, with new construction at Atwater pushing $1M+."],faqs:[{question:"Which Main Line town has the public schools?",answer:"Tredyffrin/Easttown SD (Devon, Berwyn, Paoli, Chesterbrook), Radnor Township SD (Wayne, Villanova, Radnor), and Lower Merion SD (Bryn Mawr, Ardmore, Wynnewood) are all consistently ranked among the top 10 public districts in Pennsylvania."},{question:"Which Main Line town is most affordable?",answer:"Paoli (T/E SD), Ardmore townhomes (Lower Merion SD), and Havertown (Haverford Township SD) are the most attainable Main Line and Main Line-adjacent entry points."},{question:"Which Main Line town is most walkable?",answer:"Ardmore is the most walkable Main Line town, anchored by Suburban Square, two train stations, restaurants, and Ardmore Music Hall â all within a 10-minute walk for many residents."}]},{slug:"berwyn-vs-devon-vs-paoli-pa",title:"Berwyn vs Devon vs Paoli, PA: Which Tredyffrin/Easttown Town Wins?",metaTitle:"Berwyn vs Devon vs Paoli PA Compared",metaDescription:"Berwyn, Devon, and Paoli are all in Tredyffrin/Easttown SD (Conestoga HS). Compare prices, walkability, train commute, and lifestyle.",excerpt:"All three share Conestoga High School â but Berwyn, Devon, and Paoli have meaningfully different price bands, walkability, and lifestyle.",date:"May 2026",dateISO:"2026-05-19",category:"Area Comparison",readTime:"7 min read",content:["Berwyn, Devon, and Paoli are three Main Line villages sharing one of Pennsylvania's public schools districts â Tredyffrin/Easttown (T/E SD, Conestoga HS).","## Price comparison (2025)","Devon: $900Kâ$1.6M (most luxury). Berwyn: $700Kâ$1.1M (balanced). Paoli: $575Kâ$950K (most attainable).","## Train commute","All three sit on the SEPTA Paoli/Thorndale Line. Berwyn ~35 min to 30th Street, Devon ~33 min, Paoli ~40 min. Paoli also offers Amtrak Keystone service.","## Walkability and lifestyle","Devon centers on Devon Yard (Terrain, Amis, Anthropologie). Berwyn has a small walkable Lancaster Ave village. Paoli offers downtown dining plus the strongest train commuter profile.","## Which to choose","Choose Devon for luxury and Devon Yard lifestyle. Berwyn for balanced value with a small-town feel. Paoli for the strongest train commute and most attainable T/E pricing."],faqs:[{question:"Are Berwyn, Devon, and Paoli all in the same school district?",answer:"Yes â all three are served by Tredyffrin/Easttown School District (Conestoga High School), consistently rated among Pennsylvania's top public school districts."},{question:"Which is the most luxury â Berwyn, Devon, or Paoli?",answer:"Devon trends most luxury, with median sale prices typically $900Kâ$1.6M and estates exceeding $2M."},{question:"Which has the best train commute?",answer:"Paoli offers the strongest commuter profile â SEPTA Paoli/Thorndale plus Amtrak Keystone service. Devon and Berwyn have SEPTA-only and are slightly faster to 30th Street."}]}
194,{slug:"bryn-mawr-pa-real-estate-guide-2026",title:"Bryn Mawr, PA Real Estate Guide 2026",metaTitle:"Bryn Mawr PA Real Estate Guide 2026",metaDescription:"Bryn Mawr PA real estate â Lower Merion vs Radnor SD split, walkable village, prices, neighborhoods. By Saiid Zamani.",excerpt:"Bryn Mawr straddles Lower Merion (Montgomery County) and Radnor Township (Delaware County) school districts â and the split materially affects home value.",date:"May 2026",dateISO:"2026-05-18",category:"Area Guide",readTime:"6 min read",content:["Bryn Mawr is a quintessential Main Line village â walkable, historic, anchored by Bryn Mawr College and Bryn Mawr Hospital.","## The school district split","Most of Bryn Mawr (19010) is served by Lower Merion SD (Montgomery County). Some southern streets fall into Radnor Township SD (Delaware County). Both are well-regarded, but the feeder split impacts resale value and tax structure.","## Prices and neighborhoods","Median sale price runs $725Kâ$1.3M, with luxury north-side Old Gulph Road estates exceeding $2M. The village core, Old Lancaster Road corridor, and Garrett Hill (Radnor side) are the most active sub-markets.","## Commute","SEPTA Paoli/Thorndale at Bryn Mawr Station, ~25 min to 30th Street. I-476 nearby for car commutes."],faqs:[{question:"Is Bryn Mawr in Lower Merion or Radnor school district?",answer:"Most of Bryn Mawr ZIP 19010 is in Lower Merion SD (Montgomery County); some southern streets fall in Radnor Township SD (Delaware County). Always verify by exact street address before buying."},{question:"What is the median home price in Bryn Mawr PA?",answer:"Median sale price in Bryn Mawr (19010) in 2025 runs $725Kâ$1.3M, with luxury estates north of the village exceeding $2M."}]},{slug:"conshohocken-vs-plymouth-meeting-pa",title:"Conshohocken vs Plymouth Meeting, PA Comparison",metaTitle:"Conshohocken vs Plymouth Meeting Compared",metaDescription:"Conshohocken vs Plymouth Meeting PA â both Colonial SD, but very different lifestyles. Compare prices, walkability, commute.",excerpt:"Both are Colonial SD Montgomery County towns at the I-476 corridor â but Conshohocken is walkable urban while Plymouth Meeting is car-centric.",date:"May 2026",dateISO:"2026-05-16",category:"Area Comparison",readTime:"6 min read",content:["Conshohocken and Plymouth Meeting are both in Colonial School District and both anchor the I-476 commuter corridor â but they offer very different lifestyles.","## Conshohocken: walkable urban","Conshohocken Borough is one of the fastest-changing suburbs in the region. Fayette Street offers walkable dining and brewery culture; the riverfront has new corporate campuses and luxury apartments. Median $400Kâ$700K for townhomes, $550Kâ$900K for single-family.","## Plymouth Meeting: car-centric retail hub","Plymouth Meeting offers easy I-476/I-276 (PA Turnpike) access, the Plymouth Meeting Mall, IKEA, and corporate campuses. Median $425Kâ$700K single-family.","## Which to choose","Choose Conshohocken for walkable urban lifestyle and SEPTA train access. Choose Plymouth Meeting for larger lots, mall-adjacent retail, and the I-476/I-276 commuter trifecta."],faqs:[{question:"Are Conshohocken and Plymouth Meeting in the same school district?",answer:"Yes â both are served by Colonial School District (Montgomery County)."},{question:"Is Conshohocken more expensive than Plymouth Meeting?",answer:"Single-family medians are comparable ($550Kâ$900K vs $425Kâ$700K), but Conshohocken's walkable Fayette Street corridor and waterfront condos command meaningful price premiums per square foot."}]},{slug:"doylestown-pa-real-estate-guide-2026",title:"Doylestown, PA Real Estate Guide 2026",metaTitle:"Doylestown PA Real Estate Guide 2026",metaDescription:"Doylestown PA real estate â Central Bucks SD, walkable Borough, museums, prices, neighborhoods. By Saiid Zamani.",excerpt:"Doylestown is Bucks County's most-loved walkable town â historic stone architecture, Central Bucks schools, and SEPTA train access.",date:"May 2026",dateISO:"2026-05-15",category:"Area Guide",readTime:"6 min read",content:["Doylestown is the Bucks County seat and one of the most-loved walkable towns in the Philadelphia suburbs.","## Schools","Central Bucks School District is one of the largest and highest-rated PA public districts, drawing relocating families from across the region.","## Walkability and culture","The Borough features Mercer Museum, Michener Art Museum, walkable State and Main Streets, and historic stone architecture.","## Price
194s and commute","Median sale price $525Kâ$850K, with luxury homes exceeding $1.5M. SEPTA Lansdale/Doylestown Line terminates at Doylestown Station; ~70 min direct to Center City."],faqs:[{question:"Is Doylestown a place to live?",answer:"Yes â Doylestown Borough is consistently ranked among the best small towns in America, with a walkable downtown, historic stone architecture, Central Bucks School District, museums, and SEPTA train access."},{question:"What school district is Doylestown PA in?",answer:"Doylestown is served by Central Bucks School District, one of the largest and highest-rated public districts in Pennsylvania."}]},{slug:"lansdale-pa-first-time-buyer-guide",title:"Lansdale, PA First-Time Home Buyer Guide",metaTitle:"Lansdale PA First-Time Buyer Guide",metaDescription:"Lansdale PA first-time buyer guide â North Penn SD, attainable single-family prices, SEPTA train, walkable Borough.",excerpt:"Lansdale offers some of the most attainable single-family home prices in Montgomery County, plus North Penn schools and SEPTA access.",date:"May 2026",dateISO:"2026-05-14",category:"Buyer Guide",readTime:"5 min read",content:["Lansdale Borough is one of the best first-time-buyer towns in Montgomery County â strong North Penn SD schools, attainable single-family prices, and a walkable downtown.","## Prices","Median sale price runs $375Kâ$525K â significantly below Main Line equivalents.","## Schools","North Penn School District is one of the largest PA districts and consistently solid.","## Commute","SEPTA Lansdale/Doylestown Line at Lansdale Station, ~50 min to 30th Street. PA-309 and PA Turnpike NE Extension nearby.","## First-time buyer programs","FHA (3.5% down), conventional (3% down), and PHFA programs all work well for Lansdale buyers."],faqs:[{question:"Is Lansdale a good place for first-time buyers?",answer:"Yes â Lansdale offers some of the most attainable single-family home prices in Montgomery County, plus North Penn School District and SEPTA train access to Philadelphia."},{question:"What school district is Lansdale in?",answer:"Lansdale is served by North Penn School District, one of the largest districts in Montgomery County."}]},{slug:"ambler-vs-blue-bell-pa",title:"Ambler vs Blue Bell, PA Comparison",metaTitle:"Ambler vs Blue Bell PA Compared",metaDescription:"Ambler vs Blue Bell PA â both Wissahickon SD, different vibes. Compare prices, walkability, lifestyle.",excerpt:"Both share Wissahickon SD â but Ambler is walkable Borough while Blue Bell is executive suburb.",date:"May 2026",dateISO:"2026-05-13",category:"Area Comparison",readTime:"5 min read",content:["Ambler Borough and Blue Bell are both in Wissahickon School District â but they offer very different lifestyles.","## Ambler: walkable Borough","Ambler offers walkable Butler Avenue dining, the historic Ambler Theater, SEPTA train access, and Borough-scale lots. Median $475Kâ$725K.","## Blue Bell: executive suburb","Blue Bell is an unincorporated community in Whitpain Township known for executive single-family homes on larger lots, Normandy Farm, and PA-202 access. Median $650Kâ$1.1M.","## Which to choose","Choose Ambler for walkable Borough lifestyle and train commute. Choose Blue Bell for executive single-family on larger lots."],faqs:[{question:"Are Ambler and Blue Bell in the same school district?",answer:"Yes â both are served by Wissahickon School District (Montgomery County, PA)."},{question:"Is Blue Bell more expensive than Ambler?",answer:"Yes â Blue Bell median sale prices ($650Kâ$1.1M) typically run higher than Ambler ($475Kâ$725K), reflecting larger lots and executive single-family inventory."}]},{slug:"downingtown-vs-exton-pa",title:"Downingtown vs Exton, PA Comparison",metaTitle:"Downingtown vs Exton PA Compared",metaDescription:"Downingtown vs Exton PA â different school districts (DASD vs WCASD), different vibes. Compare prices, schools, commute.",excerpt:"Downingtown and Exton sit minutes apart but split across two top Chester County school districts.",date:"May 2026",dateISO:"2026-05-12",category:"Area Comparison",readTime:"6 min read",content:["Downingtown and Exton are neighboring Chester County towns â but they sit in different school districts and offer different lifestyles.","## Downingtown (DASD)","Downingtown Area SD includes the Downingtown STEM Academy magnet. Median $450Kâ$700K. Walkable Borough core.","## Exton (WCASD primarily)","Most of Exton (19341) is in West Chester Area SD; some streets in DASD. Exton is more retail/corporate corridor than walkable downtown. Median $475Kâ$725K.","## Which to choose","Choose Downingtown for STEM Academy access (by magnet application) or walkable Borough. Choose Exton for c
194orporate corridor convenience and WCASD schools."],faqs:[{question:"Are Downingtown and Exton in the same school district?",answer:"No. Most of Exton (19341) is in West Chester Area SD, while Downingtown (19335) is in Downingtown Area SD. Some Exton streets feed into DASD â always verify by address."}]},{slug:"media-pa-real-estate-guide-2026",title:"Media, PA Real Estate Guide 2026",metaTitle:"Media PA Real Estate Guide 2026",metaDescription:"Media PA real estate â Rose Tree Media SD, walkable State Street, Media Trolley, 'Everybody's Hometown.'",excerpt:"Media Borough is 'Everybody's Hometown' â a walkable Delco town with the in-street Media Trolley running down State Street.",date:"May 2026",dateISO:"2026-05-11",category:"Area Guide",readTime:"5 min read",content:["Media Borough is one of the most distinctive walkable towns in the Philadelphia suburbs â anchored by the in-street SEPTA Media Trolley running down State Street past restaurants, breweries, and indie shops.","## Schools","Rose Tree Media School District serves Media plus surrounding townships. Strong ratings.","## Prices and commute","Median sale price $425Kâ$700K. SEPTA Media/Wawa Line and Media Trolley at State Street. US-1 and I-476 nearby."],faqs:[{question:"What school district is Media PA in?",answer:"Media is served by Rose Tree Media School District (Delaware County), which also covers Upper Providence, Middletown, and Edgmont Townships."}]},{slug:"drexel-hill-pa-affordable-homes-guide",title:"Drexel Hill, PA Affordable Homes Guide",metaTitle:"Drexel Hill PA Affordable Homes Guide",metaDescription:"Drexel Hill PA â one of the most attainable Philadelphia western suburbs. Stone twins, SEPTA trolley, Upper Darby SD.",excerpt:"Drexel Hill offers some of the best value-for-square-foot in the Philadelphia western suburbs.",date:"May 2026",dateISO:"2026-05-10",category:"Area Guide",readTime:"5 min read",content:["Drexel Hill (19026) is one of the most attainable Philadelphia western suburb markets â classic 1920sâ1940s stone twins on tree-lined streets with quick SEPTA access.","## Prices","Median sale price $275Kâ$425K.","## Schools and commute","Upper Darby School District. SEPTA Norristown High Speed Line and Route 101 Trolley â ~25 min to Center City.","## What to watch in inspections","Older stone twin housing stock means roofs, electrical panels, knob-and-tube wiring, and oil tanks are common inspection items. Budget accordingly."],faqs:[{question:"Is Drexel Hill PA affordable?",answer:"Yes â Drexel Hill is one of the most attainable Philadelphia western suburb markets, with median sale prices typically $275Kâ$425K in 2025."}]},{slug:"royersford-pa-home-buyer-guide",title:"Royersford, PA Home Buyer Guide",metaTitle:"Royersford PA Home Buyer Guide",metaDescription:"Royersford PA homes â Spring-Ford SD, new construction, US-422 corridor. Attainable Montgomery County entry.",excerpt:"Royersford and Limerick anchor the western Montgomery County growth corridor with new construction along US-422.",date:"May 2026",dateISO:"2026-05-09",category:"Buyer Guide",readTime:"5 min read",content:["Royersford (19468) and neighboring Limerick anchor the western Montgomery County growth corridor along US-422.","## Schools","Spring-Ford Area School District covers Royersford, Limerick, and Spring City.","## Prices","Median sale price $400Kâ$575K. New construction townhomes and singles dominate.","## Commute","US-422 and PA Turnpike NE Extension. ~50 min to Center City Philadelphia via I-76."],faqs:[{question:"What school district is Royersford in?",answer:"Royersford is served by Spring-Ford Area School District (Montgomery County), which also covers Limerick and Spring City."}]},{slug:"property-taxes-main-line-pa-2026",title:"Property Taxes on the Main Line PA (2026)",metaTitle:"Main Line PA Property Taxes 2026 Compared",metaDescription:"How property taxes compare across Main Line school districts â Lower Merion, Radnor, T/E, Great Valley. Effective rates by town.",excerpt:"Property tax rates vary significantly across Main Line school districts. Here's how they actually compare.",date:"May 2026",dateISO:"2026-05-05",category:"Taxes",readTime:"6 min read",content:["Property tax rates on the Main Line vary meaningfully across school districts and townships. Two homes priced the same can have $5Kâ$8K/year tax differences depen
194ding on district and municipality.","## Lower Merion SD (Montgomery County)","Among the most favorable per-dollar rates thanks to a strong commercial tax base (Bala Cynwyd, Ardmore corporate corridors).","## Radnor Township SD (Delaware County)","Moderate Delco rates. Slightly higher than LMSD on a per-dollar basis, but still competitive given school district boundaries.","## Tredyffrin/Easttown SD (Chester County)","Moderate Chester County rates. Township-only addresses (Tredyffrin, Easttown) carry no borough overlay.","## Great Valley SD (Chester County)","Moderate rates. Malvern Borough adds a municipal overlay vs township-only addresses."],faqs:[{question:"Which Main Line school district has the lowest property taxes?",answer:"Lower Merion SD typically offers the most favorable per-dollar property tax rate among the top Main Line districts thanks to its strong commercial tax base."},{question:"Do Main Line property taxes vary by township?",answer:"Yes â within the same school district, township and borough overlays can add or subtract meaningful amounts. Borough addresses typically carry an extra municipal layer that township-only addresses do not."}]},{slug:"commute-to-philadelphia-from-main-line",title:"Commute to Philadelphia from the Main Line (2026)",metaTitle:"Main Line to Philadelphia Commute Times 2026",metaDescription:"SEPTA Paoli/Thorndale Line commute times from every Main Line station â Bryn Mawr to Thorndale. Plus driving alternatives.",excerpt:"SEPTA Paoli/Thorndale Line is the lifeline of the Main Line. Here are the actual commute times from every station.",date:"May 2026",dateISO:"2026-05-04",category:"Commute",readTime:"5 min read",content:["The SEPTA Paoli/Thorndale Regional Rail Line is the backbone of the Main Line, with direct service from every station to 30th Street and Suburban Station.","## Commute times to 30th Street Station","Bryn Mawr: ~25 min. Haverford: ~27 min. Ardmore: ~20 min (express). Wynnewood: ~22 min. Wayne: ~30 min. Strafford: ~32 min. Devon: ~33 min. Berwyn: ~35 min. Paoli: ~40 min. Malvern: ~45 min.","## Amtrak Keystone alternative","Ardmore and Paoli stations also serve Amtrak Keystone â slightly faster, more premium, more expensive.","## Driving alternative","I-76 (Schuylkill Expressway) is unpredictable during rush. Most Main Line commuters take the train."],faqs:[{question:"How long is the train commute from the Main Line to Philadelphia?",answer:"SEPTA Paoli/Thorndale Line direct to 30th Street Station ranges from ~20 min (Ardmore) to ~45 min (Malvern), depending on station and whether you catch an express."}]},{slug:"relocating-to-philadelphia-suburbs-guide",title:"Relocating to the Philadelphia Suburbs: Complete Guide (2026)",metaTitle:"Relocating to Philadelphia Suburbs 2026 Guide",metaDescription:"Relocating to the Philadelphia suburbs from NYC, DC, Boston, or out-of-state? Schools, neighborhoods, taxes, commute â by Saiid Zamani.",excerpt:"Relocating to the Philadelphia western suburbs from NYC, DC, Boston, or another metro? Here's what to know.",date:"May 2026",dateISO:"2026-05-01",category:"Relocation",readTime:"9 min read",content:["Relocating to the Philadelphia western suburbs from another metro? The decision usually comes down to schools, commute, price band, and lifestyle.","## Step 1: Pick a county","Montgomery County (Main Line east, Ambler, Collegeville): biggest job base. Chester County (Main Line west, Malvern, West Chester): public schools, lower taxes. Delaware County (Radnor, Media, Haverford): close-in Main Line. Bucks County (Doylestown, Newtown): walkable historic towns.","## Step 2: Pick a school district","School-district boundaries and local demand can materially affect resale value. Lower Merion, Radnor, T/E, Great Valley, Wissahickon, Central Bucks, and Downingtown frequently appear in buyer searches.","## Step 3: Decide commute mode","Train-dependent: pick a SEPTA Paoli/Thorndale or Lansdale/Doylestown Line town. Car-dependent: pick I-476, US-202, or PA Turnpike-adjacent.","## Step 4: Price band","$300Kâ$500K: Drexel Hill, Lansdale, Royersford, Norristown. $500Kâ$900K: Ambler, Phoenixville, Collegeville, West Chester, Downingtown. $900K+: Main Line, Blue Bell, Devon, Villanova, Doylestown."],faqs:[{question:"What are the best Philadelphia suburbs to relocate to?",answer:"Wayne (Main Line walkability + Radnor or T/E SD), Malvern (Great Valley SD + new construction), Devon and Berwyn (T/E SD), Bryn Mawr and Ardmore (Lower Merion SD), and Doylestown (Central Bucks SD)."}]},{slug:"best-walkable-suburbs-philadelphia-pa",title:"Best Walkable Suburbs of Philadelphia (2026)",metaTitle:"Best Walkable Suburbs Philadelphia PA",metaDescription:"The most walkable Philadelphia suburbs ranked â Ardmore, Conshohocken, Media, Doylestown, West Chester, Phoenixville, Ambler.",excerpt:"Walkable suburbs combine train access, downtown dining, and short walks to schools, parks, and groceries.",date:"Apr 2026",dateISO:"2026-04-30",category:"Lifestyle",readTime:"6 min read",content:["Walkability is one of the strongest predictors of long-term home value appreciation. Here are the most walkable Philadelphia suburbs.","## Top walkable picks","1. Ardmore (Suburban Square + 2 train stations). 2. Conshohocken (Fayette Street + riverfront). 3. Media (State Street + Media Trolley). 4. Doylestown (Borough + Mercer Museum). 5. West Chester (walkable Borough + university). 6. Phoenixville (revitalized downtown + breweries). 7. Ambler (Butler Avenue + Ambler Theater). 8. Bryn Mawr (village core + train)."],faqs:[{question:"Which Philadelphia suburb is the most walkable?",answer:"Ardmore is widely considered the most walkable Philadelphia suburb â Suburban Square shopping, two train stations (SEPTA Paoli/Thorndale + Amtrak Keystone), restaurants, and Ardmore Music Hall are all within a 10-minute walk for many residents."}]},{slug:"new-construction-homes-chester-county-pa",title:"New Construction Homes in Chester County, PA (2026)",metaTitle:"New Construction Homes Chester County PA",metaDescription:"Where to find new construction homes in Chester County PA â Atwater, East Brandywine, Exton corridor.",excerpt:"New construction in Chester County is concentrated along US-202, US-30, and the Downingtown/East Brandywine corridor.",date:"Apr 2026",dateISO:"2026-04-29",category:"New Construction",readTime:"5 min read",content:["Chester County new construction is concentrated in a few well-defined corridors.","## Atwater (Malvern, Great Valley SD)","Mixed townhomes and singles, walkable amenity center, top-tier schools. $700Kâ$1.2M.","## East Brandywine (DASD)","Spec singles on larger lots, Downingtown STEM Academy magnet eligibility. $600Kâ$950K.","## Exton corridor (WCASD/DASD)","Townhomes and mid-size singles along US-202 and PA-100. $500Kâ$800K."],faqs:[{question:"Where is the best new construction in Chester County PA?",answer:"Atwater (Malvern, Great Valley SD), East Brandywine (Downingtown Area SD), and the Exton corridor (West Chester Area SD) are the three primary new-construction hubs in Chester County."}]},{slug:"luxury-homes-main-line-pa-guide",title:"Luxury Homes on the Main Line PA: Buyer Guide (2026)",metaTitle:"Luxury Homes Main Line PA Buyer Guide",metaDescription:"Luxury Main Line homes â Villanova, Gladwyne, Devon, Bryn Mawr, Penn Valley. $2M+ estate buyer guide.",excerpt:"Luxury Main Line homes ($2M+) cluster in a few well-defined towns. Here's the buyer's guide.",date:"Apr 2026",dateISO:"2026-04-28",category:"Luxury",readTime:"7 min read",content:["Luxury Main Line homes â $2M+ estates â cluster in a few well-defined towns.","## Gladwyne (Lower Merion SD)","The single highe
194st-priced Main Line town. Estate-scale lots, historic stone, $2Mâ$10M.","## Villanova (Radnor SD or Lower Merion SD)","Estate corridor along Stoneleigh and Ithan. $1.5Mâ$5M.","## Devon (T/E SD)","Estate north of Lancaster Ave. $1.5Mâ$4M.","## Bryn Mawr (Lower Merion SD)","Old Gulph Road estates. $1.5Mâ$3M.","## Penn Valley (Lower Merion SD)","Newer luxury construction with LMSD feeders. $1.5Mâ$3M."],faqs:[{question:"Where are the most expensive homes on the Main Line PA?",answer:"Gladwyne (Lower Merion SD) is consistently the highest-priced Main Line town, followed by Villanova (Radnor SD or LMSD), Devon (T/E SD), Bryn Mawr (LMSD), and Penn Valley (LMSD). Estate properties in these towns routinely exceed $3Mâ$5M."}]},{slug:"mortgage-rates-philadelphia-suburbs-2026",title:"Mortgage Rates in the Philadelphia Suburbs (2026)",metaTitle:"Philadelphia Suburbs Mortgage Rates 2026",metaDescription:"What mortgage rates Philadelphia suburb buyers are actually getting in 2026 â conventional, FHA, jumbo, PHFA. By Saiid Zamani.",excerpt:"Real mortgage rate ranges Philadelphia suburb buyers are seeing in 2026 â conventional, FHA, jumbo, and PHFA programs.",date:"Apr 2026",dateISO:"2026-04-27",category:"Financing",readTime:"5 min read",content:["Mortgage rates shape Philadelphia suburb buyer power as much as price. Here's what local buyers are actually seeing in 2026.","## Conventional 30-year","Typically in the mid-to-high 6% range for well-qualified borrowers, with the lowest rates reserved for 740+ FICO and 20%+ down.","## FHA 30-year","Usually 25â50bps below conventional but with required MIP for the life of the loan. Common for first-time buyers in Drexel Hill, Norristown, Lansdale, and Royersford.","## Jumbo (>$766,550 in Montgomery, Chester, Delaware, Bucks)","Competitive with conventional given strong jumbo borrower profiles. Common in Wayne, Devon, Bryn Mawr, Doylestown.","## PHFA first-time programs","Pennsylvania Housing Finance Agency offers down payment assistance and below-market rates for qualifying first-time buyers â a powerful tool in attainable markets."],faqs:[{question:"What is the conforming loan limit in the Philadelphia suburbs in 2026?",answer:"The conforming loan limit in Montgomery, Chester, Delaware, and Bucks Counties for 2026 is $766,550 for a one-unit property. Loans above this amount are jumbo."}]},{slug:"using-retirement-savings-first-home-philadelphia-suburbs",title:"Using Retirement Savings to Buy a First Home: A Philadelphia Suburbs Guide (2026)",metaTitle:"Retirement Savings for First Home â PA Suburbs",metaDescription:"How first-time buyers in the Philadelphia suburbs are tapping IRAs and 401(k)s for down payments in 2026. Rules, tradeoffs, and local context. Educational, not financial advice.",excerpt:"A plain-English look at how first-time buyers can use retirement savings toward a down payment â with Philadelphia suburbs context and clear tradeoffs. Educational only.",date:"July 2026",dateISO:"2026-07-27",category:"Buyer Guide",readTime:"9 min read",content:["Some first-time buyers ask whether they can use retirement savings to help fund a down payment. A July 22, 2026 column in the National Association of Realtors® Economists' Outlook, by economist Nadia Evangelou, discusses that question directly. This guide paraphrases the NAR framing, adds Philadelphia-suburbs context, and lays out the tradeoffs in plain English. It is educational only â not tax, legal, investment, or lending advice.","The full cornerstone guide lives at /using-retirement-savings-to-buy-first-home; this article is the shorter, blog-format version.","## What the NAR Column Discusses",'In its July 22, 2026 column titled "Using Retirement Savings to Buy a First Home," NAR compares the tradeoff between keeping savings invested and using a portion toward a first-home down payment. For its comparison it uses a 10% assumed annual stock-market return and looks at $50,000 either invested or applied toward a $400,000 home. NAR also cites its own historical analysis that typical U.S. homeowners gained nearly $232,300 in equity over the prior ten years.',"Both figures are NAR's â attributed here, not mine â and both are illustrative national analysis, not a forecast for any specific property or year. Read the original at https://www.nar.realtor/news/economists-outlook/using-retirement-savings-to-buy-a-first-home.","## The Current $10,000 IRA Rule","Under current U.S. tax law, a qualified first-time homebuyer can withdraw up to $10,000 from an IRA and avoid the 10% early-withdrawal penalty when the requirements are met. This is a lifetime, per-individual amount. It is a penalty exception, not a tax exemption â Traditional IRA dollars may
194still owe ordinary income tax, and Roth IRA rules differ. Confirm current-year details with a CPA and IRS resources before you rely on any figure.","## The Proposed $50,000 Bill (Not Current Law)","The Uplifting First-Time Homebuyers Act is a proposal that would raise the IRA first-time homebuyer exception from $10,000 to $50,000. As of this update it has been introduced but is not current law. Do not plan a purchase around a bill that has not been enacted.","## What About a 401(k)?","401(k) plans are governed by their own plan documents in addition to federal rules. Loan availability, hardship-withdrawal rules, tax treatment, and repayment requirements vary by plan. Ask your plan administrator in writing what your plan permits â and what happens if your employment changes â before you rely on general online summaries.","## Philadelphia Suburbs Context","Home prices, property taxes, and school-district costs vary meaningfully across the western Philadelphia suburbs, so a general national framing only takes you so far. Any comparison should be built on realistic local numbers, not on national averages.","## A Simple Decision Framework","Ask a licensed lender for a written comparison of your loan options at 3%, 5%, 10%, and 20% down for your target price and county. Ask a CPA to model the tax cost of any Traditional IRA withdrawal you are considering. Ask a fiduciary financial advisor to model the long-horizon opportunity cost of the withdrawal under conservative return assumptions â not only the 10% used in NAR's illustration. Ask your retirement-plan administrator, in writing, exactly what your plan permits. Only after those four written answers, decide.","## Alternatives Worth Pricing First","Before tapping retirement savings, ask a licensed Pennsylvania lender to walk you through first-time-buyer program options, low-down-payment loan types, and any employer or family down-payment assistance you may qualify for. Program terms and eligibility change often and must be confirmed with the lender and with the program's official source before you rely on them.","## Where I Fit In","As a Realtor®, I do not give tax, legal, or investment advice. What I do is make sure the home you buy is worth the sacrifice â right school district, sustainable taxes, sound offer structure. I refer clients to CPAs and fiduciary advisors in the Philadelphia suburbs who will run the retirement-withdrawal math honestly, and I put realistic local price, tax, and closing-cost ranges alongside their analysis.","## Source and Attribution",`Primary source: Nadia Evangelou, "Using Retirement Savings to Buy a First Home," National Association of Realtors® Economists' Outlook, July 22, 2026 â https://www.nar.realtor/news/economists-outlook/using-retirement-savings-to-buy-a-first-home. The 10% return assumption, the $400,000 home example, and the roughly $232,300 ten-year equity figure are NAR's, not mine. Local commentary is the author's. This article is educational and does not constitute financial, tax, legal, or investment advice.`],faqs:[{question:"Can I use my IRA to buy a first home in Pennsylvania without a penalty?",answer:"Under current U.S. tax law, a qualified first-time homebuyer can withdraw up to $10,000 from an IRA (lifetime, per individual) without the 10% early-withdrawal penalty. That is a penalty exception, not a tax exemption â Traditional IRA dollars may still owe ordinary income tax, and Roth IRA rules differ. Confirm the current-year details with a CPA and IRS resources before withdrawing."},{question:"Is there a proposal to raise the IRA first-time homebuyer limit?",answer:"Yes â the Uplifting First-Time Homebuyers Act is a proposal that would raise the limit from $10,000 to $50,000. It has been introduced but is not current law. Do not plan a purchase or a withdrawal around a bill that has not been enacted."},{question:"How should I think about a 401(k) loan for a down payment?",answer:"401(k) plans are governed by their own plan documents in addition to federal rules. Loan availability, tax treatment, and what happens on separation of employment vary by plan. Ask your plan administrator in writing what your plan actually allows before you decide."},{question:"Does NAR recommend using retirement savings to buy a home?",answer:"NAR's July 22, 2026 column by economist Nadia Evangelou discusses the tradeoff and presents an illustrative comparison â it does not endorse the strategy. Any decision should involve a CPA, a fiduciary advisor, your retirement-plan administrator, and a licensed mortgage lender."}]}],GM=[{slug:"wynnewood-vs-narberth-pa-comparison-2026",title:"Wynnewood vs Narberth, PA: Which Lower Merion Town Wins (2026)?",metaTitle:"Wynnewood vs Narberth PA Compared 2026",metaDescription:"Wynnewood and Narberth are both Lower Merion SD â but they live very differently. Compare prices, walkability, and SEPTA commute.",excerpt:"Two Lower Merion SD towns, two very different daily lives â Wynnewood's residential calm vs Narberth Borough's walkable downtown.",date:"June 2026",dateISO:"2026-06-04",category:"Area Comparison",readTime:"6 min read",content:["Wynnewood and Narberth both sit in Lower Merion Sc
194hool District, both have a SEPTA Paoli/Thorndale Line station, and both anchor the eastern Main Line. The day-to-day lifestyle is meaningfully different.","## Walkability","Narberth Borough is one of the most walkable suburbs in metro Philadelphia. A 10-minute walk covers restaurants, the Narberth Theatre, a Saturday farmers market, the playground, and the train station. Wynnewood is more traditional Main Line residential â walk scores are highest around the Wynnewood Shopping Center and Penn Wynne.","## Price (2025)","Narberth Borough: $625Kâ$1.0M median, with larger Victorians exceeding $1.3M. Wynnewood: $575Kâ$1.1M median, with luxury estates north of Lancaster Avenue exceeding $1.7M.","## Schools","Both are Lower Merion SD. The Wynnewood and Narberth high-school feeder split between Lower Merion HS and Harriton HS depends on the exact street â confirm by address before assuming a feeder.","## Commute","Narberth Station ~20 min to 30th Street. Wynnewood Station ~22 min. Both have direct SEPTA Paoli/Thorndale service.","## Who picks which","Pick Narberth if you want a true walkable small-town downtown. Pick Wynnewood if you want a slightly larger lot, a quieter residential feel, and proximity to Lankenau Medical Center."],faqs:[{question:"Are Wynnewood and Narberth in the same school district?",answer:"Yes â both are part of Lower Merion School District. The high-school feeder (Lower Merion HS vs Harriton HS) varies by street, not by town."},{question:"Which is more walkable, Wynnewood or Narberth?",answer:"Narberth Borough is significantly more walkable. A 10-minute walk from most Narberth homes reaches restaurants, the train station, the theatre, and the playground."},{question:"Which town is more expensive?",answer:"On average they price similarly. Wynnewood has more high-end inventory north of Lancaster Avenue; Narberth has fewer total homes but a strong walkability premium per square foot."}]},{slug:"lower-merion-vs-radnor-school-districts-2026",title:"Lower Merion vs Radnor School District: A Realtor's Comparison (2026)",metaTitle:"Lower Merion vs Radnor SD Compared 2026",metaDescription:"Lower Merion and Radnor are both top Main Line school districts. Compare schools, towns served, tax rates, and resale impact.",excerpt:"Two of the most respected public school districts on the Main Line â Lower Merion and Radnor â both shape home values block by block.",date:"June 2026",dateISO:"2026-06-03",category:"Schools",readTime:"7 min read",content:["Lower Merion School District (Montgomery County) and Radnor Township School District (Delaware County) are two of the most respected public school districts in Pennsylvania. Both routinely rank in the state's top 10 and both materially affect home value street by street.","## Towns served","Lower Merion SD covers Bryn Mawr (most), Ardmore, Wynnewood, Narberth, Penn Valley, Gladwyne, Merion Station, Bala Cynwyd, and Belmont Hills. Radnor Township SD covers Wayne (Delco-side ZIP 19087), Rosemont (some), Villanova, Radnor, and St. Davids.","## High schools","Lower Merion SD splits between Lower Merion High School and Harriton High School. Radnor Township SD operates Radnor High School. All three are consistently ranked among the top public high schools in Pennsylvania.","## Taxes","Lower Merion's millage rate is among the highest in Montgomery County, reflecting the district's per-pupil spending. Radnor Township's school tax is also high relative to Delaware County average. Always confirm the current millage with the township or district directly.","## Resale impact","Address-level school assignment can meaningfully change a home's value in both districts. In Wynnewood, Lower Merion HS vs Harriton HS feeder can change list price by 5â10% on otherwise comparable homes. Buyers should confirm school assignment for any specific address before relying on assumptions.","## Choosing between them","Lower Merion offers more towns and more inventory variety. Radnor Township offers a more cohesive single-district feel and the Wayne lifestyle. Both deliver strong school outcomes; pick by town fit rather than district alone."],faqs:[{question:"Which is better, Lower Merion or Radnor School District?",answer:"Both are consistently top-10 Pennsylvania public school districts with strong academic outcomes. Choosing between them is usually a town and lifestyle decision, not a school-quality one."},{question:"Is Wayne PA in Lower Merion or Radnor School District?",answer:"Wayne (19087) is split. The Delaware County / Radnor Township side is Radnor SD. The Chester County / Tredyffrin Towns
194hip side is Tredyffrin/Easttown SD. Always verify by address."},{question:"Are Lower Merion and Radnor taxes higher than other Main Line districts?",answer:"Generally yes â both Lower Merion's and Radnor Township's school tax millages are above the regional average, reflecting per-pupil investment."}]},{slug:"great-valley-vs-tredyffrin-easttown-schools-2026",title:"Great Valley vs Tredyffrin/Easttown School District (2026)",metaTitle:"Great Valley vs T/E SD Compared 2026",metaDescription:"Great Valley and Tredyffrin/Easttown are both top Chester County districts. Compare schools, towns served, and home value impact.",excerpt:"Both Great Valley SD and Tredyffrin/Easttown SD rank among Pennsylvania's best â here's how they actually differ for buyers.",date:"June 2026",dateISO:"2026-06-02",category:"Schools",readTime:"6 min read",content:["Great Valley SD and Tredyffrin/Easttown SD (T/E SD) are two of Chester County's strongest public school districts. They overlap geographically and frequently come up in the same buyer search.","## Towns served","Great Valley SD covers Malvern Borough, parts of East Whiteland, parts of Charlestown, and parts of Willistown. T/E SD covers Devon, Berwyn, Paoli, Chesterbrook, Wayne (Chester County side), and parts of Easttown and Tredyffrin Townships.","## High schools","Great Valley operates Great Valley High School. T/E SD operates Conestoga High School, consistently ranked in Pennsylvania's top 5 public high schools.","## Price impact","T/E SD addresses, particularly those zoned for Conestoga, typically command a meaningful resale premium over equivalent Great Valley addresses. The gap is most visible on the Berwyn / Malvern border and the Paoli / Malvern border.","## When Great Valley beats T/E for buyers","Malvern Borough lifestyle, walkability to downtown Malvern, and the Atwater new-construction corridor are reasons buyers actively pick Great Valley SD over T/E SD even when the option exists.","## Bottom line","Both deliver excellent academic outcomes. T/E SD generally carries a higher resale premium; Great Valley SD often delivers more value per square foot in the same commute."],faqs:[{question:"Is Tredyffrin/Easttown better than Great Valley?",answer:"Both are consistently among Pennsylvania's top 25 public school districts. T/E SD (Conestoga HS) typically carries a stronger resale premium, but Great Valley SD delivers strong academic outcomes and often better value per square foot."},{question:"What towns are in Great Valley School District?",answer:"Great Valley SD serves Malvern Borough and parts of East Whiteland, Charlestown, and Willistown Townships in Chester County."},{question:"What towns are in Tredyffrin/Easttown School District?",answer:"T/E SD serves Devon, Berwyn, Paoli, Chesterbrook, Strafford, the Chester County side of Wayne, and parts of Tredyffrin and Easttown Townships."}]},{slug:"main-line-luxury-homes-buyer-guide-2026",title:"Main Line Luxury Homes Buyer Guide (2026)",metaTitle:"Main Line PA Luxury Home Buyer Guide 2026",metaDescription:"Buying a luxury home on the Pennsylvania Main Line â Gladwyne, Villanova, Devon, Bryn Mawr. Process, financing, and inspection tips.",excerpt:"Luxury Main Line transactions ($2M+) work differently than typical resales. Here's what buyers need to know.",date:"May 2026",dateISO:"2026-05-28",category:"Buyer Guide",readTime:"8 min read",content:["Luxury home transactions on the Pennsylvania Main Line â generally $2M and above â operate on different timelines, financing dynamics, and inspection scopes than typical resale.","## Where Main Line luxury concentrates","Gladwyne (ZIP 19035), Villanova (ZIP 19085), Devon (ZIP 19333), Bryn Mawr (ZIP 19010), and the larger-lot sections of Wayne, Berwyn, and Radnor account for the majority of $2M+ Main Line single-family transactions.","## Financing","Most luxury Main Line buyers use jumbo loans or pay cash. Jumbo financing typically requires 20â30% down, 12 months of reserves, and full income documentation. Pre-approval (not just pre-qualification) is expected.","## Off-market and pre-listing inventory","A meaningful share of Main Line luxury inventory moves quietly through Coming Soon, Pocket Listings, or direct agent-to-agent introductions before hitting Bright MLS. Working with an agent connected to the local luxury network matters.","## Inspections at the luxury level","Standard general inspections rarely cover everything at the luxury level. Expect specialty inspections for slate or copper roofs, historic stucco, in-ground pools, geothermal systems, smart-home wiring, mature trees, and septic if applicable. Total inspection cost often runs $2,500â$6,000.","## Negotiation dynamics","Luxury buyers and sellers typically negotiate on price, closing cost credits, post-settlement occupancy, and inclusion of furniture, art, or vehicles. Repair credits are common but timeline flexibility is often more valuable."],faqs:[{question:"What is considered a luxury home on the Main Line?",answer:"Generally any single-family home selling at $2 million and above is considered luxury on the Pennsylvania Main Line. The Gladwyne, Villanova, and Devon ZIP codes carry the highest concentration of $2M+ inventory."},{question:"Can I finance a $3M Main Line home?",answer:"Yes, with a jumbo loan. Most lenders require 20â30% down, full income documentation, and 12 months of reserves. Pre-approval from a jumbo-experienced lender is expected before showings at most luxury price points."},{question:"Are off-market Main Line luxury homes common?",answer:"Yes. A meaningful share of $2M+ Main Line transactions begin off-market through Coming Soon listings or direct agent introductions before reaching Bright MLS. A connected local agent is the typical access point."}]},{slug:"closing-costs-pennsylvania-buyer-checklist-2026",title:"Closing Costs in Pennsylvania: Buyer Checklist (2026)",metaTitle:"PA Closing Costs Buyer Checklist 2026",metaDescription:"What buyers actually pay at closing in Pennsylvania â transfer tax, title, lender fees, escrows. Real numbers for PA suburbs.",excerpt:"Pennsylvania buyer closing costs typically run 2â5% of purchase price. Here's a line-by-line breakdown.",date:"May 2026",dateISO:"2026-05-25",category:"Buyer Guide",readTime:"7 min read",content:["Pennsylvania buyer closing costs typically run 2â5% of purchase price, before down payment. The biggest line items are state and local transfer tax, title insurance, lender fees, and prepaid escrows.","## PA realty transfer tax","Pennsylvania charges a 1% state realty transfer tax. Most municipalities and school districts add another 1% (split between buyer and seller by negotiation). On a $600K purchase, the combined 2% transfer tax is $12,000, with the buyer typically responsible for 1% ($6,000) by custom.","## Title insurance","Title insurance in PA uses a regulated rate. On a $600K purchase, owner's title insurance plus simultaneous lender's policy is typically $3,500â$4,200. The buyer pays.","## Lender fees","Origination, underwriting, appraisal, credit report, and processing fees vary by lender and typically total $2,000â$4,500. The appraisal alone is usually $550â$800 on a single-family suburb home.","## Prepaid escrows","Buyers typically pre-fund 3â6 months of property taxes plus 12 months of homeowners insurance into escrow at closing.","## Total estimate","On a typical $600K Philadelphia-suburb purchase, plan for $14,000â$22,000 in closing costs above the down payment. Always request a Loan Estimate within 3 business days of application for an exact number."],faqs:[{question:"Who pays transfer tax in Pennsylvania?",answer:"Pennsylvania transfer tax (typically 2% comb
194ined state and local) is split by negotiation, but the convention in most PA suburbs is 1% to the buyer and 1% to the seller."},{question:"What are typical closing costs on a $500K home in PA?",answer:"Plan for $12,000â$18,000 in closing costs on a $500K Pennsylvania home purchase, above the down payment. The largest line items are transfer tax, title insurance, lender fees, and prepaid escrows."},{question:"Can a seller pay buyer closing costs in PA?",answer:"Yes. Seller-paid closing cost credits are common in PA contracts and are a standard negotiation point, especially in slower markets or when a buyer is using FHA financing."}]},{slug:"pennsylvania-property-tax-appeal-guide-2026",title:"Pennsylvania Property Tax Appeal Guide (2026)",metaTitle:"PA Property Tax Appeal Guide 2026",metaDescription:"How to appeal your PA property tax assessment â process, deadlines, evidence, success rates. Montgomery, Chester, Delaware Counties.",excerpt:"If your PA property tax assessment is too high, you can appeal â here's how it works in Montgomery, Chester, and Delaware Counties.",date:"May 2026",dateISO:"2026-05-22",category:"Owner Resources",readTime:"6 min read",content:["Pennsylvania property tax assessments can be appealed annually. Successful appeals reduce your assessed value, which reduces both your county and school district tax bill for years.","## How PA property taxes work","Your annual tax bill equals your county-assessed value à the combined millage rate (county + municipality + school district). The assessment is set by the County Board of Assessment; the millage rate is set by each taxing body.","## When to appeal","Appeal annually if your home's market value is materially lower than your county-implied market value (assessed value ÷ Common Level Ratio). Recent purchases below the implied value are the strongest single piece of evidence.","## Deadlines (typical)","Montgomery County: appeals due by September 1 for the following tax year. Chester County: appeals due by August 1. Delaware County: appeals due by September 1. Verify current deadlines with each county Board of Assessment.","## Evidence that helps","Recent sale of the subject property below assessed value (strongest), Bright MLS comparable sales within the same neighborhood and time window, photos of property defects (older systems, deferred maintenance), and a private appraisal if available.","## Should you use an attorney","For appeals expected to save $3,000+ per year, a property tax appeal attorney is often worth the contingency fee (typically 30â50% of first-year savings). For smaller appeals, owners can self-represent."],faqs:[{question:"Can I appeal my Pennsylvania property tax assessment?",answer:"Yes. Pennsylvania law allows annual property tax assessment appeals through your county Board of Assessment. Deadlines vary by county but typically fall between August 1 and September 1."},{question:"What is the Common Level Ratio in PA?",answer:"The Common Level Ratio (CLR) is a county-specific number published annually by the State Tax Equalization Board. It converts an assessed value into an implied market value: assessed value ÷ CLR = implied market value."},{question:"Do property tax appeals actually work?",answer:"Yes, especially for homes recently purchased below the county's implied market value. Appeals based on strong recent comparable sales and a recent purchase price are routinely granted."}]},{slug:"relocating-to-philadelphia-suburbs-guide-2026",title:"Relocating to the Philadelphia Suburbs: A 2026 Guide",metaTitle:"Relocating to Philadelphia Suburbs Guide 2026",metaDescription:"Moving to the Philadelphia suburbs from out of state â schools, commute, taxes, neighborhoods.",excerpt:"Relocating to the Philadelphia suburbs from out of state? Here's what to know about schools, commute, taxes, and neighborhoods.",date:"May 2026",dateISO:"2026-05-18",category:"Relocation",readTime:"9 min read",content:["## The corridors that matter","## Schools first","Pennsylvania public schools are funded primarily by local property taxes, so school district quality varies significantly. The top-tier districts in the PHL suburbs include Lower Merion, Radnor Township, Tredyffrin/Easttown, Great Valley, Unionville-C
194hadds Ford, and Wallingford-Swarthmore. Always confirm school assignment by address.","## Taxes","PA has a flat 3.07% state income tax. Property tax millage varies by township and school district â Lower Merion and Radnor are highest; Phoenixville and Pottstown are lower. Sales tax is 6% statewide.","## Commute","Center City Philadelphia is accessible by SEPTA regional rail (Paoli/Thorndale Line is the Main Line spine), I-76 Schuylkill Expressway, and I-476 Blue Route.","## Housing market reality","Inventory is tighter than national averages. Well-priced single-family homes in top school districts routinely receive multiple offers within 7â14 days. Plan to be financially ready (pre-approval, proof of funds, agent lined up) before flying in for home tours."],faqs:[{question:"Where do most people relocate to in the Philadelphia suburbs?",answer:"Most relocations land in the Main Line (Wayne, Bryn Mawr, Devon, Berwyn, Malvern), or the Great Valley corridor â chosen for top public school districts, strong commute, and proximity to major employers."},{question:"What is the cost of living in the Philadelphia suburbs vs NYC or Boston?",answer:"The Philadelphia suburbs typically run 30â45% lower on housing than NYC and 15â25% lower than Boston, with comparable income tax and lower sales tax. Property tax can be high in top school districts."},{question:"How competitive is the Philadelphia suburb real estate market?",answer:"Very competitive in top school districts. Well-priced single-family homes in Lower Merion, Radnor, T/E, and Great Valley districts routinely see multiple offers within 7â14 days of listing."}]},{slug:"va-loan-homebuyer-pennsylvania-guide-2026",title:"VA Loan Homebuyer Guide for Pennsylvania (2026)",metaTitle:"VA Loan PA Homebuyer Guide 2026",metaDescription:"Buying a home in PA with a VA loan â eligibility, no-down-payment process, appraisal, closing costs. Veterans and active-duty service members.",excerpt:"VA loans offer 0% down, no PMI, and competitive rates â here's how the process works for Pennsylvania buyers.",date:"May 2026",dateISO:"2026-05-15",category:"Buyer Guide",readTime:"7 min read",content:["The VA home loan benefit is one of the strongest financing tools available to eligible veterans, active-duty service members, and qualifying surviving spouses. In the Philadelphia suburbs, it is meaningfully underused.","## Eligibility","Most veterans with 90+ days of active-duty service during wartime or 181+ days during peacetime qualify. National Guard and Reserve members with 6+ years of service also qualify. Eligibility is documented with a VA Certificate of Eligibility (COE), which most lenders can pull electronically.","## Key benefits","0% down payment on most loan amounts, no monthly private mortgage insurance (PMI), competitive interest rates, limited buyer-paid closing costs, and the option to reuse the benefit on future home purchases.","## VA appraisal","VA loans require a VA-approved appraiser who evaluates both market value and minimum property requirements (MPRs). Common MPR issues that delay closing: peeling paint on pre-1978 homes (lead paint risk), missing handrails, exposed wiring, and inoperable systems.","## Closing costs","VA loans cap certain buyer-paid closing costs. The VA funding fee (typically 2.15% for first use, 3.3% for subsequent use) can be financed into the loan. Sellers are allowed to pay up to 4% of the loan amount in seller concessions, often used to cover the funding fee and prepaid taxes.","## When VA loans face friction","In multiple-offer markets, some sellers prefer conventional offers because of perceived VA appraisal risk. A well-written VA offer with clear MPR pre-screening and a strong agent letter often closes the gap."],faqs:[{question:"Can I use a VA loan in Pennsylvania?",answer:"Yes. VA loans are available nationwide, including all Pennsylvania counties. Eligibility is based on military service, not state residency."},{question:"What is the VA loan limit in Pennsylvania?",answer:"For full-entitlement VA borrowers there is no county loan limit â the VA will guarantee 25% of the loan amount with no cap. Parti
194al-entitlement borrowers are subject to county conforming loan limits."},{question:"Do sellers in PA accept VA loan offers?",answer:"Yes, frequently. Well-prepared VA offers backed by a strong lender and an experienced agent close at rates comparable to conventional offers in the Philadelphia suburbs."}]},{slug:"condo-vs-townhome-philadelphia-suburbs-2026",title:"Condo vs Townhome in the Philadelphia Suburbs (2026)",metaTitle:"Condo vs Townhome PA Suburbs 2026",metaDescription:"Condo vs townhome in the Philadelphia suburbs â ownership, HOA fees, financing, and resale.",excerpt:"Condos and townhomes look similar from the street â but ownership, financing, and resale work very differently.",date:"May 2026",dateISO:"2026-05-12",category:"Buyer Guide",readTime:"6 min read",content:["Condos and townhomes look alike from the curb but operate as fundamentally different ownership structures, with real implications for financing, HOA fees, and resale.","## Ownership","In a condo, you own the interior of your unit ('air rights') plus a share of common elements. In a townhome (fee-simple townhome), you own the structure and the land beneath it.","## HOA fees","Condo HOA fees in the Philadelphia suburbs typically range $300â$700/month and cover building exterior, roof, common areas, master insurance, and amenities. Townhome HOA fees are typically $150â$400/month and cover common landscaping, snow removal, and limited exterior maintenance.","## Financing","Condo financing is more complex. Lenders require condo project approval (FHA, VA, Fannie Mae, or Freddie Mac depending on the loan). Issues with owner-occupancy ratio, HOA reserves, or pending litigation can disqualify a project. Townhome financing follows standard single-family rules.","## Where each concentrates locally","Condos: Conshohocken (One Conshohocken) and Plymouth Meeting (The Riverwalk). Townhomes: Wayne, Malvern, Phoenixville, and Collegeville new construction.","## Resale","Townhomes generally hold value better than condos in the same submarket because of land ownership and broader buyer pool (including FHA/VA without project approval friction)."],faqs:[{question:"What is the difference between a condo and a townhome?",answer:"A condo is a unit inside a larger building or community where you own the interior plus a share of common elements. A townhome is a structure where you own the building and the land beneath it."},{question:"Are HOA fees higher for condos than townhomes?",answer:"Generally yes. Condo HOA fees typically include building exterior, roof, master insurance, and amenities, which makes them higher than townhome HOA fees that cover only common areas."},{question:"Is it harder to get a mortgage on a condo than a townhome?",answer:"Often yes. Condo financing requires lender approval of the condo project itself (owner-occupancy ratio, reserves, litigation history). Townhomes are financed like single-family homes."}]},{slug:"new-construction-vs-resale-pa-suburbs-2026",title:"New Construction vs Resale in the PA Suburbs (2026)",metaTitle:"New Construction vs Resale PA Suburbs 2026",metaDescription:"New construction or resale in the Philadelphia suburbs? Compare warranty, customization, taxes, lot size, and resale value.",excerpt:"New construction sells itself with warranty and customization. Resale sells with mature trees, established neighborhoods, and price. Here's the trade-off.",date:"May 2026",dateISO:"2026-05-10",category:"Buyer Guide",readTime:"7 min read",content:["The Philadelphia suburbs have meaningful new-construction inventory (Limerick, Royersford, Phoenixville, Malvern Atwater, Newtown Square Liseter, Downingtown) alongside the existing resale market. The right pick depends on priorities.","## What new construction does well","Builder warranty (typically 1 year full, 2 years systems, 10 years structural), customization on finishes and floor plan, modern energy efficiency, low maintenance years 1â10, and standardized HOA processes.","## Where new construction loses","Smaller lots and less mature landscaping than equivalent resale, higher initial property tax assessment based on improved value, builder upgrade pricing that often exceeds aftermarket alternatives, and timeline risk if the development isn't complete.","## What resale does well","Mature trees and established neighborhoods, larger lots in older subdivisions, lower initial tax assessment (until reassessed), proximity to walkable downtowns and train stations, and proven resale comps.","## Where resale loses","Deferred maintenance risk (HVAC, roof, windows), older electrical and insulation, less modern open-floor-plan layouts, and surprise repair costs years 1â3 without a warranty.","## When to pick which","Pick new construction if you value low maintenance, warranty, and customization and you're staying 7+ years. Pick resale if you value lot size, established neighborhood, and proximity to walkable downtowns or train stations."],faqs:[{question:"Is new construction more expensive than resale in the PA suburbs?",answer:"Generally yes, on a price-per-square-foot basis. New construction typically commands a 5â15% premium over equivalent resale because of warranty, modern finishes, and energy efficie
194ncy."},{question:"Do new construction homes have higher property taxes?",answer:"Often yes. New construction is assessed at improved value, which is usually higher than the prior land-only assessment. The first full tax year after closing often brings a noticeable jump."},{question:"Where is most new construction in the Philadelphia suburbs?",answer:"Limerick, Royersford, Phoenixville, Malvern (Atwater), Downingtown, Newtown Square (Liseter), and Collegeville carry the highest concentration of new single-family and townhome construction in the immediate Philadelphia suburbs."}]},{slug:"selling-inherited-home-pennsylvania-guide-2026",title:"Selling an Inherited Home in Pennsylvania (2026)",metaTitle:"Selling Inherited Home PA Guide 2026",metaDescription:"Inherited a home in PA? Probate, step-up basis, taxes, and how to sell. Montgomery, Chester, Delaware Counties.",excerpt:"Inheriting a home in Pennsylvania comes with probate, tax, and practical decisions â here's how the sale process actually works.",date:"May 2026",dateISO:"2026-05-07",category:"Seller Guide",readTime:"7 min read",content:["Selling a home you inherited in Pennsylvania involves probate, inheritance tax, federal capital-gains rules, and practical decisions about repairs and timing. Here's a clear walkthrough.","## Probate first","Most PA-inherited homes pass through probate (Register of Wills in the county where the decedent lived). Until letters testamentary or letters of administration are issued to the executor, no sale can close. Probate timelines in Montgomery, Chester, and Delaware Counties typically run 3â9 months for straightforward estates.","## PA inheritance tax","Pennsylvania charges an inheritance tax based on the beneficiary's relationship to the decedent: 0% to a spouse, 4.5% to direct descendants (children, grandchildren), 12% to siblings, and 15% to other beneficiaries. The tax is due 9 months after death; a 5% discount applies if paid within 3 months.","## Federal step-up in basis","Inherited property typically receives a federal step-up in basis to fair market value at date of death. This usually eliminates most or all federal capital gains on a sale at or near current market value. A date-of-death appraisal documents the stepped-up basis.","## Repairs vs as-is","Inherited homes often have deferred maintenance. The choice between investing in pre-listing repairs vs selling as-is depends on the local buyer pool and equity available. Strong school districts (Lower Merion, Radnor, T/E) typically reward pre-listing investment; older Delco and Berks inventory often sells better as-is to investors.","## Practical sequence","Open probate, secure the property, get a date-of-death appraisal, consult an estate attorney on PA inheritance tax, decide on repair scope, list, sell, and account for proceeds through the estate."],faqs:[{question:"Can I sell a house I inherited in PA before probate is complete?",answer:"No. The executor needs letters testamentary (or letters of administration) before signing a sale. Probate must be open and an estate fiduciary appointed before a sale can close."},{question:"Do I pay capital gains tax on an inherited home in PA?",answer:"Usually little or none at the federal level, because inherited property typically receives a step-up in basis to fair market value at date of death. PA does not have a state capital gains tax separate from its 3.07% income tax."},{question:"How much is Pennsylvania inheritance tax on a house?",answer:"PA inheritance tax depends on the beneficiary: 0% for a spouse, 4.5% for direct descendants (children, grandchildren), 12% for siblings, and 15% for other beneficiaries. A 5% discount applies if paid within 3 months of death."}]}],ZM=[{slug:"first-time-home-buyer-guide-philadelphia-suburbs",title:"First-Time Home Buyer Guide: Philadelphia Suburbs (2026)",metaTitle:"First-Time Buyer Guide PA Suburbs 2026",metaDescription:"Step-by-step guide for first-time home buyers in Montgomery, Chester, Delaware, Berks & Bucks PA. Down payments, inspections, closing costs.",excerpt:"Everything you need to know about buying your first home in Montgomery, Chester, Delaware, Berks, or Bucks County â from pre-approval to closing day.",date:"April 2026",dateISO:"2026-04-01",category:"Buyer Guide",readTime:"8 min read",content:["Buying your first home in the Philadelphia suburbs is one of the most exciting â and nerve-wracking â decisions you'll ever make.","## Step 1: Get Pre-Approved for a Mortgage","Before you start browsing listings, talk to a lender. A pre-approval letter tells sellers you're serious and shows exactly how much home you can afford. In competitive markets like Montgomery and Chester Counties, sellers often won't consider offers without pre-approval.","Most first-time buyers in the Philadelphia suburbs qualify for FHA loans (3.5% down), conventional loans (as low as 3% down), or PA Housing Finance Agency programs that offer down payment assistance.","## Step 2: Understand the Philadelphia Suburbs Mar
194ket","The Main Line â including towns like Bryn Mawr, Ardmore, and Haverford â tends to have higher price points but public schools districts. Montgomery County towns like Conshohocken and Lansdale offer a blend of walkability and value. Chester County communities like West Chester and Downingtown combine suburban charm with growing dining and entertainment scenes.","Delaware County (Delco) offers some of the most affordable entry points close to Philadelphia, while Berks County around Reading provides larger lots and lower taxes. Bucks County, with towns like Doylestown and New Hope, appeals to buyers seeking character and culture.","## Step 3: Work With a Local Real Estate Agent","A local agent who knows the Philadelphia suburbs inside and out can save you thousands. They'll know which neighborhoods are appreciating, which have hidden flood zones, and how to negotiate in multiple-offer situations. As a buyer, you typically pay nothing â the seller covers agent commissions.","## Step 4: Make an Offer and Negotiate","Your agent will run a comparative market analysis (CMA) to determine fair value. In the Philadelphia suburbs, expect to negotiate on price, closing cost credits, and repair requests after the home inspection.","## Step 5: Home Inspection and Appraisal","Never skip the home inspection. In older Philadelphia suburb homes, common issues include aging roofs, outdated electrical panels, and radon. A good inspector costs $400-$600 and can save you from a $20,000 mistake.","## Step 6: Closing Day","Closing costs in Pennsylvania typically run 2-5% of the purchase price. Budget for transfer taxes (1% in most PA counties, split between buyer and seller), title insurance, and lender fees. Your agent and settlement company will walk you through every document."],faqs:[{question:"How much do I need for a down payment on a house in the Philadelphia suburbs?",answer:"Most first-time buyers in the Philadelphia suburbs can put down as little as 3% with a conventional loan or 3.5% with an FHA loan. Pennsylvania Housing Finance Agency (PHFA) programs also offer down payment assistance for qualified buyers in Montgomery, Chester, Delaware, Berks, and Bucks Counties."},{question:"What are closing costs when buying a home in Pennsylvania?",answer:"Closing costs in Pennsylvania typically range from 2% to 5% of the purchase price. This includes transfer taxes (usually 1% split between buyer and seller), title insurance, lender origination fees, and prepaid items like homeowners insurance and property taxes."},{question:"Do I need a real estate agent to buy a home in the Philadelphia suburbs?",answer:"While not legally required, working with a local real estate agent is highly recommended. A knowledgeable agent familiar with Montgomery, Chester, Delaware, Berks, and Bucks Counties can help you find the right home, negotiate effectively, and navigate the complex closing process â typically at no cost to the buyer."},{question:"What is the good area to buy a first home in the Philadelphia suburbs?",answer:"It depends on your budget and priorities. Delaware County and parts of Montgomery County offer affordable starter homes close to Philadelphia. Chester County towns like Downingtown provide public schools and growing communities. Bucks County offers charm and culture, while Berks County provides larger properties at lower price points."}]},{slug:"selling-your-home-philadelphia-suburbs-checklist",title:"Selling Your Home in the Philadelphia Suburbs: Complete Checklist (2026)",metaTitle:"Sell Your PA Suburbs Home â 2026 Checklist",metaDescription:"Step-by-step checklist for selling your home in Montgomery, Chester, Delaware, Berks & Bucks Counties. Pricing, staging, marketing, and negotiation tips.",excerpt:"A comprehensive seller's checklist covering pricing strategy, staging, photography, marketing, and negotiation for homes in the Philadelphia suburbs.",date:"April 2026",dateISO:"2026-04-12",category:"Seller Guide",readTime:"7 min read",content:["Selling a home in the Philadelphia suburbs requires strategy, preparation, and the right agent. Whether you're upsizing from a Conshohocken condo or downsizing from a Wayne colonial, this checklist ensures you maximize your sale price and minimize stress.","## Price Your Home Correctly From Day One","Overpricing is the #1 mistake sellers make. Homes that sit on the market longer than 30 days in Montgomery, Chester, or Delaware County often sell for less than they would have at a competitive initial price. Your agent should provide a detailed comparative market analysis (CMA) using recent sales of similar homes in your specific neighborhood.","## Prepare Your Home for Sale","First impressions matter enormously. Start with decluttering â remove personal photos, excess furniture, and anything that makes rooms feel smaller. In the Philadelphia suburbs, buyers expect well-maintained exteriors, so invest in curb appeal: fresh mulch, power-washed walkways, and a painted front door go a long way.","## Professional Photography and Virtual Tours","Over 95% of buyers start their search online. Professional photography is non-negotiable. The skilled listing agents in the Philadelphia suburbs also offer 3D virtual tours, drone footage for larger properties, and twilight photography that makes homes look magazine-worthy.","## Strategic Marketing Beyond the MLS","Your home should be marketed on the MLS, Zillow, Realtor.com, social media, and through your agent's network. Top agents in Montgomery and Chester Counties also use targeted Facebook and Instagram ads to reach buyers actively searching in your area.","## Navigate Offers and Negotiations","In a seller's market, you may receive multiple offers. Your agent will help you evaluate not just price, but contingencies, financing strength, and closing timeline. A cash offer at a lower price may be more attractive than a higher financed offer with inspection contingencies.","## The Closing Process for Sellers","As a seller in Pennsylvania, expect to pay the real estate commission (typically 5-6% of sale price), transfer taxes (1% split with buyer), and any negotiated repair credits. Your net proceeds sheet from the settlement company will itemize every cost."],faqs:[{question:"How long does it take to sell a home in the Philadelphia suburbs?",answer:"In 2025, well-priced homes in Montgomery, Chester, and Delaware Counties typically sell within 15-45 days. Homes in desirable school districts like Lower Merion, Tredyffrin-Easttown, and Radnor often sell faster. Overpriced homes or those in less competitive areas may take 60-90 days."},{question:"How much does it cost to sell a house in Pennsylvania?",answer:"Sellers in Pennsylvania should budget for real estate agent commissions (typically 5-6% of sale price), transfer taxes (1% split with the buyer), and potential repair credits. Total selling costs usually range from 7-10% of the sale price."},{question:"Should I stage my home before selling in the Philadelphia suburbs?",answer:"Yes. Staged homes in the Philadelphia suburbs sell faster and for more money. Professional staging helps buyers visualize themselves in the space. At minimum, declutter, deep clean, and make minor cosmetic updates. Professional staging services in the area typically cost $2,000-$5,000."}]},{slug:"home-inspection-guide-pa-what-to-expect",title:"Home Inspection Guide in Pennsylvania: What to Expect and What to Watch For",metaTitle:"PA Home Inspection Guide â What to Expect",metaDescription:"Learn what happens during a home inspection in Pennsylvania, common issues in Philadelphia suburb homes, and how to use inspection results in negotiations.",excerpt:"What to expect during a Pennsylvania home inspection, common red flags in Philadelphia suburb homes, and how to use findings in your negotiations.",date:"February 2026",dateISO:"2025-01-10",category:"Buyer Guide",readTime:"6 min read",content:["A home inspection is one of the most important steps in the home buying process. In the Philadelphia suburbs, where many homes are 50-100+ years old, understanding what inspectors look for â and what their findings mean â can save you thousands of dollars and prevent major headaches after closing.","## What Does a Home Inspector Check?","A standard home inspection in Pennsylvania covers the roof, foundation, electrical system, plumbing, HVAC, windows, doors, insulation, and the overall structural integrity of the home. The inspection typically takes 2-4 hours for an average-sized home.","## Common Issues in Philadelphia Suburb Homes","Older homes in Montgomery, Chester, and Delaware Counties frequently have issues like knob-and-tube wiring, outdated 100-amp electrical panels, aging cast iron drain pipes, and slate roof repairs. Radon is also a significant concern throughout the Philadelphia suburbs â the EPA recommends testing every home in southeastern Pennsylvania.","## Radon Testing: A Must in the Philadelphia Suburbs","Radon is a naturally occurring radioactive gas that enters homes through cracks in the foundation. Pennsylvania has some of the highest radon levels in the country. Testing costs $150-$200 and mitigation systems (if needed) typically run $800-$1,500. Most buyers in Montgomery, Chester, Delaware, Berks, and Bucks Counties include radon testing as part of their inspection contingency.","## How to Use Inspection Results in Negotiations","Your inspection report is a
194negotiating tool. Cosmetic issues (peeling paint, worn carpet) are generally expected in resale homes. Focus negotiations on structural, safety, and major mechanical issues: a failing roof, outdated electrical, or a cracked foundation are legitimate repair requests. Your agent can help you determine which items to negotiate and which to accept.","## Should You Walk Away?","Some inspection findings are deal-breakers: active termite damage, major foundation issues, or environmental hazards like mold or underground storage tanks. Your agent will help you weigh the costs of repairs against the value of the home. Sometimes the right negotiation outcome is walking away and finding a better fit."],faqs:[{question:"How much does a home inspection cost in Pennsylvania?",answer:"A standard home inspection in the Philadelphia suburbs costs $400-$600 depending on the size and age of the home. Additional tests like radon ($150-$200), termite/WDI ($75-$125), and sewer scope ($250-$400) are recommended but typically charged separately."},{question:"Is radon common in the Philadelphia suburbs?",answer:"Yes, radon is very common in southeastern Pennsylvania. Montgomery, Chester, Delaware, Berks, and Bucks Counties all have areas with elevated radon levels. The EPA recommends testing every home, and mitigation systems typically cost $800-$1,500 if levels exceed 4.0 pCi/L."},{question:"Can I back out of a home purchase after the inspection in Pennsylvania?",answer:"Yes, if your purchase agreement includes an inspection contingency (which is standard in Pennsylvania), you can negotiate repairs, request a price reduction, or withdraw from the contract if significant issues are discovered during the inspection period â typically 7-14 days after the agreement is executed."}]},{slug:"montgomery-county-pa-cost-of-living-2026",title:"Cost of Living in Montgomery County, PA (2026)",metaTitle:"Montgomery County PA Cost of Living 2026",metaDescription:"How much does it cost to live in Montgomery County PA in 2026? Housing, property taxes, schools, transportation, and groceries broken down by town.",excerpt:"A 2026 breakdown of housing, property taxes, transportation, and daily expenses across Montgomery County's most popular towns.",date:"April 2026",dateISO:"2026-04-15",category:"County Guide",readTime:"9 min read",content:["Montgomery County, Pennsylvania is one of the most desirable places to live in Greater Philadelphia â but the cost of living varies dramatically between towns. This 2026 guide breaks down housing, property taxes, transportation, and daily expenses across the county's most popular communities.","## Housing Costs Across Montgomery County","The median home price in Montgomery County in 2026 sits around $475,000, but submarkets vary widely. Lower Merion (Bryn Mawr, Ardmore, Wynnewood) regularly exceeds $1M for single-family homes, while Norristown, Pottstown, and Lansdale offer entry points well under $300K.","## Property Taxes by Township","Effective property tax rates in Montgomery County average 1.3% to 1.6% of assessed value. Lower Merion and Wissahickon districts sit at the higher end due to school millage.","## Transportation & Commuting","Montgomery County is anchored by I-76 (Schuylkill Expressway), I-276 (PA Turnpike), I-476 (Blue Route), US-202, and US-422. SEPTA Regional Rail covers the Main Line (Paoli/Thorndale Line through Lower Merion), the Manayunk/Norristown Line, and the Lansdale/Doylestown Line. SEPTA monthly passes range from ~$190 to $260 depending on zone.","## Groceries, Utilities & Services","Daily expenses in Montgomery County run modestly above the national average. Wegmans, Whole Foods, and ACME are the dominant grocery chains; PECO supplies most electricity (~$0.13-$0.16 per kWh) and PGW or Aqua handle utilities depen
194ding on township. Childcare costs in the county average $1,400-$2,200/month for full-time infant care.","## Strong-Value Towns in Montgomery County 2026","If you want alternatives to Lower Merion pricing, compare Methacton (Worcester, Lower Providence), Spring-Ford (Royersford, Limerick), and Perkiomen Valley (Collegeville, Schwenksville). Verify the exact school assignment, taxes, and commute for every address."],faqs:[{question:"Is Montgomery County PA expensive to live in?",answer:"Montgomery County's cost of living runs modestly above the national average, driven primarily by housing. Median home prices in 2026 are around $475,000, but submarkets vary widely â Lower Merion exceeds $1M while Norristown and Pottstown offer entry under $300K."},{question:"How do I compare property taxes between Montgomery County towns?",answer:"Compare the actual county, municipal, and school tax bills for specific properties. Rates and assessments vary enough that a countywide ranking can be misleading."},{question:"What is the median home price in Montgomery County PA in 2026?",answer:"The median home price in Montgomery County in 2026 is approximately $475,000, but neighborhood and property-type differences are substantial. Use recent local comparable sales for a specific decision."}]},{slug:"property-taxes-philadelphia-suburbs-counties-compared",title:"Property Taxes Compared: Montgomery, Chester, Delaware & Bucks Counties (2026)",metaTitle:"PA Property Taxes Compared 2026",metaDescription:"How do property taxes compare across Montgomery, Chester, Delaware, and Bucks Counties in PA? Effective rates, school millage, and the strong-value townships in 2026.",excerpt:"A 2026 comparison of effective property tax rates and school district millage across the four major Philadelphia suburb counties.",date:"February 2026",dateISO:"2026-02-12",category:"Buyer Guide",readTime:"7 min read",content:["Property taxes are one of the largest ongoing costs of homeownership â and they vary widely across the Philadelphia suburbs. This 2026 guide compares effective property tax rates and school district millage across Montgomery, Chester, Delaware, and Bucks Counties in Pennsylvania.","## Montgomery County: 1.3% to 1.6%","Montgomery County's effective property tax rate averages 1.3% to 1.6%. Lower Merion sits at the high end driven by school millage.","## Chester County: 1.3% to 1.7%","Chester County's effective rate averages 1.3% to 1.7%. Tredyffrin/Easttown and Great Valley districts carry higher millage than Phoenixville Area or Coatesville Area, reflecting school funding and community investment.","## Delaware County: 1.6% to 2.1%","Delaware County has one of the highest effective property tax rates in the region â averaging 1.6% to 2.1%. Radnor Township sits at the upper end due to well-regarded school district funding; Newtown Township and Edgmont remain more competitive.","## Bucks County: 1.4% to 1.8%","Bucks County's effective rate averages 1.4% to 1.8%. Council Rock and Central Bucks districts carry mid-to-upper millage; Pennridge and Quakertown remain more competitive.","## Strong-Value Townships","If property taxes matter most, compare the current tax bills, assessments, and school millage for the specific properties you are considering. County averages can hide large municipal differences."],faqs:[{question:"Which Philadelphia suburb has the lowest property taxes?",answer:"There is no reliable single answer because assessments, municipal rates, and school millage differ. Compare the current tax bill for each property and confirm it with the county and municipality."},{question:"Are property taxes higher in Delaware County PA?",answer:"Yes. Delaware County has one of the highest effective property tax rates in the Philadelphia suburbs, averaging 1.6% to 2.1%. Radnor Township sits at the upper end due to school district funding."},{question:"How are PA property taxes calculated?",answer:"Pennsylvania property taxes combine three layers: county, township/borough, and school district millage. The combined millage is multiplied by the assessed value (which differs from market value) to calculate the annual tax b
194ill."}]},{slug:"delaware-county-pa-first-time-home-buyer-guide-2026",title:"Delaware County PA First-Time Home Buyer Guide (2026)",metaTitle:"Delaware County PA First-Time Buyer 2026",metaDescription:"Step-by-step Delaware County PA first-time home buyer guide for 2026 â well-regarded towns, loan programs, school districts, and what to expect at closing.",excerpt:"A complete first-time home buyer guide for Delaware County PA in 2026 â well-regarded towns, loan programs, and what to expect at closing.",date:"January 2026",dateISO:"2026-01-18",category:"Buyer Guide",readTime:"8 min read",content:["Buying your first home in Delaware County, Pennsylvania is one of the smartest moves you can make if you want easy access to Center City Philadelphia, public schools districts, and a wide range of price points. This 2026 guide walks first-time buyers through the entire process.","## Welcoming Delaware County Towns for First-Time Buyers","Springfield, Drexel Hill, Havertown, Ridley Park, and Media Borough offer excellent value for first-time buyers. Each combines reasonable home prices, solid school districts, walkable downtowns, and easy commutes to Philadelphia.","## Loan Programs for Delaware County First-Time Buyers","FHA loans (3.5% down), conventional loans (3% down), and PA Housing Finance Agency (PHFA) programs offer down payment assistance for qualified Delaware County buyers. Newtown Township and Marple offer public schools districts at more accessible price points than Radnor.","## Property Taxes to Budget For","Delaware County has one of the higher effective property tax rates in the region â averaging 1.6% to 2.1%. Budget carefully and ask your agent for the exact tax bill on any home you're considering.","## What to Expect at Closing","Closing costs in Pennsylvania typically run 2-5% of the purchase price. Budget for transfer taxes (1% in most PA municipalities, split between buyer and seller), title insurance, and lender fees. Your agent and settlement company will walk you through every document."],faqs:[{question:"Which Delaware County PA towns are great for first-time buyers?",answer:"Springfield, Drexel Hill, Havertown, Ridley Park, and Media Borough are among the most popular Delaware County towns for first-time buyers â offering reasonable home prices, solid school districts, walkable downtowns, and easy commutes to Philadelphia."},{question:"How much do I need to put down on a house in Delaware County PA?",answer:"First-time buyers in Delaware County can put as little as 3% down with a conventional loan or 3.5% with an FHA loan. PA Housing Finance Agency (PHFA) programs offer additional down payment assistance for qualified buyers."},{question:"Are Delaware County PA property taxes high?",answer:"Yes â Delaware County has one of the higher effective property tax rates in the Philadelphia suburbs, averaging 1.6% to 2.1%. Budget carefully and confirm the actual tax bill on any home you're considering."}]},{slug:"wayne-vs-malvern-vs-berwyn-pa-comparison",title:"Wayne vs. Malvern vs. Berwyn, PA: Which Main Line Town Is Right for You? (2026)",metaTitle:"Wayne vs Malvern vs Berwyn PA â 2026",metaDescription:"Comparing Wayne, Malvern, and Berwyn PA in 2026: school districts, home prices, walkability, commute, and which Main Line town fits your lifestyle.",excerpt:"A side-by-side comparison of Wayne, Malvern, and Berwyn â three of the Main Line's most desirable addresses.",date:"December 2025",dateISO:"2025-12-15",category:"Comparison",readTime:"7 min read",content:["Wayne, Malvern, and Berwyn are three of the most sought-after addresses on the Pennsylvania Main Line. All three offer public schools, walkable downtowns, and easy SEPTA access to Philadelphia â but each has a distinct personality, price point, and lifestyle. Here's a 2026 side-by-side comparison.","## School Districts","Wayne is split between Radnor Township SD (Delaware County side) and Tredyffrin/Easttown SD (Chester County side). Berwyn is fully T/E. Malvern is primarily Great Valley SD. T/E and Radnor are consistently ranked top-5 in Pennsylvania; Great Valley sits in the top 25.","## Home Prices","Wayne single-family homes typically run $850K-$1.5M+, Berwyn $750K-$1.3M, and Malvern $700K-$900K (with luxury Charlestown estates exceeding $1.5M). Newer construction in Malvern (Atwater, Spring Oak) commands premium pricing.","## Walkability & Downtown","Wayne has the most walkable downtown of the three, anchored by Lancaster Avenue with award-winning restaurants. Berwyn has a smaller but charming village. Malvern Borough is highly walkable with newer dining options and growing buzz.","## Commute","All three sit on the SEPTA Paoli/Thorndale Line. Wayne is closest to Philadelphia (~25 min by train), Berwyn ~30 min, Malvern ~35 min. All offer easy access to US-202, the PA Tur
194npike, and I-476.","## Which One Is Right for You?","Wayne if you want the most walkable Main Line lifestyle and don't mind the highest prices. Berwyn for T/E schools at slightly lower price points and a quieter feel. Malvern for newer construction, growing downtown, and Great Valley schools at materially better value."],faqs:[{question:"Is Wayne or Malvern PA better?",answer:"Wayne offers the most walkable Main Line lifestyle and well-regarded Radnor or T/E schools at higher prices. Malvern offers Great Valley schools, newer construction, and a growing downtown at materially better value. The right choice depends on budget, school priority, and lifestyle."},{question:"Are Wayne and Berwyn in the same school district?",answer:"Berwyn is fully in Tredyffrin/Easttown School District. Wayne is split â the Chester County side is T/E, and the Delaware County side is Radnor Township School District. Both are consistently well-regarded in Pennsylvania."},{question:"Which is more affordable: Wayne, Malvern, or Berwyn PA?",answer:"Malvern is generally the most affordable of the three for comparable single-family homes, particularly outside the Charlestown luxury market. Berwyn sits in the middle, and Wayne carries the highest prices."}]},{slug:"newtown-square-vs-wayne-pa-comparison",title:"Newtown Square vs. Wayne, PA: Luxury Main Line Comparison (2026)",metaTitle:"Newtown Square vs Wayne PA â 2026",metaDescription:"Comparing Newtown Square and Wayne PA in 2026: luxury homes, school districts (Marple Newtown vs Radnor), Liseter community, and which fits your lifestyle.",excerpt:"Newtown Square or Wayne? A 2026 comparison of two of Delaware County's top luxury addresses.",date:"November 2025",dateISO:"2025-11-20",category:"Comparison",readTime:"6 min read",content:["Newtown Square and Wayne are two of Delaware County's most desirable luxury addresses â but they offer very different lifestyles. Wayne is the heart of the walkable Main Line; Newtown Square is anchored by larger lots, the Liseter luxury community, and a more rural feel.","## School Districts","Wayne (Radnor side) is in Radnor Township School District, consistently ranked top-5 in Pennsylvania. Newtown Square is in Marple Newtown School District, well-rated and a top Delaware County district.","## Home Prices & Inventory","Wayne single-family homes typically run $850K-$1.5M+, with luxury estates exceeding $3M. Newtown Square offers significant new construction (Liseter, Runnymeade) at $1M-$2M+, with luxury custom homes exceeding $3M.","## Lifestyle","Wayne offers walkability, downtown dining, SEPTA train access, and tight Main Line community feel. Newtown Square offers larger lots, more rural charm, proximity to SAP America headquarters, and resort-style amenities at Liseter.","## Which One Is Right for You?","Wayne if you want walkable Main Line lifestyle and well-regarded Radnor schools. Newtown Square if you want larger lots, newer luxury construction, and a more private setting with strong Marple Newtown schools."],faqs:[{question:"Is Newtown Square or Wayne PA better for luxury home buyers?",answer:"Wayne offers walkable Main Line lifestyle and well-regarded Radnor schools at premium prices. Newtown Square offers larger lots, newer luxury construction (Liseter, Runnymeade), and Marple Newtown schools. The right choice depends on whether you prioritize walkability or lot size and new construction."},{question:"Is Liseter in Newtown Square or Wayne?",answer:"Liseter is in Newtown Square (Newtown Township, Delaware County), built on the historic du Pont estate. It's served by the Marple Newtown School District."},{question:"What's the school district difference between Newtown Square and Wayne?",answer:"Wayne (Radnor side) is in Radnor Township School District, consistently top-5 in Pennsylvania. Newtown Square is in Marple Newtown School District, well-rated and a top Delaware County district. Both districts strongly support home values."}]},{slug:"liseter-newtown-square-pa-luxury-community-guide-2026",title:"Liseter at Newtown Square PA â Luxury Community Guide (2026)",metaTitle:"Liseter Newtown Square PA Guide 2026",metaDescription:"Inside Liseter at Newtown Square: Toll Brothers luxury homes on the historic du Pont estate. Pricing, HOA, amenities, schools and 2026 market trends.",excerpt:"Everything buyers should know about Liseter â the Toll Brothers luxury community on the historic du Pont estate in Newtown Square, PA, including pricing, HOA fees, amenities, and 2026 market trends.",date:"May 2026",dateISO:"2026-05-08",category:"Community Guide",readTime:"7 min read",content:["Liseter is the most-searched luxury new-construction community in Newtown Square, Pennsylvania. Built by Toll Brothers on the historic 270-acre Pew family du Pont estate, Liseter has become the benchmark for resort-style suburban living in Delaware County. This 2026 guide covers everything buyers need to know â from pricing and HOA fees to school boundaries, lifestyle amenities, and how Liseter compares to other Main Line luxury options.","## What Is Liseter at Newtown Square?","Liseter is a master-planned luxury community of approximately 800 homes spread across the former du Pont 'Liseter Hall' estate in Newtown Township, Delaware County. Toll Brothers developed the community in multiple villages â including The Reserve, The Estate Collection, and The Carriage Collection â each offering different floor plans, lot sizes, and price points. Construction began in the early 2010s and the final phases continue to deliver in 2026.","## 2026 Liseter Home Prices","As of 2026, resale single-family homes in Liseter typically trade between $1.2M and $2.5M, with custom estate homes exceeding $3M. Carriage homes and villas (smaller footprints with lower-maintenance lifestyles) range from $850K to $1.3M. New construction from Toll Brothers in remaining phases is generally priced from $1.4M and up before options. Multiple-offer activity is common on well-priced Estate Collection homes that come back on the market.","## HOA Fees & What's Included","Liseter HOA dues vary by village but typically run $400â$600/month. The fee covers access to the Liseter Club (a 9,000+ sq ft community clubhouse with fitness center, indoor and outdoor pools, tennis and pickleball courts), common area maintenance, and trash service. The Liseter Club is one of the strongest selling points â it functions like a private resort within the community.","## School District","Liseter is served by the Marple Newtown School District, a well-regarded Delaware County district. Children typically attend Worrall Elementary, Paxon Hollow Middle School, and Marple Newtown High School. Boundaries can shift, so always verify with the district before writing an offer.","## Location & Commute","Liseter is located on West Chester Pike in Newtown Square, with quick access to Route 252, Route 3, and I-476 (the Blue Route). SAP America's North American headquarters is just minutes away, making Liseter especially popular with senior tech executives.","## Liseter vs. Other Main Line Luxury Communities","Compared to Wayne or Bryn Mawr (older estate homes, walkable downtowns, Radnor or Lower Merion schools), Liseter offers newer construction, predictable HOA-managed amenities, and lower price-per-square-foot. Compared to Malvern's luxury options (Atwater, Applebrook), Liseter offers the resort-style clubhouse experience and a slightly more rural setting. Compared to Newtown Square's other luxury communities (Runnymeade, Foxcatcher), Liseter is the largest and most amenity-rich.","## Should You Buy in Liseter in 2026?","Liseter remains one of the most stable luxury markets in Delaware County. Buyers who prefer walkable Main Line villages, historic homes, or larger private acreage may find better fits in Wayne, Bryn Mawr, or further west in Chester County."],faqs:[{question:"What is Liseter at Newtown Square PA?",answer:"Liseter is a Toll Brothers luxury master-planned community of about 800 homes built on the historic du Pont Liseter Hall estate in Newtown Township, Delaware County, Pennsylvania. It features multiple home styles, a private clubhouse with pools, fitness, tennis and pickleball, and is served by the Marple Newtown School District."},{question:"How much do homes in Liseter cost in 2026?",answer:"In 2026, resale single-family homes in Liseter typically range from $1.2M to $2.5M, with custom estate homes exceeding $3M. Carriage homes and villas range from $850K to $1.3M. New Toll Brothers construction in remaining phases generally starts from $1.4M before options."},{question:"What are the HOA fees at Liseter Newtown Square?",answer:"Liseter HOA dues typically run $400â$600 per month depending on the village. Fees include access to the Liseter Club (clubhouse, fitness center, indoor and outdoor pools, tennis and pickleball), common area maintenance, and trash service."},{question:"What school district is Liseter in?",answer:"Liseter is in the Marple Newtown School District, a well-regarded district in Delaware County, PA. Children typically attend Worrall Elementary, Paxon Hollow Middle School, and Marple Newtown High School. Always confirm boundaries with the district before purchase."}]},{slug:"phoenixville-vs-royersford-pa-comparison-2026",title:"Phoenixville vs. Royersford PA â Which Is Better for Buyers in 2026?",metaTitle:"Phoenixville vs Royersford PA â 2026",metaDescription:"Detailed 2026 comparison of Phoenixville and Royersford, PA: home prices, schools (Phoenixville Area vs. Spring-Ford), commute, dining, and lifestyle.",excerpt:"Side-by-side 2026 comparison of two of the most popular Schuylkill River towns in the Philadelphia suburbs: walkable Phoenixville Borough vs. family-focused Royersford in Spring-Ford School District.",date:"May 2026",dateISO:"2026-05-05",category:"Town Comparison",readTime:"7 min read",content:["Phoenixville and Royersford are two of the most popular small towns along the Schuylkill River in Montgomery and Chester Counties. But they offer very different lifestyles. This 2026 buyer's guide compares them directly so you can decide which fits you well.","## Location & Counties","Phoenixville Borough sits in Chester County along the Schuylkill River, surrounded by East Pikeland, Schuylkill, and Charlestown townships. Royersford Borough sits across the river in Montgomery County, surrounded by Limerick, Upper Providence, and Trappe. The two towns are about 8 miles apart by car (roughly 15 minutes via Route 113 or Route 23).","## School Districts","Phoenixville is served by the Phoenixville Area School District â a single-district borough plus surrounding townships. The district is well-regarded with strong arts and STEM programs and a diverse student body. Royersford and the Limerick/Trappe communities are served by the Spring-Ford Area School District, one of the largest and consistently well-regarded districts in Montgomery County, with very strong athletic and academic programs.","## 2026 Home Prices","Phoenixville Borough median home prices in 2026 typically run $400Kâ$550K for older single-family homes and updated row homes. New townhome construction along the river ranges $500Kâ$700K+. Royersford and the Spring-Ford district see medians around $450Kâ$600K for single-family homes, with new construction in Limerick and Trappe pushing $650Kâ$800K+. Both markets remain competitive with well-prepared homes selling in 15â30 days.","## Walkability & Downtown Lifestyle","This is where the towns diverge sharply. Phoenixville has one of the most active walkable downtowns in the Philadelphia suburbs â Bridge Street is filled with independent restaurants, Iron Hill Brewery, Molly Maguire's, the historic Colonial Theatre (home of Blobfest), and a thriving arts scene. Royersford's downtown is smaller and quieter, focused on Main Street'
194s casual dining and the riverwalk. Families who want suburban tranquility lean Royersford; buyers who want to walk to dinner and live music lean Phoenixville.","## Commute & Highway Access","Phoenixville has the additional advantage of Route 23 to the Main Line and Route 113 south to Malvern and Exton. Neither town has SEPTA Regional Rail service, so most commuters drive or use the Cross County Trail for biking.","## Taxes & Cost of Living","Property tax rates are broadly similar across both districts, with Spring-Ford in Montgomery County typically running slightly higher in absolute dollars due to higher home values and millage. Both areas offer strong value compared to the inner Main Line (Wayne, Bryn Mawr) while still providing well-regarded schools and amenities.","## Which One Should You Buy In?","Choose Phoenixville if you want walkable downtown nightlife, a vibrant arts and food scene, and a slightly more eclectic vibe. Choose Royersford / Spring-Ford if you want a larger public schools district, newer single-family construction, more youth sports infrastructure, and a quieter family-oriented setting. Both are excellent picks for first-time and move-up buyers in 2026."],faqs:[{question:"Is Phoenixville or Royersford PA better for families?",answer:"Royersford is generally considered better for larger active families because of the Spring-Ford Area School District (one of Montgomery County's largest and well-regarded, with strong sports and academics). Phoenixville is excellent for families who want a walkable downtown, an arts and food scene, and a more diverse community in the Phoenixville Area School District."},{question:"What is the difference between Phoenixville and Spring-Ford School Districts?",answer:"Phoenixville Area School District is a smaller Chester County district covering Phoenixville Borough and surrounding townships. Spring-Ford Area School District is a larger Montgomery County district covering Royersford, Limerick, and Trappe. Spring-Ford is typically ranked higher in standardized testing and offers more athletic programs; Phoenixville is recognized for arts, STEM, and a more diverse student body."},{question:"How much do homes cost in Phoenixville vs Royersford in 2026?",answer:"In 2026, Phoenixville Borough single-family homes typically run $400Kâ$550K, with new townhome construction $500Kâ$700K+. Royersford and the Spring-Ford district see medians around $450Kâ$600K, with new construction in Limerick and Trappe at $650Kâ$800K+. Both markets are competitive."},{question:"Which has better restaurants â Phoenixville or Royersford?",answer:"Phoenixville has a much larger and more diverse downtown restaurant scene including Iron Hill Brewery, Molly Maguire's, Bistro on Bridge, and many independent eateries along Bridge Street. Royersford's dining is more limited and focused on Main Street and Route 422 chains."}]},{slug:"ai-tools-every-realtor-should-use-2026",title:"AI Tools Every Realtor Should Use in 2026 (Saiid's AI Edge Playbook)",metaTitle:"Helpful AI Tools for Realtors 2026",metaDescription:"The AI tools Saiid Zamani trains real estate agents on in 2026 â from ChatGPT and Gemini to Bright MLS automation, listing copy, and AI-powered lead follow-up.",excerpt:"The exact AI stack Saiid Zamani teaches Keller Williams agents in 2026 â ChatGPT, Gemini, Claude, and the workflows that save hours per week on listings, marketing, and lead follow-up.",date:"May 2026",dateISO:"2026-05-08",category:"AI Edge",readTime:"8 min read",content:["AI is no longer optional for real estate agents in the Philadelphia suburbs â it's the difference between agents who do 12 deals a year and agents who do 40. As a Keller Williams technology trainer, I teach agents how to use AI without losing the human touch that closes deals. Here's the exact AI
194Edge stack I recommend in 2026.","## 1. ChatGPT and Gemini for Listing Copy","Generic MLS descriptions kill listings. Use GPT-5 or Gemini 2.5 Pro to draft three versions of every listing description â one emotional, one feature-focused, one neighborhood-led â then blend the strongest lines. The agents I train cut listing-prep time from 90 minutes to under 15.","## 2. Claude for Buyer and Seller Email Sequences","Claude writes the most natural-sounding follow-up emails. I teach agents to build a five-email nurture sequence for cold leads, a three-email post-showing sequence, and a weekly market-update template â all personalized with Bright MLS data.","## 3. AI-Powered CMAs and Pricing","Pair Bright MLS exports with ChatGPT's data analysis to spot pricing patterns competitors miss.","## 4. Video and Reels with AI Editing","Tools like Opus Clip and Descript turn one long walkthrough video into 10 short-form clips ready for Instagram Reels, YouTube Shorts, and TikTok. Combined with AI-generated captions, this is how solo agents look like a full marketing team.","## 5. AI Lead Qualification","Connect your CRM to a GPT assistant that reads inbound lead messages, scores intent, and drafts a first reply for you to approve. The agents I coach respond to leads in under five minutes â and conversion rates double.","## How to Get Started","Don't try to learn 20 tools at once. Pick ChatGPT or Gemini, master three workflows (listing copy, follow-up emails, CMAs), and add new tools quarterly. That's the AI Edge framework I teach inside Keller Williams Realty Devon-Wayne."],faqs:[{question:"What AI tools do real estate agents actually use in 2026?",answer:"The most widely adopted AI tools for realtors in 2026 are ChatGPT (GPT-5), Google Gemini 2.5 Pro, Anthropic Claude, Opus Clip and Descript for video, and CRM-integrated AI assistants like HubSpot Breeze and Follow Up Boss AI. Saiid Zamani trains Keller Williams agents on a curated stack of these tools."},{question:"Can AI replace a real estate agent?",answer:"No. AI is excellent at drafting copy, summarizing data, and automating follow-up â but real estate is a relationship and negotiation business. Agents who use AI to remove busywork and spend more time with clients consistently outperform agents who either ignore AI or try to replace themselves with it."},{question:"Does Saiid Zamani offer AI training for real estate agents?",answer:"Yes. Saiid is a Keller Williams technology trainer in the Devon-Wayne market center and offers AI Edge workshops covering ChatGPT, Gemini, listing automation, AI-powered CMAs, and short-form video workflows for agents in the Philadelphia suburbs."}]},{slug:"chatgpt-prompts-real-estate-agents",title:"10 ChatGPT Prompts Every Real Estate Agent Should Steal in 2026",metaTitle:"10 ChatGPT Prompts for Realtors 2026",metaDescription:"Ten copy-paste ChatGPT prompts for realtors â listing descriptions, buyer emails, CMAs, social captions, and objection handling. From Saiid Zamani's AI Edge training.",excerpt:"Ten field-tested ChatGPT prompts from Saiid's AI Edge training â for listing copy, buyer follow-up, CMAs, social captions, and objection handling.",date:"May 2026",dateISO:"2026-05-09",category:"AI Edge",readTime:"6 min read",content:["Most agents use ChatGPT like a search engine. Top producers use it like a junior assistant with the right prompts. Here are 10 prompts I teach inside Keller Williams Realty Devon-Wayne â copy them, adapt them, and watch your output triple.","## 1. Listing Description (Emotional Angle)",`"You are a luxury real estate copywriter. Write a 150-word listing description for [address] focused on the lifestyle a buyer will live here, not the features. Avoid clichés like 'must see' or 'won't last'."`,"## 2. Listing Description (Feature Angle)",'"Rewrite the same description in a feature-led format with short punchy sentences highlighting the kitchen, primary suite, and outdoor space. Include one sentence on the school district and one on commute access."',"## 3. Neighborhood Snapshot",'"Write a 200-word neighborhood snapshot for buyers relocating to [town], PA.',"## 4. Buyer Follow-Up Email After Showing",'"Draft a warm, low-pressure follow-up email after a showing at [address]. Reference one specific feature they liked. Suggest two next steps and end with a soft call to action."',"## 5. Seller Pricing Conversation Script",'"Roleplay as a coach. Give me a script to handle a seller who wants to list 8% above CMA value in [town], PA. Cover three rebuttals, one story, and one closing question."',"## 6. Open House Social Post",'"Write a 3-post Instagram caption series for an open house at [address] this Sunday. Post 1: tease the home. Post 2: highlight the neighborhood. Post 3: day-of reminder. Include relevant local hashtags."',"## 7. CMA Summary",'"Here are five comparable sales in [zip code] from the last 90 days [paste data]. Summarize the median price, days on market, and one trend I should mention to my seller."',"## 8. Objection Handling",'"My buyer says interest rates are too high to buy right now. Write three calm, data-driven responses â one financial, one lifestyle, one historical perspective."',"## 9. Weekly Market Update",'Use a friendly, experienced tone. End with a question that invites replies."',"## 10. Personal Brand Bio",'"Rewrite my agent bio in three lengths â 50, 150, and 300 words â for use on Zillow, my website, and Instagram. Voice: confident, warm, tech-forward."',"## Pro Tip","Never paste a ChatGPT response directly into client communication. Always edit for your voice, your local knowledge, and current Bright MLS data. AI is a co-pilot, not the pilot."],faqs:[{question:"Which ChatGPT model works well for real estate agents?",answer:"In 2026, GPT-5 and GPT-5 mini are widely used general-purpose models for real estate writing tasks. Gemini 2.5 Pro is excellent when you need to analyze large MLS data exports or images. Claude is preferred by many agents for natural-sounding email and follow-up writing."},{question:"Is it ethical for realtors to use ChatGPT for listing descriptions?",answer:"Yes, as long as the agent reviews and edits the output for accuracy. AI-generated listing copy must accurately describe the property, avoid Fair Housing violations, and reflect verified MLS information. Saiid trains agents to use AI as a drafting tool, never as a final source of truth."},{question:"How long does it take to learn AI for real estate?",answer:"Most agents become productive with ChatGPT and Gemini within 2â3 hours of focused training. Saiid Zamani's AI Edge workshops at Keller Williams Realty Devon-Wayne typically run a half day and cover the 10 prompts above plus integration with Bright MLS and CRM workflows."}]},{slug:"ai-home-search-buyers-philadelphia-suburbs",title:"How AI Is Changing the Home Search for Buyers in the Philadelphia Suburbs",metaTitle:"AI Home Search â PA Suburbs 2026",metaDescription:"Malvern, Wayne and the Philadelphia suburbs use AI in 2026 â neighborhood research, mortgage math, school
194comparisons, and offer strategy.",excerpt:"How buyers in the Philadelphia suburbs are using AI in 2026 to research neighborhoods, run mortgage math, compare schools, and write stronger offers.",date:"May 2026",dateISO:"2026-05-10",category:"AI Edge",readTime:"7 min read",content:["AI isn't just changing how agents work â it's changing how buyers shop for homes. Here's how to use AI well as a buyer â and where you still need a human.","## Neighborhood Research with AI","Tools like ChatGPT and Gemini can summarize neighborhoods, school district rankings, commute times, and recent sales trends in seconds. Use them to build a short list of three to five Philadelphia suburb towns before you start touring. Always verify school boundaries and tax rates with the district and county directly.","## Mortgage Math and Affordability","Ask AI to model your monthly payment at different rates, down payments, and PMI scenarios. This helps you walk into a lender meeting already knowing your comfortable payment range. Pair AI math with a real lender pre-approval â only the lender quote is binding.","## Comparing Two Homes Side by Side","Paste the listing descriptions of two homes into ChatGPT and ask for a structured comparison: square footage per dollar, commute differences, school district boundaries, lot size, and any red flags in the disclosures. This is one of the highest-leverage uses of AI for buyers in the Philadelphia suburbs.","## Writing Stronger Offers","AI can help you draft a personal letter to the seller (where allowed) and outline negotiation strategies. It cannot replace a licensed agent who knows current Bright MLS dynamics in your specific zip code, but it can prepare you to have a much sharper conversation with your agent.","## Where AI Still Falls Short","AI can't walk a home, smell a wet basement, sense how long a property has actually been sitting, or read the listing agent's body language. It also doesn't know which contractor in Wayne actually shows up. That's still my job. The buyers who win in 2026 use AI for research and a great local agent for execution."],faqs:[{question:"Can I use ChatGPT to find a house?",answer:"ChatGPT cannot search live MLS listings, but it is excellent for researching neighborhoods, comparing two homes, modeling mortgage payments, and preparing questions for showings. Pair it with Bright MLS searches from a licensed agent for the strongest results."},{question:"How accurate is AI for real estate pricing?",answer:"AI estimates from public tools like Zillow's Zestimate or AI-generated CMAs can be off by 5â15% in the Philadelphia suburbs, especially in micro-markets like the Main Line where condition, school boundary, and lot variation matter enormously. Always confirm with a local agent's CMA before making an offer."},{question:"Does Saiid Zamani help buyers who use AI tools?",answer:"Yes. Saiid actively encourages buyers to bring their AI research to the first meeting."}]}],YM=[...ZM,...UM,...GM],QM=({schema:e})=>u.jsx(Zd,{children:u.jsx("script",{type:"application/ld+json",children:JSON.stringify(e)})}),XM={"@context":"https://schema.org","@graph":[V0,kl,K0]},ai=({number:e,children:t,className:n=""})=>u.jsxs("p",{className:`kicker flex items-center gap-3 ${n}`,children:[e&&u.jsx("span",{className:"text-accent",children:e}),t]}),JM=[{icon:fk,number:"01",title:"Speaking",description:"Invite Saiid into a thoughtful conversation about technology, professional judgment, and the human side of change.",link:"Start a speaking conversation",to:"/contact"},{icon:yk,number:"02",title:"Advisory & education",description:"Explore a focused session for professionals who want to use AI with more clarity, responsibility, and human review.",link:"Discuss a session",to:"/contact"},{icon:mk,number:"03",title:"Real estate guidance",description:"Work with Saiid on a Pennsylvania residential decision, informed by careful preparation and direct guidance.",link:"Explore real estate guidance",to:"/services"}],eD=()=>{const e=[...YM].sort((t,n)=>n.dateISO.localeCompare(t.dateISO)).slice(0,3);return u.jsxs(u.Fragment,{children:[u.jsx(VM,{title:"Saiid Zamani | Speaker, Educator & Advisor",description:"Saiid Zamani explores responsible technology, human judgment, and clearer professional decisions through speaking, education, advisory work, and real estate practice.",path:"/"}),u.jsx(QM,{schema:XM}),u.jsxs("main",{className:"w-full bg-background text-foreground",children:[u.jsx("section",{className:"hero-fade overflow-hidden border-b border-hairline","aria-labelledby":"home-heading",children:u.jsxs("div",{className:"panel-inner grid lg:grid-cols-12 gap-12 lg:gap-16 min-h-[760px] items-end py-12 md:py-16",children:[u.jsxs("div",{className:"lg:col-span-7 flex flex-col justify-between h-full py-3 lg:py-8 order-2 lg:order-1",children:[u.jsx(ai,{className:"border-b border-ink pb-2 w-fit",children:"Speaker · Educator · Advisor"}),u.jsxs("div",{className:"mt-20 lg:mt-28",children:[u.jsxs("h1",{id:"home-heading",className:"font-display text-[clamp(4rem,10vw,8.5rem)] leading-[0.86] text-ink max-w-4xl",children:["Saiid",u.jsx("br",{}),u.jsx("span",{className:"italic font-normal text-accent",children:"Zamani."})]}
194),u.jsx("p",{className:"text-graphite text-xl md:text-2xl leading-relaxed max-w-xl mt-10",children:"Thoughtful conversations about technology, human judgment, and making better professional decisions."}),u.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mt-9",children:[u.jsx(Pr,{asChild:!0,size:"lg",children:u.jsxs(de,{to:"/contact",children:["Work with Saiid ",u.jsx(ri,{className:"ml-2 h-4 w-4"})]})}),u.jsx(de,{to:"/blog",className:"inline-flex items-center font-semibold text-ink border-b-2 border-hairline pb-1 hover:border-accent hover:text-accent transition-colors w-fit",children:"Read his ideas"})]})]})]}),u.jsxs("div",{className:"lg:col-span-5 relative min-h-[500px] lg:h-[660px] order-1 lg:order-2 -mx-6 md:mx-0",children:[u.jsx("img",{src:KM,alt:"Saiid Zamani, Realtor® in Wayne, Pennsylvania",loading:"eager",fetchPriority:"high",width:1040,height:1560,className:"absolute inset-0 h-full w-full object-cover grayscale contrast-[1.08] transition-[filter] duration-700 hover:grayscale-0"}),u.jsx("div",{className:"absolute left-6 md:-left-10 bottom-6 bg-paper border border-hairline p-6 md:p-8",children:u.jsxs("nav",{className:"flex flex-col gap-3","aria-label":"Homepage sections",children:[u.jsx("a",{href:"#ideas",className:"meta-mono hover:text-accent",children:"Ideas"}),u.jsx("a",{href:"#work",className:"meta-mono hover:text-accent",children:"Ways to work"}),u.jsx("a",{href:"#background",className:"meta-mono hover:text-accent",children:"Backgroun
194d"})]})})]})]})}),u.jsx("section",{id:"ideas",className:"panel","aria-labelledby":"ideas-heading",children:u.jsxs("div",{className:"panel-inner grid lg:grid-cols-12 gap-10 lg:gap-20",children:[u.jsxs("div",{className:"lg:col-span-4",children:[u.jsx(ai,{children:"Point of view"}),u.jsx("h2",{id:"ideas-heading",className:"section-head mt-4",children:"Progress needs more than new tools."})]}),u.jsxs("div",{className:"lg:col-span-8 space-y-6 text-lg md:text-xl leading-relaxed text-graphite",children:[u.jsx("p",{children:"Saiidâs work sits where technology meets professional responsibility. He is interested in what helps people think clearly, communicate honestly, and keep human judgment present as the tools around us change."}),u.jsx("p",{children:"His perspective comes from active practice, not distance: teaching professionals about responsible AI, advising people through consequential decisions, and seeing where information helpsâand where context matters more."}),u.jsx("p",{children:"This is a platform for those ideas, the conversations they create, and the work that can grow from them."})]})]})}),u.jsx("section",{className:"panel-tint","aria-labelledby":"writing-heading",children:u.jsxs("div",{className:"panel-inner",children:[u.jsxs("div",{className:"flex flex-col md:flex-row md:items-end md:justify-between gap-6 mb-10",children:[u.jsxs("div",{children:[u.jsx(ai,{children:"Selected ideas"}),u.jsx("h2",{id:"writing-heading",className:"section-head mt-4",children:"Thinking made useful."})]}),u.jsxs(de,{to:"/blog",className:"inline-flex items-center font-semibold text-ink hover:text-accent",children:["Read all guides ",u.jsx(ri,{className:"ml-2 h-4 w-4"})]})]}),u.jsx("div",{className:"grid md:grid-cols-3 border-t border-l border-hairline",children:e.map(t=>u.jsxs("article",{className:"p-7 md:p-8 border-r border-b border-hairline bg-paper flex flex-col min-h-[330px]",children:[u.jsxs("p",{className:"meta-mono",children:[t.date," · ",t.category]}),u.jsx("h3",{className:"font-display text-3xl text-ink mt-8 mb-4",children:t.title}),u.jsx("p",{className:"text-graphite leading-relaxed mb-8",children:t.excerpt}),u.jsxs(de,{to:`/blog/${t.slug}`,className:"inline-flex items-center font-semibold text-ink hover:text-accent mt-auto",children:["Read guide ",u.jsx(ri,{className:"ml-2 h-4 w-4"})]})]},t.slug))})]})}),u.jsx("section",{id:"work",className:"panel","aria-labelledby":"work-heading",children:u.jsxs("div",{className:"panel-inner",children:[u.jsx(ai,{children:"Ways to work together"}),u.jsx("h2",{id:"work-heading",className:"section-head mt-4 mb-4",children:"Bring the right conversation into the room."}),u.jsx("p",{className:"lead max-w-3xl mb-12",children:"Engagements begin with the audience, the decision, and what would make the time genuinely useful."}),u.jsx("div",{className:"grid md:grid-cols-3 border-t border-l border-hairline",children:JM.map(t=>u.jsxs(de,{to:t.to,className:"group p-7 md:p-9 border-r border-b border-hairline hover:bg-cream transition-colors min-h-[390px] flex flex-col",children:[u.jsxs("div",{className:"flex items-center justify-between gap-4",children:[u.jsx(t.icon,{className:"h-5 w-5 text-accent","aria-hidden":"true"}),u.jsx("span",{className:"font-display text-2xl text-accent",children:t.number})]}),u.jsx("h3",{className:"font-display text-3xl text-ink mt-14 mb-5 group-hover:text-accent transition-colors",children:t.title}),u.jsx("p",{className:"text-graphite leading-relaxed mb-8 max-w-xl",children:t.description}),u.jsxs("span",{className:"inline-flex items-center font-semibold text-ink mt-auto",children:[t.link," ",u.jsx(ri,{className:"ml-2 h-4 w-4"})]})]},t.number))})]})}),u.jsx("section",{id:"background",className:"panel-dark","aria-labelledby":"background-heading",children:u.jsxs("div",{className:"panel-inner grid lg:grid-cols-12 gap-12 lg:gap-20",children:[u.jsxs("div",{className:"lg:col-span-5",children:[u.jsx(ai,{className:"!text-accent",children:"The background"}),u.jsx("h2",{id:"background-heading",className:"section-head !text-paper mt-4",children:"Ideas grounded in real work."})]}),u.jsxs("div",{className:"lg:col-span-7 text-paper/80 text-lg md:text-xl leading-relaxed space-y-6",children:[u.jsx("p",{children:"Saiid Zamani is a speaker, educator, advisor, and Pennsylvania Realtor®. His professional work gives him a practical view of trust, change, technology, communication, and decisions with real consequences."}),u.jsx("p",{children:"Real estate remains one part of that workâand a source of lived experienceârather than the whole story."}),u.jsxs(de,{to:"/about",className:"inline-flex items-center font-semibold text-paper border-b border-accent pb-1 hover:text-accent",children:["Read Saiidâs background ",u.jsx(ri,{className:"ml-2 h-4 w-4"})]})]})]})}),u.jsx("section",{className:"bg-accent py-16 md:py-20","aria-labelledby":"
194contact-heading",children:u.jsxs("div",{className:"panel-inner flex flex-col lg:flex-row lg:items-center lg:justify-between gap-8",children:[u.jsxs("div",{children:[u.jsx("p",{className:"kicker !text-paper/80",children:"Work with Saiid"}),u.jsx("h2",{id:"contact-heading",className:"font-display text-4xl md:text-6xl text-paper mt-3",children:"What conversation should we start?"})]}),u.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[u.jsx(Pr,{asChild:!0,size:"lg",variant:"secondary",className:"border-paper text-paper hover:bg-paper hover:text-ink",children:u.jsx(de,{to:"/contact",children:"Work with Saiid"})}),u.jsx(Pr,{asChild:!0,size:"lg",variant:"outline",className:"border-paper text-paper hover:bg-paper hover:text-ink",children:u.jsxs("a",{href:"tel:+14845976868",children:[u.jsx(Ew,{className:"mr-2 h-4 w-4"}),"484-597-6868"]})})]})]})})]})]})},tD=f.lazy(()=>z(()=>import("./About-CWIK2Y4t.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]))),nD=f.lazy(()=>z(()=>import("./YouTube-DFeRzGWQ.js"),__vite__mapDeps([14,5,2,15]))),rD=f.lazy(()=>z(()=>import("./Services-BeXyGnDe.js"),__vite__mapDeps([16,1,2,3,4,5,6,17,9,13,7]))),oD=f.lazy(()=>z(()=>import("./ContentHub-CxHj2Zo5.js"),__vite__mapDeps([18,1,2,5,3,4,6,19,12,20,21,22,15]))),iD=f.lazy(()=>z(()=>import("./BlogArticle-DqiWpU77.js"),__vite__mapDeps([23,2,3,4,5,17,9,13,24,25,21]))),aD=f.lazy(()=>z(()=>import("./Contact-C69_sjQV.js"),__vite__mapDeps([26,1,3,4,2,5,6,19,12,27,28,29,30,31,32,33,34,35,13,9,25]))),sD=f.lazy(()=>z(()=>import("./AreaPage-D4uHhzsi.js"),__vite__mapDeps([36,1,2,3,4,19,12,5,37,38,39,40,41,7,13,20]))),lD=f.lazy(()=>z(()=>import("./Auth-BuyaPSuC.js"),__vite__mapDeps([42,32,29,1]))),cD=f.lazy(()=>z(()=>import("./AdminReviews-DOaS_xV0.js"),__vite__mapDeps([43,32,29,31,1,34]))),uD=f.lazy(()=>z(()=>import("./AdminSEO-DaJLQ2cl.js"),__vite__mapDeps([44,32,1,45,46,34,12,20]))),dD=f.lazy(()=>z(()=>import("./CountyHub-DuUvOjyS.js"),__vite__mapDeps([47,1,2,3,4,19,12,6,5,13,20,9]))),hD=f.lazy(()=>z(()=>import("./Press-B_Hv3dHm.js"),__vite__mapDeps([48,1,2,5,19,12,6,41,49]))),fD=f.lazy(()=>z(()=>import("./HomeValue-DbHvqj5t.js"),__vite__mapDeps([50,29,30,32,3,4,2,6,7,34,13,24,35]))),pD=f.lazy(()=>z(()=>import("./ClientsSay-pk035ymk.js"),__vite__mapDeps([51,1,2,5,6,40,11,10]))),mD=f.lazy(()=>z(()=>import("./BuyerResources-C7xUo2QV.js"),__vite__mapDeps([52,2,3,4,19,12,5,6,17,9,13,53,54]))),yD=f.lazy(()=>z(()=>import("./SellerResources-BxSRZvY5.js"),__vite__mapDeps([55,2,3,4,19,12,5,6,17,9,13,53,54]))),gD=f.lazy(()=>z(()=>import("./MarketReports-CZDhcDbg.js"),__vite__mapDeps([56,40,1,2,3,4,19,12,5,6,57,58,59,60,61,13,25,20])
194)),wD=f.lazy(()=>z(()=>import("./SitemapPage-DHzrZIzO.js"),__vite__mapDeps([62,63,59,60,58,57,54,64,39,38,5,2]))),vD=f.lazy(()=>z(()=>import("./LlmIndex-CuFftSVA.js"),__vite__mapDeps([65,5,2,66,10,38,63]))),bD=f.lazy(()=>z(()=>import("./AiDiscovery-B1dpmS3e.js"),__vite__mapDeps([67,2,5,38,63]))),xD=f.lazy(()=>z(()=>import("./InvisibleWall-6ejcdhRo.js"),__vite__mapDeps([68,27,28,29,30,31,32,33,34,5,2]))),SD=f.lazy(()=>z(()=>import("./EducationLibrary-DY1UOqeA.js"),__vite__mapDeps([69,5,2,6,54]))),PD=f.lazy(()=>z(()=>import("./EducationArticle-CjZVAUEX.js"),__vite__mapDeps([70,5,2,19,12,6,54]))),CD=f.lazy(()=>z(()=>import("./FAQHub-DAb8Z1r7.js"),__vite__mapDeps([71,4,2,5,64,19,12]))),kD=f.lazy(()=>z(()=>import("./LocalFAQ-CyBKHyGo.js"),__vite__mapDeps([72,4,2,5,13,19,12,64,35]))),AD=f.lazy(()=>z(()=>import("./LocalGuidesHub-s9RHrjb0.js"),__vite__mapDeps([73,1,45,4,2,5,64,60,38,39,74,49,13]))),ED=f.lazy(()=>z(()=>import("./AIHumanAdvantage-5Py1Nrcm.js"),__vite__mapDeps([75,5,2,27,28,29,30,31,32,33,34,12]))),TD=f.lazy(()=>z(()=>import("./AiInRealEstate-Dh0oj6Xg.js"),__vite__mapDeps([76,2,5,3,4,61]))),MD=f.lazy(()=>z(()=>import("./TownMarketReport-BPMbOduH.js"),__vite__mapDeps([77,61,2,3,4,19,12,5,40,57,25,20,13]))),DD=f.lazy(()=>z(()=>import("./TownComparison-B4UU_Sia.js"),__vite__mapDeps([78,2,3,4,19,12,5,58]))),RD=f.lazy(()=>z(()=>import("./BestList-DSEbd29W.js"),__vite__mapDeps([79,1,2,3,4,19,12,5,59]))),LD=f.lazy(()=>z(()=>import("./HowToGuide-ieN3gYyM.js"),__vite__mapDeps([80,2,3,4,19,12,5,60,21,81,33]))),ND=f.lazy(()=>z(()=>import("./HousingReportCard2026-CUbbbd6m.js"),__vite__mapDeps([82,1,19,12,7,22,83,20,81]))),ID=f.lazy(()=>z(()=>import("./AnswerPage-ChBglop4.js"),__vite__mapDeps([84,2,5,19,12,3,4,6,66,10,63,33]))),_D=f.lazy(()=>z(()=>import("./TownTopicPage-Vl12b-z_.js"),__vite__mapDeps([85,2,5,19,12,3,4,6,66,10,41,38,39,37]))),jD=f.lazy(()=>z(()=>import("./ResourcesHub-Bip-oTqQ.js"),__vite__mapDeps([86,2,5,1,63,9,74,7,20,8]))),OD=f.lazy(()=>z(()=>import("./PhillySuburbsHomebuyingAnswers-BFilqRKc.js"),__vite__mapDeps([87,2,5,28,29,30,31,32,33,34,4]))),WD=f.lazy(()=>z(()=>import("./UsingRetirementSavingsFirstHome-CEtBDa3c.js"),__vite__mapDeps([88,2,5,19,12,89,90,29,46,32,30,33,83,91,92]))),$D=f.lazy(()=>z(()=>import("./FirstTimeHomebuyerPhillySuburbs-DoROigDA.js"),__vite__mapDeps([93,2,5,19,12,89,91,92]))),BD=f.lazy(()=>z(()=>import("./IraFirstTimeHomebuyerRules-1ExiF-sy.js"),__vite__mapDeps([94,2,5,19,12,89,91,92]))),HD=f.lazy(()=>z(()=>import("./RetirementVsDownPayment-BIux02jg.js"),__vite__mapDeps([95,2,5,19,12,89,91,92]))),FD=f.lazy(()=>z(()=>import("./PaDownPaymentOptions-DmjEaiXW.js"),__vite__mapDeps([96,2,5,19,12,89,91,92]))),qD=f.lazy(()=>z(()=>import("./FirstTimeHomebuyerRetirementFaq-CDPGrFQj.js"),__vite__mapDeps([97,2,5,89,91]))),zD=f.lazy(()=>z(()=>import("./RetirementDownPaymentCalculatorPage-BCvrn3-w.js"),__vite__mapDeps([98,2,5,90,29,46,89]))),VD=f.lazy(()=>z(()=>import("./NotFound-DnXIJpUW.js"),[])),KD=f.lazy(()=>z(()=>import("./Privacy-DpIE4sWD.js"),__vite__mapDeps([99,5,2]))),UD=f.lazy(()=>z(()=>import("./Terms-BN9BZavN.js"),__vite__mapDeps([100,5,2]))),GD=new tP,ZD=()=>{const{slug:e}=Fg();return u.jsx(dt,{to:`/philadelphia-suburbs/${e}`,replace:!0})},YD=()=>{const{slug:e}=Fg();return u.jsx(dt,{to:`/blog/${e}`,replace:!0})},QD=()=>u.jsx("div",{"aria-busy":"true",className:"min-h-[60vh]"}),rm=()=>u.jsxs(Xg,{children:[u.jsx(Zd,{children:u.jsx("meta",{name:"msvalidate.01",content:"CCCE868D37C527579F08A3B20247FB33"})}),u.jsx(yM,{}),u.jsx(rP,{client:GD,children:u.jsxs(OE,{children:[u.jsx(Xk,{}),u.jsx(l1,{}),u.jsxs(XP,{children:[u.jsx(dM,{}),u.jsx("main",{children:u.jsx(f.Suspense,{fallback:u.jsx(QD,{}),children:u.jsxs(VP,{children:[u.jsx($,{path:"/",element:u.jsx(eD,{})}),u.jsx($,{path:"/about",element:u.jsx(tD,{})}),u.jsx($,{path:"/about/youtube",element:u.jsx(nD,{})}),u.jsx($,{path:"/youtube",element:u.jsx(dt,{to:"/about/youtube",replace:!0})}),u.jsx($,{path:"/services",element:u.jsx(rD,{})}),u.jsx($,{path:"/reviews",element:u.jsx(dt,{to:"/clients-say",replace:!0})}),u.jsx($,{path:"/content",element:u.jsx(dt,{to:"/blog",replace:!0})}),u.jsx($,{path:"/content/:slug",element:u.jsx(YD,{})}),u.jsx($,{path:"/blog",element:u.jsx(oD,{})}),u.jsx($,{path:"/blog/:slug",element:u.jsx(iD,{})}),u.jsx($,{path:"/philadelphia-suburbs",element:u.jsx(dt,{to:"/market-reports",replace:!0})}),u.jsx($,{path:"/philadelphia-suburbs/:slug",element:u.jsx(sD,{})}),u.jsx($,{path:"/areas/:slug",element:u.jsx(ZD,{})}),u.jsx($,{path:"/buyer-resources",element:u.jsx(mD,{})}),u.jsx($,{path:"/seller-resources",element:u.jsx(yD,{})}),u.jsx($,{path:"/market-reports",element:u.jsx(gD,{})}),u.jsx($,{path:"/market-report/:slug",element:u.jsx(MD,{})}),u.jsx($,{path:"/compare/:slug",element:u.jsx(DD,{})}),u.jsx($,{path:"/best/:slug",element:u.jsx(RD,{})}),u.jsx($,{path:"/guides/:slug",element:u.jsx(LD,{})}
194),u.jsx($,{path:"/answers/:slug",element:u.jsx(ID,{})}),u.jsx($,{path:"/towns/:townSlug/:topicSlug",element:u.jsx(_D,{})}),u.jsx($,{path:"/housing-report-card-2026",element:u.jsx(ND,{})}),u.jsx($,{path:"/ai-real-estate",element:u.jsx(dt,{to:"/ai",replace:!0})}),u.jsx($,{path:"/ai-human-advantage",element:u.jsx(ED,{})}),u.jsx($,{path:"/ai",element:u.jsx(TD,{})}),u.jsx($,{path:"/counties/:slug",element:u.jsx(dD,{})}),u.jsx($,{path:"/schools/:slug",element:u.jsx(dt,{to:"/market-reports",replace:!0})}),u.jsx($,{path:"/contact",element:u.jsx(aD,{})}),u.jsx($,{path:"/privacy",element:u.jsx(KD,{})}),u.jsx($,{path:"/terms",element:u.jsx(UD,{})}),u.jsx($,{path:"/press",element:u.jsx(hD,{})}),u.jsx($,{path:"/home-value",element:u.jsx(fD,{})}),u.jsx($,{path:"/clients-say",element:u.jsx(pD,{})}),u.jsx($,{path:"/sitemap",element:u.jsx(wD,{})}),u.jsx($,{path:"/llm-index",element:u.jsx(vD,{})}),u.jsx($,{path:"/ai-discovery",element:u.jsx(bD,{})}),u.jsx($,{path:"/for-ai",element:u.jsx(dt,{to:"/ai-discovery",replace:!0})}),u.jsx($,{path:"/invisible-wall",element:u.jsx(xD,{})}),u.jsx($,{path:"/real-estate-education",element:u.jsx(SD,{})}),u.jsx($,{path:"/real-estate-education/:slug",element:u.jsx(PD,{})}),u.jsx($,{path:"/faq",element:u.jsx(CD,{})}),u.jsx($,{path:"/faq/:area",element:u.jsx(kD,{})}),u.jsx($,{path:"/local-guides",element:u.jsx(AD,{})}),u.jsx($,{path:"/resources",element:u.jsx(jD,{})}),u.jsx($,{path:"/philadelphia-suburbs-homebuying-answers",element:u.jsx(OD,{})}),u.jsx($,{path:"/using-retirement-savings-to-buy-first-home",element:u.jsx(WD,{})}),u.jsx($,{path:"/first-time-homebuyer-philadelphia-suburbs",element:u.jsx($D,{})}),u.jsx($,{path:"/ira-first-time-homebuyer-rules",element:u.jsx(BD,{})}),u.jsx($,{path:"/retirement-savings-vs-down-payment",element:u.jsx(HD,{})}),u.jsx($,{path:"/first-time-buyer-down-payment-options-pa",element:u.jsx(FD,{})}),u.jsx($,{path:"/first-time-homebuyer-retirement-faq",element:u.jsx(qD,{})}),u.jsx($,{path:"/retirement-down-payment-calculator",element:u.jsx(zD,{})}),u.jsx($,{path:"/philly-suburbs-resources",element:u.jsx(dt,{to:"/resources",replace:!0})}),u.jsx($,{path:"/local-faq-guides",element:u.jsx(dt,{to:"/local-guides",replace:!0})}),u.jsx($,{path:"/frequently-asked-questions",element:u.jsx(dt,{to:"/faq",replace:!0})}),u.jsx($,{path:"/auth",element:u.jsx(lD,{})}),u.jsx($,{path:"/admin/reviews",element:u.jsx(cD,{})}),u.jsx($,{path:"/admin/seo",element:u.jsx(uD,{})}),u.jsx($,{path:"*",element:u.jsx(VD,{})})]})})}),u.jsx(mM,{}),u.jsx(_M,{}),u.jsx(jM,{}),u.jsx(OM,{})]})]})})]});O0(W0());const Ac=document.getElementById("root");Ac.hasChildNodes()?kg(Ac,u.jsx(rm,{})):Ag(Ac).render(u.jsx(rm,{}));export{D as $,ri as A,Pr as B,Aw as C,Cw as D,uR as E,$M as F,V0 as G,F0 as H,sR as I,q0 as J,ai as K,de as L,hk as M,dt as N,Zd as O,Ew as P,or as Q,dl as R,VM as S,Is as T,yk as U,ce as V,H as W,gn as X,Ce as Y,hn as Z,Yd as _,Fg as a,mv as a0,Sp as a1,y1 as a2,zo as a3,gl as a4,ta as a5,kv as a6,yv as a7,mh as a8,ph as a9,na as aa,dh as ab,hh as ac,$1 as ad,at as ae,ul as af,Ro as ag,av as ah,fE as ai,vv as aj,r2 as ak,o2 as al,Zi as am,YM as b,ct as c,zu as d,Zp as e,me as f,Hg as g,p1 as h,Ie as i,u as j,wR as k,fR as l,gR as m,Ch as n,hR as o,dR as p,U0 as q,f as r,mR as s,f1 as t,Bo as u,lR as v,pR as w,cR as x,yR as y,aR as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.